|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
PyOpalObjectNS namespace contains PyOpalObject, a wrapper for Object objects, and various supporting objects. More...
Classes | |
| struct | AttributeDef |
| AttributeDef defines an attribute opalName_m: the name of the opal Attribute pyName_m: the name that will be visible to the user in python. More... | |
| class | PyOpalObject |
| PyOpalObject<C> is the basic wrapper class for Opal Objects. More... | |
| struct | PyOpalObjectGetProperty |
| Helper class to handle getting Attributes from python. More... | |
| struct | PyOpalObjectSetProperty |
| Helper class to handle setting Attributes from python. More... | |
Enumerations | |
| enum | AttributeType { STRING , PREDEFINED_STRING , UPPER_CASE_STRING , STRING_LIST , DOUBLE , BOOL , INT , FLOAT_LIST } |
| AttributeType is used to control conversion from python to OpalAttribute. More... | |
Functions | |
| template<class C > | |
| void | update (PyOpalObjectNS::PyOpalObject< C > pyelement) |
| Call update on a pyelement. More... | |
Variables | |
| std::map< AttributeType, std::string > | attributeName |
| Maps the AttributeType to a string representation for docstrings/etc. More... | |
PyOpalObjectNS namespace contains PyOpalObject, a wrapper for Object objects, and various supporting objects.
PyOpalObject<C>: basic element wrapper for C, which should be a subclass of OpalElement. AttributeType: enumeration of Opal Attribute Types (real, string, etc) AttributeDef: struct containing all of the things PyOpalObject needs to know about each attribute that should be exposed to the python api. PyElementGetProperty: call policy to handle access of an Attribute for a python property PyElementSetProperty: call policy to handle setting of an Attribute for a python property
To wrap an OpalElement, say MyOpalObjectClass, you need to:
PyOpalObject<MyOpalObjectType>.make_class()Nb: apologies, this is heavy template stuff so almost everything has to go in the header file.
| struct PyOpal::PyOpalObjectNS::AttributeDef |
AttributeDef defines an attribute opalName_m: the name of the opal Attribute pyName_m: the name that will be visible to the user in python.
Properties should be_lower_case_with_underscores to comply with python API docString_m: docstring. If left empty (""), PyElement will generate a docstring like "py_name (type): Attribute help string" type_m: python type.
Definition at line 94 of file PyOpalObject.h.

| Class Members | ||
|---|---|---|
| string | docString_m | |
| string | opalName_m | |
| string | pyName_m | |
| AttributeType | type_m | |
AttributeType is used to control conversion from python to OpalAttribute.
| Enumerator | |
|---|---|
| STRING | |
| PREDEFINED_STRING | |
| UPPER_CASE_STRING | |
| STRING_LIST | |
| DOUBLE | |
| BOOL | |
| INT | |
| FLOAT_LIST | |
Definition at line 80 of file PyOpalObject.h.
| void PyOpal::PyOpalObjectNS::update | ( | PyOpalObjectNS::PyOpalObject< C > | pyelement | ) |
Call update on a pyelement.
Note that C must be a subtype of OpalElement or some other class that has an C::update() method (i.e. not OpalObject).
Definition at line 340 of file PyOpalObject.h.
References PyOpal::PyOpalObjectNS::PyOpalObject< C >::getOpalShared().
Referenced by ParallelTTracker::applyFractionalStep(), PartBunchBase< T, Dim >::boundp_destroyCycl(), PartBunchBase< T, Dim >::push_back(), AmrParticleBase< PLayout >::update(), ParallelTTracker::updateRefToLabCSTrafo(), and ParallelTTracker::writePhaseSpace().

| std::map< AttributeType, std::string > PyOpal::PyOpalObjectNS::attributeName |
Maps the AttributeType to a string representation for docstrings/etc.
Definition at line 22 of file PyOpalObject.cpp.
Referenced by H5PartWrapper::copyHeader(), H5PartWrapper::copyStepHeader(), PyOpal::PyOpalObjectNS::PyOpalObject< C >::getAttribute(), PyOpal::PyOpalObjectNS::PyOpalObject< C >::getDocString(), H5PartWrapperForPC::readHeader(), H5PartWrapperForPT::readHeader(), and PyOpal::PyOpalObjectNS::PyOpalObject< C >::setAttribute().