Re-create the Specs from a dictionary representation.

        :param Dict[str, Any] d: The dictionary representation.
        :return: The restored Specs.
        :rtype: Specs

def from_dict(d):
        """
        Re-create the Specs from a dictionary representation.

        :param Dict[str, Any] d: The dictionary representation.
        :return: The restored Specs.
        :rtype: Specs
        """
        return Specs(
            qubits_specs=sorted([QubitSpecs(id=int(q),
                                            fRO=qspecs.get('fRO'),
                                            f1QRB=qspecs.get('f1QRB'),
                                            T1=qspecs.get('T1'),
                                            T2=qspecs.get('T2'),
                                            fActiveReset=qspecs.get('fActiveReset'))
                                 for q, qspecs in d["1Q"].items()],
                                key=lambda qubit_specs: qubit_specs.id),
            edges_specs=sorted([EdgeSpecs(targets=[int(q) for q in e.split('-')],
                                          fBellState=especs.get('fBellState'),
                                          fCZ=especs.get('fCZ'),
                                          fCZ_std_err=especs.get('fCZ_std_err'),
                                          fCPHASE=especs.get('fCPHASE'))
                                for e, especs in d["2Q"].items()],
                               key=lambda edge_specs: edge_specs.targets)
        )