module-dependency 1.1.6__tar.gz → 1.1.7__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.
Files changed (175) hide show
  1. {module_dependency-1.1.6 → module_dependency-1.1.7}/PKG-INFO +3 -3
  2. {module_dependency-1.1.6 → module_dependency-1.1.7}/README.md +2 -2
  3. {module_dependency-1.1.6 → module_dependency-1.1.7}/docs/ARCHITECTURE.md +1 -1
  4. {module_dependency-1.1.6 → module_dependency-1.1.7}/docs/README.md +2 -2
  5. {module_dependency-1.1.6 → module_dependency-1.1.7}/pyproject.toml +1 -1
  6. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/injection/wiring.py +2 -2
  7. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/abstract_factory/__init__.py +1 -1
  8. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/builder/__init__.py +1 -1
  9. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/factory/__init__.py +1 -1
  10. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/structural/bridge/abstraction/__init__.py +1 -1
  11. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/structural/bridge/implementation/__init__.py +1 -1
  12. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/deferred/__init__.py +1 -1
  13. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/number/__init__.py +1 -1
  14. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/string/__init__.py +1 -1
  15. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/bridge/__init__.py +1 -1
  16. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/__init__.py +1 -1
  17. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/observer/__init__.py +1 -1
  18. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/facade/__init__.py +1 -1
  19. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/injection/wiring.pyi +2 -2
  20. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/graph/generate.pyi +8 -4
  21. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_declaration.py +1 -1
  22. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_interfaces.py +1 -1
  23. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_providers.py +1 -1
  24. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/example/test_component.py +4 -2
  25. {module_dependency-1.1.6 → module_dependency-1.1.7}/.github/workflows/docs.yaml +0 -0
  26. {module_dependency-1.1.6 → module_dependency-1.1.7}/.github/workflows/release.yml +0 -0
  27. {module_dependency-1.1.6 → module_dependency-1.1.7}/.github/workflows/testing.yml +0 -0
  28. {module_dependency-1.1.6 → module_dependency-1.1.7}/.gitignore +0 -0
  29. {module_dependency-1.1.6 → module_dependency-1.1.7}/.mypy.ini +0 -0
  30. {module_dependency-1.1.6 → module_dependency-1.1.7}/.vscode/settings.json +0 -0
  31. {module_dependency-1.1.6 → module_dependency-1.1.7}/CHANGELOG.md +0 -0
  32. {module_dependency-1.1.6 → module_dependency-1.1.7}/LICENSE +0 -0
  33. {module_dependency-1.1.6 → module_dependency-1.1.7}/docs/REFERENCES.md +0 -0
  34. {module_dependency-1.1.6 → module_dependency-1.1.7}/docs/reference/cli.md +0 -0
  35. {module_dependency-1.1.6 → module_dependency-1.1.7}/docs/reference/core.md +0 -0
  36. {module_dependency-1.1.6 → module_dependency-1.1.7}/mkdocs.yaml +0 -0
  37. {module_dependency-1.1.6 → module_dependency-1.1.7}/requirements.txt +0 -0
  38. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/__init__.py +0 -0
  39. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/__init__.py +0 -0
  40. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/__init__.py +0 -0
  41. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/base.py +0 -0
  42. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/component.py +0 -0
  43. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/instance.py +0 -0
  44. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/module.py +0 -0
  45. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/generation/plugin.py +0 -0
  46. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/models/__init__.py +0 -0
  47. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/models/base.py +0 -0
  48. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/templates/component.py.j2 +0 -0
  49. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/templates/instance.py.j2 +0 -0
  50. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/templates/module.py.j2 +0 -0
  51. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/cli/templates/plugin.py.j2 +0 -0
  52. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/__init__.py +0 -0
  53. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/agrupation/__init__.py +0 -0
  54. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/agrupation/entrypoint.py +0 -0
  55. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/agrupation/fallback.py +0 -0
  56. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/agrupation/module.py +0 -0
  57. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/agrupation/plugin.py +0 -0
  58. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/declaration/__init__.py +0 -0
  59. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/declaration/component.py +0 -0
  60. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/declaration/instance.py +0 -0
  61. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/declaration/product.py +0 -0
  62. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/declaration/validation.py +0 -0
  63. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/exceptions.py +0 -0
  64. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/injection/__init__.py +0 -0
  65. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/injection/injectable.py +0 -0
  66. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/injection/injection.py +0 -0
  67. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/injection/mixin.py +0 -0
  68. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/__init__.py +0 -0
  69. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/container.py +0 -0
  70. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/errors.py +0 -0
  71. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/registry.py +0 -0
  72. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/resolver.py +0 -0
  73. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/resolution/strategy.py +0 -0
  74. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/core/utils/cycle.py +0 -0
  75. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/graph/__init__.py +0 -0
  76. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/graph/generate.py +0 -0
  77. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/graph/models.py +0 -0
  78. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/patterns/__init__.py +0 -0
  79. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/patterns/composite.py +0 -0
  80. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/patterns/observer.py +0 -0
  81. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/patterns/state.py +0 -0
  82. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/dependency/library/threading.py +0 -0
  83. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/app/main/__init__.py +0 -0
  84. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/app/main/imports.py +0 -0
  85. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/app/main/plugins.py +0 -0
  86. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/config.json +0 -0
  87. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/diagram.svg +0 -0
  88. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/abstract_factory/concrete1.py +0 -0
  89. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/abstract_factory/concrete2.py +0 -0
  90. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/builder/concreteA.py +0 -0
  91. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/builder/concreteB.py +0 -0
  92. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/factory/concreteA.py +0 -0
  93. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/creation/factory/concreteB.py +0 -0
  94. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/structural/bridge/abstraction/concrete.py +0 -0
  95. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/module/structural/bridge/implementation/concrete.py +0 -0
  96. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/__init__.py +0 -0
  97. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/deferred/interfaces.py +0 -0
  98. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/deferred/uvloop.py +0 -0
  99. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/imports.py +0 -0
  100. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/number/fake.py +0 -0
  101. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/settings.py +0 -0
  102. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/base/string/fake.py +0 -0
  103. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/__init__.py +0 -0
  104. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/bridge/bridgeA.py +0 -0
  105. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/events.py +0 -0
  106. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/products/productA.py +0 -0
  107. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/products/productB.py +0 -0
  108. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/products/productC.py +0 -0
  109. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/providers/creatorA.py +0 -0
  110. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/factory/providers/creatorB.py +0 -0
  111. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/imports.py +0 -0
  112. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/interfaces.py +0 -0
  113. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/observer/publisherA.py +0 -0
  114. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/hardware/settings.py +0 -0
  115. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/__init__.py +0 -0
  116. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/facade/facadeA.py +0 -0
  117. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/factory/__init__.py +0 -0
  118. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/factory/productA.py +0 -0
  119. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/imports.py +0 -0
  120. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/interfaces.py +0 -0
  121. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/example/plugin/reporter/settings.py +0 -0
  122. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/graph.py +0 -0
  123. {module_dependency-1.1.6 → module_dependency-1.1.7}/src/main.py +0 -0
  124. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/__init__.pyi +0 -0
  125. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/__init__.pyi +0 -0
  126. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/__init__.pyi +0 -0
  127. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/base.pyi +0 -0
  128. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/component.pyi +0 -0
  129. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/instance.pyi +0 -0
  130. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/module.pyi +0 -0
  131. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/generation/plugin.pyi +0 -0
  132. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/models/__init__.pyi +0 -0
  133. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/cli/models/base.pyi +0 -0
  134. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/__init__.pyi +0 -0
  135. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/agrupation/__init__.pyi +0 -0
  136. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/agrupation/entrypoint.pyi +0 -0
  137. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/agrupation/fallback.pyi +0 -0
  138. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/agrupation/module.pyi +0 -0
  139. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/agrupation/plugin.pyi +0 -0
  140. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/declaration/__init__.pyi +0 -0
  141. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/declaration/component.pyi +0 -0
  142. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/declaration/instance.pyi +0 -0
  143. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/declaration/product.pyi +0 -0
  144. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/declaration/validation.pyi +0 -0
  145. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/exceptions.pyi +0 -0
  146. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/injection/__init__.pyi +0 -0
  147. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/injection/injectable.pyi +0 -0
  148. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/injection/injection.pyi +0 -0
  149. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/injection/mixin.pyi +0 -0
  150. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/__init__.pyi +0 -0
  151. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/container.pyi +0 -0
  152. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/errors.pyi +0 -0
  153. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/registry.pyi +0 -0
  154. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/resolver.pyi +0 -0
  155. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/resolution/strategy.pyi +0 -0
  156. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/core/utils/cycle.pyi +0 -0
  157. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/graph/__init__.pyi +0 -0
  158. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/graph/models.pyi +0 -0
  159. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/graph/utils.pyi +0 -0
  160. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/patterns/__init__.pyi +0 -0
  161. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/patterns/composite.pyi +0 -0
  162. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/patterns/observer.pyi +0 -0
  163. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/patterns/state.pyi +0 -0
  164. {module_dependency-1.1.6 → module_dependency-1.1.7}/stubs/dependency/library/threading.pyi +0 -0
  165. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/cli/test_generation.py +0 -0
  166. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_agrupation.py +0 -0
  167. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_detectcycle.py +0 -0
  168. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_exceptions.py +0 -0
  169. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_injection.py +0 -0
  170. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_products.py +0 -0
  171. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_resolution.py +0 -0
  172. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_resource.py +0 -0
  173. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/core/test_validation.py +0 -0
  174. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/example/test_application.py +0 -0
  175. {module_dependency-1.1.6 → module_dependency-1.1.7}/tests/example/test_module.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: module_dependency
