From ef5c360a30ac1a08f885914eb2dc7ae6192a57d0 Mon Sep 17 00:00:00 2001 From: Roman Mogilatov Date: Wed, 2 Sep 2015 12:23:18 +0300 Subject: [PATCH] Update catalog docs --- docs/catalogs/index.rst | 47 ++++++++++++------------ docs/images/catalogs/simple.png | Bin 32492 -> 31779 bytes examples/catalogs/override.py | 2 +- examples/catalogs/override_decorator.py | 2 +- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/docs/catalogs/index.rst b/docs/catalogs/index.rst index bf3005d0..d403ba21 100644 --- a/docs/catalogs/index.rst +++ b/docs/catalogs/index.rst @@ -4,35 +4,34 @@ Catalogs Catalogs are collections of providers. Main purpose of catalogs is to group providers. -There are, actually, several popular use cases of catalogs: +There are, actually, several popular cases of catalogs usage: -- Grouping of providers from same architectural layer (for example, +- Grouping of providers from the same architectural layer (for example, ``Services``, ``Models`` and ``Forms`` catalogs). -- Grouping of providers from a same functional components (for example, +- Grouping of providers from the same functional groups (for example, catalog ``Users``, that contains all functional parts of ``Users`` component). -Als, for both of these and some other cases, it might be useful to attach +Also, for both of these and some other cases, it might be useful to attach some init / shutdown functionality or something else, that deals with group of providers. Writing catalogs ---------------- -Catalogs have to be created by extending base catalog class -``dependency_injector.catalog.AbstractCatalog``. +Catalogs have to extend base catalog class ``di.AbstractCatalog``. Providers have to be defined like catalog's attributes. Every provider in -catalog has name. This name should follow ``some_provider`` manner, that is -standard naming convention for names of attributes in Python. +catalog has name. This name should follow ``some_provider`` convention, +that is standard naming convention for attribute names in Python. .. note:: - It might be useful to add such - ``""":type: (dependency_injector.Provider) -> Object1"""`` documentation - blocks one line after provider definition for every provider. It will help - code analysis tools and IDE's to understand that variable above contains - some callable object, that returns particular instance as a result of call. + It might be useful to add such ``""":type: (di.Provider) -> Object1"""`` + documentation blocks one line after provider definition for every provider. + It will help code analyzing tools and IDE's to understand that variable + above contains some callable object, that returns particular instance + in a result of call. Example: @@ -49,13 +48,13 @@ Operating with catalog providers There are several things that could be useful for operating with catalog providers: -- First of all, ``Catalog.providers`` attribute contains ``dict`` with all - catalog providers and their catalog names. This dictionary could be used - for any kind of operations that could be done with providers. The only note, - is that ``Catalog.providers`` attribute is read-only. -- Second one, ``Catalog.filter(provider_type=Provider)`` method could be - used for filtering catalog providers by provider types (for example, for - getting all ``Factory`` providers). +- First of all, ``di.AbstractCatalog.providers`` attribute contains ``dict`` + with all catalog providers. This dictionary could be used for any kind of + operations that could be done with providers. The only note, is that + ``di.AbstractCatalog.providers`` attribute is read-only. +- Second one, ``di.AbstractCatalog.filter(provider_type=di.Provider)`` method + could be used for filtering catalog providers by provider types (for example, + for getting all ``di.Factory`` providers). Example: @@ -71,15 +70,15 @@ same names in overridden catalog. There are two ways to override catalog by another catalog: -- Use ``Catalog.override(Catalog)`` method. -- Use ``@override(Catalog)`` class decorator. +- Use ``di.AbstractCatalog.override(AnotherCatalog)`` method. +- Use ``@di.override(AnotherCatalog)`` class decorator. -Example of overriding catalog using ``Catalog.override()`` method: +Example of overriding catalog using ``di.AbstractCatalog.override()`` method: .. literalinclude:: ../../examples/catalogs/override.py :language: python -Example of overriding catalog using ``@override()`` decorator: +Example of overriding catalog using ``@di.override()`` decorator: .. literalinclude:: ../../examples/catalogs/override_decorator.py :language: python diff --git a/docs/images/catalogs/simple.png b/docs/images/catalogs/simple.png index 71006b0c8b5387236a7ff6c3aaa4dde1562c95f9..ae675ca65787aa0411b00386d0cbc7fc5d6f83ee 100644 GIT binary patch literal 31779 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 K%lsEcAO9CLt3#~- diff --git a/examples/catalogs/override.py b/examples/catalogs/override.py index ff45a9ca..07bb8f0f 100644 --- a/examples/catalogs/override.py +++ b/examples/catalogs/override.py @@ -1,4 +1,4 @@ -"""`Catalog.override()` example.""" +"""Catalog overriding example.""" import collections import dependency_injector as di diff --git a/examples/catalogs/override_decorator.py b/examples/catalogs/override_decorator.py index 099aa577..0f53d244 100644 --- a/examples/catalogs/override_decorator.py +++ b/examples/catalogs/override_decorator.py @@ -1,4 +1,4 @@ -"""Catalog `@override()` decorator example.""" +"""Catalog overriding using `@di.override()` decorator example.""" import collections import dependency_injector as di