def from_dict(cls, d):
        """
        Args:
            d (dict): A dict with all data for a band structure symm line
                object.

        Returns:
            A BandStructureSymmLine object
        """
        try:
            # Strip the label to recover initial string (see trick used in as_dict to handle $ chars)
            labels_dict = {k.strip(): v for k, v in d['labels_dict'].items()}
            projections = {}
            structure = None
            if d.get('projections'):
                if isinstance(d["projections"]['1'][0][0], dict):
                    raise ValueError("Old band structure dict format detected!")
                structure = Structure.from_dict(d['structure'])
                projections = {Spin(int(spin)): np.array(v)
                               for spin, v in d["projections"].items()}

            return BandStructureSymmLine(
                d['kpoints'], {Spin(int(k)): d['bands'][k]
                               for k in d['bands']},
                Lattice(d['lattice_rec']['matrix']), d['efermi'],
                labels_dict, structure=structure, projections=projections)
        except:
            warnings.warn("Trying from_dict failed. Now we are trying the old "
                          "format. Please convert your BS dicts to the new "
                          "format. The old format will be retired in pymatgen "
                          "5.0.")
            return BandStructureSymmLine.from_old_dict(d)
def from_dict ( cls , d ) : try : labels_dict = { k . strip ( ) : v for k , v in d [ 'labels_dict' ] . items ( ) } projections = { } structure = None if d . get ( 'projections' ) : if isinstance ( d [ "projections" ] [ '1' ] [ 0 ] [ 0 ] , dict ) : raise ValueError ( "Old band structure dict format detected!" ) structure = Structure . from_dict ( d [ 'structure' ] ) projections = { Spin ( int ( spin ) ) : np . array ( v ) for spin , v in d [ "projections" ] . items ( ) } return BandStructureSymmLine ( d [ 'kpoints' ] , { Spin ( int ( k ) ) : d [ 'bands' ] [ k ] for k in d [ 'bands' ] } , Lattice ( d [ 'lattice_rec' ] [ 'matrix' ] ) , d [ 'efermi' ] , labels_dict , structure = structure , projections = projections ) except : warnings . warn ( "Trying from_dict failed. Now we are trying the old " "format. Please convert your BS dicts to the new " "format. The old format will be retired in pymatgen " "5.0." ) return BandStructureSymmLine . from_old_dict ( d )
Args:
            d (dict): A dict with all data for a band structure symm line
                object.

        Returns:
            A BandStructureSymmLine object