3
- Version: 1.1.6
3
+ Version: 1.1.7
4
4
  Summary: A dependency management tool for Python projects.
5
5
  Project-URL: Homepage, https://github.com/fabaindaiz/module-injection
6
6
  Project-URL: Documentation, https://github.com/fabaindaiz/module-dependency/tree/main/docs
@@ -70,14 +70,14 @@ class SomeModule(Module):
70
70
  - Promotes loose coupling and enables easier testing and maintenance
71
71
 
72
72
  ```python
73
- from abc import ABC, abstractmethod
73
+ from abc import abstractmethod
74
74
  from dependency.core import Component, component
75
75
  from ...plugin.........module import SomeModule
76
76
 
77
77
  @component(
78
78
  module=SomeModule, # Declares the module or plugin this component belongs to
79
79
  )
80
- class SomeService(ABC, Component):
80
+ class SomeService(Component):
81
81
  """This is the component class. A instance will be injected here.
82
82
  Components are only started when provided or bootstrapped.
83
83
  Components also defines the interface for all instances.
@@ -46,14 +46,14 @@ class SomeModule(Module):
46
46
  - Promotes loose coupling and enables easier testing and maintenance
47
47
 
48
48
  ```python
49
- from abc import ABC, abstractmethod
49
+ from abc import abstractmethod
50
50
  from dependency.core import Component, component
