Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Dec 2, 2024

Update djangorestframework from 3.10.3 to 3.15.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update django-filter from 2.2.0 to 24.3.

Changelog

24.3

-------------------------

* Adds official support for Django 5.1.

* Allow using dictionaries for grouped choices on Django 5.0+.

Thanks to Sævar Öfjörð Magnússon.

* Adds ``unknown_field_behavior`` FilterSet option to allowing warning and
ignore behaviours for unknown field types during FilterSet generation.

Thanks to Loes.

24.2

-------------------------

* Fixed a regression in v23.4 where callable choices were incorrectly evaluated
at filter instantiation, on Django versions prior to 5.0.

Thanks to Craig de Stigter for the report and reproduce.

24.1

-------------------------

* Updated supported Python and Django versions, and resolved upcoming Django
deprecations.

Required versions are now at least Python 3.8 and Django 4.2.

Thanks to Michael Manganiello.

* Allowed passing a FilterSet class to the filterset_factory().

Thanks to Birger Schacht.

* Set empty default value of filterset data to MultiValueDict.

Thanks to Shlomo Gordon.

* Preserve list values passed to the data dict in CSV widgets.

Thanks to Bryan Brancotte.

* Updates French and Ukrainian localisations.

Thanks to Weblate.

23.5

-------------------------

* Fixed OrderingFilter handling of empty values. (1628)

Thanks to Matt Munns.

23.4

-------------------------

* Official support for Django 5.0 and Python 3.12.

* Fix DeprecationWarning for pkgutil.find_loader.

Thanks to `wmorrell`.

* Adopted Furo theme for docs.

23.3

------------------------

* Adds initial compatibility with Django 5.0, prior to Django 5.0a1.

* Updates packaging to use pyproject.toml and Flit.

23.2

------------------------

* Deprecated the schema generation methods of the DRF related ``DjangoFilterBackend``.
These will be removed in version 25.1.

You should use `drf-spectacular <https://drf-spectacular.readthedocs.io/en/latest/>`_
for generating OpenAPI schemas with DRF.

* In addition, stopped testing against the (very old now) ``coreapi`` schema generation.
These methods should continue to work if you're using them until v25.1, but
``coreapi`` is no longer maintained, and is raising warnings against the current
versions of Python. To workaround this is not worth the effort at this point.

* Updated Polish translations.

23.1

------------------------

* Declared support for Django 4.2.

* Various updated and new translations. Thanks to all who contributed, and
Weblate for hosting.

* Fixed QueryArrayWidget.value_from_datadict() to not mutate input data. (1540)

22.1

------------------------

* Update supported Python and Django versions: minimal Python is now 3.7,
minimum Django is now 3.2.

* Added testing for Python 3.10 and Django 4.1.

* Removed outdated deprecated warnings for code removed in version 2.1.

