OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Classes | Enumerations | Variables
PyOpal::PyElementNS Namespace Reference

Classes

struct  AttributeDef
 
class  PyElement
 
struct  PyElementGetProperty
 
struct  PyElementSetProperty
 

Enumerations

enum  AttributeType { DOUBLE , STRING , BOOL , INT }
 

Variables

std::map< AttributeType, std::string > attributeName
 

Detailed Description

PyElementNS namespace contains PyElement, a wrapper for OpalElement objects, and various supporting objects.

PyElement<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 PyElement 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 MyOpalElementClass, you need to:

  1. Define static member data for the PyElement<MyOpalElementClass>. This includes defining the attributes and setting a few options for different methods to expose.
  2. In BOOST_PYTHON_MODULE(my_opal_element_module), call
     PyElement<MyOpalElementType>.make_class()
    
    Nb: apologies, this is heavy template stuff so almost everything has to go in the header file.

Enumeration Type Documentation

◆ AttributeType

AttributeType is used to control conversion from python to OpalAttribute

  • Float will convert to RealAttribute
  • String will convert to StringAttribute
  • Bool will convert to BoolAttribute (tho in python Bool is alias to long)
  • Long will convert to RealAttribute
Enumerator
DOUBLE 
STRING 
BOOL 
INT 

Definition at line 60 of file PyElement.h.

Variable Documentation

◆ attributeName

std::map< AttributeType, std::string > PyOpal::PyElementNS::attributeName
Initial value:
= std::map<AttributeType, std::string>({
{DOUBLE, "double"}
})

Maps the AttributeType to a string representation for docstrings/etc

Definition at line 7 of file PyElement.cpp.

Referenced by H5PartWrapper::copyHeader(), H5PartWrapper::copyStepHeader(), PyOpal::PyElementNS::PyElement< C >::getDocString(), H5PartWrapperForPC::readHeader(), and H5PartWrapperForPT::readHeader().