MLIR 23.0.0git
nanobind::detail::type_caster< MlirContext > Struct Reference

Casts object -> MlirContext. More...

#include "mlir/Bindings/Python/NanobindAdaptors.h"

Public Member Functions

 NB_TYPE_CASTER (MlirContext, const_name(MAKE_MLIR_PYTHON_QUALNAME("ir.Context"))) bool from_python(handle src

Public Attributes

uint8_t flags
uint8_t cleanup_list *cleanup noexcept

Detailed Description

Casts object -> MlirContext.

Definition at line 178 of file NanobindAdaptors.h.

Member Function Documentation

◆ NB_TYPE_CASTER()

nanobind::detail::type_caster< MlirContext >::NB_TYPE_CASTER ( MlirContext ,
const_name(MAKE_MLIR_PYTHON_QUALNAME("ir.Context"))  )

Member Data Documentation

◆ flags

uint8_t nanobind::detail::type_caster< MlirContext >::flags

Definition at line 181 of file NanobindAdaptors.h.

◆ noexcept

uint8_t cleanup_list* cleanup nanobind::detail::type_caster< MlirContext >::noexcept
Initial value:
{
if (src.is_none()) {
src = mlir::python::irModule().attr("Context").attr("current");
}
if (src.is_none()) {
PyErr_Warn(
PyExc_RuntimeWarning,
"Passing None as MLIR Context is only allowed inside "
"the " MAKE_MLIR_PYTHON_QUALNAME("ir.Context") " context manager.");
return false;
}
if (std::optional<nanobind::object> capsule = mlirApiObjectToCapsule(src)) {
value = mlirPythonCapsuleToContext(capsule->ptr());
return !mlirContextIsNull(value);
}
return false
static MlirContext mlirPythonCapsuleToContext(PyObject *capsule)
Extracts a MlirContext from a capsule as produced from mlirPythonContextToCapsule.
Definition Interop.h:224
#define MAKE_MLIR_PYTHON_QUALNAME(local)
Definition Interop.h:57
static bool mlirContextIsNull(MlirContext context)
Checks whether a context is null.
Definition IR.h:104
static std::optional< nanobind::object > mlirApiObjectToCapsule(nanobind::handle apiObject)
Helper to convert a presumed MLIR API object to a capsule, accepting either an explicit Capsule (whic...

Definition at line 181 of file NanobindAdaptors.h.


The documentation for this struct was generated from the following file: