Skip to content

A microframework for building systems in Python in a data-driven way, based on Clojure's Integrant

License

Notifications You must be signed in to change notification settings

vputz/pyntegrant

Repository files navigation

Pyntegrant

While IoC and dependency injection aren't as much of a thing in Python as they are in many compiled languages, that doesn't mean they don't have their place in decomposition of a complex architecture and assembly of systems; there's something very nice about completely separated modules that communicate based on shared abstractions which are then assembled by a separate piece of code into running systems.

But despite the many microframeworks for dependency injection that I've seen for Python, I haven't seen any that seem as elegant as the Integrant microframework enjoyed by Clojurists. This is an effort to remedy that, but as I haven't loads of time to invest in it, it's a pale shadow of the original.

Still, shadows have power. It can already do the initialization portion of a system, although items like prep, halt, suspend, etc remain, as do derived keys and refsets. But one thing at a time.

As of the 0.1.0 prerelease, all that works is the basic assembly of a system from a configuration (in Python, JSON, or TOML) and it's surprising how effective that actually can be. Unfortunately error messages are lightly cryptic and documentation is nonexistent, but more will be coming shortly.

About

A microframework for building systems in Python in a data-driven way, based on Clojure's Integrant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages