flambe.compile.utils
¶
Module Contents¶
-
flambe.compile.utils.
all_subclasses
(class_: Type[Any]) → Set[Type[Any]][source]¶ Return a set of all subclasses for a given class object
Recursively collects all subclasses of class_ down the object hierarchy into one set.
Parameters: class (Type[Any]) – Class to retrieve all subclasses for Returns: All subclasses of class_ Return type: Set[Type[Any]]
-
flambe.compile.utils.
make_component
(class_: type, tag_namespace: Optional[str] = None, only_module: Optional[str] = None, parent_component_class: Optional[Type] = None, exclude: Optional[List[str]] = None) → None[source]¶ Make class and all its children a Component
For example a call to make_component(torch.optim.Adam, “torch”) will make the tag !torch.Adam accessible in any yaml configs. This does NOT monkey patch (aka swizzle) torch, but instead creates a dynamic subclass which will be used by the yaml constructor i.e. only classes loaded from the config will be affected, anything imported and used in code.
Parameters: - class (type) – To be registered with yaml as a component, along with all its children
- tag_prefix (str) – Added to beginning of all the tags
- only_module (str) – Module prefix used to limit the scope of what gets registered
- parent_component_class (Type) – Parent class to use for creating a new component class; should
be a subclass of :class:
~flambe.compile.Component
(defaults toComponent
) - exclude (List[str], optional) – A list of modules to ignore
Returns: Return type: None