Add API docs
This commit is contained in:
parent
da4976e3c7
commit
ec6bd0c2c1
|
@ -1,62 +1,7 @@
|
|||
dependency_injector.catalogs
|
||||
----------------------------
|
||||
``dependency_injector.catalogs``
|
||||
--------------------------------
|
||||
|
||||
.. automodule:: dependency_injector.catalogs
|
||||
|
||||
|
||||
Declarative catalog
|
||||
-------------------
|
||||
|
||||
.. autoclass:: DeclarativeCatalog
|
||||
:member-order: bysource
|
||||
:members:
|
||||
|
||||
.. classmethod:: __getattr__(name)
|
||||
|
||||
Return provider with specified name or raise en error.
|
||||
|
||||
:param name: Attribute's name
|
||||
:type name: str
|
||||
|
||||
:raise: dependency_injector.UndefinedProviderError
|
||||
|
||||
.. classmethod:: __setattr__(cls, name, value)
|
||||
|
||||
Handle setting of catalog attributes.
|
||||
|
||||
Setting of attributes works as usual, but if value of attribute is
|
||||
provider, this provider will be bound to catalog correctly.
|
||||
|
||||
:param name: Attribute's name
|
||||
:type name: str
|
||||
|
||||
:param value: Attribute's value
|
||||
:type value: dependency_injector.Provider | object
|
||||
|
||||
:rtype: None
|
||||
|
||||
.. classmethod:: __delattr__(cls, name)
|
||||
|
||||
Handle deleting of catalog attibute.
|
||||
|
||||
Deleting of attributes works as usual, but if value of attribute is
|
||||
provider, this provider will be unbound from catalog correctly.
|
||||
|
||||
:param name: Attribute's name
|
||||
:type name: str
|
||||
|
||||
:rtype: None
|
||||
|
||||
.. classmethod:: __repr__(cls, name)
|
||||
|
||||
Return string representation of the catalog.
|
||||
|
||||
:rtype: str
|
||||
|
||||
Dynamic catalog
|
||||
---------------
|
||||
|
||||
.. autoclass:: DynamicCatalog
|
||||
:member-order: bysource
|
||||
:members:
|
||||
:members:
|
||||
:special-members:
|
||||
:member-order: bysource
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
``dependency_injector.errors``
|
||||
------------------------------
|
||||
|
||||
.. automodule:: dependency_injector.errors
|
||||
:members:
|
|
@ -3,7 +3,10 @@ API
|
|||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:maxdepth: 2
|
||||
|
||||
top_level
|
||||
providers
|
||||
catalogs
|
||||
errors
|
||||
utils
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
dependency_injector.providers
|
||||
-----------------------------
|
||||
``dependency_injector.providers``
|
||||
---------------------------------
|
||||
|
||||
.. automodule:: dependency_injector.providers
|
||||
:members:
|
||||
:special-members:
|
||||
:private-members:
|
||||
:member-order: bysource
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
``dependency_injector``
|
||||
-----------------------
|
||||
|
||||
.. automodule:: dependency_injector
|
||||
:members:
|
||||
:special-members:
|
|
@ -0,0 +1,5 @@
|
|||
``dependency_injector.utils``
|
||||
-----------------------------
|
||||
|
||||
.. automodule:: dependency_injector.utils
|
||||
:members:
|
|
@ -1,13 +1,13 @@
|
|||
Declarative catalogs
|
||||
--------------------
|
||||
|
||||
``di.DeclarativeCatalog`` is a catalog of providers that could be defined in
|
||||
declarative manner. It should cover most of the cases when list of providers
|
||||
that would be included in catalog is deterministic (catalog will not change
|
||||
its structure in runtime).
|
||||
:py:class:`dependency_injector.catalogs.DeclarativeCatalog` is a catalog of
|
||||
providers that could be defined in declarative manner. It should cover most
|
||||
of the cases when list of providers that would be included in catalog is
|
||||
deterministic (catalog will not change its structure in runtime).
|
||||
|
||||
Declarative catalogs have to extend base declarative catalog class -
|
||||
``di.DeclarativeCatalog``.
|
||||
:py:class:`dependency_injector.catalogs.DeclarativeCatalog`.
|
||||
|
||||
Providers have to be defined like catalog's class attributes. Every provider in
|
||||
catalog has name. This name should follow ``some_provider`` convention,
|
||||
|
@ -15,7 +15,8 @@ that is standard naming convention for attribute names in Python.
|
|||
|
||||
.. note::
|
||||
|
||||
It might be useful to add such ``""":type: di.Provider -> Object1"""``
|
||||
It might be useful to add such
|
||||
``""":type: dependency_injector.providers.Provider -> Object1"""``
|
||||
docstrings just on the next line after provider's definition. It will
|
||||
help code analyzing tools and IDE's to understand that variable above
|
||||
contains some callable object, that returns particular instance as a
|
||||
|
@ -30,9 +31,9 @@ Here is an simple example of declarative catalog with several factories:
|
|||
.. literalinclude:: ../../examples/catalogs/declarative.py
|
||||
:language: python
|
||||
|
||||
``di.DeclarativeCatalog`` has several features that could be useful for some
|
||||
kind of operations on catalog's providers (please visit API docs for
|
||||
getting full list of feautes -
|
||||
:py:class:`dependency_injector.catalogs.DeclarativeCatalog` has several
|
||||
features that could be useful for some kind of operations on catalog's
|
||||
providers (please visit API docs for getting full list of feautes -
|
||||
:py:class:`dependency_injector.catalogs.DeclarativeCatalog`):
|
||||
|
||||
Example:
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
"""Declarative catalog example."""
|
||||
|
||||
import dependency_injector as di
|
||||
from dependency_injector import catalogs
|
||||
from dependency_injector import providers
|
||||
|
||||
|
||||
class Catalog(di.DeclarativeCatalog):
|
||||
class Catalog(catalogs.DeclarativeCatalog):
|
||||
"""Providers catalog."""
|
||||
|
||||
factory1 = di.Factory(object)
|
||||
""":type: di.Provider -> object"""
|
||||
factory1 = providers.Factory(object)
|
||||
""":type: providers.Provider -> object"""
|
||||
|
||||
factory2 = di.Factory(object)
|
||||
""":type: di.Provider -> object"""
|
||||
factory2 = providers.Factory(object)
|
||||
""":type: providers.Provider -> object"""
|
||||
|
||||
# Creating some objects:
|
||||
object1 = Catalog.factory1()
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
"""Declarative catalog API example."""
|
||||
|
||||
import dependency_injector as di
|
||||
from dependency_injector import catalogs
|
||||
from dependency_injector import providers
|
||||
|
||||
|
||||
class CatalogA(di.DeclarativeCatalog):
|
||||
class CatalogA(catalogs.DeclarativeCatalog):
|
||||
"""Example catalog A."""
|
||||
|
||||
provider1 = di.Factory(object)
|
||||
""":type: di.Provider -> object"""
|
||||
provider1 = providers.Factory(object)
|
||||
""":type: providers.Provider -> object"""
|
||||
|
||||
|
||||
class CatalogB(CatalogA):
|
||||
"""Example catalog B."""
|
||||
|
||||
provider2 = di.Singleton(object)
|
||||
""":type: di.Provider -> object"""
|
||||
provider2 = providers.Singleton(object)
|
||||
""":type: providers.Provider -> object"""
|
||||
|
||||
|
||||
# Making some asserts for `providers` attribute:
|
||||
|
@ -29,7 +30,3 @@ assert CatalogB.cls_providers == dict(provider2=CatalogB.provider2)
|
|||
# Making some asserts for `inherited_providers` attribute:
|
||||
assert CatalogA.inherited_providers == dict()
|
||||
assert CatalogB.inherited_providers == dict(provider1=CatalogA.provider1)
|
||||
|
||||
# Making some asserts for `filter()` method:
|
||||
assert CatalogB.filter(di.Factory) == dict(provider1=CatalogA.provider1)
|
||||
assert CatalogB.filter(di.Singleton) == dict(provider2=CatalogB.provider2)
|
||||
|
|
Loading…
Reference in New Issue