Invoking functions and class-constructors from a string is a common design pattern
that AutoRegistry aims to solve.
For example, a user might specify a backend of type
"sqlite" in a yaml configuration
file, for which our program needs to construct the
SQLite subclass of our
Classically, you would need to manually create a lookup, mapping the string
With AutoRegistry, the lookup is automatically created for you.
AutoRegistry has a single powerful class
Registry that can do the following:
Be inherited to automatically register subclasses by their name.
Be directly invoked
my_registery = Registry()to create a decorator for registering callables like functions.
Traverse and automatically create registries for other python libraries.