def _from_dict(cls, ser: RunDescriberDicts) -> 'RunDescriber': """ Make a RunDescriber object from a dictionary. This method is intended to be used only by the deserialization routines. """ if ser['version'] == 0: ser = cast(RunDescriberV0Dict, ser) rundesc = cls( old_to_new( InterDependencies._from_dict(ser['interdependencies']))) elif ser['version'] == 1: ser = cast(RunDescriberV1Dict, ser) rundesc = cls( InterDependencies_._from_dict(ser['interdependencies'])) elif ser['version'] == 2: ser = cast(RunDescriberV2Dict, ser) rundesc = cls( InterDependencies_._from_dict(ser['interdependencies_'])) elif ser['version'] >= 3: ser = cast(RunDescriberV3Dict, ser) rundesc = cls(InterDependencies_._from_dict( ser['interdependencies_']), shapes=ser['shapes']) else: raise RuntimeError(f"Unknown version: " f"Cannot deserialize from {ser['version']}") return rundesc
def _from_dict(cls, ser: Dict[str, Any]) -> 'RunDescriber': """ Make a RunDescriber object from a dictionary. This method is intended to be used only by the deserialization routines. """ rundesc = cls(InterDependencies_._from_dict(ser['interdependencies'])) return rundesc
def tester(idps): ser = idps._to_dict() json.dumps(ser) idps_deser = InterDependencies_._from_dict(ser) assert idps == idps_deser