Dirty Loader package

Loaders

class dirty_loader.Loader(modules=None, factories=None)[source]

Bases: object

Loader is a class loader. You must register python modules where to look for classes. First modules registered has preference in front last ones, but you could indicate index where you want insert new module.

register_module(module, idx=-1)[source]

Register a module. You could indicate position inside inner list.

Parameters:
  • module (str) – must be a string or a module object to register.
  • idx (int) – position where you want to insert new module. By default it is inserted at the end.
unregister_module(module)[source]

Unregister a module.

Parameters:module (str) – must be a string or a module object to unregistered
get_registered_modules()[source]

Return registered modules.

Returns:list of registered modules.
Return type:list
load_class(classname)[source]

Loads a class looking for it in each module registered.

Parameters:classname (str) – Class name you want to load.
Returns:Class object
Return type:type
factory(classname, *args, **kwargs)[source]

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_factory_by_class(klass)[source]

Returns a custom factory for class. By default it will return the class itself.

Parameters:klass (type) – Class type
Returns:Class factory
Return type:callable
class dirty_loader.LoaderReversed(modules=None, factories=None)[source]

Bases: dirty_loader.ReversedMixin, dirty_loader.Loader

LoaderReversed is a class loader. You must register python modules where to look for classes. Last modules registered has preference in front first ones, but you could indicate index where you want insert new module.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_factory_by_class(klass)

Returns a custom factory for class. By default it will return the class itself.

Parameters:klass (type) – Class type
Returns:Class factory
Return type:callable
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
load_class(classname)

Loads a class looking for it in each module registered.

Parameters:classname (str) – Class name you want to load.
Returns:Class object
Return type:type
register_module(module, idx=-1)

Register a module. You could indicate position inside inner list.

Parameters:
  • module (str) – must be a string or a module object to register.
  • idx (int) – position where you want to insert new module. By default it is inserted at the end.
unregister_module(module)

Unregister a module.

Parameters:module (str) – must be a string or a module object to unregistered
class dirty_loader.LoaderCached(*args, **kwargs)[source]

Bases: dirty_loader.CacheLoaderMixin, dirty_loader.Loader

LoaderCached is a class loader. You must register python modules where to look for classes. First modules registered has preference in front last ones, but you could indicate index where you want insert new module.

Already looked up classes are cached.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
invalidate_cache()

Invalidate class cache.

invalidate_cache_factories()

Invalidate factories cache.

class dirty_loader.LoaderReversedCached(*args, **kwargs)[source]

Bases: dirty_loader.CacheLoaderMixin, dirty_loader.LoaderReversed

Already looked up classes are cached.LoaderReversedCached is a class loader. You must register python modules where to look for classes. Last modules registered has preference in front first ones, but you could indicate index where you want insert new module.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
invalidate_cache()

Invalidate class cache.

invalidate_cache_factories()

Invalidate factories cache.

class dirty_loader.LoaderNamespace(namespaces=None, factories=None)[source]

Bases: dirty_loader.Loader

LoaderNamespace is a class loader. You must register python modules with a namespace tag where to look for classes. First namespace registered has preference in front last ones.

register_module(module, namespace=None)[source]

Register a module.

Parameters:
  • module (str) – must be a string or a module object to register.
  • namespace (str) – Namespace tag. If it is None module will be used as namespace tag
register_namespace(namespace, module)[source]

Register a namespace.

Parameters:
  • namespace (str) – Namespace tag.
  • module (str) – must be a string or a module object to register.
unregister_module(module)[source]

Unregister a module.

Parameters:module (str) – must be a string or a module object to unregistered
unregister_namespace(namespace)[source]

Unregister a namespace.

Parameters:namespace (str) – Namespace tag.
get_registered_modules()[source]

Return registered modules.

Returns:list of registered modules.
Return type:list
get_registered_namespaces()[source]

Return registered namespaces.

Returns:Dict with namespaces as key and modules as value.
Return type:OrderedDict
load_class(classname, namespace=None)[source]

Loads a class looking for it in each module registered. It’s possible to load a class from specific namespace using namespace parameter or using classname as “namespace:classname”.

