PyAPI: utility function to print reports

This commit is contained in:
2019-03-27 14:01:25 +11:00
parent fb7f157ff8
commit 9f2665b526
3 changed files with 15 additions and 4 deletions

View File

@@ -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)
{

View File

@@ -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);

View File

@@ -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);