* Removed `filter_class` (use `filterset_class`) and `filter_fields`
(`filterset_fields`) that were deprecated in [version 2.0
(2018)](https://django-filter.readthedocs.io/en/main/guide/migration.html#view-attributes-renamed-867).

* The code base is now formatted with Black.

21.1

------------------------

This is a maintenance release updating CI testing for the latest
non-end-of-life versions of Python and Django, and updating package metadata
accordingly.

With this release ``django-filter`` is switching to a two-part CalVer
versioning scheme, such as ``21.1``. The first number is the year. The second
is the release number within that year.

On an on-going basis, Django-Filter aims to support all current Django
versions, the matching current Python versions, and the latest version of
Django REST Framework.

Please see:

* `Status of supported Python branches <https://devguide.python.org/#status-of-python-branches>`_
* `List of supported Django versions <https://www.djangoproject.com/download/#support-versions>`_

Support for Python and Django versions will be dropped when they reach
end-of-life. Support for Python versions will dropped when they reach
end-of-life, even when still supported by a current version of Django.

Other breaking changes are rare. Where required, every effort will be made to
apply a "Year plus two" deprecation period. For example, a change initially
introduced in ``23.x`` would offer a fallback where feasible and finally be
removed in ``25.1``. Where fallbacks are not feasible, breaking changes without
deprecation will be called out in the release notes.

Beyond that change, there are few changes. Some small bugfixes, improvements to
localisation, and documentation tweaks. Thanks to all who were involved.

2.4.0

--------------------------

* SECURITY: Added a ``MaxValueValidator`` to the form field for
``NumberFilter``. This prevents a potential DoS attack if numbers with very
large exponents were subsequently converted to integers.

The default limit value for the validator is ``1e50``.

The new ``NumberFilter.get_max_validator()`` allows customising the used
validator, and may return ``None`` to disable the validation entirely.

* Added testing against Django 3.1 and Python 3.9.

In addition tests against Django main development branch are now required to
pass.

2.3.0

------------------------

* Fixed import of FieldDoesNotExist. (1127)
* Added testing against Django 3.0. (1125)
* Declared support for, and added testing against, Python 3.8. (1138)
* Fix filterset multiple inheritance bug (1131)
* Allowed customising default lookup expression. (1129)
* Drop Django 2.1 and below (1180)
* Fixed IsoDateTimeRangeFieldTests for Django 3.1
* Require tests to pass against Django `master`.
Links

Update django-model-utils from 3.2.0 to 5.0.0.

Changelog

5.0.0

------------------
- Add formal support for `Django 5.1`
- Remove MonitorField deprecation warning. `None` - instead of
`django.utils.timezone.now` will be used when nullable and no default provided (GH-599)
- Add deprecation warning for MonitorField. The default value will be `None`
instead of `django.utils.timezone.now` - when nullable and without a default.
- Add Brazilian Portuguese translation (GH-578)
- Don't use `post_init` signal for initialize tracker
- Make `contribute_to_class()` in `StatusField`, `MonitorField` and `SplitField`
forward additional arguments to Django
- `SplitField` no longer accepts `no_excerpt_field` as a keyword argument
- Make `soft` argument to `SoftDeletableModel.delete()` keyword-only
- `JoinManager` and `JoinManagerMixin` have been deprecated;
please use ``JoinQueryset.as_manager()`` instead
- Change `SoftDeletableQuerySetMixin.delete` to replicate Django's API.

4.5.1

------------------

- Remove `JoinQueryset.get_quoted_query()` by mthuurne (GH-618)

4.5.0

------------------

- Don't use `post_init` signal for initialize tracker by meanmail in -  (GH-556)
- clarify docs for managers of SoftDeletableModel by tadamcz in -  (GH-589)
- [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in -  (GH-575)
- `Language Support` - Add translations for Brazilian Portuguese by gmcrocetti in -  (GH-578)
- Remove dead `init_deferred_fields` method by joecox in -  (GH-580)
- Update where `ConnectionDoesNotExist` is imported from by mthuurne in -  (GH-566)
- Remove arguments from `InheritanceQuerySetMixin._clone()` by mthuurne in -  (GH-567)
- Allow running tests using sqlite by jayvdb in -  (GH-516)
- `MonitorField` - Change default to None when the field is nullable  by gmcrocetti in -  (GH-577)
- Explicitly re-export names from `__init__` module by mthuurne in - (GH-591)
- Switch from freezegun to time-machine. by adamchainz in -  (GH-510)
- USE_TZ = True by foarsitter in -  (GH-593)
- Remove redundant definition of `JoinManager` from tests by mthuurne in -  (GH-594)
- Pass reason to `skip` decorator by mthuurne in -  (GH-595)
- Resolve name clash among test models by mthuurne in -  (GH-596)
- Remove obsolete `tests.signals` module by mthuurne in -  (GH-597)
- Remove obsolete test models by mthuurne in -  (GH-598)
- Postgresql docker container for local development by foarsitter in -  (GH-563)
- [pre-commit.ci] pre-commit autoupdate by pre-commit-ci in -  (GH-602)
- Add issue-manager by foarsitter in -  (GH-600)
- Translation files by foarsitter in -  (GH-608)

4.4.0

------------------

- Add support for `Python 3.11` (GH-545)
- Add support for `Python 3.12` (GH-545)
- Drop support for `Python 3.7` (GH-545)
- Add support for `Django 4.2`
- Add support for `Django 5.0`
- Remove ``SaveSignalHandlingModel``. This model used a modified copy of the internal Django method `Model.save_base()`
and had not been updated for upstream bug fixes changes since its addition.
- Add Swedish translation
- Use proper column name instead of attname (GH-573)
- Fix ValueError when calling prefetch_related for tracked ForeignKey fields

4.3.1

------------------

- Confirm support for `Django 4.0`
- Add Spanish translation
- Add French translation
- Drop Django 1.7 workaround from `select_subclasses()`
- Drop support for `Django < 3.2`
- Drop support for `Python 3.6`
- Confirm support for `Django 4.1`

4.3.0

-----

- Never released due to packaging issues.

4.2.0

------------------

- Add support for `Django 3.2`
- Drop support for `Django 3.0`
- Add support for `Python 3.10`
- Added urlsafe token field.
- Introduce context manager for FieldTracker state reset (GH-491)
- Fix performance regression of FieldTracker on FileField subclasses on Django 3.1+
(GH-498)

4.1.1

------------------

- Applied `isort` to codebase (Refs GH-402)
- Fix `TypeError` in save when model inherits from both TimeStampModel
and StatusModel. (Fixes GH-465)

4.1.0

------------------

**Breaking changes:**

- `FieldTracker` now marks fields as not changed after `refresh_from_db`
respecting `fields` argument (GH-404)
- `FieldTracker` now respects `update_fields` changed in overridden `save()`
method (GH-404)
- `FieldTracker` now resets states after `pre_save()` and not anymore `save()`
signals, possibly altering the behaviour of overridden `save()`
methods (GH-404)

**Other changes:**

- Update InheritanceQuerySetMixin to avoid querying too much tables
- TimeStampedModel now automatically adds 'modified' field as an update_fields
parameter even if it is forgotten while using save()
- Replace ugettext_lazy with gettext_lazy to satisfy Django deprecation warning
- Add available_objects manager to SoftDeletableModel and add deprecation
warning to objects manager.
- StatusModel now automatically adds 'status_changed' field during save as an
update_fieldsparameter when 'status' is present in it to make sure it is not
forgotten.
- Update test requirements
- Move tests to GitHub Actions: https://github.com/jazzband/django-model-utils/actions
- Drop support for `Django 2.1`
- Add support for `Python 3.9`
- Add support for `Django 3.1`

4.0.0

------------------
- Added `Choices.subset`.
- Remove hacks for previously supported Django versions. (Fixes GH-390)
- Dropped support for Python 2.7. (Fixes GH-393)
- Dropped usage of `six`
- Drop support for `Django 1.11`
- Add support for `Python 3.8`
- Add support for `Django 3.0`
Links

Update mysqlclient from 1.4.4 to 2.2.6.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update tqdm from 4.37.0 to 4.67.1.

Changelog

4.67.0

- `contrib.discord`: replace `disco-py` with `requests` (1536)

4.66.6

- cli: zip-safe `--manpath`, `--comppath` (1627)
- misc framework updates (1627)
+ fix `pytest` `DeprecationWarning`
+ fix `snapcraft` build
+ fix `nbval` `DeprecationWarning`
+ update & tidy workflows
+ bump pre-commit
+ docs: update URLs

4.66.5

- support `ncols` auto-detection on FreeBSD (1602 <- https://github.com/casperdcl/git-fame/issues/98)
- fix Python 3.13 CLI (1594 <- 1585)
- fix Python 3.13 tests (1595 <- https://github.com/python/cpython/issues/117536#issuecomment-2036883124)
- misc framework updates (1602)
+ add official Python 3.12 support
+ bump deps (https://github.com/NiklasRosenstein/pydoc-markdown/issues/329, https://github.com/tikitu/jsmin/pull/44)

4.66.4

- `rich`: fix completion (1395 <- 1306)
- minor framework updates & code tidy (1578)

4.66.3

- `cli`: `eval` safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)

4.66.2

- `pandas`: add `DataFrame.progress_map` (1549)
- `notebook`: fix HTML padding (1506)
- `keras`: fix resuming training when `verbose>=2` (1508)
- fix `format_num` negative fractions missing leading zero (1548)
- fix Python 3.12 `DeprecationWarning` on `import` (1519)
- linting: use f-strings (1549)
- update tests (1549)
+ fix `pandas` warnings
+ fix `asv` (https://github.com/airspeed-velocity/asv/issues/1323)
+ fix macos `notebook` docstring indentation
- CI: bump actions (1549)

4.66.1

- fix `utils.envwrap` types (1493 <- 1491, 1320 <- 966, 1319)
+ e.g. cloudwatch & kubernetes workaround: `export TQDM_POSITION=-1`
- drop mentions of unsupported Python versions

4.66.0

- environment variables to override defaults (`TQDM_*`) (1491 <- 1061, 950 <- 614, 1318, 619, 612, 370)
+ e.g. in CI jobs, `export TQDM_MININTERVAL=5` to avoid log spam
+ add tests & docs for `tqdm.utils.envwrap`
- fix & update CLI completion
- fix & update API docs
- minor code tidy: replace `os.path` => `pathlib.Path`
- fix docs image hosting
- release with CI bot account again (https://github.com/cli/cli/issues/6680)

4.65.2

- exclude `examples` from distributed wheel (1492)

4.65.1

- migrate `setup.{cfg,py}` => `pyproject.toml` (1490)
+ fix `asv` benchmarks
+ update docs
- fix snap build (1490)
- fix & update tests (1490)
+ fix flaky notebook tests
+ bump `pre-commit`
+ bump workflow actions

4.65.0

- add Python 3.11 and drop Python 3.6 support (1439, 1419, 502 <- 720, 620)
- misc code & docs tidy
- fix & update CI workflows & tests

4.64.1

- support `ipywidgets>=8`  (1366, 1361 <- 1310, 1359, 1360, 1364)
+ fix jupyter lab display
+ update notebook tests

4.64.0

- add `contrib.slack` (1313)

4.63.2

- `rich`: expose `options` kwargs (1282)
- `autonotebook`: re-enable VSCode (1309)
- misc docs typos (1301, 1299)
- update dev dependencies (1311)

4.63.1

- fix stderr/stdout missing `flush()` (1248 <- 1177)
- misc speed improvements/optimisations

4.63.0

- add `__reversed__()`
- add efficient `__contains__()`
- improve CLI startup time (replace `pkg_resources` => `importlib`)
- `tqdm.autonotebook` warning & `std` fallback on missing `ipywidgets` (1218 <- 1082, 1217)
- warn on positional CLI arguments
- misc build/test framework updates
+ enable `py3.10` tests
+ add `conda` dependencies
+ update pre-commit hooks
+ fix `pytest` config (`nbval`, `asyncio`)
+ fix dependencies & tests
+ fix site deployment

4.62.3

- fix minor typo (1246)
- minor example fix (1246)
- misc tidying & refactoring
- misc build/dev framework updates
+ update dependencies
+ update linters
+ update docs deployment branches
- misc test/ci updates
+ test forks
+ tidy OS & Python version tests
+ bump primary python version 3.7 => 3.8
+ beta py3.10 testing
+ fix py2.7 tests
+ better timeout handling

4.62.2

- fix notebook memory leak (1216)
- fix `contrib.concurrent` with generators (1233 <- 1231)

4.62.1

- `contrib.logging`: inherit existing handler output stream (1191)
- fix `PermissionError` by using `weakref` in `DisableOnWriteError` (1207)
- fix `contrib.telegram` creation rate limit handling (1223, 1221 <- 1220, 1076)
- tests: fix py27 `keras` dependencies (1222)
- misc tidy: use relative imports (1222)
- minor documentation updates (1222)

4.62.0

- `asyncio.gather` API consistency with stdlib (1212)
- fix shutdown exception (1209 <- 1198)
- misc build framework updates (1209)
- add [GH Sponsors](https://github.com/sponsors/tqdm/dashboard/tiers?frequency=one-time) & [merch](https://tqdm.github.io/merch) links

4.61.2

- install `colorama` on Windows (1139, 454)
- add telegram support for `leave=False` (1189)
- support `pandas==1.3.0` (1199)
- fix `keras` potential `AttributeError` (1184 <- 1183)
- fix py3.10 `asyncio` tests (1176)
- flush `stdout`/`err` before first render (1177)
- misc minor build & test framework updates (1180)

4.61.1

- fix `utils._screen_shape_linux()` sometimes raising `ValueError` (1174)
- minor build/CI framework updates (1175)
- minor documentation updates
- fix typo (1178)
- link to [merch](https://tqdm.github.io/merch)! :billed_cap: :shirt:

4.61.0

- `keras` support for `initial_epoch` (1150 <- 1138)
- misc documentation updates
+ update & shorten URLs (1163)
+ fix typos (1162)
- fix & update tests (1163)
- minor framework updates (1163)

4.60.0

- add `contrib.logging` helpers for redirecting to `tqdm.write()` (1155 <- 786)
- support `delay` in `notebook` (1142)
- fix `contrib.tmap`, `tzip` not using `tqdm_class` (1148)
- add `notebook` tests (1143)
- updates & misc minor fixes for documentation

4.59.0

- add `tqdm.dask.TqdmCallback` (1079, 279 <- 278)
- add `asyncio.gather()` (1136)
- add basic support for `length_hint` (1068)
- add & update tests
- misc documentation updates (1132)
+ update contributing guide
+ update URLs
+ bash completion: add missing `--delay`
- misc code tidy
- add `[notebook]` extra (1135)

4.58.0

- add start `delay` in seconds (836 <- 1069, 704)
- add tests
- misc code tidy (1130)
- misc documentation updates

4.57.0

- add line buffering for `DummyTqdmFile` (960)
- fix & update demo notebook (1127)
- fix py3 urllib examples (1127)
- suppress deprecated `pandas` warnings (824, 1094)
- misc framework updates
- misc tests updates
- misc code tidy

4.56.2

- fix attribute errors when disabled (1126)
+ `reset()` (1125)
+ `unpause()`
- add tests

4.56.1

- fix `repr()` & `format_dict` when disabled (1113 <- 624)
- rename `__repr__()` => `__str__()`
- minor documentation updates (1113)
+ fix Binder demo notebook (1119)
+ remove explicit Dockerfile
+ move some images to external repo
- add & update tests

4.56.0

- add `tqdm.tk` (1006)
- add `tqdm.rich`
- minor formatting improvements for `tqdm.gui`
- fix `display()` inheritance/override
- add tests
- add documentation

4.55.2

- update tests (1108)
+ make pre-commit `pytest` quicker
+ switch pre-commit from `make` to `python`
+ add and update (auto) formatters & CI (1108, 1093)
- update contributing guidelines (1108)
+ fix formatting
+ test dependencies (1109)
- update `.gitignore`
- fix (auto & manual) formatting
- fix minor detected bugs
- misc build/CI framework upgrades

4.55.1

- fix `(Rolling|Expanding).progress_apply()` on `pandas==1.2.0` (1106)
- minor documentation updates

4.55.0

- fix ASCII notebook export (937, 1035, 1098)
- fix notebook gui-mode extra spaces (433, 479, 550, 935)
- better ETA for early iterations (1101)
- better ETA for wildly varying iteration rates (1102)
- update submodule inheritance
+ `tqdm.gui`
+ `tqdm.notebook`
+ `tqdm.contrib.telegram`
+ `tqdm.contrib.discord`
- documentation updates
- misc code optimisations
- add tests
- framework updates
+ build
+ CI & test
- misc code linting/formatting

4.54.1

- drop `py3.4` (no longer tested) (1091)
- misc CI updates (1091)
+ update `snap` build & deploy method
+ bot releases

4.54.0

- get rid of `get_new` (1085 <- 1084, 509)
- minor CI framework optimisations

4.53.0

- provide `get_new()` helper for mixed subclasses in nested mode (509)
- fix nested `asyncio` (1074)
+ document async `break` hazard
- add tests
- drop py2.6/3.2/3.3 and distutils (no longer tested)
+ drop py2.6 (502 <- 620, 127)
+ drop `distutils` in favour of `setuptools`/`setup.cfg` (723, 721)
- CI framework overhaul
+ drop appveyor (Windows already tested by GHA)
+ skip `devel` PRs
+ automate linting comments on failure
- use `setuptools_scm` (722)
+ fix & update tests
+ fix & upgrade snap build
+ update CONTRIBUTING docs

4.52.0

- allow delaying `display()` to a different notebook cell (1059 <- 909, 954)
+ add `notebook` argument `display=True` (use `display=False` with `display(tqdm_object.container)`)
+ add `keras.TqdmCallback` support for initialiser arguments (use `display=False` with `tqdm_callback_object.display()`) (1059 <- 1065)
+ add documentation
- add CI on windows (507)
- enable CI on OSX
- migrate CI Travis => GHA
+ add tests for MacOS & Windows
+ add tests for py3.9 (1073)
+ update documentation
- minify docker build
- update tests
- misc tidy

4.51.0

- add `{eta}` datetime `bar_format` argument (1055 <- 1051)
+ e.g. `bar_format='{l_bar}{bar}| {n_fmt}/{total_fmt} [{rate_fmt} ETA:{eta:%y-%m-%d %H:%M}{postfix}]'`
- fix py3 CLI `--update` & `--update_to`
- replace `nosetests` with `pytest` (1052, 1045)
- add & update tests

4.50.2

- fixed `platform.system()` causing `fork()` warnings (691)
- fixed `contrib.concurrent.process_map` pickling error with `threading.RLock` (920)
- updated documentation & examples
- updated CI framework
- updated tests
- misc code tidy

4.50.1

- fix multiprocessing lock creation leak (982, 936, 759)
+ fixes 617 which introduced this bug (v4.29.0, released 2019-01-06, undiagnosed until now) where multiple threads could concurrently create and append process locks to a global list, then try to release them without first acquiring :imp:
- major test overhaul: fix, update, and speed up
- misc CI framework updates
- code linting
- minor documentation tidy

4.50.0

- add bar `colour` option (1040 <- 450)
+ for `notebook` as well as `std`/CLI
+ plain text as well as hex (e.g. 'green' or '00ff00')
- `notebook` improvements (1032 <- 1031)
+ split bar description into separate widget
+ improve `reset()` (handle width and colour)
- fix exceptions when `file` is closed (1041, 1036 <- 1033)
- add & update tests
- minor documentation updates
- move and configure issue/pr templates

4.49.0

- CLI: add `--tee` (1014 <- 1013)
- CLI: add `--update` and `--update_to` (996 <- 975)
- CLI: add `--null` (996)
- CLI: accept `-` instead of `_` in options (e.g. `--update-to`)
- make `update()` return `True` on `display` to ease efficient use of custom callbacks (845)
- fix `py>=3` CLI `--delim` encoding error
- fix `py>=3.5` version detection in `tqdm.auto` (1029 <- 1028)
- fix final ETA when using `initial` (1021 <- 689)
- update documentation
+ add & update custom callback examples
+ improve help formatting of boolean CLI options
- add & update tests

4.48.2

- fix `notebook` formatting

4.48.1

- fix ANSI escape codes breaking `tqdm.write` (692, 777)
- fix long-lived strongref (1007, https://bugs.python.org/issue39093)
- fix cli `--version` crash on missing `git/refs/heads` (635)
- fix `contrib.tenumerate` ignoring `total` (1017)
- fix potential deep => shallow `kwargs` copy issues
- improve `notebook` display for unknown `total` (1015)
- make `asyncio` inherit from `std` rather than `auto`
- make `auto` multi-inherit from `autonotebook`, `asyncio` on Python3.5+
- misc documentation & examples updates
+ mention `docker-compose` requirements (771)
- misc linting & tidy
- misc minor testing framework updates

4.48.0

- add `tqdm.asyncio` (1004, 772, 91 <- 65)
+ supports async iterables (`async for row in tqdm(iterable)`)
+ supports iterables
+ supports `coroutine.send` (`tqdm(coroutine).send`)
+ add `as_completed` wrapper (`for f in tqdm.as_completed(fs)`)
- reduce `contrib.discord` logging verbosity
- fix potential `pandas()` modifying `**kwargs` bug
- update documentation
+ add missing inline docstrings
+ update contributing notes
+ update readme
+ add to `examples/` folder
 * async_coroutines
 * coroutine_pipe
+ standardise variable naming
- add tests
+ add benchmark tests against popular alternative libraries
+ test new functionality
+ more thorough `miniters` test (1003)
- misc framework updates
+ tidy changelog helper
+ add helper bots
 * comment-bot `/tag`
 * post-release-bot
   - wiki updater
   - website updater
 * benchmark regressions
   - full/thorough test on schedule & release
   - quick test on PR

4.47.0

- add `contrib.discord` (similar to `contrib.telegram`) (976)
- add `contrib.bells` to auto-enable all extras
- add `contrib.utils_worker` for common slow tasks (e.g. web I/O)
+ fix lazy large memory usage & discard unsent messages (unprocessed tasks)
- fix slow notebook imports (955 <- 709)
- fix `gui` `TypeError` on unknown `len()` (971)
- misc documentation/error message updates
+ more succinct ImportError on missing `ipywidgets` (872)
+ fix broken/deprecated link (981)
+ add inline usage for `contrib.discord` and `contrib.telegram`
- misc framework updates
+ add official `py3.8` support (986)
+ fix `snap` builds

![contrib.discord](https://img.tqdm.ml/screenshot-discord.png)

![contrib.telegram](https://img.tqdm.ml/screenshot-telegram.gif)

4.46.1

- fix missing `sys.setcheckinterval` in py3.9 (978)
- fix `keras.TqdmCallback` compatibility with `tensorflow==2.2.0` (979)
- update documentation
+ correct `contrib.concurrent` correct `max_workers` (977)
+ drop prominent mention of `xrange` (965)
- minor linting

4.46.0

- add `contrib.telegram` 949 <- 948
- add `bash` tab completion and `--comppath` 946, 947 <- 858
- fix exception safety in `external_write_mode` 940
- add `requests` examples (242)
- update documentation

4.45.0

- propagate and `close()` on exceptions (926 <- 548)
- fix nested `clear()`
- rework nested `close()` (930 <- 924 <- 918, 677)
+ reduces screen flicker/blank space at the cost of ordering
- update all documentation & demos
- add and update tests
- dev framework: add pre-commit helper

4.44.1

- fix `_utils` `ImportError` => `DeprecationWarning` (928 <- 927)

4.44.0

- add automatic `nrows` and expose for manual override (918 -> 924)
- expose and warn about small `chunksize` in `tqdm.contrib.concurrent.process_map` (912)
- fix py2 file stream comparison (727 -> 730)
- deprecate `utils._environ_cols_wrapper`
- add and update tests
- add documentation

4.43.0

- fix `notebook` exceptions (669 <- 650)
+ `set_description()` when `disable=True`
- `contrib.concurrent`: avoid unnecessary `len(iterable)` (893)
- update documentation
+ clarify etymology (895)
+ fix minor typo (890)
+ update contributors and years
- update tests
- fix CI tests for PRs

4.42.1

- support `pandas==1.0.0` (780, 555)
- minor metadata updates
- minor CI test update

4.42.0

- `notebook`: update `disable=None` behaviour (880)
- `tqdm.keras`: support `tensorflow.keras` as well as `keras` (885)
- add `contrib` (882)
+ `tenumerate` (840 <- 480, 402)
+ `tzip` <= `zip`
+ `tmap` <= `map`
+ add `concurrent` module
 * `thread_map` <= `concurrent.futures.ThreadPoolExecutor.map`
 * `process_map` <= `concurrent.futures.ProcessPoolExecutor.map`
+ add `itertools` module (225) stub
 * `product`
- add & update tests
- add & update documentation
+ [README](https://github.com/tqdm/tqdm#tqdm)
+ [examples/](https://github.com/tqdm/tqdm/tree/master/examples)
- update CI framework

4.41.1

- `keras` module tidy and fixes
+ fix `batch_size=None` (869)
+ add missing `pop('size')`

4.41.0

- trim on `ncols` overflow with ANSI handling (850, 716 <- 690)
- add `notebook.reset()` (864)
- add `keras.TqdmCallback` (867 <- 835)
- documentation updates
+ document newly added features (above)
+ notebook `ncols` percentage/pixels (276)
- test updates
+ test newly added features (above)
+ add CI for `win` and `osx` (841)
+ `py2` threading

4.40.2

- fix `pandas` unhashable func (862 -> 863)
+ add tests

4.40.1

- fix floating point imprecision raising errors (859)
- fix auto gh releases ([travis-ci/dpl914](https://github.com/travis-ci/dpl/issues/914))
- update CONTRIBUTING ([84 (comment)](https://github.com/tqdm/tqdm/issues/84#issuecomment-167516992))

4.40.0

- officially support `float` for `n` and `total` (802)
+ `notebook`: use `FloatProgress` <= `IntProgress` (471, 456)
+ allow imprecision (`n <= total + epsilon`) (849)
- fix unicode bar format arguments (803 -> 851)
- add `contrib` submodule (815)
- add `wrapattr`, `utils.CallbackIOWrapper`, `contrib.DummyTqdmFile` (84 -> 844)
- update tests
- update documentation
- tidy automatic `snap` deployments
- minor doc update (854)

4.39.0

- add `pandas` builtin operations check (843 <- 697)
- avoid unnecessary `dedent` (837)
- remove unneeded bar logic
- misc code tidy
- update documentation
+ document default argument overriding (370)
+ add missing `isatty()` (713)
+ update badges
+ add code of conduct
- update framework
+ clean CI stages
+ update CI default `py3.6` => `py3.7`
+ automate snap releases (686 <- 685)

4.38.0

- support `lock_args` for e.g. non-blocking intermediate writes (838 -> 839)
+ use `self.refresh()` in more places
+ add and update performance tests
+ support args for `TqdmDefaultWriteLock.acquire()`
- fix colorama on win (678, 764)
- framework updates
+ CI cleanup
 * move to stages (check/test/deploy)
 * auto deploy notes
 * deploy only on parent repo
 * separate docker deploy
+ update documentation sync/generation
- update examples
- update documentation
- add and update tests
- misc tidy and linting
Links

Update bumpversion from 0.5.3 to 0.6.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update wheel from 0.33.6 to 0.45.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update twine from 2.0.0 to 6.0.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update Sphinx from 2.2.1 to 8.1.3.

Changelog

8.1.3

==============================

Bugs fixed
----------

* 13013: Restore support for :func:`!cut_lines` with no object type.
Patch by Adam Turner.

8.1.2

=====================================

Bugs fixed
----------

* 13012: Expose :exc:`sphinx.errors.ExtensionError` in ``sphinx.util``
for backwards compatibility.
This will be removed in Sphinx 9, as exposing the exception
in ``sphinx.util`` was never intentional.
:exc:`!ExtensionError` has been part of ``sphinx.errors`` since Sphinx 0.9.
Patch by Adam Turner.

8.1.1

=====================================

Bugs fixed
----------

* 13006: Use the preferred https://www.cve.org/ URL for
the :rst:role:`:cve: <cve>` role.
Patch by Hugo van Kemenade.
* 13007: LaTeX: Improve resiliency when the required
``fontawesome`` or ``fontawesome5`` packages are not installed.
Patch by Jean-François B.

8.1.0

=====================================

Dependencies
------------

* 12756: Add lower-bounds to the ``sphinxcontrib-*`` dependencies.
Patch by Adam Turner.
* 12833: Update the LaTeX ``parskip`` package from 2001 to 2018.
Patch by Jean-François B.

Incompatible changes
--------------------

* 12763: Remove unused internal class ``sphinx.util.Tee``.
Patch by Adam Turner.
* 12822: LaTeX: for Unicode engines, the :ref:`fvset` default is changed to
``'\\fvset{fontsize=auto}'`` from ``'\\fvset{fontsize=\\small}'``.
Code-blocks are unchanged as FreeMono is now loaded with ``Scale=0.9``.
An adjustment to existing projects is needed only if they used a custom
:ref:`fontpkg` configuration and did not set :ref:`fvset`.
Patch by Jean-François B.
* 12875: Disable smartquotes for languages: ``zh_CN`` and ``zh_TW`` by default.
Patch by A. Rafey Khan.

Deprecated
----------

* 12762: Deprecate ``sphinx.util.import_object``.
Use :py:func:`importlib.import_module` instead.
Patch by Adam Turner.
* 12766: Deprecate ``sphinx.util.FilenameUniqDict``
and ``sphinx.util.DownloadFiles``.
Patch by Adam Turner.

Features added
--------------

* 11328: Mention evaluation of templated content during production of static
output files.
Patch by James Addison.
* 12704: LaTeX: make :dudir:`contents <table-of-contents>`, :dudir:`topic`,
and :dudir:`sidebar` directives separately customizable for PDF output.
Patch by Jean-François B. and Bénédikt Tran.
* 12474: Support type-dependent search result highlighting via CSS.
Patch by Tim Hoffmann.
* 12652: LaTeX: Add :confval:`math_numsep` support to latex builder.
Patch by Thomas Fanning and Jean-François B.
* 12743: No longer exit on the first warning when
:option:`--fail-on-warning <sphinx-build --fail-on-warning>` is used.
Instead, exit with a non-zero status if any warnings were generated
during the build.
Patch by Adam Turner.
* 12743: Add :option:`sphinx-build --exception-on-warning`,
to raise an exception when warnings are emitted during the build.
Patch by Adam Turner and Jeremy Maitin-Shepard.
* 12907: Add :confval:`html_last_updated_use_utc` to allow using
universal time (GMT/UTC) instead of local time for the date-time
supplied to :confval:`html_last_updated_fmt`.
Patch by Adam Turner.
* 12910: Copyright entries now support the ``'%Y'`` placeholder
to substitute the current year.
This is helpful for reducing the reliance on Python modules
such as :py:mod:`time` or :py:mod:`datetime` in :file:`conf.py`.
See :ref:`the docs <config-copyright>` for further detail.
Patch by Adam Turner.
* 11781: Add roles for referencing CVEs (:rst:role:`:cve: <cve>`)
and CWEs (:rst:role:`:cwe: <cwe>`).
Patch by Hugo van Kemenade.
* 11809: Improve the formatting for RFC section anchors.
Patch by Jakub Stasiak and Adam Turner.
* 12852: Support a :attr:`.Builder.supported_linkcode` attribute
for builders to enable use of :mod:`sphinx.ext.linkcode`-generated
references.
Patch by James Knight.
* 12949: Print configuration options that differ from the pickled environment.
This can be helpful in diagnosing the cause of a full rebuild.
Patch by Adam Turner.

Bugs fixed
----------

* 12514: intersphinx: fix the meaning of a negative value for
:confval:`intersphinx_cache_limit`.
Patch by Shengyu Zhang.
* 12722: LaTeX: avoid TeX reporting ``Overfull \hbox`` from too long
strings in a codeline when the problem has actually been solved thanks
to :ref:`latexsphinxsetupforcewraps`.
Patch by Jean-François B.
* 12730: The ``UnreferencedFootnotesDetector`` transform has been improved
to more consistently detect unreferenced footnotes.
Note, the priority of the transform has been changed from 200 to 622,
so that it now runs after the docutils ``Footnotes`` resolution transform.
Patch by Chris Sewell.
* 12778: LaTeX: let :ref:`'sphinxsetup' <latexsphinxsetup>`
``div.topic_box-shadow`` key if used with only one dimension set both
x-offset and y-offset as per documentation.
Patch by Jean-François B.
* 12587: Do not warn when potential ambiguity detected during Intersphinx
resolution occurs due to duplicate targets that differ case-insensitively.
Patch by James Addison.
* 12639: Fix singular and plural search results text.
Patch by Hugo van Kemenade.
* 12645: Correctly support custom gettext output templates.
Patch by Jeremy Bowman.
* 12717: LaTeX: let :option:`-q <sphinx-build -q>` (quiet) option for
:program:`sphinx-build -M latexpdf` or :program:`make latexpdf` (``O=-q``)
get passed to :program:`latexmk`.  Let :option:`-Q <sphinx-build -Q>`
(silent) apply as well to the PDF build phase.
Patch by Jean-François B.
* 12744: LaTeX: Classes injected by a custom interpreted text role now give
rise to nested ``\DUrole``'s, rather than a single one with comma separated
classes.
Patch by Jean-François B.
* 12831: LaTeX: avoid large voids sometimes occurring at page bottoms.
Patch by Jean-François B.
* 11970, 12551: singlehtml builder: make target URIs to be same-document
references in the sense of :rfc:`RFC 3986, §4.4 <3986section-4.4>`,
e.g., ``index.htmlfoo`` becomes ``foo``.
(note: continuation of a partial fix added in Sphinx 7.3.0)
Patch by James Addison (with reference to prior work by Eric Norige).
* 12735: Fix :pep:`695` generic classes LaTeX output formatting.
Patch by Jean-François B. and Bénédikt Tran.
* 12782: intersphinx: fix double forward slashes when generating the inventory
file URL (user-defined base URL of an intersphinx project are left untouched
even if they end with double forward slashes).
Patch by Bénédikt Tran.
* 12796: Enable parallel reading if requested,
even if there are fewer than 6 documents.
Patch by Matthias Geier.
* 12844: Restore support for ``:noindex:`` for the :rst:dir:`js:module`
and :rst:dir:`py:module` directives.
Patch by Stephen Finucane.
* 12916: Restore support for custom templates named with the legacy ``_t``
suffix during ``apidoc`` RST rendering (regression in 7.4.0).
Patch by James Addison.
* 12451: Only substitute copyright notice years with values from
``SOURCE_DATE_EPOCH`` for entries that match the current system clock year,
and disallow substitution of future years.
Patch by James Addison and Adam Turner.
* 12905: intersphinx: fix flipped use of :confval:`intersphinx_cache_limit`,
which always kept the cache for positive values, and always refreshed it for
negative ones.
Patch by Nico Madysa.
* 12888: Add a warning when document is included in multiple toctrees
and ensure deterministic resolution of global toctree in parallel builds
by choosing the lexicographically greatest parent document.
Patch by A. Rafey Khan
* 12995: Significantly improve performance when building the search index
for Chinese languages.
Patch by Adam Turner.
* 12767: :py:meth:`.Builder.write` is typed as ``final``, meaning that the
:event:`write-started` event may be relied upon by extensions.
A new :py:meth:`.Builder.write_documents` method has been added to
control how documents are written.
This is intended for builders that do not output a file for each document.
Patch by Adam Turner.


Testing
-------

* 12141: Migrate from the deprecated ``karma`` JavaScript test framework to
the actively-maintained ``jasmine`` framework.  Test coverage is unaffected.
Patch by James Addison.
Links

Update sphinx-rtd-theme from 0.4.3 to 3.0.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update autopep8 from 1.4.4 to 2.3.1.

Changelog

2.3.1

What's Changed

Bug Fix
* skip e501 fixed method for f-string line without aggressive option by hhatto in https://github.com/hhatto/autopep8/pull/754
* Fix argument parser errors are printed without a trailing newline by hhatto in https://github.com/hhatto/autopep8/pull/758

Enhancement
* Refactor unit test by hhatto in https://github.com/hhatto/autopep8/pull/756
* Remove coveralls by hhatto in https://github.com/hhatto/autopep8/pull/757
* codecov with 3.11 and 3.12 by hhatto in https://github.com/hhatto/autopep8/pull/755

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.3.0...v2.3.1

2.3.0

What's Changed
* add handling for E204 whitespace after decorator by asottile in https://github.com/hhatto/autopep8/pull/752
* require to pycodestyle v2.12.0+


**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.2.0...v2.3.0

2.2.0

What's Changed

Other
* experimental option is deprecated by hhatto in https://github.com/hhatto/autopep8/pull/749

Bug Fixes
* fix specific case of e271 and w504 by hhatto in https://github.com/hhatto/autopep8/pull/748
* skip e501 fixed method for f-string line(s) by hhatto in https://github.com/hhatto/autopep8/pull/750


**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.1.2...v2.2.0

2.1.2

What's Changed
* Fix e501 experimental fstring case in Python3.12+ by hhatto in https://github.com/hhatto/autopep8/pull/747


**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.1.1...v2.1.2

2.1.1

What's Changed
* force reload pycodestyle module by hhatto in https://github.com/hhatto/autopep8/pull/740
* include test/acid.py in sdist package by hhatto in https://github.com/hhatto/autopep8/pull/741


**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.1.0...v2.1.1

2.1.0

What's Changed
* migrate to pyproject.toml by hhatto in https://github.com/hhatto/autopep8/pull/705
* Revert "Update MANIFEST.in" by hhatto in https://github.com/hhatto/autopep8/pull/710
* run with pypy3.10 by hhatto in https://github.com/hhatto/autopep8/pull/711
* ISSUE_TEMPLATE: use "console" instead of non-existing "shell" syntax by emanuele6 in https://github.com/hhatto/autopep8/pull/714
* add 3.12, drop 3.7 by hhatto in https://github.com/hhatto/autopep8/pull/709
* tox: add python3.12 to test environments by mvo5 in https://github.com/hhatto/autopep8/pull/726
* async def function formatting by j-z10 in https://github.com/hhatto/autopep8/pull/728
* pyproject: support py3.12 via new version of pycodestyle by mvo5 in https://github.com/hhatto/autopep8/pull/730
* add: unit test for e501 with async def by hhatto in https://github.com/hhatto/autopep8/pull/729
* Update python versions by hhatto in https://github.com/hhatto/autopep8/pull/731
* add unit test for e501 not effected with f-string by hhatto in https://github.com/hhatto/autopep8/pull/732
* add dependabot alearts for GitHub Actions by hhatto in https://github.com/hhatto/autopep8/pull/733
* Bump actions/setup-python from 4 to 5 by dependabot in https://github.com/hhatto/autopep8/pull/737
* Bump actions/checkout from 3 to 4 by dependabot in https://github.com/hhatto/autopep8/pull/736
* Bump github/codeql-action from 2 to 3 by dependabot in https://github.com/hhatto/autopep8/pull/734
* update codecov action v4 by hhatto in https://github.com/hhatto/autopep8/pull/738
* Avoid lib2to3 (second challenge) by hhatto in https://github.com/hhatto/autopep8/pull/739

New Contributors
* emanuele6 made their first contribution in https://github.com/hhatto/autopep8/pull/714
* mvo5 made their first contribution in https://github.com/hhatto/autopep8/pull/726
* j-z10 made their first contribution in https://github.com/hhatto/autopep8/pull/728
* dependabot made their first contribution in https://github.com/hhatto/autopep8/pull/737

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.4...v2.1.0

2.0.4

What's Changed
* Paugier fix pycodestyle missing whitespace by hhatto in https://github.com/hhatto/autopep8/pull/704
* Try to fix an AttributeError related to pycodestyle 2.11.0 by paugier in https://github.com/hhatto/autopep8/pull/699

New Contributors
* paugier made their first contribution in https://github.com/hhatto/autopep8/pull/699

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.3...v2.0.4

2.0.3

What's Changed
* add pre-commit configuration by asottile in https://github.com/hhatto/autopep8/pull/679
* Add pre commit config by hhatto in https://github.com/hhatto/autopep8/pull/681
* Version dependent operator whitespace function. by keriksson-rosenqvist in https://github.com/hhatto/autopep8/pull/696
* Update MANIFEST.in by keriksson-rosenqvist in https://github.com/hhatto/autopep8/pull/693

New Contributors
* keriksson-rosenqvist made their first contribution in https://github.com/hhatto/autopep8/pull/696

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.2...v2.0.3

2.0.2

What's Changed
* Ignore DeprecationWarnings to fix tests on py3.11 by mgorny in https://github.com/hhatto/autopep8/pull/665
* fix: infinite loop in autopep8.fix_code without w50 ignore option by hhatto in https://github.com/hhatto/autopep8/pull/677


**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.1...v2.0.2

2.0.1

What's Changed
* Add 'python_requires=">=3.6"' to match tomli package by vphilippon in https://github.com/hhatto/autopep8/pull/656
* require pycodestyle 2.10.0 and higher version by hhatto in https://github.com/hhatto/autopep8/pull/659
* update actions by hhatto in https://github.com/hhatto/autopep8/pull/658
* Support using built-in tomllib in Python 3.11 by mgorny in https://github.com/hhatto/autopep8/pull/654
* fix: e265, e266 by hhatto in https://github.com/hhatto/autopep8/pull/663

New Contributors
* vphilippon made their first contribution in https://github.com/hhatto/autopep8/pull/656

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.0...v2.0.1

1.7.1

What's Changed
* Cleanup Python 2 references in setup.py by geozeke in https://github.com/hhatto/autopep8/pull/644
* include tox.ini (because need unit test) by hhatto in https://github.com/hhatto/autopep8/pull/646
* Fix E265 and E266 confusion and overlap by PeterJCLaw in https://github.com/hhatto/autopep8/pull/650
* Use tomli in place of unmaintained toml package by mgorny in https://github.com/hhatto/autopep8/pull/629
* fix: special case of  `auto` value with flake8 config by hhatto in https://github.com/hhatto/autopep8/pull/653

New Contributors
* geozeke made their first contribution in https://github.com/hhatto/autopep8/pull/644
* PeterJCLaw made their first contribution in https://github.com/hhatto/autopep8/pull/650
* mgorny made their first contribution in https://github.com/hhatto/autopep8/pull/629

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v1.7.0...v1.7.1

1.7.0

Change
* Require [pycodestyle](https://pypi.org/project/pycodestyle/) 2.9.1 and higher version ( Thanks heavenshell ⭐ )
* Drop support Python2.7

New Feature
* Support E275

Bug Fix
* Ignoring W191 ( Thanks MinekPo1 ⭐ )

---

What's Changed
* add: verbose log for reading config paths by hhatto in https://github.com/hhatto/autopep8/pull/622
* Document being able to turn formatting off by shardros in https://github.com/hhatto/autopep8/pull/620
* Add support for ignoring W191. by MinekPo1 in https://github.com/hhatto/autopep8/pull/627
* Fix Flake8 E275 error by heavenshell in https://github.com/hhatto/autopep8/pull/639
* Drop no longer supported python versions by heavenshell in https://github.com/hhatto/autopep8/pull/637
* Heavenshell topic/pycodestyle2.9.0 by hhatto in https://github.com/hhatto/autopep8/pull/641
* Update pycodestyle 2.9.0 by heavenshell in https://github.com/hhatto/autopep8/pull/636
* Support E275 by hhatto in https://github.com/hhatto/autopep8/pull/642
* refactoring: remove py2 specific code by hhatto in https://github.com/hhatto/autopep8/pull/643

New Contributors
* MinekPo1 made their first contribution in https://github.com/hhatto/autopep8/pull/627

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v1.6.0...v1.7.0

1.6.0

Change
* required [pycodestyle](https://pypi.org/project/pycodestyle/) version 2.8.0 and higher version ( Thanks heavenshell ) 

Buf Fix
* 607 , 608 : Ignore Settings for W292 Do Not Work
* 603 , 604 : Multiple autopep8: off/on directives in one file do not work ( Thanks SPKorhonen )
* 612 , 618 : `--hang-closing` option does not work for non-indented lines

1.5.7

Change
* 597: disallow 0 for indent-size option
* 595: exit code is 99 when error occured cli option parsing

Bug Fix
* 591, 592: exit code correctly on permission denied failure

1.5.6

Update
* [pycodestyle version 2.7.0](https://pycodestyle.pycqa.org/en/latest/developer.html#id2) and higher is now required (Thanks heavenshell )

Bug Fix
* 585 : E128 check similar to pycodestyle (Thanks yamt )

1.5.5

bug fix and minor improvements

* improvement
* https://github.com/hhatto/autopep8/issues/566: lazy load `toml` package
* fix bug
* https://github.com/hhatto/autopep8/pull/580: not convert raw string for w605 fixed method

1.5.4

* new feature
* Skip formatting of a block in a file
 * use with `fmt: on/off` or `autopep8: on/off`
 * related: 460, 557  (Thanks to shardros)
* fix bugs
* 551, 553: ignoring W292 with --ignore option
* 564, 565: ignore SyntaxWarning in Python3.8+

1.5.3

* changes
* requirement pycodestyle version 2.6.0+ ( 548 )
* fix bugs
* Expected pyproject.toml configuration syntax incompatible with TOML format ( 528 , 546 )
* Fix incompatible exit code with --jobs=0 and --exit-code ( 543 , 545 )
* Fix hangup E122 fixed method with backslash ( 540 , 541 )

1.5.2

* new features
* 480, 535 : support parallel jobs for diff option
* changes
* 501, 537 : enable exclude option when specify directly file args
* fix bugs
* 364, 538 : related code E702
* 533 : related code W503/W504

1.5.1

* fix bugs
* 525 : related code W503 and W504 (Thanks NovaDev94)
* 526 : return diff exit code when reading from stdin too (Thanks pvxe )
* 529, 530 : related code E402
* 518, 532 : related code W503 and W504

1.5

* Support Python3.8
* Support `pyproject.toml` with `[tool.autopep8]` section.
* fix bugs
* 503, 511 : related code W503
* 486, 488 : related code E117
* 489, 498 : related code E711/E712
* 449, 514 : related code W605
Links

Update coverage from 4.5.4 to 7.6.8.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update mock from 3.0.5 to 5.1.0.

Changelog

5.1.0

-----

- bpo-44185: :func:`unittest.mock.mock_open` will call the :func:`close`
method of the file handle mock when it is exiting from the context
manager. Patch by Samet Yaslan.

- gh-94924: :func:`unittest.mock.create_autospec` now properly returns
coroutine functions compatible with :func:`inspect.iscoroutinefunction`

- bpo-17013: Add ``ThreadingMock`` to :mod:`unittest.mock` that can be used
to create Mock objects that can wait until they are called. Patch by
Karthikeyan Singaravelan and Mario Corchero.

- bpo-41768: :mod:`unittest.mock` speccing no longer calls class properties.
Patch by Melanie Witt.

5.0.2

-----

- gh-102978: Fixes :func:`unittest.mock.patch` not enforcing function
signatures for methods decorated with ``classmethod`` or
``staticmethod`` when patch is called with ``autospec=True``.

- gh-103329: Regression tests for the behaviour of
``unittest.mock.PropertyMock`` were added.

5.0.1

-----

- gh-100740: Fix ``unittest.mock.Mock`` not respecting the spec for
attribute names prefixed with ``assert``.

- gh-100690: ``Mock`` objects which are not unsafe will now raise an
``AttributeError`` when accessing an attribute that matches the name of an
assertion but without the prefix ``assert_``, e.g. accessing
``called_once`` instead of ``assert_called_once``. This is in addition to
this already happening for accessing attributes with prefixes ``assert``,
``assret``, ``asert``, ``aseert``, and ``assrt``.

- gh-96127: ``inspect.signature`` was raising ``TypeError`` on call with
mock objects. Now it correctly returns ``(*args, **kwargs)`` as infered
signature.

5.0.0

-----

- gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect
concurrent access to mock attributes.

- bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a
result, an already-mocked object cannot have an attribute mocked using
`autospec=True` or be the subject of a `create_autospec(...)` call. This
can uncover bugs in tests since these Mock-derived Mocks will always pass
certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.

- bpo-45156: Fixes infinite loop on :func:`unittest.mock.seal` of mocks
created by :func:`~unittest.create_autospec`.

- bpo-41403: Make :meth:`mock.patch` raise a :exc:`TypeError` with a
relevant error message on invalid arg. Previously it allowed a cryptic
:exc:`AttributeError` to escape.

- gh-91803: Fix an error when using a method of objects mocked with
:func:`unittest.mock.create_autospec` after it was sealed with
:func:`unittest.mock.seal` function.

- bpo-41877: AttributeError for suspected misspellings of assertions on
mocks are now pointing out that the cause are misspelled assertions and
also what to do if the misspelling is actually an intended attribute name.
The unittest.mock document is also updated to reflect the current set of
recognised misspellings.

- bpo-43478: Mocks can no longer be provided as the specs for other Mocks.
As a result, an already-mocked object cannot be passed to `mock.Mock()`.
This can uncover bugs in tests since these Mock-derived Mocks will always
pass certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.

- bpo-45010: Remove support of special method ``__div__`` in
:mod:`unittest.mock`. It is not used in Python 3.

- gh-84753: :func:`inspect.iscoroutinefunction` now properly returns
``True`` when an instance of :class:`unittest.mock.AsyncMock` is passed to
it.  This makes it consistent with behavior of
:func:`asyncio.iscoroutinefunction`.  Patch by Mehdi ABAAKOUK.

- bpo-46852: Remove the undocumented private ``float.__set_format__()``
method, previously known as ``float.__setformat__()`` in Python 3.7. Its
docstring said: "You probably don't want to use this function. It exists
mainly to be used in Python's test suite." Patch by Victor Stinner.

- gh-98086: Make sure ``patch.dict()`` can be applied on async functions.

- gh-100287: Fix the interaction of :func:`unittest.mock.seal` with
:class:`unittest.mock.AsyncMock`.

- gh-83076: Instantiation of ``Mock()`` and ``AsyncMock()`` is now 3.8x
faster.

- bpo-41877: A check is added against misspellings of autospect, auto_spec
and set_spec being passed as arguments to patch, patch.object and
create_autospec.

4.0.3

-----

- bpo-42532: Remove unexpected call of ``__bool__`` when passing a
``spec_arg`` argument to a Mock.

- bpo-39966: Revert bpo-25597. :class:`unittest.mock.MagicMock` with
wraps' set uses default return values for magic methods.

- bpo-41877: Mock objects which are not unsafe will now raise an
AttributeError if an attribute with the prefix asert, aseert, or assrt is
accessed, in addition to this already happening for the prefixes assert or
assret.

- bpo-40126: Fixed reverting multiple patches in unittest.mock. Patcher's
``__exit__()`` is now never called if its ``__enter__()`` is failed.
Returning true from ``__exit__()`` silences now the exception.

4.0.2

-----

- bpo-39915: Ensure :attr:`unittest.mock.AsyncMock.await_args_list` has
call objects in the order of awaited arguments instead of using
:attr:`unittest.mock.Mock.call_args` which has the last value of the call.
Patch by Karthikeyan Singaravelan.

4.0.1

-----

- Remove the universal marker from the wheel.

4.0.0

-----

- No Changes from 4.0.0b1.

4.0.0b1

-------

- The release is a fresh cut of cpython's `4a686504`__. All changes to :mod:`mock`
from that commit and before are included in this release along with the
subsequent changes listed below.

__ https://github.com/python/cpython/commit/4a686504eb2bbf69adf78077458508a7ba131667

- bpo-37972: Subscripts to the `unittest.mock.call` objects now receive
the same chaining mechanism as any other custom attributes, so that the
following usage no longer raises a `TypeError`:

call().foo().__getitem__('bar')

Patch by blhsing

- bpo-38839: Fix some unused functions in tests. Patch by Adam Johnson.

- bpo-39485: Fix a bug in :func:`unittest.mock.create_autospec` that
would complain about the wrong number of arguments for custom descriptors
defined in an extension module returning functions.

- bpo-39082: Allow AsyncMock to correctly patch static/class methods

- bpo-38093: Fixes AsyncMock so it doesn't crash when used with
AsyncContextManagers or AsyncIterators.

- bpo-38859: AsyncMock now returns StopAsyncIteration on the exaustion of
a side_effects iterable. Since PEP-479 its Impossible to raise a
StopIteration exception from a coroutine.

- bpo-38163: Child mocks will now detect their type as either synchronous
or asynchronous, asynchronous child mocks will be AsyncMocks and
synchronous child mocks will be either MagicMock or Mock (depending on
their parent type).

- bpo-38473: Use signature from inner mock for autospecced methods
attached with :func:`unittest.mock.attach_mock`. Patch by Karthikeyan
Singaravelan.

- bpo-38136: Changes AsyncMock call count and await count to be two
different counters. Now await count only counts when a coroutine has been
awaited, not when it has been called, and vice-versa. Update the
documentation around this.

- bpo-37555: Fix `NonCallableMock._call_matcher` returning tuple instead
of `_Call` object when `self._spec_signature` exists. Patch by Elizabeth
Uselton

- bpo-37251: Remove `__code__` check in AsyncMock that incorrectly
evaluated function specs as async objects but failed to evaluate classes
with `__await__` but no `__code__` attribute defined as async objects.

- bpo-38669: Raise :exc:`TypeError` when passing target as a string with
:meth:`unittest.mock.patch.object`.

- bpo-25597: Ensure, if ``wraps`` is supplied to
:class:`unittest.mock.MagicMock`, it is used to calculate return values
for the magic methods instead of using the default return values. Patch by
Karthikeyan Singaravelan.

- bpo-38108: Any synchronous magic methods on an AsyncMock now return a
MagicMock. Any asynchronous magic methods on a MagicMock now return an
AsyncMock.

- bpo-21478: Record calls to parent when autospecced object is attached
to a mock using :func:`unittest.mock.attach_mock`. Patch by Karthikeyan
Singaravelan.

- bpo-38857: AsyncMock fix for return values that are awaitable types.
This also covers side_effect iterable values that happend to be awaitable,
and wraps callables that return an awaitable type. Before these awaitables
were being awaited instead of being returned as is.

- bpo-38932: Mock fully resets child objects on reset_mock(). Patch by
Vegard Stikbakke

- bpo-37685: Fixed ``__eq__``, ``__lt__`` etc implementations in some
classes. They now return :data:`NotImplemented` for unsupported type of
the other operand. This allows the other operand to play role (for example
the equality comparison with :data:`~unittest.mock.ANY` will return
``True``).

- bpo-37212: :func:`unittest.mock.call` now preserves the order of

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant