rawtypes.interpreted_types.basetype module¶
- 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* を作って返す。