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