diff --git a/.github/config.yml b/.github/config.yml index 00e08346a..4f48bf4e0 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -1,2 +1,8 @@ rtd: project: multidict + + +chronographer: + exclude: + bots: + - dependabot-preview diff --git a/CHANGES.rst b/CHANGES.rst new file mode 100644 index 000000000..006d54f46 --- /dev/null +++ b/CHANGES.rst @@ -0,0 +1,16 @@ +========= +Changelog +========= + +.. + You should *NOT* be adding new change log entries to this file, this + file is managed by towncrier. You *may* edit previous change logs to + fix problems like typo corrections or such. + To add a new change log entry, please see + https://pip.pypa.io/en/latest/development/#adding-a-news-entry + we named the news folder "changes". + + WARNING: Don't drop the next directive! + +.. towncrier release notes start + diff --git a/CHANGES/.TEMPLATE.rst b/CHANGES/.TEMPLATE.rst new file mode 100644 index 000000000..bc6016baf --- /dev/null +++ b/CHANGES/.TEMPLATE.rst @@ -0,0 +1,36 @@ +{# TOWNCRIER TEMPLATE #} +{% for section, _ in sections.items() %} +{% set underline = underlines[0] %}{% if section %}{{section}} +{{ underline * section|length }}{% set underline = underlines[1] %} + +{% endif %} + +{% if sections[section] %} +{% for category, val in definitions.items() if category in sections[section]%} +{{ definitions[category]['name'] }} +{{ underline * definitions[category]['name']|length }} + +{% if definitions[category]['showcontent'] %} +{% for text, values in sections[section][category].items() %} +- {{ text }} + {{ values|join(',\n ') }} +{% endfor %} + +{% else %} +- {{ sections[section][category]['']|join(', ') }} + +{% endif %} +{% if sections[section][category]|length == 0 %} +No significant changes. + +{% else %} +{% endif %} + +{% endfor %} +{% else %} +No significant changes. + + +{% endif %} +{% endfor %} +---- diff --git a/CHANGES/314.bugfix b/CHANGES/314.bugfix new file mode 100644 index 000000000..b97613dd8 --- /dev/null +++ b/CHANGES/314.bugfix @@ -0,0 +1 @@ +Fix GC object tracking. \ No newline at end of file diff --git a/docs/HISTORY.rst b/docs/HISTORY.rst new file mode 100644 index 000000000..5aafecf0e --- /dev/null +++ b/docs/HISTORY.rst @@ -0,0 +1,275 @@ +4.5.2 (2018-11-28) +------------------ + +* Fix another memory leak introduced by 4.5.0 release + `#307 `_ + +4.5.1 (2018-11-22) +------------------ + +* Fix a memory leak introduced by 4.5.0 release + `#306 `_ + +4.5.0 (2018-11-19) +------------------ + +* Multidict views ported from Cython to C extension + `#275 `_ + + +4.4.2 (2018-09-19) +------------------ + +* Restore Python 3.4 support + `#289 `_ + + +4.4.1 (2018-09-17) +------------------ + +* Fix type annotations + `#283 `_) + +* Allow to install the library on systems without compilation toolset + `#281 `_ + + +4.4.0 (2018-07-04) +------------------ + +* Rewrite C implementation to use C pair list. + +* Fix update order when both ``arg`` and ``kwargs`` are used. + + +4.3.1 (2018-05-06) +------------------ + +* Fix a typo in multidict stub file. + +4.3.0 (2018-05-06) +------------------ + +* Polish type hints, make multidict type definitions generic. + +4.2.0 (2018-04-15) +------------------ + +* Publish ``py.typed`` flag for type hinting analyzers (``mypy`` etc). + +4.1.0 (2018-01-28) +------------------ + +* Fix key casing in Pure Python implementation of + :py:class:`CIMultiDict` + `#202 `_ + +4.0.0 (2018-01-14) +------------------ + +* Accept multiple keys in :py:meth:`MultiDict.update` and + :py:meth:`CIMultiDict.update` + `#199 `_ + +3.3.2 (2017-11-02) +------------------ + +* Fix tarball (again) + + +3.3.1 (2017-11-01) +------------------ + +* Include .c files in tarball + `#181 `_ + + +3.3.0 (2017-10-15) +------------------ + +* Introduce abstract base classes + `#102 `_ + +* Publish OSX binary wheels + `#153 `_ + + +3.2.0 (2017-09-17) +------------------ + +* Fix pickling + `#134 `_ + +* Fix equality check when other contains more keys + `#124 `_ + +* Fix :py:class:`CIMultiDict ` copy + `#107 `_ + +3.1.3 (2017-07-14) +------------------ + +* Fix build + +3.1.2 (2017-07-14) +------------------ + +* Fix type annotations + +3.1.1 (2017-07-09) +------------------ + +* Remove memory leak in :py:func:`istr ` implementation + `#105 `_ + +3.1.0 (2017-06-25) +------------------ + +* Raise :py:exc:`RuntimeError` on :py:class:`dict` iterations if the dict was changed (:issue:`99`) + +* Update ``__init__.pyi`` signatures + +3.0.0 (2017-06-21) +------------------ + +* Refactor internal data structures: main dict operations are about + 100% faster now. + +* Preserve order on multidict updates + + Updates are ``md[key] = val`` and ``md.update(...)`` calls. + + Now **the last** entry is replaced with new key/value pair, all + previous occurrences are removed. + + If key is not present in dictionary the pair is added to the end + + `#68 `_ + +* Force keys to :py:class:`str` instances + `#88 `_ + +* Implement :py:func:`.popall(key[, default]) ` + `#84 `_ + +* :py:func:`.pop() ` removes only first occurence, + :py:func:`.popone() ` added + `#92 `_ + +* Implement dict's version + `#86 `_ + +* Proxies are not pickable anymore + `#77 `_ + +2.1.7 (2017-05-29) +------------------ + +* Fix import warning on Python 3.6 + `#79 `_ + +2.1.6 (2017-05-27) +------------------ + +* Rebuild the library for fixning missing ``__spec__`` attribute + `#79 `_ + +2.1.5 (2017-05-13) +------------------ + +* Build Python 3.6 binary wheels + +2.1.4 (2016-12-1) +------------------ + +* Remove ``LICENSE`` filename extension @ ``MANIFEST.in`` file + `#31 `_ + +2.1.3 (2016-11-26) +------------------ + +* Add a fastpath for multidict extending by multidict + + +2.1.2 (2016-09-25) +------------------ + +* Fix :py:func:`CIMultiDict.update ` for case of accepting :py:func:`istr ` + + +2.1.1 (2016-09-22) +------------------ + +* Fix :py:class:`CIMultiDict ` constructor for case of accepting + :py:func:`istr ` `#11 + `_ + + +2.1.0 (2016-09-18) +------------------ + +* Allow to create proxy from proxy + +* Add type hints (:pep:`484`) + + +2.0.1 (2016-08-02) +------------------ + +* Don't crash on ``{} - MultiDict().keys()`` and similar operations + `#6 `_ + + +2.0.0 (2016-07-28) +------------------ + +* Switch from uppercase approach for case-insensitive string to + :py:func:`str.title() ` + `#5 `_ + +* Deprecate :py:func:`upstr ` class in favor of :py:func:`istr ` alias. + +1.2.2 (2016-08-02) +------------------ + +* Don't crash on ``{} - MultiDict().keys()`` and similar operations + `#6 `_ + +1.2.1 (2016-07-21) +------------------ + +* Don't expose ``multidict.__version__`` + + +1.2.0 (2016-07-16) +------------------ + +* Make ``upstr(upstr('abc'))`` much faster + + +1.1.0 (2016-07-06) +------------------ + +* Don't double-iterate during :py:class:`MultiDict ` initialization + `#3 `_ + +* Fix :py:func:`CIMultiDict.pop `: it is case insensitive now + `#1 `_ + +* Provide manylinux wheels as well as Windows ones + +1.0.3 (2016-03-24) +------------------ + +* Add missing MANIFEST.in + +1.0.2 (2016-03-24) +------------------ + +* Fix setup build + + +1.0.0 (2016-02-19) +------------------ + +* Initial implementation diff --git a/docs/changes.rst b/docs/changes.rst index 98baa3263..153207ae0 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -1,250 +1,5 @@ -.. _changes: +.. _multidict_changes: -XXX (2018-12-16) ----------------- +.. include:: ../CHANGES.rst -* Fix GC object tracking (:pr:`314`) - -4.5.2 (2018-11-28) ------------------- - -* Fix another memory leak introduced by 4.5.0 release (:pr:`307`) - -4.5.1 (2018-11-22) ------------------- - -* Fix a memory leak introduced by 4.5.0 release (:pr:`306`) - -4.5.0 (2018-11-19) ------------------- - -* Multidict views ported from Cython to C extension (:pr:`275`) - - -4.4.2 (2018-09-19) ------------------- - -* Restore Python 3.4 support (:pr:`289`) - - -4.4.1 (2018-09-17) ------------------- - -* Fix type annotations (:pr:`283`) - -* Allow to install the library on systems without compilation toolset - (:pr:`281`) - - -4.4.0 (2018-07-04) ------------------- - -* Rewrite C implementation to use C pair list. - -* Fix update order when both ``arg`` and ``kwargs`` are used. - - -4.3.1 (2018-05-06) ------------------- - -* Fix a typo in multidict stub file. - -4.3.0 (2018-05-06) ------------------- - -* Polish type hints, make multidict type definitions generic. - -4.2.0 (2018-04-15) ------------------- - -* Publish ``py.typed`` flag for type hinting analyzers (``mypy`` etc). - -4.1.0 (2018-01-28) ------------------- - -* Fix key casing in Pure Python implementation of - :py:class:`CIMultiDict` (:pr:`202`) - -4.0.0 (2018-01-14) ------------------- - -* Accept multiple keys in :py:meth:`MultiDict.update` and - :py:meth:`CIMultiDict.update` (:pr:`199`) - -3.3.2 (2017-11-02) ------------------- - -* Fix tarball (again) - - -3.3.1 (2017-11-01) ------------------- - -* Include .c files in tarball (:issue:`181`) - - -3.3.0 (2017-10-15) ------------------- - -* Introduce abstract base classes (:issue:`102`) - -* Publish OSX binary wheels (:pr:`153`) - - -3.2.0 (2017-09-17) ------------------- - -* Fix pickling (:pr:`134`) - -* Fix equality check when other contains more keys (:pr:`124`) - -* Fix :py:class:`CIMultiDict ` copy (:issue:`107`) - -3.1.3 (2017-07-14) ------------------- - -* Fix build - -3.1.2 (2017-07-14) ------------------- - -* Fix type annotations - -3.1.1 (2017-07-09) ------------------- - -* Remove memory leak in :py:func:`istr ` implementation (:issue:`105`) - -3.1.0 (2017-06-25) ------------------- - -* Raise :py:exc:`RuntimeError` on :py:class:`dict` iterations if the dict was changed (:issue:`99`) - -* Update ``__init__.pyi`` signatures - -3.0.0 (2017-06-21) ------------------- - -* Refactor internal data structures: main dict operations are about - 100% faster now. - -* Preserve order on multidict updates (:issue:`68`) - - Updates are ``md[key] = val`` and ``md.update(...)`` calls. - - Now **the last** entry is replaced with new key/value pair, all - previous occurrences are removed. - - If key is not present in dictionary the pair is added to the end - -* Force keys to :py:class:`str` instances (:issue:`88`) - -* Implement :py:func:`.popall(key[, default]) ` (:issue:`84`) - -* :py:func:`.pop() ` removes only first occurence, :py:func:`.popone() ` added (:issue:`92`) - -* Implement dict's version (:issue:`86`) - -* Proxies are not pickable anymore (:pr:`77`) - -2.1.7 (2017-05-29) ------------------- - -* Fix import warning on Python 3.6 (:issue:`79`) - -2.1.6 (2017-05-27) ------------------- - -* Rebuild the library for fixning missing ``__spec__`` attribute (:issue:`79`) - -2.1.5 (2017-05-13) ------------------- - -* Build Python 3.6 binary wheels - -2.1.4 (2016-12-1) ------------------- - -* Remove ``LICENSE`` filename extension @ ``MANIFEST.in`` file (:pr:`31`) - -2.1.3 (2016-11-26) ------------------- - -* Add a fastpath for multidict extending by multidict - - -2.1.2 (2016-09-25) ------------------- - -* Fix :py:func:`CIMultiDict.update ` for case of accepting :py:func:`istr ` - - -2.1.1 (2016-09-22) ------------------- - -* Fix :py:class:`CIMultiDict ` constructor for case of accepting :py:func:`istr ` (:issue:`11`) - - -2.1.0 (2016-09-18) ------------------- - -* Allow to create proxy from proxy - -* Add type hints (:pep:`484`) - - -2.0.1 (2016-08-02) ------------------- - -* Don't crash on ``{} - MultiDict().keys()`` and similar operations (:issue:`6`) - - -2.0.0 (2016-07-28) ------------------- - -* Switch from uppercase approach for case-insensitive string to - :py:func:`str.title() ` (:pr:`5`) - -* Deprecate :py:func:`upstr ` class in favor of :py:func:`istr ` alias. - -1.2.2 (2016-08-02) ------------------- - -* Don't crash on ``{} - MultiDict().keys()`` and similar operations (:issue:`6`) - -1.2.1 (2016-07-21) ------------------- - -* Don't expose ``multidict.__version__`` - - -1.2.0 (2016-07-16) ------------------- - -* Make ``upstr(upstr('abc'))`` much faster - - -1.1.0 (2016-07-06) ------------------- - -* Don't double-iterate during :py:class:`MultiDict ` initialization (:pr:`3`) - -* Fix :py:func:`CIMultiDict.pop `: it is case insensitive now (:issue:`1`) - -* Provide manylinux wheels as well as Windows ones - -1.0.3 (2016-03-24) ------------------- - -* Add missing MANIFEST.in - -1.0.2 (2016-03-24) ------------------- - -* Fix setup build - - -1.0.0 (2016-02-19) ------------------- - -* Initial implementation +.. include:: ../HISTORY.rst diff --git a/pyproject.toml b/pyproject.toml index 1720c36d4..b9eaf2f38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,11 @@ [build-system] requires = ["pip>=18", "setuptools>=40", "wheel"] + + +[tool.towncrier] +package = "multidict" +filename = "CHANGES.rst" +directory = "CHANGES/" +title_format = "{version} ({project_date})" +template = "CHANGES/.TEMPLATE.rst" +issue_format = "`#{issue} `_" diff --git a/requirements/towncrier.txt b/requirements/towncrier.txt new file mode 100644 index 000000000..44d131902 --- /dev/null +++ b/requirements/towncrier.txt @@ -0,0 +1 @@ +towncrier==19.2.0