AutoRegistry
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 Database
class.
Classically, you would need to manually create a lookup, mapping the string "sqlite"
to
the SQLite
constructor.
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.