Source code for qurry.qurrium.container.passmanagers
"""PassManagerContainer (:mod:`qurry.qurrium.container.passmanagers`)"""
from qiskit.transpiler.passmanager import PassManager
[docs]
class PassManagerContainer(dict[str, PassManager]):
"""A customized dictionary for storing
:class:`~qiskit.transpiler.passmanager.PassManager` objects."""
__name__ = "PassManagerContainer"
def __repr__(self):
original_repr = repr({k: v for k, v in self.items()})
return f"{self.__name__}({original_repr}, num={len(self)})"
def _repr_oneline(self):
return f"{self.__name__}(" + "{...}" + f", num={len(self)})"
def _repr_pretty_(self, p, cycle):
# pylint: disable=protected-access
original_repr = repr({k: v for k, v in self.items()})
# pylint: enable=protected-access
original_repr_split = original_repr[1:-1].split(", ")
length = len(original_repr_split)
if cycle:
p.text(f"{self.__name__}(" + "{...}" + f", num={length})")
else:
with p.group(2, f"{self.__name__}(num={length}" + ", {", "})"):
for i, item in enumerate(original_repr_split):
p.breakable()
p.text(item)
if i < length - 1:
p.text(",")
def __str__(self):
return super().__repr__()