MLIR 22.0.0git
mlir::python::PyConcreteType< DerivedTy, BaseTy > Class Template Reference

CRTP base classes for Python types that subclass Type and should be castable from it (i.e. More...

#include "Bindings/Python/IRModule.h"

Inheritance diagram for mlir::python::PyConcreteType< DerivedTy, BaseTy >:

Public Types

using ClassTy = nanobind::class_<DerivedTy, BaseTy>
using IsAFunctionTy = bool (*)(MlirType)
using GetTypeIDFunctionTy = MlirTypeID (*)()

Public Member Functions

 PyConcreteType ()=default
 PyConcreteType (PyMlirContextRef contextRef, MlirType t)
 PyConcreteType (PyType &orig)
Public Member Functions inherited from mlir::python::PyType
 PyType (PyMlirContextRef contextRef, MlirType type)
bool operator== (const PyType &other) const
 operator MlirType () const
MlirType get () const
nanobind::object getCapsule ()
 Gets a capsule wrapping the void* within the MlirType.
nanobind::object maybeDownCast ()
Public Member Functions inherited from mlir::python::BaseContextObject
 BaseContextObject (PyMlirContextRef ref)
PyMlirContextRefgetContext ()
 Accesses the context reference.

Static Public Member Functions

static MlirType castFrom (PyType &orig)
static void bind (nanobind::module_ &m)
static void bindDerived (ClassTy &m)
 Implemented by derived classes to add methods to the Python subclass.
Static Public Member Functions inherited from mlir::python::PyType
static PyType createFromCapsule (nanobind::object capsule)
 Creates a PyType from the MlirType wrapped by a capsule.

Static Public Attributes

static constexpr GetTypeIDFunctionTy getTypeIdFunction = nullptr

Detailed Description

template<typename DerivedTy, typename BaseTy = PyType>
class mlir::python::PyConcreteType< DerivedTy, BaseTy >

CRTP base classes for Python types that subclass Type and should be castable from it (i.e.

via something like IntegerType(t)). By default, type class hierarchies are one level deep (i.e. a concrete type class extends PyType); however, intermediate python-visible base classes can be modeled by specifying a BaseTy.

Definition at line 930 of file IRModule.h.

Member Typedef Documentation

◆ ClassTy

template<typename DerivedTy, typename BaseTy = PyType>
using mlir::python::PyConcreteType< DerivedTy, BaseTy >::ClassTy = nanobind::class_<DerivedTy, BaseTy>

Definition at line 935 of file IRModule.h.

◆ GetTypeIDFunctionTy

template<typename DerivedTy, typename BaseTy = PyType>
using mlir::python::PyConcreteType< DerivedTy, BaseTy >::GetTypeIDFunctionTy = MlirTypeID (*)()

Definition at line 937 of file IRModule.h.

◆ IsAFunctionTy

template<typename DerivedTy, typename BaseTy = PyType>
using mlir::python::PyConcreteType< DerivedTy, BaseTy >::IsAFunctionTy = bool (*)(MlirType)

Definition at line 936 of file IRModule.h.

Constructor & Destructor Documentation

◆ PyConcreteType() [1/3]

template<typename DerivedTy, typename BaseTy = PyType>
mlir::python::PyConcreteType< DerivedTy, BaseTy >::PyConcreteType ( )
default

Referenced by PyConcreteType().

◆ PyConcreteType() [2/3]

template<typename DerivedTy, typename BaseTy = PyType>
mlir::python::PyConcreteType< DerivedTy, BaseTy >::PyConcreteType ( PyMlirContextRef contextRef,
MlirType t )
inline

Definition at line 941 of file IRModule.h.

◆ PyConcreteType() [3/3]

template<typename DerivedTy, typename BaseTy = PyType>
mlir::python::PyConcreteType< DerivedTy, BaseTy >::PyConcreteType ( PyType & orig)
inline

Member Function Documentation

◆ bind()

◆ bindDerived()

template<typename DerivedTy, typename BaseTy = PyType>
void mlir::python::PyConcreteType< DerivedTy, BaseTy >::bindDerived ( ClassTy & m)
inlinestatic

Implemented by derived classes to add methods to the Python subclass.

Definition at line 1003 of file IRModule.h.

◆ castFrom()

template<typename DerivedTy, typename BaseTy = PyType>
MlirType mlir::python::PyConcreteType< DerivedTy, BaseTy >::castFrom ( PyType & orig)
inlinestatic

Definition at line 946 of file IRModule.h.

References mlir::python::PyType::PyType().

Referenced by PyConcreteType().

Member Data Documentation

◆ getTypeIdFunction

template<typename DerivedTy, typename BaseTy = PyType>
GetTypeIDFunctionTy mlir::python::PyConcreteType< DerivedTy, BaseTy >::getTypeIdFunction = nullptr
staticconstexpr

Definition at line 938 of file IRModule.h.


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