apywire 0.1.0__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.
apywire-0.1.0/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH RESPECT TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,9 @@
1
+ # SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
2
+ #
3
+ # SPDX-License-Identifier: ISC
4
+
5
+ include LICENSE
6
+ include README.md
7
+ include pyproject.toml
8
+ recursive-include apywire *.py *.pyi *.pxd *.pxd *.c
9
+ include apywire/py.typed
apywire-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: apywire
3
+ Version: 0.1.0
4
+ Summary: A package to wire up objects
5
+ Author-email: Alexandre Gomes Gaigalas <alganet@gmail.com>
6
+ Maintainer-email: Alexandre Gomes Gaigalas <alganet@gmail.com>
7
+ License-Expression: ISC
8
+ Project-URL: Homepage, https://github.com/alganet/apywire
9
+ Project-URL: Repository, https://github.com/alganet/apywire
10
+ Project-URL: Issues, https://github.com/alganet/apywire/issues
11
+ Keywords: object,wiring,dependency,injection
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Requires-Python: >=3.12
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Provides-Extra: dev
23
+ Requires-Dist: auditwheel; extra == "dev"
24
+ Requires-Dist: black; extra == "dev"
25
+ Requires-Dist: build; extra == "dev"
26
+ Requires-Dist: coverage; extra == "dev"
27
+ Requires-Dist: Cython; extra == "dev"
28
+ Requires-Dist: flake8-pyproject; extra == "dev"
29
+ Requires-Dist: flake8; extra == "dev"
30
+ Requires-Dist: isort; extra == "dev"
31
+ Requires-Dist: mkdocs-autorefs; extra == "dev"
32
+ Requires-Dist: mkdocs-material; extra == "dev"
33
+ Requires-Dist: mkdocs; extra == "dev"
34
+ Requires-Dist: mkdocstrings[python]; extra == "dev"
35
+ Requires-Dist: mypy; extra == "dev"
36
+ Requires-Dist: pytest-cov; extra == "dev"
37
+ Requires-Dist: pytest; extra == "dev"
38
+ Requires-Dist: reuse; extra == "dev"
39
+ Requires-Dist: twine; extra == "dev"
40
+ Requires-Dist: types-setuptools; extra == "dev"
41
+ Dynamic: license-file
42
+ Dynamic: requires-python
43
+
44
+ <!--
45
+ SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
46
+
47
+ SPDX-License-Identifier: ISC
48
+ -->
49
+
50
+ # apywire
51
+
52
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
53
+ [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
54
+
55
+ Lazy object wiring and dependency injection for Python 3.12+
56
+
57
+ ## Features
58
+
59
+ - 🚀 Lazy Loading
60
+ - âš¡ Async Support
61
+ - 🔒 Thread Safety
62
+ - 📦 Code Generation
63
+ - 📄 Naturally Configurable
64
+ - 🎯 Zero Dependencies
65
+
66
+ ## Installation
67
+
68
+ ```bash
69
+ pip install apywire
70
+ ```
71
+
72
+ ## Quick Example
73
+
74
+ ```python
75
+ from apywire import Wiring
76
+
77
+ spec = {
78
+ "datetime.datetime now": {"year": 2025, "month": 1, "day": 1},
79
+ "MyService service": {"start_time": "{now}"}, # Dependency injection
80
+ }
81
+
82
+ wired = Wiring(spec)
83
+ service = wired.service() # Lazy instantiation + caching
84
+ ```
85
+
86
+ ## Documentation
87
+
88
+ 📚 **[Full Documentation](docs/index.md)** • [Getting Started](docs/getting-started.md) • [API Reference](docs/api-reference.md) • [Examples](docs/examples.md)
89
+
90
+ Build docs locally:
91
+ ```bash
92
+ make docs-serve # http://127.0.0.1:8000
93
+ ```
94
+
95
+ ## Development
96
+
97
+ ```bash
98
+ make .venv && source .venv/bin/activate # Setup
99
+ make all # Format, lint, test, build
100
+ ```
101
+
102
+ See [docs/development.md](docs/development.md) for guidelines.
103
+
104
+ ## License
105
+
106
+ ISC License - see [LICENSES/ISC.txt](LICENSES/ISC.txt)
@@ -0,0 +1,63 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
3
+
4
+ SPDX-License-Identifier: ISC
5
+ -->
6
+
7
+ # apywire
8
+
9
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
10
+ [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
11
+
12
+ Lazy object wiring and dependency injection for Python 3.12+
13
+
14
+ ## Features
15
+
16
+ - 🚀 Lazy Loading
17
+ - âš¡ Async Support
18
+ - 🔒 Thread Safety
19
+ - 📦 Code Generation
20
+ - 📄 Naturally Configurable
21
+ - 🎯 Zero Dependencies
22
+
23
+ ## Installation
24
+
25
+ ```bash
26
+ pip install apywire
27
+ ```
28
+
29
+ ## Quick Example
30
+
31
+ ```python
32
+ from apywire import Wiring
33
+
34
+ spec = {
35
+ "datetime.datetime now": {"year": 2025, "month": 1, "day": 1},
36
+ "MyService service": {"start_time": "{now}"}, # Dependency injection
37
+ }
38
+
39
+ wired = Wiring(spec)
40
+ service = wired.service() # Lazy instantiation + caching
41
+ ```
42
+
43
+ ## Documentation
44
+
45
+ 📚 **[Full Documentation](docs/index.md)** • [Getting Started](docs/getting-started.md) • [API Reference](docs/api-reference.md) • [Examples](docs/examples.md)
46
+
47
+ Build docs locally:
48
+ ```bash
49
+ make docs-serve # http://127.0.0.1:8000
50
+ ```
51
+
52
+ ## Development
53
+
54
+ ```bash
55
+ make .venv && source .venv/bin/activate # Setup
56
+ make all # Format, lint, test, build
57
+ ```
58
+
59
+ See [docs/development.md](docs/development.md) for guidelines.
60
+
61
+ ## License
62
+
63
+ ISC License - see [LICENSES/ISC.txt](LICENSES/ISC.txt)
@@ -0,0 +1,34 @@
1
+ # SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
2
+ #
3
+ # SPDX-License-Identifier: ISC
4
+
5
+ """A package to wire up objects."""
6
+
7
+ from .compiler import WiringCompiler
8
+ from .exceptions import (
9
+ CircularWiringError,
10
+ LockUnavailableError,
11
+ UnknownPlaceholderError,
12
+ WiringError,
13
+ )
14
+ from .runtime import Accessor, AioAccessor, Spec, SpecEntry, WiringRuntime
15
+ from .threads import ThreadSafeMixin
16
+ from .wiring import WiringBase
17
+
18
+ Wiring = WiringRuntime
19
+
20
+ __all__ = [
21
+ "Spec",
22
+ "SpecEntry",
23
+ "ThreadSafeMixin",
24
+ "Wiring",
25
+ "WiringRuntime",
26
+ "WiringCompiler",
27
+ "WiringBase",
28
+ "WiringError",
29
+ "UnknownPlaceholderError",
30
+ "CircularWiringError",
31
+ "LockUnavailableError",
32
+ "Accessor",
33
+ "AioAccessor",
34
+ ]