diff --git a/abc.py b/abc.py index 3b216c4a0fd71c52ce6be39c8cd655991d9d208b..95185d800e00c8518db20dc13ce7b00fb240707d 100644 --- a/abc.py +++ b/abc.py @@ -57,9 +57,15 @@ class ParametersABC(ABC): return dump(self.to_dict()) @classmethod - def from_yaml(cls, path: Union[PosixPath, str]): - with open(Path(path)) as f: - params = safe_load(f) + def from_yaml(cls, source: Union[PosixPath, str]): + """Returns class from a yaml filename or stdin""" + fpath = Path(source) + if fpath.exists(): + with open(fpath) as f: + params = safe_load(f) + else: + params = safe_load(source) + return cls(**params) @classmethod