Small library for registry and instantiation of extensions.
Example
fromextensibleimportExtensible, Option, OptionTypeclassPrinter(Extensible, is_base=True):
extension_type="printer"passclassPrettyPrinter(Printer):
extension_name="pretty"extension_options= [
Option("indent", OptionType.int, default=4) ]
indent: intdef__init__(self, indent: int) ->None:
self.indent=indentInstantiation:
printer: Printerprinter=Printer.concrete_extension("pretty") \
.create_with_dict({"indent": "10"})Author: Stefan Urbanek stefan.urbanek@gmail.com License: MIT