From 1fd54927c5fde62d6f580d9d375cf5ec3c022f5c Mon Sep 17 00:00:00 2001 From: Roman Mogilatov <rmogilatov@gmail.com> Date: Mon, 23 Nov 2015 18:45:04 +0200 Subject: [PATCH] Update writing of custom providers docs --- docs/images/providers/custom_provider.png | Bin 28689 -> 37001 bytes docs/providers/custom.rst | 21 +++++++++++---------- examples/providers/custom_factory.py | 19 ++++++++++++++----- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/images/providers/custom_provider.png b/docs/images/providers/custom_provider.png index 784c90bd2aea7dc0cbfd041c8fe1e1fa9df7fa28..398e6bfa2c30ceb868ac01987b5db528c5196fdf 100644 GIT binary patch literal 37001 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 literal 28689 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 DVlAv0 diff --git a/docs/providers/custom.rst b/docs/providers/custom.rst index 1b3d0fd9..effd87fa 100644 --- a/docs/providers/custom.rst +++ b/docs/providers/custom.rst @@ -1,27 +1,28 @@ Writing of custom providers ------------------------ +.. module:: dependency_injector.providers + List of *Dependency Injector* providers could be widened with custom providers. Below are some tips and recommendations that have to be met: 1. Every custom provider has to extend base provider class - - ``di.Provider``. - 2. Cusom provider's ``__init__()`` could be overriden with only condition: - parent initializer (``di.Provider.__init__()``) has to be called. + :py:class:`Provider`. + 2. Cusom provider's ``__init__()`` could be overriden, but parent's + initializer (:py:meth:`Provider.__init__`) has to be called. 3. Providing strategy has to be implemented in custom provider's - ``_provide()`` method. All ``*args`` & ``**kwargs`` that will be - recieved by ``di.Provider.__call__()`` will be transefed to custom - provider's ``_provide()``. + :py:meth:`Provider._provide` method. All ``*args`` & ``**kwargs`` + that will be recieved by :py:meth:`Provider.__call__` will be + transefed to custom provider's :py:meth:`Provider._provide`. 4. If custom provider is based on some standard providers, it is better to use delegation of standard providers, then extending of them. 5. If custom provider defines any attributes, it is good to list them in ``__slots__`` attribute (as *Dependency Injector* does). It can save some memory. - 6. If custom provider deals with injections (e.g. ``di.Factory``, - ``di.Singleton`` providers), it is strongly recommended to be - consistent with ``di.Factory``, ``di.Singleton`` and ``di.Callable`` - providers style. + 6. If custom provider deals with injections, it is strongly recommended + to be consistent with :py:class:`Factory`, :py:class:`Singleton` and + :py:class:`Callable` providers style. Example: diff --git a/examples/providers/custom_factory.py b/examples/providers/custom_factory.py index 2264c736..7193fbaa 100644 --- a/examples/providers/custom_factory.py +++ b/examples/providers/custom_factory.py @@ -1,24 +1,33 @@ -"""Custom `di.Factory` example.""" +"""Custom `Factory` example.""" -import dependency_injector as di +from dependency_injector import providers class User(object): """Example class User.""" -class UsersFactory(di.Provider): +class UsersFactory(providers.Provider): """Example users factory.""" __slots__ = ('_factory',) def __init__(self): """Initializer.""" - self._factory = di.Factory(User) + self._factory = providers.Factory(User) super(UsersFactory, self).__init__() def _provide(self, *args, **kwargs): - """Return provided instance.""" + """Return provided instance. + + :param args: tuple of context positional arguments + :type args: tuple[object] + + :param kwargs: dictionary of context keyword arguments + :type kwargs: dict[str, object] + + :rtype: object + """ return self._factory(*args, **kwargs)