class_docstr: 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.
  
  Attributes:
      type_id: Unique identifier for this DatasetAttribute class. Must be declared
          in subclasses.
class_docstr_tok: ["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",".","Attributes",":","type_id",":","Unique","identifier","for","this","DatasetAttribute","class",".","Must","be","declared","in","subclasses","."]
docstr: Initialize a new dataset attribute, or load from an existing
  hdf5 object.
  
  This constructor can be called two ways: value initialization
  or bind initialization.
  
  Value initialization creates the attribute with specified ``value`` in
  a new HDF5 object, with optional ``info`` attached. The attribute can
  be created in an existing HDF5 group by passing the ``parent_and_key``
  argument.
  
  Bind initialization loads an attribute that was previously persisted
  in HDF5 object ``bind``.
  
  Note that if ``bind`` is provided, all other arguments will be ignored.
  
  Args:
      value: Value to initialize attribute to
      info: Metadata to attach to attribute
      bind: HDF5 object from which existing attribute will be loaded
      parent_and_key: A 2-tuple specifying the HDF5 group that will contain
          this attribute, and its key.
code: def __init__(
      self,
      value: Union[InitValueType, Literal[UNSET]] = UNSET,
      info: Optional[AttributeInfo] = None,
      *,
      bind: Optional[HDF5] = None,
      parent_and_key: Optional[Tuple[HDF5Group, str]] = None,
  ) -> None:
      """
      Initialize a new dataset attribute, or load from an existing
      hdf5 object.
  
      This constructor can be called two ways: value initialization
      or bind initialization.
  
      Value initialization creates the attribute with specified ``value`` in
      a new HDF5 object, with optional ``info`` attached. The attribute can
      be created in an existing HDF5 group by passing the ``parent_and_key``
      argument.
  
      Bind initialization loads an attribute that was previously persisted
      in HDF5 object ``bind``.
  
      Note that if ``bind`` is provided, all other arguments will be ignored.
  
      Args:
          value: Value to initialize attribute to
          info: Metadata to attach to attribute
          bind: HDF5 object from which existing attribute will be loaded
          parent_and_key: A 2-tuple specifying the HDF5 group that will contain
              this attribute, and its key.
      """
      if bind is not None:
          self._bind_init(bind)
      else:
          self._value_init(value, info, parent_and_key)
  
imports: import typing
  import warnings
  from abc import ABC, abstractmethod
  from collections.abc import Mapping, MutableMapping, Sequence
  from functools import lru_cache
  from numbers import Number
  from types import MappingProxyType
  from typing import Any, ClassVar, Generic, Iterator, Literal, Optional, Tuple, Type, TypeVar, Union, overload
  from pennylane.data.base import hdf5
  from pennylane.data.base.hdf5 import HDF5, HDF5Any, HDF5Group
  from pennylane.data.base.typing_util import UNSET, get_type, get_type_str
label_desc: Use image node_id 5 to create a new DatasetAttribute object from inherited base classes: ABC, Generic with example: obj = DatasetAttribute(value, info)