pygsti.baseobjs.errorgenbasis.CompleteElementaryErrorgenBasis

pygsti.baseobjs.errorgenbasis.CompleteElementaryErrorgenBasis#

class CompleteElementaryErrorgenBasis(basis_1q, state_space, elementary_errorgen_types=('H', 'S', 'C', 'A'), max_weights=None, sslbl_overlap=None, default_label_type='global')#

Bases: ElementaryErrorgenBasis

This basis object contains the information necessary for building, storing and accessing a set of explicitly represented basis elements for a basis of elementary error generators spanned by the elementary error generators of given type(s) (e.g. “Hamiltonian” and/or “other”).

Parameters:
  • basis_1q (Basis or str) – A Basis object, or str which can be cast to one corresponding to the single-qubit basis elements which comprise the basis element labels for the values of the ElementaryErrorgenLabels in labels.

  • state_space (StateSpace) – An object describing the structure of the entire state space upon which the elements of this error generator basis act.

  • elementary_errorgen_types (tuple of str, optional (default ('H', 'S', 'C', 'A'))) – Tuple of strings designating elementary error generator types to include in this basis.

  • max_weights (dict, optional (default None)) – A dictionary containing the maximum weight for each of the different error generator types to include in the constructed basis. If None then there is no maximum weight. If specified, any error generator types without entries will have no maximum weight associated with them.

  • sslbl_overlap (list of sslbls, optional (default None)) – A list of state space labels corresponding to qudits the support of an error generator must overlap with (i.e. the support must include at least one of these qudits) in order to be included in this basis.

  • default_label_type (str, optional (default 'global')) – String specifying the type of error generator label to use by default. i.e. the type of label returned by labels. This also impacts the construction of the error generator matrices. Supported options are ‘global’ or ‘local’, which correspond to GlobalElementaryErrorgenLabel and LocalElementaryErrorgenLabel, respectively.

Methods

__init__(basis_1q, state_space[, ...])

add_mongodb_write_ops(write_ops, mongodb[, ...])

Accumulate write and update operations for writing this object to a MongoDB database.

create_subbasis(sslbl_overlap[, ...])

Create a sub-basis of this basis by including only the elements that overlap the given support (state space labels)

difference(other_basis)

Create a new ExplicitElementaryErrorgenBasis corresponding to the difference of this basis with another.

dump(f[, format])

Serializes and writes this object to a given output stream.

dumps([format])

Serializes this object and returns it as a string.

from_mongodb(mongodb, doc_id, **kwargs)

Create and initialize an object from a MongoDB instance.

from_mongodb_doc(mongodb, collection_name, ...)

Create and initialize an object from a MongoDB instance and pre-loaded primary document.

from_nice_serialization(state)

Create and initialize an object from a "nice" serialization.

global_labels()

Return a list of labels for this basis as GlobalElementaryErrorgenLabel objects.

intersection(other_basis)

Create a new ExplicitElementaryErrorgenBasis corresponding to the intersection of this basis with another.

label_index(label[, ok_if_missing, ...])

Return the index of the specified elementary error generator label in this basis' labels list.

label_indices(labels[, ok_if_missing])

Return a list of indices into this basis's label list for the specified list of ElementaryErrorgenLabels.

load(f[, format])

Load an object of this type, or a subclass of this type, from an input stream.

loads(s[, format])

Load an object of this type, or a subclass of this type, from a string.

local_labels()

Return a list of labels for this basis as LocalElementaryErrorgenLabel objects.

read(path[, format])

Read an object of this type, or a subclass of this type, from a file.

remove_from_mongodb(mongodb, doc_id[, ...])

Remove the documents corresponding to an instance of this class from a MongoDB database.

remove_me_from_mongodb(mongodb[, session, ...])

sublabels(errorgen_type)

Return a tuple of labels within this basis for the specified error generator type (may be empty).

to_explicit_basis()

Creates a new ExplicitElementaryErrorgenBasis based on this Basis' elements.

