skip to navigation
skip to content

class-registry 2.1.2

Factory+Registry pattern for Python classes.


At the intersection of the Registry and Factory patterns lies the ClassRegistry:

  • Define global factories that generate new class instances based on configurable keys.
  • Seamlessly create powerful service registries.
  • Integrate with setuptools’s entry_points system to make your registries infinitely extensible by 3rd-party libraries!
  • And more!

Getting Started

Create a registry using the class_registry.ClassRegistry class, then decorate any classes that you wish to register with its register method:

from class_registry import ClassRegistry

pokedex = ClassRegistry()

class Charizard(Pokemon):

class Bulbasaur(Pokemon):

class Squirtle(Pokemon):

To create a class instance from a registry, use the subscript operator:

# Charizard, I choose you!
fighter1 = pokedex['fire']

# CHARIZARD fainted!
# How come my rival always picks the type that my pokémon is weak against??
fighter2 = pokedex['grass']

Advanced Usage

There’s a whole lot more you can do with ClassRegistry, including:

  • Provide args and kwargs to new class instances.
  • Automatically register non-abstract classes.
  • Integrate with setuptools’s entry_points system so that 3rd-party libraries can add their own classes to your registries.
  • Wrap your registry in an instance cache to create a service registry.
  • And more!

For more advanced usage, check out the documentation on RTD!


ClassRegistry is compatible with Python versions 3.6, 3.5 and 2.7.


Install the latest stable version via pip:

pip install class-registry
File Type Py Version Uploaded on Size
class-registry-2.1.2.tar.gz (md5) Source 2017-12-30 14KB
class_registry-2.1.2-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2017-12-30 12KB