Metadata-Version: 2.1
Name: pyntegrant
Version: 0.2.1
Summary: A system assembly framework based on Integrant
Home-page: https://github.com/vputz/pyntegrant
License: Apache-2.0
Author: Vic Putz
Author-email: vbputz@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: icontract (>=2.6.0,<3.0.0)
Requires-Dist: networkx (>=2.6,<3.0)
Requires-Dist: pyrsistent (>=0.18.0,<0.19.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Requires-Dist: toolz (>=0.11.2,<0.12.0)
Description-Content-Type: text/x-rst

==========
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 <https://github.com/weavejester/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.

