This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/python/intern/bpy_capi_utils.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

57 lines
1.6 KiB
C++
Raw Normal View History

/* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup pythonintern
2011-02-27 20:10:08 +00:00
*/
2017-12-04 16:37:31 +11:00
#pragma once
#if PY_VERSION_HEX < 0x030a0000
# error "Python 3.10 or greater is required, you'll need to update your Python."
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct EnumPropertyItem;
struct ReportList;
2009-03-20 10:51:58 +00:00
/* error reporting */
short BPy_reports_to_error(struct ReportList *reports, PyObject *exception, bool clear);
/**
* A version of #BKE_report_write_file_fp that uses Python's stdout.
*/
void BPy_reports_write_stdout(const struct ReportList *reports, const char *header);
bool BPy_errors_to_report_ex(struct ReportList *reports,
const char *error_prefix,
bool use_full,
bool use_location);
/**
* \param reports: When set, an error will be added to this report, when NULL, print the error.
*
* \note Unless the caller handles printing the reports (or reports is NULL) it's best to ensure
* the output is printed to the `stdout/stderr`:
* \code{.cc}
* BPy_errors_to_report(reports);
* if (!BKE_reports_print_test(reports)) {
* BKE_reports_print(reports);
* }
* \endcode
*
* \note The caller is responsible for clearing the error (see #PyErr_Clear).
*/
bool BPy_errors_to_report(struct ReportList *reports);
struct bContext *BPY_context_get(void);
extern void bpy_context_set(struct bContext *C, PyGILState_STATE *gilstate);
/**
* Context should be used but not now because it causes some bugs.
*/
extern void bpy_context_clear(struct bContext *C, const PyGILState_STATE *gilstate);
#ifdef __cplusplus
}
#endif