Loading [MathJax]/extensions/tex2jax.js
LSST Applications g1653933729+34a971ddd9,g1a997c3884+34a971ddd9,g28da252d5a+32b12a4112,g2bbee38e9b+ffc559ee46,g2bc492864f+ffc559ee46,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+ffc559ee46,g35bb328faa+34a971ddd9,g3a166c0a6a+ffc559ee46,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9f5be647b3,g41af890bb2+686ab7cd58,g4e1a3235cc+1fd785b14f,g7b55021d1b+da0d0eec6b,g80478fca09+6e21f9dc20,g82479be7b0+6fa35d7547,g858d7b2824+356eaf3287,g9125e01d80+34a971ddd9,ga5288a1d22+ba1f9bb3ef,gae0086650b+34a971ddd9,gb4748cc0e8+fd26a265a0,gb4ec7eb0ab+356eaf3287,gb58c049af0+ace264a4f2,gc081298178+30f12d1e69,gc28159a63d+ffc559ee46,gcf0d15dbbd+4adb3139bd,gd6b7c0dfd1+aae9efebf5,gda3e153d99+356eaf3287,gda6a2b7d83+4adb3139bd,gdaeeff99f8+7774323b41,gdd5a9049c5+ea78b51778,ge2409df99d+fa478de0b0,ge33fd446bb+356eaf3287,ge79ae78c31+ffc559ee46,gf0baf85859+890af219f9,gf5289d68f6+e11c78aeea,w.2024.41
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Macros
python.h File Reference

Go to the source code of this file.

Macros

#define LSST_DECLARE_CONTROL_FIELD(WRAPPER, CLASS, NAME)
 Macro used to wrap fields declared by LSST_CONTROL_FIELD using Pybind11.
 
#define LSST_DECLARE_NESTED_CONTROL_FIELD(WRAPPER, CLASS, NAME)
 Macro used to wrap fields declared by LSST_NESTED_CONTROL_FIELD using Pybind11.
 

Macro Definition Documentation

◆ LSST_DECLARE_CONTROL_FIELD

#define LSST_DECLARE_CONTROL_FIELD ( WRAPPER,
CLASS,
NAME )
Value:
WRAPPER.def_readwrite(#NAME, &CLASS::NAME); \
WRAPPER.def_static("_doc_" #NAME, &CLASS::_doc_ ## NAME); \
WRAPPER.def_static("_type_" #NAME, &CLASS::_type_ ## NAME);

Macro used to wrap fields declared by LSST_CONTROL_FIELD using Pybind11.

Example:

LSST_DECLARE_CONTROL_FIELD(clsFoo, Foo, myField)
Parameters
WRAPPERThe py::class_ object representing the control class being wrapped.
CLASSThe control class. Must be a C++ identifier (not a string), properly namespace-qualified for the context where this macro is being called.
NAMEThe control field. Must be a C++ identifier (not a string), and must match the NAME argument of the original LSST_CONTROL_FIELD macro.

Definition at line 50 of file python.h.

50#define LSST_DECLARE_CONTROL_FIELD(WRAPPER, CLASS, NAME) \
51 WRAPPER.def_readwrite(#NAME, &CLASS::NAME); \
52 WRAPPER.def_static("_doc_" #NAME, &CLASS::_doc_ ## NAME); \
53 WRAPPER.def_static("_type_" #NAME, &CLASS::_type_ ## NAME);

◆ LSST_DECLARE_NESTED_CONTROL_FIELD

#define LSST_DECLARE_NESTED_CONTROL_FIELD ( WRAPPER,
CLASS,
NAME )
Value:
WRAPPER.def_readwrite(#NAME, &CLASS::NAME); \
WRAPPER.def_static("_doc_" #NAME, &CLASS::_doc_ ## NAME); \
WRAPPER.def_static("_type_" #NAME, &CLASS::_type_ ## NAME); \
WRAPPER.def_static("_module_" #NAME, &CLASS::_module_ ## NAME);

Macro used to wrap fields declared by LSST_NESTED_CONTROL_FIELD using Pybind11.

Example:

LSST_DECLARE_NESTED_CONTROL_FIELD(clsFoo, Foo, myField)
Parameters
WRAPPERThe py::class_ object representing the control class being wrapped.
CLASSThe control class. Must be a C++ identifier (not a string), properly namespace-qualified for the context where this macro is being called.
NAMEThe control field. Must be a C++ identifier (not a string), and must match the NAME argument of the original LSST_CONTROL_FIELD macro.

Definition at line 72 of file python.h.

72#define LSST_DECLARE_NESTED_CONTROL_FIELD(WRAPPER, CLASS, NAME) \
73 WRAPPER.def_readwrite(#NAME, &CLASS::NAME); \
74 WRAPPER.def_static("_doc_" #NAME, &CLASS::_doc_ ## NAME); \
75 WRAPPER.def_static("_type_" #NAME, &CLASS::_type_ ## NAME); \
76 WRAPPER.def_static("_module_" #NAME, &CLASS::_module_ ## NAME);