to_nice_serialization()

Serialize this object in a way that adheres to "niceness" rules of common text file formats.

union(other_basis)

Create a new ExplicitElementaryErrorgenBasis corresponding to the union of this basis with another.

write(path, **format_kwargs)

Writes this object to a file.

write_to_mongodb(mongodb[, session, ...])

Write this object to a MongoDB database.

Attributes

collection_name

elemgen_dual_matrices

Returns a tuple of matrices, each corresponding to the of the matrix representation of the dual elementary error generators in this basis, returned in the same order as they appear in labels.

elemgen_matrices

Returns a tuple of matrices, each corresponding to the of the matrix representation of the elementary error generators in this basis, returned in the same order as they appear in labels.

elemgen_supports

Returns a tuple of tuples, each corresponding to the support of the elementary error generators in this basis, returned in the same order as they appear in labels.

elemgen_supports_and_dual_matrices

Returns a tuple of tuples, each containing a tuple of support and a dual matrix representation each corresponding to an elementary error generator in this basis, returned in the same order as they appear in labels.

elemgen_supports_and_matrices

Returns a tuple of tuples, each containing a tuple of support and a matrix representation each corresponding to an elementary error generator in this basis, returned in the same order as they appear in labels.

labels

Tuple of either GlobalElementaryErrorgenLabel or LocalElementaryErrorgenLabel objects for this basis, with which one determined by the default_label_type specified on basis construction.

add_mongodb_write_ops(write_ops, mongodb, overwrite_existing=False, **kwargs)#

Accumulate write and update operations for writing this object to a MongoDB database.

Similar to write_to_mongodb() but collects write operations instead of actually executing any write operations on the database. This function may be preferred to write_to_mongodb() when this object is being written as a part of a larger entity and executing write operations is saved until the end.

As in write_to_mongodb(), self.collection_name is the collection name and _id is either: 1) the ID used by a previous write or initial read-in, if one exists, OR 2) a new random bson.objectid.ObjectId

Parameters:
  • write_ops (WriteOpsByCollection) – An object that keeps track of pymongo write operations on a per-collection basis. This object accumulates write operations to be performed at some point in the future.

  • mongodb (pymongo.database.Database) – The MongoDB instance to write data to.

  • overwrite_existing (bool, optional) – Whether existing documents should be overwritten. The default of False causes a ValueError to be raised if a document with the given _id already exists and is different from what is being written.

  • **kwargs (dict) – Additional keyword arguments potentially used by subclass implementations. Any arguments allowed by a subclass’s _add_auxiliary_write_ops_and_update_doc method is allowed here.

Returns:

The identifier (_id value) of the main document that was written.

Return type:

bson.objectid.ObjectId

create_subbasis(sslbl_overlap, retain_max_weights=True)#

Create a sub-basis of this basis by including only the elements that overlap the given support (state space labels)

difference(other_basis)#

Create a new ExplicitElementaryErrorgenBasis corresponding to the difference of this basis with another. (i.e. A basis consisting of the labels contained in this basis but not the other)

Parameters:

other_basis (ElementaryErrorgenBasis) – ElementaryErrorgenBasis to construct the difference with.

dump(f, format='json', **format_kwargs)#

Serializes and writes this object to a given output stream.

Parameters:
  • f (file-like) – A writable output stream.

  • format ({'json', 'repr'}) – The format to write.

  • format_kwargs (dict, optional) – Additional arguments specific to the format being used. For example, the JSON format accepts indent as an argument because json.dump does.

Return type:

None

dumps(format='json', **format_kwargs)#

Serializes this object and returns it as a string.

Parameters:
  • format ({'json', 'repr'}) – The format to write.

  • format_kwargs (dict, optional) – Additional arguments specific to the format being used. For example, the JSON format accepts indent as an argument because json.dump does.

Return type:

str

classmethod from_mongodb(mongodb, doc_id, **kwargs)#

Create and initialize an object from a MongoDB instance.