Parameters:
  • classname (str) – Class name you want to load.
  • namespace (str) – Specific namespace where to look for class.
Returns:

Class object

Return type:

type

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_factory_by_class(klass)

Returns a custom factory for class. By default it will return the class itself.

Parameters:klass (type) – Class type
Returns:Class factory
Return type:callable
class dirty_loader.LoaderNamespaceReversed(namespaces=None, factories=None)[source]

Bases: dirty_loader.ReversedMixin, dirty_loader.LoaderNamespace

LoaderNamespaceReversed is a class loader. You must register python modules with a namespace tag where to look for classes. Last namespaces registered has preference in front first ones.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_factory_by_class(klass)

Returns a custom factory for class. By default it will return the class itself.

Parameters:klass (type) – Class type
Returns:Class factory
Return type:callable
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
get_registered_namespaces()

Return registered namespaces.

Returns:Dict with namespaces as key and modules as value.
Return type:OrderedDict
load_class(classname, namespace=None)

Loads a class looking for it in each module registered. It’s possible to load a class from specific namespace using namespace parameter or using classname as “namespace:classname”.

Parameters:
  • classname (str) – Class name you want to load.
  • namespace (str) – Specific namespace where to look for class.
Returns:

Class object

Return type:

type

register_module(module, namespace=None)

Register a module.

Parameters:
  • module (str) – must be a string or a module object to register.
  • namespace (str) – Namespace tag. If it is None module will be used as namespace tag
register_namespace(namespace, module)

Register a namespace.

Parameters:
  • namespace (str) – Namespace tag.
  • module (str) – must be a string or a module object to register.
unregister_module(module)

Unregister a module.

Parameters:module (str) – must be a string or a module object to unregistered
unregister_namespace(namespace)

Unregister a namespace.

Parameters:namespace (str) – Namespace tag.
class dirty_loader.LoaderNamespaceCached(*args, **kwargs)[source]

Bases: dirty_loader.CacheLoaderNamespaceMixin, dirty_loader.LoaderNamespace

LoaderNamespace is a class loader. You must register python modules with a namespace tag where to look for classes. First namespace registered has preference in front last ones.

Already looked up classes are cached.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
get_registered_namespaces()

Return registered namespaces.

Returns:Dict with namespaces as key and modules as value.
Return type:OrderedDict
invalidate_cache()

Invalidate class cache.

invalidate_cache_factories()

Invalidate factories cache.

class dirty_loader.LoaderNamespaceReversedCached(*args, **kwargs)[source]

Bases: dirty_loader.CacheLoaderNamespaceMixin, dirty_loader.LoaderNamespaceReversed

LoaderNamespaceReversed is a class loader. You must register python modules with a namespace tag where to look for classes. Last namespaces registered has preference in front first ones.

Already looked up classes are cached.

factory(classname, *args, **kwargs)

Creates an instance of class looking for it in each module registered. You can add needed params to instance the class.

Parameters:classname (str) – Class name you want to create an instance.
Returns:An instance of classname
Return type:object
get_registered_modules()

Return registered modules.

Returns:list of registered modules.
Return type:list
get_registered_namespaces()

Return registered namespaces.

Returns:Dict with namespaces as key and modules as value.
Return type:OrderedDict
invalidate_cache()

Invalidate class cache.

invalidate_cache_factories()

Invalidate factories cache.

dirty_loader.import_class(classpath, package=None)[source]

Load and return a class

Factories

class dirty_loader.factories.BaseFactory(loader, klass)[source]

Bases: object

Base class factory. It should be used in order to implement specific ones.

class dirty_loader.factories.LoggerFactory(loader, klass)[source]

Bases: dirty_loader.factories.BaseLoggingFactory

Logger factory.

class dirty_loader.factories.LoggingHandlerFactory(loader, klass)[source]

Bases: dirty_loader.factories.BaseLoggingFactory

Logger handle factory.

dirty_loader.factories.register_logging_factories(loader)[source]

Registers default factories for logging standard package.

Parameters:loader – Loader where you want register default logging factories