From 9f2665b52624eb1dbf75f479c5d9529ca067f29a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 27 Mar 2019 14:01:25 +1100 Subject: PyAPI: utility function to print reports --- source/blender/python/intern/bpy_capi_utils.c | 13 +++++++++++++ source/blender/python/intern/bpy_capi_utils.h | 1 + source/blender/python/intern/bpy_operator.c | 5 +---- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'source/blender/python') diff --git a/source/blender/python/intern/bpy_capi_utils.c b/source/blender/python/intern/bpy_capi_utils.c index 4c0d220d3d9..3a5b3077ee6 100644 --- a/source/blender/python/intern/bpy_capi_utils.c +++ b/source/blender/python/intern/bpy_capi_utils.c @@ -75,6 +75,19 @@ short BPy_reports_to_error(ReportList *reports, PyObject *exception, const bool return (report_str == NULL) ? 0 : -1; } +/** + * A version of #BKE_report_write_file_fp that uses Python's stdout. + */ +void BPy_reports_write_stdout(const ReportList *reports, const char *header) +{ + if (header) { + PySys_WriteStdout("%s\n", header); + } + + for (const Report *report = reports->list.first; report; report = report->next) { + PySys_WriteStdout("%s: %s\n", report->typestr, report->message); + } +} bool BPy_errors_to_report_ex(ReportList *reports, const bool use_full, const bool use_location) { diff --git a/source/blender/python/intern/bpy_capi_utils.h b/source/blender/python/intern/bpy_capi_utils.h index 533ff0fb7c2..f8d42b463ac 100644 --- a/source/blender/python/intern/bpy_capi_utils.h +++ b/source/blender/python/intern/bpy_capi_utils.h @@ -34,6 +34,7 @@ char *BPy_enum_as_string(const struct EnumPropertyItem *item); /* error reporting */ short BPy_reports_to_error(struct ReportList *reports, PyObject *exception, const bool clear); +void BPy_reports_write_stdout(const struct ReportList *reports, const char *header); bool BPy_errors_to_report_ex(struct ReportList *reports, const bool use_full, const bool use_location); bool BPy_errors_to_report(struct ReportList *reports); diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index ecae71d07e3..98b2f871c54 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -262,10 +262,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) /* operator output is nice to have in the terminal/console too */ if (!BLI_listbase_is_empty(&reports->list)) { - Report *report; - for (report = reports->list.first; report; report = report->next) { - PySys_WriteStdout("%s: %s\n", report->typestr, report->message); - } + BPy_reports_write_stdout(reports, NULL); } BKE_reports_clear(reports); -- cgit v1.2.3