1
1
Changelog
2
2
=========
3
3
4
- This document describes all the changes in *Dependency Injector * framework
4
+ This document describes all the changes in *Dependency Injector * framework
5
5
that were made in every particular version.
6
6
7
- From version 0.7.6 *Dependency Injector * framework strictly
7
+ From version 0.7.6 *Dependency Injector * framework strictly
8
8
follows `Semantic versioning `_
9
9
10
+ Develop
11
+ -------
12
+
13
+ - Drop support of Python 2.7, 3.5, and 3.6.
14
+ - Regenerate C sources using Cython 0.29.36.
15
+
10
16
4.41.0
11
17
------
12
18
- Add support of Python 3.11.
@@ -110,7 +116,7 @@ follows `Semantic versioning`_
110
116
- Fix a typo in ``Factory `` provider docs ``service.add_attributes(clent=client) ``
111
117
`#499 <https://github.com/ets-labs/python-dependency-injector/issues/499 >`_.
112
118
Thanks to `@rajanjha786 <https://github.com/rajanjha786 >`_ for the contribution.
113
- - Fix a typo in ``boto3 `` example
119
+ - Fix a typo in ``boto3 `` example
114
120
`#511 <https://github.com/ets-labs/python-dependency-injector/issues/511 >`_.
115
121
Thanks to `@whysage <https://github.com/whysage >`_ for the contribution.
116
122
@@ -1310,24 +1316,24 @@ Misc:
1310
1316
------
1311
1317
- Add ``DependenciesContainer `` provider.
1312
1318
- Add "use_cases" example miniapp.
1313
- - Update documentation requirements to use fixed version of
1319
+ - Update documentation requirements to use fixed version of
1314
1320
``sphinxcontrib-disqus ``.
1315
1321
1316
1322
1317
1323
3.9.1
1318
1324
-----
1319
1325
- Fix docs build problem (``sphinx `` is frozen on ``1.5.6 `` version because of
1320
- incompatibility with ``sphinxcontrib-discus ``).
1326
+ incompatibility with ``sphinxcontrib-discus ``).
1321
1327
- Add badge for docs.
1322
1328
1323
1329
3.9.0
1324
1330
-----
1325
- - Change initialization of declarative container, so it accepts overriding
1326
- providers as keyword arguments -
1331
+ - Change initialization of declarative container, so it accepts overriding
1332
+ providers as keyword arguments -
1327
1333
``DeclarativeContainer(**overriding_providers) ``.
1328
- - Add method to dynamic catalog for setting groups of providers -
1334
+ - Add method to dynamic catalog for setting groups of providers -
1329
1335
``DynamicContainer.set_providers(**providers) ``.
1330
- - Add method to dynamic catalog for overriding groups of providers -
1336
+ - Add method to dynamic catalog for overriding groups of providers -
1331
1337
``DynamicContainer.set_providers(**overriding_providers) ``.
1332
1338
- Rename ``ExternalDependency `` provider to ``Dependency ``.
1333
1339
- Add default value for ``instance_of `` argument of ``Dependency `` provider -
@@ -1359,7 +1365,7 @@ Misc:
1359
1365
3.7.0
1360
1366
-----
1361
1367
- Add ``FactoryAggregate `` provider.
1362
- - Add ``Provider.provider `` dynamic attribute that return new provider's
1368
+ - Add ``Provider.provider `` dynamic attribute that return new provider's
1363
1369
delegate (alias of method ``Provider.delegate() ``).
1364
1370
- Add support of six 1.11.0.
1365
1371
- Regenerate C sources using Cython 0.27.1.
@@ -1376,7 +1382,7 @@ Misc:
1376
1382
1377
1383
3.5.0
1378
1384
-----
1379
- - Add functionality for initializing ``Configuration `` provider with default
1385
+ - Add functionality for initializing ``Configuration `` provider with default
1380
1386
values.
1381
1387
1382
1388
3.4.8
@@ -1399,7 +1405,7 @@ Misc:
1399
1405
1400
1406
3.4.4
1401
1407
-----
1402
- - Add ``Provider.last_overriding `` read-only property that points to last
1408
+ - Add ``Provider.last_overriding `` read-only property that points to last
1403
1409
overriding provider, if any. If target provider is not overridden, ``None ``
1404
1410
would be returned.
1405
1411
- Update example of writing custom providers.
@@ -1413,7 +1419,7 @@ Misc:
1413
1419
3.4.2
1414
1420
-----
1415
1421
- Make ``Provider `` overriding methods thread safe:
1416
- ``Provider.override(provider) ``, ``Provider.reset_last_overriding() ``,
1422
+ ``Provider.override(provider) ``, ``Provider.reset_last_overriding() ``,
1417
1423
``Provider.reset_override() ``.
1418
1424
- Refactor storage locking of ``ThreadSafeSingleton `` provider.
1419
1425
- Fix few ``pydocstyle `` errors in examples.
@@ -1485,8 +1491,8 @@ Misc:
1485
1491
1486
1492
3.2.4
1487
1493
-----
1488
- - Switch to single version of documentation for getting shorter urls (without
1489
- ``/en/stable/ ``). Add appropriate redirects for compatibility with previous
1494
+ - Switch to single version of documentation for getting shorter urls (without
1495
+ ``/en/stable/ ``). Add appropriate redirects for compatibility with previous
1490
1496
links.
1491
1497
- Update copyright date.
1492
1498
@@ -1505,7 +1511,7 @@ Misc:
1505
1511
1506
1512
3.2.0
1507
1513
-----
1508
- - Add ``Configuration `` provider for late static binding of configuration
1514
+ - Add ``Configuration `` provider for late static binding of configuration
1509
1515
options.
1510
1516
1511
1517
3.1.5
@@ -1515,7 +1521,7 @@ Misc:
1515
1521
1516
1522
3.1.4
1517
1523
-----
1518
- - Move ``inline `` functions from class level to module level for removing them
1524
+ - Move ``inline `` functions from class level to module level for removing them
1519
1525
from virtual table and enable inlining.
1520
1526
1521
1527
3.1.3
@@ -1547,34 +1553,34 @@ Misc:
1547
1553
1548
1554
- **Providers **
1549
1555
1550
- 1. All providers from ``dependency_injector.providers `` package are
1556
+ 1. All providers from ``dependency_injector.providers `` package are
1551
1557
implemented as C extension types using Cython.
1552
1558
2. Add ``BaseSingleton `` super class for all singleton providers.
1553
- 3. Make ``Singleton `` provider not thread-safe. It makes performance of
1559
+ 3. Make ``Singleton `` provider not thread-safe. It makes performance of
1554
1560
``Singleton `` provider 10x times faster.
1555
- 4. Add ``ThreadSafeSingleton `` provider - thread-safe version of
1561
+ 4. Add ``ThreadSafeSingleton `` provider - thread-safe version of
1556
1562
``Singleton `` provider.
1557
- 5. Add ``ThreadLocalSingleton `` provider - ``Singleton `` provider that uses
1563
+ 5. Add ``ThreadLocalSingleton `` provider - ``Singleton `` provider that uses
1558
1564
thread-local storage.
1559
- 6. Remove ``provides `` attribute from ``Factory `` and ``Singleton ``
1565
+ 6. Remove ``provides `` attribute from ``Factory `` and ``Singleton ``
1560
1566
providers.
1561
- 7. Add ``set_args() `` and ``clear_args() `` methods for ``Callable ``,
1567
+ 7. Add ``set_args() `` and ``clear_args() `` methods for ``Callable ``,
1562
1568
``Factory `` and ``Singleton `` providers.
1563
1569
1564
1570
- **Containers **
1565
1571
1566
- 1. Module ``dependency_injector.containers `` was split into submodules
1572
+ 1. Module ``dependency_injector.containers `` was split into submodules
1567
1573
without any functional changes.
1568
1574
1569
1575
- **Utils **
1570
1576
1571
- 1. Module ``dependency_injector.utils `` is split into
1577
+ 1. Module ``dependency_injector.utils `` is split into
1572
1578
``dependency_injector.containers `` and ``dependency_injector.providers ``.
1573
1579
1574
1580
- **Miscellaneous **
1575
1581
1576
1582
1. Remove ``@inject `` decorator.
1577
- 2. Add makefile (``clean ``, ``test ``, ``build ``, ``install ``, ``uninstall ``
1583
+ 2. Add makefile (``clean ``, ``test ``, ``build ``, ``install ``, ``uninstall ``
1578
1584
& ``publish `` commands).
1579
1585
3. Update repository structure:
1580
1586
@@ -1641,7 +1647,7 @@ Misc:
1641
1647
1642
1648
2.0.0
1643
1649
------
1644
- - Introduce new injections style for ``Callable ``, ``Factory `` &
1650
+ - Introduce new injections style for ``Callable ``, ``Factory `` &
1645
1651
``Singleton `` providers.
1646
1652
- Drop providers: ``Static ``, ``Value ``, ``Function ``, ``Class ``, ``Config ``.
1647
1653
- Increase performance of making injections in 2 times (+100%).
@@ -1654,8 +1660,8 @@ Misc:
1654
1660
1655
1661
1.17.0
1656
1662
------
1657
- - Add ``add_injections() `` method to ``Callable ``, ``DelegatedCallable ``,
1658
- ``Factory ``, ``DelegatedFactory ``, ``Singleton `` and ``DelegatedSingleton ``
1663
+ - Add ``add_injections() `` method to ``Callable ``, ``DelegatedCallable ``,
1664
+ ``Factory ``, ``DelegatedFactory ``, ``Singleton `` and ``DelegatedSingleton ``
1659
1665
providers.
1660
1666
- Fix bug with accessing to declarative catalog attributes from instance level.
1661
1667
@@ -1683,14 +1689,14 @@ Misc:
1683
1689
- Add "Examples" section into documentation.
1684
1690
- Add "Movie Lister" example.
1685
1691
- Add "Services" example.
1686
- - Move project documentation into organisation's domain
1692
+ - Move project documentation into organisation's domain
1687
1693
(dependency-injector.ets-labs.org).
1688
1694
1689
1695
1.15.2
1690
1696
------
1691
- - [Refactoring] split ``catalogs `` module into smaller modules,
1697
+ - [Refactoring] split ``catalogs `` module into smaller modules,
1692
1698
``catalogs `` module become a package.
1693
- - [Refactoring] split ``providers `` module into smaller modules,
1699
+ - [Refactoring] split ``providers `` module into smaller modules,
1694
1700
``providers `` module become a package.
1695
1701
- Update introduction documentation.
1696
1702
@@ -1700,7 +1706,7 @@ Misc:
1700
1706
1701
1707
1.15.0
1702
1708
------
1703
- - Add ``Provider.provide() `` method. ``Provider.__call__() `` become a
1709
+ - Add ``Provider.provide() `` method. ``Provider.__call__() `` become a
1704
1710
reference to ``Provider.provide() ``.
1705
1711
- Add provider overriding context.
1706
1712
- Update main examples and README.
@@ -1730,7 +1736,7 @@ Misc:
1730
1736
1731
1737
1.14.6
1732
1738
------
1733
- - Add ``cls `` alias for ``provides `` attributes of ``Factory ``,
1739
+ - Add ``cls `` alias for ``provides `` attributes of ``Factory ``,
1734
1740
``DelegatedFactory ``, ``Singleton `` and ``DelegatedSingleton `` providers.
1735
1741
1736
1742
1.14.5
@@ -1789,35 +1795,35 @@ Misc:
1789
1795
1790
1796
1.11.1
1791
1797
------
1792
- Previous state of *Dependency Injector * framework (0.11.0 version) is
1793
- considered to be production ready / stable, so current release is considered
1798
+ Previous state of *Dependency Injector * framework (0.11.0 version) is
1799
+ considered to be production ready / stable, so current release is considered
1794
1800
to be the first major release.
1795
1801
1796
- - Increase major version.
1802
+ - Increase major version.
1797
1803
- Backward compatibility with all previous versions above 0.7.6 has been saved.
1798
1804
1799
1805
0.11.0
1800
1806
------
1801
- - Rename ``AbstractCatalog `` to ``DeclarativeCatalog ``
1807
+ - Rename ``AbstractCatalog `` to ``DeclarativeCatalog ``
1802
1808
(with backward compatibility).
1803
1809
- Rename ``catalog `` module to ``catalogs `` with backward compatibility.
1804
1810
- Implement dynamic binding of providers for ``DeclarativeCatalog ``.
1805
1811
- Add ``DynamicCatalog ``.
1806
- - Change restrictions for providers-to-catalogs bindings - provider could be
1812
+ - Change restrictions for providers-to-catalogs bindings - provider could be
1807
1813
bound to several catalogs with different names.
1808
1814
- Restrict overriding of providers by themselves.
1809
1815
- Restrict overriding of catalogs by themselves.
1810
- - Make ``DeclarativeCatalog.last_overriding `` attribute to be ``None `` by
1816
+ - Make ``DeclarativeCatalog.last_overriding `` attribute to be ``None `` by
1811
1817
default.
1812
- - Make ``Provider.last_overriding `` attribute to be ``None `` by
1818
+ - Make ``Provider.last_overriding `` attribute to be ``None `` by
1813
1819
default.
1814
1820
- Refactor catalogs and providers modules.
1815
1821
- Add API documentation
1816
1822
- Improve user's guides and examples.
1817
1823
1818
1824
0.10.5
1819
1825
------
1820
- - Add more representable implementation for ``AbstractCatalog `` and
1826
+ - Add more representable implementation for ``AbstractCatalog `` and
1821
1827
``AbstractCatalog.Bundle ``.
1822
1828
1823
1829
0.10.4
@@ -1841,17 +1847,17 @@ to be the first major release.
1841
1847
- Add functionality for creating ``AbstractCatalog `` provider bundles.
1842
1848
- Improve ``AbstractCatalog `` inheritance.
1843
1849
- Improve ``AbstractCatalog `` overriding.
1844
- - Add images for catalog "Writing catalogs" and "Operating with catalogs"
1850
+ - Add images for catalog "Writing catalogs" and "Operating with catalogs"
1845
1851
examples.
1846
- - Add functionality for using positional argument injections with
1847
- ``Factory ``, ``Singleton ``, ``Callable `` providers and
1852
+ - Add functionality for using positional argument injections with
1853
+ ``Factory ``, ``Singleton ``, ``Callable `` providers and
1848
1854
``inject `` decorator.
1849
1855
- Add functionality for decorating classes with ``@inject ``.
1850
- - Add ``Singleton.injections `` attribute that represents a tuple of all
1856
+ - Add ``Singleton.injections `` attribute that represents a tuple of all
1851
1857
``Singleton `` injections (including args, kwargs, attributes and methods).
1852
- - Add ``Callable.injections `` attribute that represents a tuple of all
1858
+ - Add ``Callable.injections `` attribute that represents a tuple of all
1853
1859
``Callable `` injections (including args and kwargs).
1854
- - Add optimization for ``Injection.value `` property that will compute
1860
+ - Add optimization for ``Injection.value `` property that will compute
1855
1861
type of injection once, instead of doing this on every call.
1856
1862
- Add ``VERSION `` constant for verification of currently installed version.
1857
1863
- Add support of Python 3.5.
@@ -1861,7 +1867,7 @@ to be the first major release.
1861
1867
0.9.5
1862
1868
-----
1863
1869
- Change provider attributes scope to public.
1864
- - Add ``Factory.injections `` attribute that represents a tuple of all
1870
+ - Add ``Factory.injections `` attribute that represents a tuple of all
1865
1871
``Factory `` injections (including kwargs, attributes and methods).
1866
1872
1867
1873
0.9.4
@@ -1878,14 +1884,14 @@ to be the first major release.
1878
1884
1879
1885
0.9.1
1880
1886
-----
1881
- - Add simplified syntax of kwarg injections for ``di.Factory `` and
1882
- ``di.Singleton `` providers:
1887
+ - Add simplified syntax of kwarg injections for ``di.Factory `` and
1888
+ ``di.Singleton `` providers:
1883
1889
``di.Factory(SomeClass, dependency1=injectable_provider_or_value) ``.
1884
1890
- Add simplified syntax of kwarg injections for ``di.Callable `` provider:
1885
1891
``di.Callable(some_callable, dependency1=injectable_provider_or_value) ``
1886
1892
- Add simplified syntax of kwarg injections for ``@di.inject `` decorator:
1887
1893
``@di.inject(dependency1=injectable_provider_or_value) ``.
1888
- - Optimize ``@di.inject() `` decorations when they were made several times for
1894
+ - Optimize ``@di.inject() `` decorations when they were made several times for
1889
1895
the same callback.
1890
1896
- Add minor refactorings.
1891
1897
- Fix of minor documentation issues.
@@ -1905,21 +1911,21 @@ to be the first major release.
1905
1911
0.7.6
1906
1912
-----
1907
1913
1908
- - Adding support of six from 1.7.0 to 1.9.0.
1909
- - Factory / Singleton providers are free from restriction to operate with
1910
- classes only. This feature gives a change to use factory method and
1914
+ - Adding support of six from 1.7.0 to 1.9.0.
1915
+ - Factory / Singleton providers are free from restriction to operate with
1916
+ classes only. This feature gives a change to use factory method and
1911
1917
functions with Factory / Singleton providers.
1912
- - All attributes of all entities that have to be protected was renamed using
1913
- ``_protected `` manner.
1914
- - Providers extending was improved by implementing overriding logic in
1915
- ``Provider.__call__() `` and moving providing logic into
1918
+ - All attributes of all entities that have to be protected was renamed using
1919
+ ``_protected `` manner.
1920
+ - Providers extending was improved by implementing overriding logic in
1921
+ ``Provider.__call__() `` and moving providing logic into
1916
1922
``Provider._provide() ``.
1917
- - ``NewInstance `` provider was renamed to ``Factory `` provider.
1918
- ``NewInstance `` still can be used, but it considered to be deprecated and
1923
+ - ``NewInstance `` provider was renamed to ``Factory `` provider.
1924
+ ``NewInstance `` still can be used, but it considered to be deprecated and
1919
1925
will be removed in further releases.
1920
- - ``@inject `` decorator was refactored to keep all injections in
1926
+ - ``@inject `` decorator was refactored to keep all injections in
1921
1927
``_injections `` attribute of decorated callback. It will give a possibility to
1922
- track all the injections of particular callbacks and gives some performance
1928
+ track all the injections of particular callbacks and gives some performance
1923
1929
boost due minimizing number of calls for doing injections.
1924
1930
- A lot of documentation updates were made.
1925
1931
- A lot of examples were added.
0 commit comments