You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/providers/custom.rst
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -16,8 +16,8 @@ To create a custom provider you need to follow these rules:
16
16
1. New provider class should inherit :py:class:`Provider`.
17
17
2. You need to implement the ``Provider._provide()`` method.
18
18
3. You need to implement the ``Provider.__deepcopy__()`` method. It should return an
19
-
equivalent copy of a provider. All providers must be copied with a ``deepcopy()`` function
20
-
from the ``providers`` module. After the a new provider object is created use
19
+
equivalent copy of a provider. All providers must be copied with the ``deepcopy()`` function
20
+
from the ``providers`` module. It's essential to pass ``memo`` into ``deepcopy`` in order to keep the preconfigured ``args`` and ``kwargs`` of stored providers. After the a new provider object is created, use
21
21
``Provider._copy_overriding()`` method to copy all overriding providers. See the example
22
22
below.
23
23
4. If new provider has a ``__init__()`` method, it should call the parent
@@ -33,7 +33,7 @@ To create a custom provider you need to follow these rules:
33
33
.. note::
34
34
1. Prefer delegation over inheritance. If you choose between inheriting a ``Factory`` or
35
35
inheriting a ``Provider`` and use ``Factory`` internally - the last is better.
36
-
2. When create a new provider follow the ``Factory``-like injections style. Consistency matters.
36
+
2. When creating a new provider follow the ``Factory``-like injections style. Consistency matters.
37
37
3. Use the ``__slots__`` attribute to make sure nothing could be attached to your provider. You
0 commit comments