mixinv2 0.4.0.post85.dev0__tar.gz → 0.4.0.post89.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/.gitignore +2 -2
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/PKG-INFO +3 -2
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/tutorial.rst +6 -3
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/pyproject.toml +6 -5
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_core.py +1 -2
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_runtime.py +2 -1
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/README.md +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/Makefile +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/_static/favicon.svg +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/_static/logo.svg +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/conf.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/index.rst +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/installation.rst +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/mixinv2-tutorial.rst +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/docs/specification.md +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_config.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_interned_linked_list.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_mixin_directory.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_mixin_parser.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/LetXEqualsXInX.mixin.yaml +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/SelfReferenceTest.mixin.yaml +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/__snapshots__/test_multi_module_composition.ambr +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/CircularLazy.mixin.yaml +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/MultiModuleComposition.mixin.yaml +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/OuterVsLexicalOuter.mixin.yaml +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/nested_pkg/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/nested_pkg/child/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/nested_pkg/child/grandchild.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/ns_pkg/mod_a.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/ns_pkg/mod_b.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/regular_mod.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/regular_pkg/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/regular_pkg/child.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/__init__.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch0.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch1.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch2.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_circular_lazy.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_debug.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_evaluation_semantics.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_get_symbol.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_interned_linked_list.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_mixin_parser.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_mixinject.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_multi_module_composition.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_outer_vs_lexical_outer.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_resource_reference.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_stdlib_python_port.py +0 -0
- {mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_v2.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mixinv2
|
|
3
|
-
Version: 0.4.0.
|
|
3
|
+
Version: 0.4.0.post89.dev0
|
|
4
4
|
Summary: A dependency injection framework with pytest-fixture syntax, plus a configuration language for declarative programming
|
|
5
5
|
Project-URL: Repository, https://github.com/Atry/MIXINv2
|
|
6
6
|
Author-email: "Yang, Bo" <yang-bo@yang-bo.com>
|
|
@@ -12,9 +12,10 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
12
12
|
Requires-Python: >=3.13
|
|
13
13
|
Requires-Dist: fixpoints
|
|
14
14
|
Requires-Dist: pyyaml>=6.0.3
|
|
15
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
15
16
|
Provides-Extra: docs
|
|
16
17
|
Requires-Dist: sphinx-mdinclude>=0.6.2; extra == 'docs'
|
|
17
|
-
Requires-Dist: sphinx
|
|
18
|
+
Requires-Dist: sphinx<9,>=8.1.0; extra == 'docs'
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
|
|
20
21
|
# mixinv2
|
|
@@ -118,9 +118,12 @@ by ``HttpHandlers.Request``) flows automatically into ``currentUser`` (looked up
|
|
|
118
118
|
in the DB by ``UserRepository.Request``) without any glue code.
|
|
119
119
|
|
|
120
120
|
``responseSent`` is an IO resource: it sends the HTTP response as a side effect and
|
|
121
|
-
returns ``None``. The
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
returns ``None``. The ``_Handler`` class is defined at module level and accesses the
|
|
122
|
+
``Request`` factory through ``self.server.request_scope_factory``; the ``server``
|
|
123
|
+
resource stores it on the ``HTTPServer`` instance. The handler body is a single
|
|
124
|
+
attribute access; all logic lives in the DI graph. In an async framework (e.g.
|
|
125
|
+
FastAPI), return an ``asyncio.Task[None]`` instead of a coroutine, which cannot be
|
|
126
|
+
safely awaited in multiple dependents.
|
|
124
127
|
|
|
125
128
|
.. literalinclude:: ../../mixinv2-examples/src/mixinv2_examples/app_decorator/step4_http_server.py
|
|
126
129
|
:language: python
|
|
@@ -26,13 +26,14 @@ classifiers = [
|
|
|
26
26
|
"Programming Language :: Python :: 3.13",
|
|
27
27
|
"Programming Language :: Python :: 3.14",
|
|
28
28
|
]
|
|
29
|
-
dependencies = [
|
|
29
|
+
dependencies = [
|
|
30
|
+
"pyyaml>=6.0.3",
|
|
31
|
+
"fixpoints",
|
|
32
|
+
"typing-extensions>=4.0.0",
|
|
33
|
+
]
|
|
30
34
|
|
|
31
35
|
[project.optional-dependencies]
|
|
32
|
-
docs = ["sphinx>=
|
|
33
|
-
|
|
34
|
-
[tool.uv]
|
|
35
|
-
sources = { fixpoints = { workspace = true } }
|
|
36
|
+
docs = ["sphinx>=8.1.0,<9", "sphinx-mdinclude>=0.6.2"]
|
|
36
37
|
|
|
37
38
|
[tool.hatch.build.targets.wheel]
|
|
38
39
|
packages = ["src/mixinv2"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/src/mixinv2/_interned_linked_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/CircularLazy.mixin.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/nested_pkg/__init__.py
RENAMED
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/nested_pkg/child/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/regular_pkg/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/__init__.py
RENAMED
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch0.py
RENAMED
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch1.py
RENAMED
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/fixtures/union_mount/branch2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_multi_module_composition.py
RENAMED
|
File without changes
|
{mixinv2-0.4.0.post85.dev0 → mixinv2-0.4.0.post89.dev0}/tests/test_outer_vs_lexical_outer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|