qml.data.DatasetAttribute

class DatasetAttribute(value=<UnsetType.UNSET: 'UNSET'>, info=None, *, bind=None, parent_and_key=None)[source]

Bases: abc.ABC, Generic[pennylane.data.base.hdf5.HDF5, pennylane.data.base.attribute.ValueType, pennylane.data.base.attribute.InitValueType]

The DatasetAttribute class provides an interface for converting Python objects to and from a HDF5 array or Group. It uses the registry pattern to maintain a mapping of type_id to DatasetAttribute, and Python types to compatible AttributeTypes.

type_id

Unique identifier for this DatasetAttribute class. Must be declared in subclasses.

Type

ClassVar[str]

bind

Returns the HDF5 object that contains this attribute’s data.

info

Returns the AttributeInfo for this attribute.

registry

Maps type_ids to their DatasetAttribute classes.

type_consumer_registry

Maps types to their default DatasetAttribute

bind

Returns the HDF5 object that contains this attribute’s data.

info

Returns the AttributeInfo for this attribute.

registry: Mapping[str, Type[pennylane.data.base.attribute.DatasetAttribute]] = mappingproxy({'dataset': <class 'pennylane.data.base.dataset._DatasetAttributeType'>, 'array': <class 'pennylane.data.attributes.array.DatasetArray'>, 'dict': <class 'pennylane.data.attributes.dictionary.DatasetDict'>, 'json': <class 'pennylane.data.attributes.json.DatasetJSON'>, 'list': <class 'pennylane.data.attributes.list.DatasetList'>, 'molecule': <class 'pennylane.data.attributes.molecule.DatasetMolecule'>, 'none': <class 'pennylane.data.attributes.none.DatasetNone'>, 'operator': <class 'pennylane.data.attributes.operator.operator.DatasetOperator'>, 'scalar': <class 'pennylane.data.attributes.scalar.DatasetScalar'>, 'sparse_array': <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, 'string': <class 'pennylane.data.attributes.string.DatasetString'>, 'tuple': <class 'pennylane.data.attributes.tuple.DatasetTuple'>, 'pytree': <class 'pennylane.data.attributes.pytree.DatasetPyTree'>})

Maps type_ids to their DatasetAttribute classes.

type_consumer_registry: Mapping[type, Type[pennylane.data.base.attribute.DatasetAttribute]] = mappingproxy({<class 'pennylane.qchem.molecule.Molecule'>: <class 'pennylane.data.attributes.molecule.DatasetMolecule'>, <class 'NoneType'>: <class 'pennylane.data.attributes.none.DatasetNone'>, <class 'scipy.sparse._bsr.bsr_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._coo.coo_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._csc.csc_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._csr.csr_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._dia.dia_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._dok.dok_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._lil.lil_array'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._csc.csc_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._csr.csr_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._bsr.bsr_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._coo.coo_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._dia.dia_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._dok.dok_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'scipy.sparse._lil.lil_matrix'>: <class 'pennylane.data.attributes.sparse_array.DatasetSparseArray'>, <class 'str'>: <class 'pennylane.data.attributes.string.DatasetString'>, <class 'tuple'>: <class 'pennylane.data.attributes.tuple.DatasetTuple'>})

Maps types to their default DatasetAttribute

consumes_types()

Returns an iterable of types for which this should be the default codec.

copy_value()

Deserializes the mapped value from bind, and also perform a ‘deep-copy’ of any nested values contained in bind.

default_value()

Returns a valid default value for this type, or UNSET if this type must be initialized with a value.

get_value()

Deserializes the mapped value from bind.

hdf5_to_value(bind)

Parses bind into Python object.

py_type(value_type)

Determines the py_type of an attribute during value initialization, if it was not provided in the info argument.

value_to_hdf5(bind_parent, key, value)

Converts value into a HDF5 Array or Group under bind_parent[key].

classmethod consumes_types()[source]

Returns an iterable of types for which this should be the default codec. If a value of one of these types is assigned to a Dataset without specifying a type_id, this type will be used.

copy_value()[source]

Deserializes the mapped value from bind, and also perform a ‘deep-copy’ of any nested values contained in bind.

classmethod default_value()[source]

Returns a valid default value for this type, or UNSET if this type must be initialized with a value.

get_value()[source]

Deserializes the mapped value from bind.

abstract hdf5_to_value(bind)[source]

Parses bind into Python object.

classmethod py_type(value_type)[source]

Determines the py_type of an attribute during value initialization, if it was not provided in the info argument. This method returns f"{value_type.__module__}.{value_type.__name__}.

abstract value_to_hdf5(bind_parent, key, value)[source]

Converts value into a HDF5 Array or Group under bind_parent[key].