Skip to content

Commit cde7dee

Browse files
committed
Merge branch 'release/4.35.2' into master
2 parents b4ddf61 + 5acde87 commit cde7dee

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

Diff for: docs/main/changelog.rst

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ that were made in every particular version.
77
From version 0.7.6 *Dependency Injector* framework strictly
88
follows `Semantic versioning`_
99

10+
4.35.2
11+
------
12+
- Update wiring to support modules provided as packages.
13+
See issue `#481 <https://github.com/ets-labs/python-dependency-injector/issues/481>`_.
14+
Thanks to `@Sadbot <https://github.com/Sadbot>`_ for demonstrating the issue.
15+
1016
4.35.1
1117
------
1218
- Fix a container issue with supporting custom string types.

Diff for: src/dependency_injector/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Top-level package."""
22

3-
__version__ = '4.35.1'
3+
__version__ = '4.35.2'
44
"""Version number.
55
66
:type: str

Diff for: src/dependency_injector/wiring.py

+2
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,8 @@ def _unbind_injections(fn: Callable[..., Any]) -> None:
552552

553553
def _fetch_modules(package):
554554
modules = [package]
555+
if not hasattr(package, '__path__') or not hasattr(package, '__name__'):
556+
return modules
555557
for module_info in pkgutil.walk_packages(
556558
path=package.__path__,
557559
prefix=package.__name__ + '.',

Diff for: tests/unit/wiring/test_wiring_py36.py

+12
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,18 @@ def test_container(self):
310310
self.assertIsInstance(service, Service)
311311

312312

313+
class ModuleAsPackagingTest(unittest.TestCase):
314+
315+
def setUp(self):
316+
self.container = Container(config={'a': {'b': {'c': 10}}})
317+
self.addCleanup(self.container.unwire)
318+
319+
def test_module_as_package_wiring(self):
320+
# See: https://github.com/ets-labs/python-dependency-injector/issues/481
321+
self.container.wire(packages=[module])
322+
self.assertIsInstance(module.service, Service)
323+
324+
313325
class WiringAndQueue(unittest.TestCase):
314326

315327
def test_wire_queue(self) -> None:

0 commit comments

Comments
 (0)