LSST Applications g0f08755f38+9522ef2f0f,g1653933729+a905cd61c3,g168dd56ebc+a905cd61c3,g1a2382251a+910d683904,g20f6ffc8e0+9522ef2f0f,g217e2c1bcf+f4af07de8a,g28da252d5a+26a25b978d,g2bbee38e9b+cc7bbd92cc,g2bc492864f+cc7bbd92cc,g32e5bea42b+de24d92311,g347aa1857d+cc7bbd92cc,g35bb328faa+a905cd61c3,g3a166c0a6a+cc7bbd92cc,g3bd4b5ce2c+02735527dc,g3e281a1b8c+2bff41ced5,g414038480c+4de324692b,g41af890bb2+4fc8c6ef01,g43bc871e57+d0d7cc457a,g78460c75b0+4ae99bb757,g80478fca09+615987a4d7,g82479be7b0+970d1d03ea,g8365541083+a905cd61c3,g858d7b2824+9522ef2f0f,g9125e01d80+a905cd61c3,ga5288a1d22+9ad990292e,gb58c049af0+84d1b6ec45,gc28159a63d+cc7bbd92cc,gc5452a3dca+b82ec7cc4c,gcab2d0539d+475d436cbd,gcf0d15dbbd+d816b8a730,gda6a2b7d83+d816b8a730,gdaeeff99f8+686ef0dd99,ge79ae78c31+cc7bbd92cc,gef2f8181fd+c1889b0e42,gf0baf85859+f9edac6842,gf1e97e5484+a55c27affc,gfa517265be+9522ef2f0f,gfa999e8aa5+d85414070d,w.2025.01
LSST Data Management Base Package
Loading...
Searching...
No Matches
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);