51
51
  from ...plugin.........module import SomeModule
52
52
 
53
53
  @component(
54
54
  module=SomeModule, # Declares the module or plugin this component belongs to
55
55
  )
56
- class SomeService(ABC, Component):
56
+ class SomeService(Component):
57
57
  """This is the component class. A instance will be injected here.
58
58
  Components are only started when provided or bootstrapped.
59
59
  Components also defines the interface for all instances.
@@ -70,7 +70,7 @@ be depended upon, but cannot be provided directly until an `Instance` implements
70
70
 
71
71
  ```python
72
72
  @component(module=HardwarePlugin)
73
- class HardwareFactory(ABC, Component):
73
+ class HardwareFactory(Component):
74
74
  @abstractmethod
75
75
  def createHardware(self, product: str) -> Hardware: ...
76
76
  ```
@@ -46,14 +46,14 @@ class SomeModule(Module):
46
46
  - Promotes loose coupling and enables easier testing and maintenance
47
47
 
48
48
  ```python
49
- from abc import ABC, abstractmethod
49
+ from abc import abstractmethod
50
50
  from dependency.core import Component, component
51
51
  from ...plugin.........module import SomeModule
52
52
 
53
53
  @component(
54
54
  module=SomeModule, # Declares the module or plugin this component belongs to
55
55
  )
56
- class SomeService(ABC, Component):
56
+ class SomeService(Component):
57
57
  """This is the component class. A instance will be injected here.
58
58
  Components are only started when provided or bootstrapped.
59
59
  Components also defines the interface for all instances.
