From f32363d25927f7fad22293dbe602df4f659b9778 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Thu, 3 Sep 2020 13:36:19 -0400 Subject: [PATCH] Edit key features pages --- docs/introduction/key_features.rst | 69 +++++++++--------------------- docs/main/changelog.rst | 4 ++ 2 files changed, 24 insertions(+), 49 deletions(-) diff --git a/docs/introduction/key_features.rst b/docs/introduction/key_features.rst index c2a1756f..bceb6e93 100644 --- a/docs/introduction/key_features.rst +++ b/docs/introduction/key_features.rst @@ -3,66 +3,37 @@ Key features .. meta:: :keywords: Python,DI,Dependency injection,IoC,Inversion of Control - :description: This article describes key features of "Dependency Injector" - framework. It also provides some cases and recommendations - about usage of "Dependency Injector" framework. + :description: This article describes key features of the Dependency Injector + framework. +``Dependency Injector`` is a dependency injection framework for Python. It takes the +responsibility of assembling your objects. -``Dependency Injector`` is a dependency injection framework for Python. -It was designed to be a unified and developer-friendly tool that helps -implement a dependency injection design pattern in a formal, pretty, and -Pythonic way. +Key features of the ``Dependency Injector`` are: + +- **Pythonic design**. Simple & explicit. +- **High performance**. Written in ``Cython``. +- **Maturity and production readiness**. Downloaded over 200.000 times a month. It stands on two principles: -- Explicit is better than implicit (PEP20). -- Do no magic to your code. +- **Explicit is better than implicit (PEP20)**. +- **Do not do any magic to your code**. -How does it different from the other frameworks? +How is the ``Dependency Injector`` different from the other frameworks? - **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*. - **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks. -``Dependency Injector`` makes a simple contract with you: +In addition ``Dependency Injector`` is: -- You tell the framework how to build you code -- The framework does it for you +- Tested. +- Documented. +- Supported. +- Semantically versioned. +- Distributed as pre-compiled wheels. -The power of the ``Dependency Injector`` is in its simplicity and straightforwardness. It is a simple tool for the powerful concept. - -The key features of the ``Dependency Injector`` framework are: - -+ Easy, smart, and Pythonic style. -+ Does NOT pollute client code. -+ Obvious and clear structure. -+ Extensibility and flexibility. -+ High performance. -+ Memory efficiency. -+ Thread safety. -+ Documented. -+ Semantically versioned. -+ Distributed as pre-compiled wheels. - -``Dependency Injector`` containers and providers are implemented as C extension -types using ``Cython``. - -``Dependency Injector`` framework can be used in the different application types: - -+ Web applications based on the ``Flask``, ``Django`` or any other web framework. -+ Asynchronous applications ``asyncio``, ``aiohttp``, ``Tornado``, or ``Twisted``. -+ Standalone frameworks and libraries. -+ GUI applications. - -``Dependency Injector`` framework can be integrated on the different project -stages: - -+ It can be used in the beginning of the development of a new application. -+ It can be integrated into application that is on its active development stage. -+ It can be used for refactoring of legacy application. - -Components of ``Dependency Injector`` framework could be used: - -+ In composition with each other. -+ Independently from each other. +The power of the ``Dependency Injector`` is in its straightforwardness. It is a simple tool for +the powerful concept. .. disqus:: diff --git a/docs/main/changelog.rst b/docs/main/changelog.rst index 498ab0e3..6e5d20f2 100644 --- a/docs/main/changelog.rst +++ b/docs/main/changelog.rst @@ -7,6 +7,10 @@ that were made in every particular version. From version 0.7.6 *Dependency Injector* framework strictly follows `Semantic versioning`_ +Development version +------------------- +- Update "Key Features" documentation page. + 3.36.0 ------ - Update providers overriding documentation and rework examples.