rawtypes.interpreted_types.basetype module

Inheritance diagram of rawtypes.interpreted_types.basetype
class rawtypes.interpreted_types.basetype.BaseType(name: str, is_const: bool = False)

ベースクラス: object

コード生成時の型ごとの変換ルールを定義する。

Extension を実装する c/c++ の表現、 ctypes.Structure のフィールド表現、 language-server 向けの pyi 表現をサポートする。

それぞれについて、関数の引数、返り値、Structのフィールドのコンテキストがある。 c/c++ に関しては、 PyObjct* 型のローカル変数への展開、 PyObjct* 型のローカル変数から c/c++ の値の取り出し、 取り出した変数を用いた関数呼び出し、 void 以外の関数の実行結果を PyObject* にパックする追加のコンテキストがある。

property ctypes_type: str

python type for ctypes.Structure fields

ctypes_field(name: str) str

python type with name for a item of ctypes.Structure._field_

use ctypes_type.

property pyi_types: Tuple[str, ...]

rename python type for avoid language-server error

ex: ctypes.c_int32 => int

pyi_field(indent: str, name: str) str

python type with name for a member of pyi class

use pyi_types[0].

py_param(name: str, default_value: str, pyi: bool) str

python type with name for a pyi function param

use pyi_types.

property py_result: str
property const_prefix: str

const char *

Type

ex

property PyArg_ParseTuple_format: str
cpp_from_py(indent: str, i: int, default_value: str) str

PyObject* から c/c++ の値を取り出す

cpp_call_name(i: int)
cpp_to_py(value: str)

c/c++ の値から PyObject* を作る

cpp_result(indent: str, call: str) str

c/c++ の関数を呼び出す。 結果から PyObject* を作って返す。