C贸digo fuente para qiskit.qobj.common

# This code is part of Qiskit.
# (C) Copyright IBM 2020.
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

"""Module providing definitions of common Qobj classes."""
from types import SimpleNamespace

class QobjDictField(SimpleNamespace):
    """A class used to represent a dictionary field in Qobj

    Exists as a backwards compatibility shim around a dictionary for Qobjs
    previously constructed using marshmallow.

    def __init__(self, **kwargs):
        """Instantiate a new Qobj dict field object.

            kwargs: arbitrary keyword arguments that can be accessed as
                attributes of the object.

    def to_dict(self):
        """Return a dictionary format representation of the OpenQASM 2 Qobj.

            dict: The dictionary form of the QobjHeader.
        return self.__dict__

    def from_dict(cls, data):
        """Create a new QobjHeader object from a dictionary.

            data (dict): A dictionary representing the QobjHeader to create. It
                will be in the same format as output by :func:`to_dict`.

            QobjDictFieldr: The QobjDictField from the input dictionary.

        return cls(**data)

    def __eq__(self, other):
        if isinstance(other, self.__class__):
            if self.__dict__ == other.__dict__:
                return True
        return False

[documentos]class QobjHeader(QobjDictField): """A class used to represent a dictionary header in Qobj objects.""" pass
[documentos]class QobjExperimentHeader(QobjHeader): """A class representing a header dictionary for a Qobj Experiment.""" pass