CYCLUS
|
Classes | |
class | Assign |
class | BinOp |
class | Block |
class | Case |
class | CppGen |
class | Decl |
class | DeclAssign |
class | Expr |
class | ExprStmt |
class | For |
class | FuncCall |
class | FuncDef |
class | If |
class | LeftUnaryOp |
class | Line |
class | Node |
class | Nothing |
class | PrettyFormatter |
class | Raw |
class | RightUnaryOp |
class | Type |
class | Var |
class | Visitor |
Functions | |
a_cast (t, depth=0, prefix="") | |
camel_case (db) | |
case_template (t, read_x) | |
convert_canonical (raw_list) | |
flatten (canon) | |
get_body (t, depth=0, prefix="", base_offset="buf+offset") | |
get_decl (t, depth=0, prefix="") | |
get_dim_shape (canon, start=0, depth=0) | |
get_item_size (t, shape_array=None, vl_flag=False, depth=0) | |
get_item_type (t, shape_array=None, vl_flag=False, prefix="", depth=0) | |
get_prefix (base_prefix, parent_type, child_index) | |
get_setup (t, depth=0, prefix="", HDF5_type="tb_type", child_index='j') | |
get_teardown (t) | |
get_variable (name, depth=0, prefix="") | |
get_variation_body (t) | |
get_variation_cond (t) | |
get_write_body (t, shape_array, depth=0, prefix="", variable="a", offset="buf", pointer=False) | |
get_write_setup (t, shape_array, depth=0, prefix="") | |
hdf5_array_create (item_variable, rank=1, dims="&shape0") | |
hdf5_create_compound (sizes) | |
hdf5_insert (container_type, compound_var, types_sizes_dict) | |
indent (text, prefix, predicate=None) | |
is_all_vl (t) | |
list_body (t, depth=0, prefix="", base_offset="buf+offset") | |
list_dependencies (canon) | |
list_primitive_body (t, depth=0, prefix="", base_offset="buf+offset") | |
main () | |
main_buf_to_val () | |
main_create () | |
main_fill_buf () | |
main_query () | |
main_val_to_buf () | |
main_val_to_buf_h () | |
main_vl_dataset () | |
main_write () | |
map_body (t, depth=0, prefix="", base_offset="buf+offset") | |
memcpy (dest, src, size) | |
memset (dest, src, size) | |
no_vl (t) | |
normal_close (t) | |
pad_children (t, variable, fixed_var=None, depth=0, prefix="", called_depth=0) | |
pair_body (t, depth=0, prefix="", base_offset="buf+offset") | |
primitive_setup (t, depth=0, prefix="") | |
print_statement (t, identifier) | |
reinterpret_cast (t, offset, deref=False) | |
reinterpret_cast_body (t, depth=0, prefix="", base_offset="buf+offset") | |
resolve_unicode (item) | |
set_body (t, depth=0, prefix="", base_offset="buf+offset") | |
set_primitive_body (t, depth=0, prefix="", base_offset="buf+offset") | |
set_string_body (t, depth=0, prefix="", base_offset="buf+offset") | |
setup () | |
string (s) | |
string_body (t, depth=0, prefix="", base_offset="buf+offset", variable=None) | |
string_setup (depth=0, prefix="") | |
to_buf_body (t, vl_list, depth=0, prefix="", variable=None, offset="reinterpret_cast<char*>(buf.p)") | |
to_from_buf_setup (t, depth=0, prefix="", spec=None) | |
to_val_body (t, vl_list, depth=0, prefix='', variable='x0', offset=None) | |
typeid (t) | |
uuid_body (t, depth=0, prefix="", base_offset="buf+offset") | |
vec_string_body (t, depth=0, prefix="", base_offset="buf+offset") | |
vector_body (t, depth=0, prefix="", base_offset="buf+offset") | |
vector_primitive_body (t, depth=0, prefix="", base_offset="buf+offset") | |
VL_ADD_BLOCK (t, item_var) | |
vl_body (t, depth=0, prefix="", base_offset="buf+offset") | |
vl_read (t, offset) | |
vl_string_body (t, depth=0, prefix="", base_offset="buf+offset", variable=None) | |
vl_string_setup (depth=0, prefix="") | |
vl_write (t, variable, depth=0, prefix="", pointer=False) | |
write_body_primitive (t, depth=0, prefix="", variable=None, offset="buf", pointer=False) | |
write_body_string (t, depth=0, prefix="", variable=None, offset="buf", pointer=False) | |
write_body_uuid (t, depth=0, prefix="", variable=None, offset="buf", pointer=False) | |
Variables | |
cls | _lowername = lambda cls.__name__.lower() |
dict | BODIES |
dict | CANON_TO_DB = {} |
dict | CANON_TO_NODE = {} |
list | CANON_TYPES = [] |
dict | CONTAINER_INSERT_STRINGS |
dict | DB_TO_CPP = {} |
dict | DB_TO_VL = {} |
list | DEBUG_TYPES = ["VECTOR_STRING"] |
dict | HDF5_PRIMITIVES |
str | INDENT = ' ' |
io_error | |
isinstance | is_primitive = lambda t(t.canon, str) |
dict | MAIN_DISPATCH = {} |
list | NOT_VL = [] |
ORIGIN_DICT = OrderedDict() | |
dict | ORIGIN_TO_VL = {} |
dict | PRIMITIVE_SIZES |
raw_blob | |
raw_string | |
dict | RAW_TYPES |
list | TEARDOWN_STACK = [] |
dict | template_args |
list | variable_length_types = ["MAP", "LIST", "SET", "VECTOR"] |
VARIATION_DICT = OrderedDict() | |
list | VARS = [] |
dict | VL_SPECIAL_TYPES |
dict | VL_TO_FL_CONTAINERS |
str | vl_write_blob |
str | vl_write_vl_string |
dict | WRITE_BODY_PRIMITIVES |
This module generates HDF5 backend code found in src/hdf5_back.cc There are 8 distinct code generation options, one of which must be passed as an argument to this module. They are CREATE, QUERY, VL_DATASET, FILL_BUF, WRITE, VAL_TO_BUF_H, VAL_TO_BUF, and BUF_TO_VAL. Each of these generates a different section of Hdf5 backend code. All are invoked by src/CMakeLists.txt prior to C++ compilation. However, for debugging purposes, each section can be printed individually by passing that section's identifier as a command line argument. The entry point for each of these generation routines is the function main_XXXX, where XXXX is a generation option. Example ------- To generate the code found in src/hdf5_back.cc::Query, use $ python3 hdf5_back_gen.py QUERY
hdf5_back_gen.a_cast | ( | t, | |
depth = 0, | |||
prefix = "" ) |
HDF5 Write: Node representation of boost hold_any casting.
Definition at line 1812 of file hdf5_back_gen.py.
hdf5_back_gen.camel_case | ( | db | ) |
Definition at line 1699 of file hdf5_back_gen.py.
hdf5_back_gen.case_template | ( | t, | |
read_x ) |
Represents C++ case statement. Parameters ---------- t : Type Depth 0 type. read_x : Node Nodes of case statement body. Returns ------- Node Complete case statement block.
Definition at line 447 of file hdf5_back_gen.py.
hdf5_back_gen.convert_canonical | ( | raw_list | ) |
Converts JSON list of lists to tuple of tuples. Parameters ---------- raw_list : list or str List to be converted, or str Returns ------- str or tuple Converted list, or str
Definition at line 368 of file hdf5_back_gen.py.
hdf5_back_gen.flatten | ( | canon | ) |
Definition at line 1141 of file hdf5_back_gen.py.
hdf5_back_gen.get_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Get body nodes for a C++ type. Parameters ---------- t : Type C++ type, canonical form. depth : int, optional Depth relative to initial, depth 0 type. prefix : str, optional Current prefix, determined by parent type. Returns ------- Node Body nodes required for the type.
Definition at line 1022 of file hdf5_back_gen.py.
hdf5_back_gen.get_decl | ( | t, | |
depth = 0, | |||
prefix = "" ) |
HDF5 Query: Get node representing C++ type declaration. Declarations occur directly before bodies, created without recursion. Parameters ---------- t : Type C++ type, canonical form. depth : int, optional Depth relative to initial, depth 0 type. prefix : str, optional Prefix determined by parent type. Returns ------- Node Declaration statement as a node.
Definition at line 628 of file hdf5_back_gen.py.
hdf5_back_gen.get_dim_shape | ( | canon, | |
start = 0, | |||
depth = 0 ) |
Definition at line 1124 of file hdf5_back_gen.py.
hdf5_back_gen.get_item_size | ( | t, | |
shape_array = None, | |||
vl_flag = False, | |||
depth = 0 ) |
Resolves item size recursively. We can dig down into a type until we reach eventual primitives, and then multiply the known sizes of those primitives by the lengths of their containers. Container length is defined in the C++ shape array. Parameters ---------- t : Type The type whose size is in question shape_array : list, optional Dimensioned list of shape array indicies, same shape as t.canon depth : int, optional Recursive depth counter Returns ------- size : str String of C++ expression representing t's size.
Definition at line 1488 of file hdf5_back_gen.py.
hdf5_back_gen.get_item_type | ( | t, | |
shape_array = None, | |||
vl_flag = False, | |||
prefix = "", | |||
depth = 0 ) |
HDF5 Create: Build specified HDF5 type, recursively if necessary. HDF5 types are Primitive, Compound, or Array. We handle each of these cases here differently. Primitives are immediately returned by querying the HDF5_PRIMITIVES dictionary. Compound types are made up of multiple Primitive or Compound types, so each of these child types must be declared and created before the parent type can be created. This is accomplished via recursion over every child type in the type's canon. It should be noted that Compound types depend heavily on the size of those types they contain, and this function relies on get_item_size for that information. Finally, Arrays can contain one Primitive or Compound type, and are created by specifying this child type, Array dimensions, and the Array length. Parameters ---------- t : Type Type node representing C++ type shape_array : list, optional Dimensioned list of current type shape prefix : str, optional Used to name C++ variables throughout multiple levels of recursion depth : int, optional Recursive depth counter Returns ------- node : Block Cumulative collection of nodes necessary for specified item type opened_stack : list Cumulative collection of opened HDF5 types which must eventually be closed
Definition at line 1312 of file hdf5_back_gen.py.
hdf5_back_gen.get_prefix | ( | base_prefix, | |
parent_type, | |||
child_index ) |
Return the prefix of a C++ variable, appropriately formatted for depth. Parameters ---------- base_prefix : str Prefix of direct parent type. parent_type : Type Node of parent type. child_index : int Index relative to direct parent. Returns ------- str New prefix.
Definition at line 428 of file hdf5_back_gen.py.
hdf5_back_gen.get_setup | ( | t, | |
depth = 0, | |||
prefix = "", | |||
HDF5_type = "tb_type", | |||
child_index = 'j' ) |
HDF5 Query: Get nodes representing C++ setup. Primitive setups are called directly, while template types are handled recursively. Parameters ---------- t : Type C++ type, canonical form. depth : int, optional Depth relative to initial, depth 0 type. prefix : str, optional Current prefix, determined by parent type. HDF5_type : str hid_t type used to access HDF5 methods child_index : str or int Index into parent type, None if only child Returns ------- Block Nodes required for type t setup.
Definition at line 498 of file hdf5_back_gen.py.
hdf5_back_gen.get_teardown | ( | t | ) |
Definition at line 1087 of file hdf5_back_gen.py.
hdf5_back_gen.get_variable | ( | name, | |
depth = 0, | |||
prefix = "" ) |
Return a C++ variable, appropriately formatted for depth. Parameters ---------- name : str Base variable name. depth : int, optional Depth of variable in relation to depth 0 type. prefix : str, optional New prefix to add, based on direct parent type. Returns ------- str Variable name.
Definition at line 408 of file hdf5_back_gen.py.
hdf5_back_gen.get_variation_body | ( | t | ) |
HDF5 Create: Generate C++ if-statement body for a given type. Called in coordination with get_variation_cond. For a given C++ type, this function returns the necessary C++ statements to create the HDF5 version of that type. Parameters ---------- t : Type C++ type for which to create an if-statement body. Returns ------- body : Block Node containing necessary C++ statements for HDF5 creation.
Definition at line 1236 of file hdf5_back_gen.py.
hdf5_back_gen.get_variation_cond | ( | t | ) |
HDF5 Create: Generate C++ if-statement condition for a given type. These if-statements are always a string of boolean expressions of the form 'shape[n]<1' or 'shape[n]>=1', where n is an index into the C++ shape array. A shape index less than one (<1) denotes a variable length type, whereas an index greater than one (>=1) denotes fixed length type. These boolean expressions are joined by '&&' operators. For instance, a type of VL_MAP_VL_STRING_VL_STRING would receive the condition 'shape[0]<1 && shape[1]<1 && shape[2]<1'. Parameters ---------- t : Type C++ type for the boolean condition. Returns ------- current_bool : BinOp Node representing the boolean condition.
Definition at line 1157 of file hdf5_back_gen.py.
hdf5_back_gen.get_write_body | ( | t, | |
shape_array, | |||
depth = 0, | |||
prefix = "", | |||
variable = "a", | |||
offset = "buf", | |||
pointer = False ) |
HDF5 Write: Generates the body of the WriteToBuf function definition. Parameters ---------- t : Type Node representing the desired C++ type shape_array : list Dimensioned list of shape array indicies corresponding to types in t.canon depth : int, optional Recursive depth prefix : str, optional Used for recursive variable naming convention variable : str, optional Name of the type's C++ variable offset : str, optional Location of current memory offset pointer : bool, optional Denotes if current variable is a pointer, and whether member access should be performed via arrow or dot notation Returns ------- result : Block Nodes required for body of the function definition
Definition at line 2158 of file hdf5_back_gen.py.
hdf5_back_gen.get_write_setup | ( | t, | |
shape_array, | |||
depth = 0, | |||
prefix = "" ) |
HDF5 Write: Creates setup variables (lengths, sizes) for function body. This function recursively declares the sizes, lengths and other necessary variables for the parent and children types. Called by get_write_body. Parameters ---------- t : Type shape_array : list depth : int prefix : str Returns ------- setup : Block
Definition at line 1831 of file hdf5_back_gen.py.
hdf5_back_gen.hdf5_array_create | ( | item_variable, | |
rank = 1, | |||
dims = "&shape0" ) |
Node representation of the C++ H5Tarray_create2 method. Parameters ---------- item_variable : str Variable name of HDF5 array item. rank : int, optional Number of HDF5 array dimensions. dims : str, optional Variable (by reference) of shape array belonging to HDF5 array Returns ------- node : FuncCall Node of H5Tarray_create2 function call.
Definition at line 1549 of file hdf5_back_gen.py.
hdf5_back_gen.hdf5_create_compound | ( | sizes | ) |
Node representation of the C++ HDF5 compound type creation function. Parameters ---------- sizes : list List of type sizes, all must be str type. Returns ------- node : FuncCall H5Tcreate function call node.
Definition at line 1571 of file hdf5_back_gen.py.
hdf5_back_gen.hdf5_insert | ( | container_type, | |
compound_var, | |||
types_sizes_dict ) |
Node representation of the C++ H5Tinsert function. This function is used to identify partitions within an already established HDF5 Compound type. That is, we specify which inner types are located at what memory location within the Compound type. Parameters ---------- container_type : str Should be a key in the template_args dict compound_var : str C++ variable to which the function should refer types_sizes_dict : dict Dictionary of C++ type variables mapped to their size in memory Returns ------- node : Block Cumulative nodes for H5Tinsert function
Definition at line 1588 of file hdf5_back_gen.py.
hdf5_back_gen.indent | ( | text, | |
prefix, | |||
predicate = None ) |
This function copied from textwrap library version 3.3. Adds 'prefix' to the beginning of selected lines in 'text'. If 'predicate' is provided, 'prefix' will only be added to the lines where 'predicate(line)' is True. If 'predicate' is not provided, it will default to adding 'prefix' to all non-empty lines that do not consist solely of whitespace characters.
Definition at line 1090 of file hdf5_back_gen.py.
hdf5_back_gen.is_all_vl | ( | t | ) |
HDF5 Write: Determines if type is entirely VL. A type is entirely VL if the top level type is VL, as well as all children that have the potential to be VL. This means that VL_VECTOR_INT will return True here, but VL_VECTOR_STRING will return False. Parameters ---------- t : Type Returns ------- result : bool True if type is entirely VL, else False
Definition at line 1977 of file hdf5_back_gen.py.
hdf5_back_gen.list_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ list<non-primitive> types.
Definition at line 975 of file hdf5_back_gen.py.
hdf5_back_gen.list_dependencies | ( | canon | ) |
Return a list of a type's dependencies, each in canonical form. Parameters ---------- canon : tuple or str the canonical form of the type Returns ------- list or str list of dependencies or str if base type is primitive Examples: >>> list_dep("('PAIR', 'INT', 'VL_STRING')") [('PAIR', 'INT', 'VL_STRING'), 'INT', 'VL_STRING']
Definition at line 385 of file hdf5_back_gen.py.
hdf5_back_gen.list_primitive_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ list<primitive> types.
Definition at line 950 of file hdf5_back_gen.py.
hdf5_back_gen.main | ( | ) |
Definition at line 2845 of file hdf5_back_gen.py.
hdf5_back_gen.main_buf_to_val | ( | ) |
HDF5 BUF_TO_VAL: Generates the VLBufToVal function code.
Definition at line 2740 of file hdf5_back_gen.py.
hdf5_back_gen.main_create | ( | ) |
HDF5 Create: Generate CreateTable if-statements.
Definition at line 1659 of file hdf5_back_gen.py.
hdf5_back_gen.main_fill_buf | ( | ) |
HDF5 FILL_BUF: Generates the FillBuf function code.
Definition at line 1732 of file hdf5_back_gen.py.
hdf5_back_gen.main_query | ( | ) |
HDF5 Query: Generate Query case statement code.
Definition at line 1625 of file hdf5_back_gen.py.
hdf5_back_gen.main_val_to_buf | ( | ) |
HDF5 VAL_TO_BUF: Generates VLValToBuf function.
Definition at line 2553 of file hdf5_back_gen.py.
hdf5_back_gen.main_val_to_buf_h | ( | ) |
HDF5 VAL_TO_BUF_H: Generates header declarations for VLValToBuf function.
Definition at line 2572 of file hdf5_back_gen.py.
hdf5_back_gen.main_vl_dataset | ( | ) |
HDF5 VL_DATASET: Generate the VLDataset function code.
Definition at line 1708 of file hdf5_back_gen.py.
hdf5_back_gen.main_write | ( | ) |
HDF5 Write: Generate the WriteToBuf templated function definitions.
Definition at line 2323 of file hdf5_back_gen.py.
hdf5_back_gen.map_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents the body for C++ map type.
Definition at line 728 of file hdf5_back_gen.py.
hdf5_back_gen.memcpy | ( | dest, | |
src, | |||
size ) |
HDF5 Write: Node representation of memcpy function.
Definition at line 1800 of file hdf5_back_gen.py.
hdf5_back_gen.memset | ( | dest, | |
src, | |||
size ) |
HDF5 Write: Node representation of memset function.
Definition at line 1806 of file hdf5_back_gen.py.
hdf5_back_gen.no_vl | ( | t | ) |
Definition at line 1112 of file hdf5_back_gen.py.
hdf5_back_gen.normal_close | ( | t | ) |
Represents the generic close to an hdf5 type code block.
Definition at line 1066 of file hdf5_back_gen.py.
hdf5_back_gen.pad_children | ( | t, | |
variable, | |||
fixed_var = None, | |||
depth = 0, | |||
prefix = "", | |||
called_depth = 0 ) |
HDF5 Write: Pads FL children of VL parent types. This function is used on top-level VL container types which contain 1 or more FL child types (i.e. VL_VECTOR_STRING). These children should be padded to their max length if they do not already meet it. This is done recursively. Parameters ---------- t : Type variable : str fixed_var : None or str, optional depth : int, optional prefix : str, optional called_depth : int, optional Records the origin depth to determine when we're at relative depth=0 Returns ------- result : Block Nodes required for padding
Definition at line 2014 of file hdf5_back_gen.py.
hdf5_back_gen.pair_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body for C++ pair type.
Definition at line 765 of file hdf5_back_gen.py.
hdf5_back_gen.primitive_setup | ( | t, | |
depth = 0, | |||
prefix = "" ) |
HDF5 Query: Represents necessary setup steps for C++ primitives.
Definition at line 470 of file hdf5_back_gen.py.
hdf5_back_gen.print_statement | ( | t, | |
identifier ) |
Generate C++ print statement for debugging generated code.
Definition at line 1230 of file hdf5_back_gen.py.
hdf5_back_gen.reinterpret_cast | ( | t, | |
offset, | |||
deref = False ) |
Representation of C++ reinterpret_cast function. Parameters ---------- t : Type C++ type to cast as. offset : str Memory location of the data to cast. deref : bool, optional Should the function be dereferenced? (This returns the newly casted data, rather than a pointer) Returns ------- node : FuncCall The final function call.
Definition at line 2615 of file hdf5_back_gen.py.
hdf5_back_gen.reinterpret_cast_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents a body using the reinterpret_cast method. This includes int, double, float, etc.
Definition at line 651 of file hdf5_back_gen.py.
hdf5_back_gen.resolve_unicode | ( | item | ) |
Translate unicode types into string types, if necessary. This function exists to support Python 2.7. Parameters ---------- item : int or str or list The list of items, or item to potentially encode. Returns ------- int or str or list The same type as was passed to the function, encoded if necessary
Definition at line 340 of file hdf5_back_gen.py.
hdf5_back_gen.set_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ set<non-primitive> types.
Definition at line 896 of file hdf5_back_gen.py.
hdf5_back_gen.set_primitive_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ set<primitive> types.
Definition at line 870 of file hdf5_back_gen.py.
hdf5_back_gen.set_string_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ set<std::string> types.
Definition at line 923 of file hdf5_back_gen.py.
hdf5_back_gen.setup | ( | ) |
Definition at line 2761 of file hdf5_back_gen.py.
hdf5_back_gen.string | ( | s | ) |
Definition at line 1705 of file hdf5_back_gen.py.
hdf5_back_gen.string_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset", | |||
variable = None ) |
HDF5 Query: Represents body for the C++ String primitive.
Definition at line 665 of file hdf5_back_gen.py.
hdf5_back_gen.string_setup | ( | depth = 0, | |
prefix = "" ) |
HDF5 Query: Represents necessary setup steps for C++ String.
Definition at line 475 of file hdf5_back_gen.py.
hdf5_back_gen.to_buf_body | ( | t, | |
vl_list, | |||
depth = 0, | |||
prefix = "", | |||
variable = None, | |||
offset = "reinterpret_cast<char*>(buf.p)" ) |
HDF5 VAL_TO_BUF: Generates the body of the VLValToBuf function. The VLValToBuf function creates a new VL buffer from an original C++ data type. All potentially variable length types are passed to VLWrite and a SHA1 hash is added to the buffer in place of the actual type data. Primitives and remaining container types are written as-is to the buffer. Parameters ---------- t : Type Node representing current C++ type vl_list : list Potentially dimensioned list of 1's and 0's, corresponding to each child type and whether it is variable length or not, respectively. depth : int, optional Current recursive depth, used for naming variables. prefix : str, optional Current variable prefix, used to ensure unique variable names. variable : str, optional Current container variable name. offset : str or None, optional Current offset into data. Returns ------- block : Block Nodes representing the body.
Definition at line 2448 of file hdf5_back_gen.py.
hdf5_back_gen.to_from_buf_setup | ( | t, | |
depth = 0, | |||
prefix = "", | |||
spec = None ) |
HDF5 VAL_TO_BUF and BUF_TO_VAL: Generate setup for both functions. This setup is to be called one time for each type. It returns nodes for initial buffer/type declaration, item sizes, and a potentially dimensioned list describing which child types within the initial container t are VL. These are denoted by a 1, where fixed-length primitive types are denoted by a 0. Fixed-length containers (i.e. pairs) are denoted by a nested list of 1's and 0's. Parameters ---------- t : Type C++ type node. depth : int, optional Recursive depth counter, used for variable names. prefix : str, optional Current prefix, used for variable name uniqueness. spec : str or None, optional Determines whether extra nodes are added for VAL_TO_BUF or BUF_TO_VAL Returns ------- node : Block All setup nodes. vl_list : list Potentially dimensioned list cooresponding to child types, with values of 0 and 1 representing FL and VL types, respectively.
Definition at line 2347 of file hdf5_back_gen.py.
hdf5_back_gen.to_val_body | ( | t, | |
vl_list, | |||
depth = 0, | |||
prefix = '', | |||
variable = 'x0', | |||
offset = None ) |
Generates the body of the VLBufToVal function. The VLBufToVal function is responsible for reading the bytes of a VL buffer back into a C++ value. Importantly, we assume that all types which have the capability of being VL *are* VL. When we encounter one of these types, we call VLRead, passing in the respective SHA1 hash value. Otherwise, we read in the fixed length number of bytes associated with the type. Parameters ---------- t : Type Node representing current C++ type vl_list : list Potentially dimensioned list of 1's and 0's, corresponding to each child type and whether it is variable length or not, respectively. depth : int, optional Current recursive depth, used for naming variables. prefix : str, optional Current variable prefix, used to ensure unique variable names. variable : str, optional Current container variable name. offset : str or None, optional Current offset into buffer. Returns ------- block : Block Nodes representing the body.
Definition at line 2641 of file hdf5_back_gen.py.
hdf5_back_gen.typeid | ( | t | ) |
Definition at line 1108 of file hdf5_back_gen.py.
hdf5_back_gen.uuid_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents the body for the boost::uuid primitive.
Definition at line 706 of file hdf5_back_gen.py.
hdf5_back_gen.vec_string_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ Vector<std::string> types.
Definition at line 843 of file hdf5_back_gen.py.
hdf5_back_gen.vector_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ Vector<non-primitive> types.
Definition at line 812 of file hdf5_back_gen.py.
hdf5_back_gen.vector_primitive_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents body of C++ Vector<primitive> types.
Definition at line 793 of file hdf5_back_gen.py.
hdf5_back_gen.VL_ADD_BLOCK | ( | t, | |
item_var ) |
Definition at line 1216 of file hdf5_back_gen.py.
hdf5_back_gen.vl_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset" ) |
HDF5 Query: Represents the body for all C++ VL types.
Definition at line 718 of file hdf5_back_gen.py.
hdf5_back_gen.vl_read | ( | t, | |
offset ) |
Representation of C++ VLRead function. Parameters ---------- t : Type C++ type node. offset : str Memory location of SHA1 hash. Returns ------- node : FuncCall The final function call.
Definition at line 2594 of file hdf5_back_gen.py.
hdf5_back_gen.vl_string_body | ( | t, | |
depth = 0, | |||
prefix = "", | |||
base_offset = "buf+offset", | |||
variable = None ) |
HDF5 Query: Represents the body for the VL_String primitive.
Definition at line 692 of file hdf5_back_gen.py.
hdf5_back_gen.vl_string_setup | ( | depth = 0, | |
prefix = "" ) |
HDF5 Query: Represents necessary setup steps for C++ VL_String.
Definition at line 483 of file hdf5_back_gen.py.
hdf5_back_gen.vl_write | ( | t, | |
variable, | |||
depth = 0, | |||
prefix = "", | |||
pointer = False ) |
HDF5 Write: Return code previously found in VLWrite.
Definition at line 1771 of file hdf5_back_gen.py.
hdf5_back_gen.write_body_primitive | ( | t, | |
depth = 0, | |||
prefix = "", | |||
variable = None, | |||
offset = "buf", | |||
pointer = False ) |
HDF5 Write: Specialization of the write_body function for primitives
Definition at line 1952 of file hdf5_back_gen.py.
hdf5_back_gen.write_body_string | ( | t, | |
depth = 0, | |||
prefix = "", | |||
variable = None, | |||
offset = "buf", | |||
pointer = False ) |
HDF5 Write: Specialization of the write_body function for STRING type
Definition at line 1919 of file hdf5_back_gen.py.
hdf5_back_gen.write_body_uuid | ( | t, | |
depth = 0, | |||
prefix = "", | |||
variable = None, | |||
offset = "buf", | |||
pointer = False ) |
HDF5 Write: Specialization of the write_body function for UUID type
Definition at line 1939 of file hdf5_back_gen.py.
|
protected |
Definition at line 121 of file hdf5_back_gen.py.
dict hdf5_back_gen.BODIES |
Definition at line 998 of file hdf5_back_gen.py.
dict hdf5_back_gen.CANON_TO_DB = {} |
Definition at line 32 of file hdf5_back_gen.py.
dict hdf5_back_gen.CANON_TO_NODE = {} |
Definition at line 29 of file hdf5_back_gen.py.
list hdf5_back_gen.CANON_TYPES = [] |
Definition at line 30 of file hdf5_back_gen.py.
dict hdf5_back_gen.CONTAINER_INSERT_STRINGS |
Definition at line 1971 of file hdf5_back_gen.py.
dict hdf5_back_gen.DB_TO_CPP = {} |
Definition at line 31 of file hdf5_back_gen.py.
dict hdf5_back_gen.DB_TO_VL = {} |
Definition at line 33 of file hdf5_back_gen.py.
list hdf5_back_gen.DEBUG_TYPES = ["VECTOR_STRING"] |
Definition at line 1657 of file hdf5_back_gen.py.
dict hdf5_back_gen.HDF5_PRIMITIVES |
Definition at line 1291 of file hdf5_back_gen.py.
str hdf5_back_gen.INDENT = ' ' |
Definition at line 34 of file hdf5_back_gen.py.
hdf5_back_gen.io_error |
Definition at line 1639 of file hdf5_back_gen.py.
isinstance hdf5_back_gen.is_primitive = lambda t(t.canon, str) |
Definition at line 41 of file hdf5_back_gen.py.
dict hdf5_back_gen.MAIN_DISPATCH = {} |
Definition at line 27 of file hdf5_back_gen.py.
list hdf5_back_gen.NOT_VL = [] |
Definition at line 36 of file hdf5_back_gen.py.
hdf5_back_gen.ORIGIN_DICT = OrderedDict() |
Definition at line 38 of file hdf5_back_gen.py.
dict hdf5_back_gen.ORIGIN_TO_VL = {} |
Definition at line 39 of file hdf5_back_gen.py.
dict hdf5_back_gen.PRIMITIVE_SIZES |
Definition at line 1299 of file hdf5_back_gen.py.
hdf5_back_gen.raw_blob |
Definition at line 1650 of file hdf5_back_gen.py.
hdf5_back_gen.raw_string |
Definition at line 1643 of file hdf5_back_gen.py.
dict hdf5_back_gen.RAW_TYPES |
Definition at line 1654 of file hdf5_back_gen.py.
list hdf5_back_gen.TEARDOWN_STACK = [] |
Definition at line 1063 of file hdf5_back_gen.py.
dict hdf5_back_gen.template_args |
Definition at line 490 of file hdf5_back_gen.py.
list hdf5_back_gen.variable_length_types = ["MAP", "LIST", "SET", "VECTOR"] |
Definition at line 495 of file hdf5_back_gen.py.
hdf5_back_gen.VARIATION_DICT = OrderedDict() |
Definition at line 37 of file hdf5_back_gen.py.
list hdf5_back_gen.VARS = [] |
Definition at line 1064 of file hdf5_back_gen.py.
dict hdf5_back_gen.VL_SPECIAL_TYPES |
Definition at line 1768 of file hdf5_back_gen.py.
dict hdf5_back_gen.VL_TO_FL_CONTAINERS |
Definition at line 1307 of file hdf5_back_gen.py.
str hdf5_back_gen.vl_write_blob |
Definition at line 1758 of file hdf5_back_gen.py.
str hdf5_back_gen.vl_write_vl_string |
Definition at line 1748 of file hdf5_back_gen.py.
dict hdf5_back_gen.WRITE_BODY_PRIMITIVES |
Definition at line 1968 of file hdf5_back_gen.py.