mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 01:47:36 +03:00 
			
		
		
		
	Adding static provider docs
This commit is contained in:
		
							parent
							
								
									d386969004
								
							
						
					
					
						commit
						91ea2a54f6
					
				| 
						 | 
					@ -1,77 +1,6 @@
 | 
				
			||||||
Providers
 | 
					Providers
 | 
				
			||||||
=========
 | 
					=========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Static providers
 | 
					 | 
				
			||||||
----------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Static providers are family of providers that return their values "as is".
 | 
					 | 
				
			||||||
There are four of static providers: ``Class``, ``Object``, ``Function`` and
 | 
					 | 
				
			||||||
``Value``. All of them has the same behaviour, but usage of anyone is
 | 
					 | 
				
			||||||
predicted by readability and providable object's type.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.. code-block:: python
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    """Static providers example."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    from objects.providers import Class
 | 
					 | 
				
			||||||
    from objects.providers import Object
 | 
					 | 
				
			||||||
    from objects.providers import Function
 | 
					 | 
				
			||||||
    from objects.providers import Value
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cls_provider = Class(object)
 | 
					 | 
				
			||||||
    assert cls_provider() is object
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    object_provider = Object(object())
 | 
					 | 
				
			||||||
    assert isinstance(object_provider(), object)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    function_provider = Function(len)
 | 
					 | 
				
			||||||
    assert function_provider() is len
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    value_provider = Value(123)
 | 
					 | 
				
			||||||
    assert value_provider() == 123
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Callable providers
 | 
					 | 
				
			||||||
------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
``Callable`` provider is a provider that decorates particular callable with
 | 
					 | 
				
			||||||
some injections. Every call of this provider returns result of call of initial
 | 
					 | 
				
			||||||
callable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.. code-block:: python
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    """`Callable` providers examples."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    from objects.providers import Callable
 | 
					 | 
				
			||||||
    from objects.providers import Singleton
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    from objects.injections import KwArg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    import sqlite3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def some_function(arg, database):
 | 
					 | 
				
			||||||
        """Example function that has input arg and dependency on database."""
 | 
					 | 
				
			||||||
        return database.execute('SELECT @1', [arg]).fetchone()[0]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Database and `ObjectA` providers.
 | 
					 | 
				
			||||||
    database = Singleton(sqlite3.Connection,
 | 
					 | 
				
			||||||
                         KwArg('database', ':memory:'))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    some_function = Callable(some_function,
 | 
					 | 
				
			||||||
                             KwArg('database', database))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Some asserts.
 | 
					 | 
				
			||||||
    assert some_function(1) == 1
 | 
					 | 
				
			||||||
    assert some_function(2) == 2
 | 
					 | 
				
			||||||
    assert some_function(2231) == 2231
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
External dependency providers
 | 
					External dependency providers
 | 
				
			||||||
-----------------------------
 | 
					-----------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@ All providers are callable. They describe how particular objects are provided.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
..  toctree::
 | 
					..  toctree::
 | 
				
			||||||
    :maxdepth: 2
 | 
					    :maxdepth: 2
 | 
				
			||||||
    :glob:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *
 | 
					    factory
 | 
				
			||||||
 | 
					    singleton
 | 
				
			||||||
 | 
					    static
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										42
									
								
								docs/providers/static.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								docs/providers/static.rst
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					Static providers
 | 
				
			||||||
 | 
					----------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Static providers are family of providers that return their values "as is".
 | 
				
			||||||
 | 
					There are four types of static providers:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - ``Class``
 | 
				
			||||||
 | 
					    - ``Object``
 | 
				
			||||||
 | 
					    - ``Function``
 | 
				
			||||||
 | 
					    - ``Value``
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All of them have the same behaviour, but usage of anyone is predicted by
 | 
				
			||||||
 | 
					readability and providing object's type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """`Static` providers example."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    from objects.providers import Class
 | 
				
			||||||
 | 
					    from objects.providers import Object
 | 
				
			||||||
 | 
					    from objects.providers import Function
 | 
				
			||||||
 | 
					    from objects.providers import Value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Provides class - `object`
 | 
				
			||||||
 | 
					    cls_provider = Class(object)
 | 
				
			||||||
 | 
					    assert cls_provider() is object
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Provides object - `object()`
 | 
				
			||||||
 | 
					    object_provider = Object(object())
 | 
				
			||||||
 | 
					    assert isinstance(object_provider(), object)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Provides function - `len`
 | 
				
			||||||
 | 
					    function_provider = Function(len)
 | 
				
			||||||
 | 
					    assert function_provider() is len
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Provides value - `123`
 | 
				
			||||||
 | 
					    value_provider = Value(123)
 | 
				
			||||||
 | 
					    assert value_provider() == 123
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
"""Static providers example."""
 | 
					"""`Static` providers example."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from objects.providers import Class
 | 
					from objects.providers import Class
 | 
				
			||||||
from objects.providers import Object
 | 
					from objects.providers import Object
 | 
				
			||||||
| 
						 | 
					@ -6,14 +6,18 @@ from objects.providers import Function
 | 
				
			||||||
from objects.providers import Value
 | 
					from objects.providers import Value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Provides class - `object`
 | 
				
			||||||
cls_provider = Class(object)
 | 
					cls_provider = Class(object)
 | 
				
			||||||
assert cls_provider() is object
 | 
					assert cls_provider() is object
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Provides object - `object()`
 | 
				
			||||||
object_provider = Object(object())
 | 
					object_provider = Object(object())
 | 
				
			||||||
assert isinstance(object_provider(), object)
 | 
					assert isinstance(object_provider(), object)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Provides function - `len`
 | 
				
			||||||
function_provider = Function(len)
 | 
					function_provider = Function(len)
 | 
				
			||||||
assert function_provider() is len
 | 
					assert function_provider() is len
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Provides value - `123`
 | 
				
			||||||
value_provider = Value(123)
 | 
					value_provider = Value(123)
 | 
				
			||||||
assert value_provider() == 123
 | 
					assert value_provider() == 123
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user