hpcflow.sdk.core.json_like.ChildObjectSpec#

class hpcflow.sdk.core.json_like.ChildObjectSpec(name, class_name=None, class_obj=None, json_like_name=None, is_multiple=False, dict_key_attr=None, dict_val_attr=None, parent_ref=None, is_single_attribute=False, is_enum=False, is_dict_values=False, is_dict_values_ensure_list=False, shared_data_name=None, shared_data_primary_key=None)#

Bases: object

Used to describe what the child structure of an class is so that the generic deserializer can build the structure.

Methods

Attributes

class_name

The name of the class (or class of members of a list) used to deserialize the attribute.

class_obj

The class (or class of members of a list) used to deserialize the attribute.

dict_key_attr

If set, the name of an attribute of the object to use as a dictionary key.

dict_val_attr

If set, the name of an attribute of the object to use as a dictionary value.

is_dict_values

If true, the child object is a dict, whose values are of the specified class.

is_dict_values_ensure_list

If true, values that are not lists are cast to lists and multiple child objects are instantiated for each dict value.

is_enum

If true, the object is an enum member and should use special serialization rules.

is_multiple

If true, the attribute is really a list of instances, or a dictionary if dict_key_attr is set.

is_single_attribute

If true, enables special handling where there can be only one child descriptor for a containing class.

json_like_name

The name of the key used in the JSON document, if different from the attribute name.

parent_ref

If set, the attribute of the child object that contains a reference to its parent.

shared_data_name

What key to look values up under in the shared data cache.

shared_data_primary_key

What attribute provides the value of the key into the shared data cache.

name

The name of the attribute.

Parameters:
class_name: str | None = None#

The name of the class (or class of members of a list) used to deserialize the attribute.

class_obj: type[enum.Enum | hpcflow.sdk.core.json_like.BaseJSONLike] | None = None#

The class (or class of members of a list) used to deserialize the attribute.

dict_key_attr: str | None = None#

If set, the name of an attribute of the object to use as a dictionary key. Requires that is_multiple be set as well.

dict_val_attr: str | None = None#

If set, the name of an attribute of the object to use as a dictionary value. If not set but dict_key_attr is set, the whole object is the value. Requires that dict_key_attr be set as well.

is_dict_values: bool = False#

If true, the child object is a dict, whose values are of the specified class. The dict structure will remain.

is_dict_values_ensure_list: bool = False#

If true, values that are not lists are cast to lists and multiple child objects are instantiated for each dict value.

is_enum: bool = False#

If true, the object is an enum member and should use special serialization rules.

is_multiple: bool = False#

If true, the attribute is really a list of instances, or a dictionary if dict_key_attr is set.

is_single_attribute: bool = False#

If true, enables special handling where there can be only one child descriptor for a containing class.

json_like_name: str | None = None#

The name of the key used in the JSON document, if different from the attribute name.

name: str#

The name of the attribute.

parent_ref: str | None = None#

If set, the attribute of the child object that contains a reference to its parent.

shared_data_name: str | None = None#

What key to look values up under in the shared data cache. If unspecified, the shared data cache is ignored.

shared_data_primary_key: str | None = None#

What attribute provides the value of the key into the shared data cache. If unspecified, a hash of the object dictionary is used. Ignored if shared_data_name is unspecified.