Parameters:
  • mongodb (pymongo.database.Database) – The MongoDB instance to load from.

  • doc_id (bson.objecctid.ObjectId or dict) – The object ID or filter used to find a single object ID within the database. This document is loaded from the collection given by the collection_name attribute of this class.

  • **kwargs (dict) – Additional keyword arguments potentially used by subclass implementations. Any arguments allowed by a subclass’s _create_obj_from_doc_and_mongodb method is allowed here.

Return type:

object

classmethod from_mongodb_doc(mongodb, collection_name, doc, **kwargs)#

Create and initialize an object from a MongoDB instance and pre-loaded primary document.

Parameters:
  • mongodb (pymongo.database.Database) – The MongoDB instance to load from.

  • collection_name (str) – The collection name within mongodb that doc was loaded from. This is needed for the sole purpose of setting the created (returned) object’s database “coordinates”.

  • doc (dict) – The already-retrieved main document for the object being loaded. This takes the place of giving an identifier for this object.

  • **kwargs (dict) – Additional keyword arguments potentially used by subclass implementations. Any arguments allowed by a subclass’s _create_obj_from_doc_and_mongodb method is allowed here.

Return type:

object

classmethod from_nice_serialization(state)#

Create and initialize an object from a “nice” serialization.

A “nice” serialization here means one created by a prior call to to_nice_serialization using this class or a subclass of it. Nice serializations adhere to additional rules (e.g. that dictionary keys must be strings) that make them amenable to common file formats (e.g. JSON).

The state argument is typically a dictionary containing ‘module’ and ‘state’ keys specifying the type of object that should be created. This type must be this class or a subclass of it.

Parameters:

state (object) – An object, usually a dictionary, representing the object to de-serialize.

Return type:

object

global_labels()#

Return a list of labels for this basis as GlobalElementaryErrorgenLabel objects.

intersection(other_basis)#

Create a new ExplicitElementaryErrorgenBasis corresponding to the intersection of this basis with another.

Parameters:

other_basis (ElementaryErrorgenBasis) – ElementaryErrorgenBasis to construct the intersection with.

label_index(label, ok_if_missing=False, identity_label='I')#

Return the index of the specified elementary error generator label in this basis’ labels list.

Parameters:
  • label (ElementaryErrorgenLabel) – Elementary error generator label to return index for.

  • ok_if_missing (bool) – If True, then returns None instead of an integer when the given label is not present.

  • identity_label (str, optional (default 'I')) – An optional string specifying the label used to denote the identity in basis element labels.

label_indices(labels, ok_if_missing=False)#

Return a list of indices into this basis’s label list for the specified list of ElementaryErrorgenLabels.

Parameters:
  • labels (list of ElementaryErrorgenLabel) – A list of elementary error generator labels to extract the indices of.

  • ok_if_missing (bool) – If True, then returns None instead of an integer when the given label is not present

classmethod load(f, format='json')#

Load an object of this type, or a subclass of this type, from an input stream.

Parameters:
  • f (file-like) – An open input stream to read from.

  • format ({'json'}) – The format of the input stream data.

Return type:

NicelySerializable

classmethod loads(s, format='json')#

Load an object of this type, or a subclass of this type, from a string.

Parameters:
  • s (str) – The serialized object.

  • format ({'json'}) – The format of the string data.

Return type:

NicelySerializable

local_labels()#

Return a list of labels for this basis as LocalElementaryErrorgenLabel objects.

classmethod read(path, format=None)#

Read an object of this type, or a subclass of this type, from a file.

Parameters:
  • path (str or Path or file-like) – The filename to open or an already open input stream.

  • format ({'json', None}) – The format of the file. If None this is determined automatically by the filename extension of a given path.

Return type:

NicelySerializable

classmethod remove_from_mongodb(mongodb, doc_id, collection_name=None, session=None, recursive='default')#

Remove the documents corresponding to an instance of this class from a MongoDB database.

