A modern Python library of reusable software design patterns.
Your blueprint for better Python architecture.
pattern_kit
is a developer-friendly Python library offering clean, idiomatic implementations of common software design patterns. It focuses on real-world usability, pragmatic APIs, and simple integration into your projects.
While many examples exist online, pattern_kit
is designed as a pip-installable, production-grade package with a consistent structure and proper documentation - making design patterns approachable and usable in everyday codebases.
- Clean, idiomatic Python implementations
- Supports both synchronous and asynchronous designs
- Type-annotated and easy to extend
- Ready-to-use patterns for real-world projects
- Extensive documentation with examples
- Zero dependencies - pure Python, clean and portable
pip install pattern_kit
Full usage examples and pattern guides are available in the official documentation
from pattern_kit import singleton
@singleton
class Config:
def __init__(self, env="dev"):
self.env = env
# you can also use this syntax:
#
# from pattern_kit import Singleton
# class Config(Singleton):
# ...
cfg = Config(env="prod")
print(cfg.env) # "prod"
same = Config()
assert same is cfg
from pattern_kit import Event
def listener(msg):
print(f"[sync] {msg}")
async def async_listener(msg):
print(f"[async] {msg}")
on_message = Event()
on_message += listener
on_message += async_listener
on_message("hello!") # fire-and-forget
await on_message.call_async("world") # fully awaited
Python developers who want to structure their codebase better and apply solid, proven software architecture principles.
Contributions are welcome! Feel free to open issues, suggest improvements, or submit pull requests.