Skip to main content

A modern Python library of reusable software design patterns.

Project description

pattern_kit

PyPI - Version No dependencies CI Documentation PyPI - Downloads

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.


Features

  • 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

Installation

pip install pattern_kit

Documentation

Full usage examples and pattern guides are available in the official documentation

Quick Examples

Singleton example (using decorator)

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

Event (multicast) example

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

Who is this for?

Python developers who want to structure their codebase better and apply solid, proven software architecture principles.

Contributing

Contributions are welcome! Feel free to open issues, suggest improvements, or submit pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pattern_kit-1.3.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

pattern_kit-1.3.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file pattern_kit-1.3.0.tar.gz.

File metadata

  • Download URL: pattern_kit-1.3.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pattern_kit-1.3.0.tar.gz
Algorithm Hash digest
SHA256 3d18bdfc9d2b2ac554c87dbbb6bf20a9c3f3b99b5255552f69bcb0d4040392ea
MD5 bf3134de2ceaa2d96a64e8814225733a
BLAKE2b-256 ac7bb41ec5da5eb9a213045bc7dd452c7971b15013a66166619f762e10c4afc4

See more details on using hashes here.

File details

Details for the file pattern_kit-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: pattern_kit-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pattern_kit-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ece0855f6ac4bf0c388f25006d5cb503943373d3083ba5791dca40a57f2706b
MD5 86ccf4fb5c4a22d1dea0c4e1d059da3a
BLAKE2b-256 889b476991cba9a5f71f2a0bc0a1d7096302b33e8ed240dde9707fdc2205654a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page