Parameters:
  • mongodb (pymongo.database.Database) – The MongoDB instance to remove documents from.

  • doc_id (bson.objectid.ObjectId) – The identifier of the root document stored in the database.

  • collection_name (str, optional) – the MongoDB collection within mongodb where the main document resides. If None, then <this_class>.collection_name is used (which is usually what you want).

  • session (pymongo.client_session.ClientSession, optional) – MongoDB session object to use when interacting with the MongoDB database. This can be used to implement transactions among other things.

  • recursive (RecursiveRemovalSpecification, optional) – An object that filters the type of documents that are removed. Used when working with inter-related experiment designs, data, and results objects to only remove the types of documents you know aren’t being shared with other documents.

Return type:

None

sublabels(errorgen_type)#

Return a tuple of labels within this basis for the specified error generator type (may be empty).

Parameters:

errorgen_type ('H', 'S', 'C' or 'A') – String specifying the error generator type to return the labels for.

Return type:

tuple of either GlobalElementaryErrorgenLabels or LocalElementaryErrorgenLabels

to_explicit_basis()#

Creates a new ExplicitElementaryErrorgenBasis based on this Basis’ elements.

to_nice_serialization()#

Serialize this object in a way that adheres to “niceness” rules of common text file formats.

Returns:

Usually a dictionary representing the serialized object, but may also be another native Python type, e.g. a string or list.

Return type:

object

union(other_basis)#

Create a new ExplicitElementaryErrorgenBasis corresponding to the union of this basis with another.

Parameters:

other_basis (ElementaryErrorgenBasis) – ElementaryErrorgenBasis to construct the union with.

write(path, **format_kwargs)#

Writes this object to a file.

Parameters:
  • path (str or Path) – The name of the file that is written.

  • format_kwargs (dict, optional) – Additional arguments specific to the format being used. For example, the JSON format accepts indent as an argument because json.dump does.

Return type:

None

write_to_mongodb(mongodb, session=None, overwrite_existing=False, **kwargs)#

Write this object to a MongoDB database.

The collection name used is self.collection_name, and the _id is either: 1) the ID used by a previous write or initial read-in, if one exists, OR 2) a new random bson.objectid.ObjectId

Parameters:
  • mongodb (pymongo.database.Database) – The MongoDB instance to write data to.

  • session (pymongo.client_session.ClientSession, optional) – MongoDB session object to use when interacting with the MongoDB database. This can be used to implement transactions among other things.

  • overwrite_existing (bool, optional) – Whether existing documents should be overwritten. The default of False causes a ValueError to be raised if a document with the given _id already exists and is different from what is being written.

  • **kwargs (dict) – Additional keyword arguments potentially used by subclass implementations. Any arguments allowed by a subclass’s _add_auxiliary_write_ops_and_update_doc method is allowed here.

Returns:

The identifier (_id value) of the main document that was written.

Return type:

bson.objectid.ObjectId

property elemgen_dual_matrices#

Returns a tuple of matrices, each corresponding to the of the matrix representation of the dual elementary error generators in this basis, returned in the same order as they appear in labels.

property elemgen_matrices#

Returns a tuple of matrices, each corresponding to the of the matrix representation of the elementary error generators in this basis, returned in the same order as they appear in labels.

property elemgen_supports#

Returns a tuple of tuples, each corresponding to the support of the elementary error generators in this basis, returned in the same order as they appear in labels.

property elemgen_supports_and_dual_matrices#

Returns a tuple of tuples, each containing a tuple of support and a dual matrix representation each corresponding to an elementary error generator in this basis, returned in the same order as they appear in labels.

property elemgen_supports_and_matrices#

Returns a tuple of tuples, each containing a tuple of support and a matrix representation each corresponding to an elementary error generator in this basis, returned in the same order as they appear in labels.

property labels#

Tuple of either GlobalElementaryErrorgenLabel or LocalElementaryErrorgenLabel objects for this basis, with which one determined by the default_label_type specified on basis construction.

For specific label types see the global_labels and local_labels methods.