@@ -69,7 +69,7 @@ testpaths = ["tests"]
69
69
 
70
70
  [project]
71
71
  name = "module_dependency"
72
- version = "1.1.6"
72
+ version = "1.1.7"
73
73
  dependencies = [
74
74
  "dependency_injector",
75
75
  "jinja2",
@@ -1,4 +1,4 @@
1
- from abc import abstractmethod
1
+ from abc import ABC, abstractmethod
2
2
  from typing import Any, Callable, Optional, Union
3
3
  from dependency_injector import containers, providers
4
4
  from dependency_injector.wiring import _Marker, Modifier, Provide, Provider, Closing
@@ -6,7 +6,7 @@ from dependency_injector.wiring import _Marker, Modifier, Provide, Provider, Clo
6
6
  # Constant that's True when type checking, but False here.
7
7
  TYPE_CHECKING = False
8
8
 
9
- class WiringMixin:
9
+ class WiringMixin(ABC):
10
10
  """Base class for wiring mixins."""
11
11
  @classmethod
12
12
  @abstractmethod
@@ -12,7 +12,7 @@ class AbtractProductB(ABC):
12
12
  pass
13
13
 
14
14
  @component()
15
- class AbtractFactory(ABC, Component):
15
+ class AbtractFactory(Component):
16
16
  def work(self) -> None:
17
17
  instance1 = self.createProductA()
18
18
  instance2 = self.createProductB()
@@ -7,7 +7,7 @@ class Product(ABC):
7
7
  pass
8
8
 
9
9
  @component()
10
- class Builder(ABC, Component):
10
+ class Builder(Component):
11
11
  @abstractmethod
12
12
  def reset(self) -> None:
13
13
  pass
@@ -7,7 +7,7 @@ class Product(ABC):
7
7
  pass
8
8
 
9
9
  @component()
10
- class Creator(ABC, Component):
10
+ class Creator(Component):
11
11
  def someOperation(self) -> None:
12
12
  instance = self.createProduct()
13
13
  instance.doStuff()
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
2
2
  from dependency.core import Component, component
3
3
 
4
4
  @component()
5
- class Abstraction(ABC, Component):
5
+ class Abstraction(Component):
6
6
  @abstractmethod
7
7
  def feature1(self):
8
8
  pass
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
2
2
  from dependency.core import Component, component
3
3
 
4
4
  @component()
5
- class Implementation(ABC, Component):
5
+ class Implementation(Component):
6
6
  @abstractmethod
7
7
  def method1(self):
8
8
  pass
@@ -10,7 +10,7 @@ T = TypeVar('T')
10
10
  @component(
11
11
  module=BasePlugin,
12
12
  )
13
- class DeferredService(ABC, Component):
13
+ class DeferredService(Component):
14
14
  """DeferredService
15
15
 
16
16
  Deferred Service is an abstract class that defines the methods to interact with asyncio tasks.
@@ -5,7 +5,7 @@ from example.plugin.base import BasePlugin
5
5
  @component(
6
6
  module=BasePlugin,
7
7
  )
8
- class NumberService(ABC, Component):
8
+ class NumberService(Component):
9
9
  @abstractmethod
10
10
  def getRandomNumber(self) -> int:
11
11
  pass
@@ -5,7 +5,7 @@ from example.plugin.base import BasePlugin
5
5
  @component(
6
6
  module=BasePlugin,
7
7
  )
8
- class StringService(ABC, Component):
8
+ class StringService(Component):
9
9
  @abstractmethod
10
10
  def getRandomString(self) -> str:
11
11
  pass
@@ -5,7 +5,7 @@ from example.plugin.hardware import HardwarePlugin
5
5
  @component(
6
6
  module=HardwarePlugin,
7
7
  )
8
- class HardwareAbstraction(ABC, Component):
8
+ class HardwareAbstraction(Component):
9
9
  @abstractmethod
10
10
  def someOperation(self, product: str) -> None:
11
11
  pass
@@ -6,7 +6,7 @@ from example.plugin.hardware.interfaces import Hardware
6
6
  @component(
7
7
  module=HardwarePlugin,
8
8
  )
9
- class HardwareFactory(ABC, Component):
9
+ class HardwareFactory(Component):
10
10
  @abstractmethod
11
11
  def createHardware(self, product: str) -> Hardware:
12
12
  pass
@@ -8,7 +8,7 @@ from example.plugin.hardware.events import HardwareEventContext
8
8
  @component(
9
9
  module=HardwarePlugin,
10
10
  )
11
- class HardwareObserver(ABC, Component):
11
+ class HardwareObserver(Component):
12
12
  @abstractmethod
13
13
  def subscribe(self, listener: type[EventSubscriber]) -> Callable:
14
14
  pass
@@ -5,7 +5,7 @@ from example.plugin.reporter import ReporterPlugin
5
5
  @component(
6
6
  module=ReporterPlugin,
7
7
  )
8
- class ReportFacade(ABC, Component):
8
+ class ReportFacade(Component):
9
9
  @abstractmethod
10
10
  def startModule(self) -> None:
11
11
  pass
@@ -1,12 +1,12 @@
1
1
  import abc
2
- from abc import abstractmethod
2
+ from abc import ABC, abstractmethod
3
3
  from dependency_injector import containers as containers, providers as providers
4
4
  from dependency_injector.wiring import Closing as Closing, Modifier as Modifier, Provide as Provide, _Marker
5
5
  from typing import Any, Callable
6
6
 
7
7
  TYPE_CHECKING: bool
8
8
 
9
- class WiringMixin(metaclass=abc.ABCMeta):
9
+ class WiringMixin(ABC, metaclass=abc.ABCMeta):
10
10
  """Base class for wiring mixins."""
11
11
  @classmethod
12
12
  @abstractmethod
@@ -5,10 +5,14 @@ from dependency.library.graph.models import Cluster as Cluster, Edge as Edge, Gr
5
5
  def generate_graph(output: str = 'build/output', ignore_modules: set[str] = {'BasePlugin'}) -> None:
6
6
  """Generate a graph visualization of the registered containers and providers.
7
7
 
8
- This method is intended for debugging and documentation purposes, allowing
9
- developers to visualize the structure of their dependency graph. It uses
10
- the graphviz library to create a visual representation of the nodes and
11
- their relationships.
8
+ This method allows you to visualize the structure of your dependency graph, including the
9
+ containers (modules) and providers (components/products) and their relationships. The generated
10
+ graph can be used for debugging, documentation, or simply to understand the structure of your
11
+ dependency graph. The output will be saved as an SVG file at the specified location.
12
+
13
+ Args:
14
+ output: The output path for the generated graph.
15
+ ignore_modules: A set of module names to ignore during graph generation.
12
16
  """
13
17
  def process_container(graph: Graph, container: ContainerInjection, ignore_modules: set[str] = {'BasePlugin'}) -> Cluster: ...
14
18
  def process_provider(graph: Graph, provider: ProviderInjection, ignore_modules: set[str] = {'BasePlugin'}) -> Node: ...
@@ -14,7 +14,7 @@ class TModule(Module):
14
14
  @component(
15
15
  module=TModule,
16
16
  )
17
- class TComponent(ABC, Component):
17
+ class TComponent(Component):
18
18
  @abstractmethod
19
19
  def method(self) -> str:
20
20
  pass
@@ -18,7 +18,7 @@ class TStandalone(Component):
18
18
  def method(self) -> str:
19
19
  return "Hello, World!"
20
20
 
21
- class TProduct(ABC, Component):
21
+ class TProduct(Component):
22
22
  @abstractmethod
23
23
  def method(self) -> str:
24
24
  pass
@@ -8,7 +8,7 @@ from dependency.core.injection import Injectable
8
8
  class TModule(Module):
9
9
  pass
10
10
 
11
- class TProduct(ABC, Component):
11
+ class TProduct(Component):
12
12
  @abstractmethod
13
13
  def method(self) -> str:
14
14
  pass
@@ -21,5 +21,7 @@ def test_component(setup: object):
21
21
  numberService2: NumberService = NumberService.provide()
22
22
  assert numberService1 == numberService2
23
23
  assert isinstance(numberService1, NumberService)
24
- assert numberService1.getRandomNumber() == 42
25
- assert numberService2.getRandomNumber() == 43
24
+
25
+ number1 = numberService1.getRandomNumber()
26
+ number2 = numberService2.getRandomNumber()
27
+ assert number1 + 1 == number2