NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1616 most downloaded on PyPI
Typing stubs for tqdm
Last release 28 days ago
06 Sep 2026
Release timing varies
gaps range from 9 days to 6 months
Nearly every release is documented
notes for 55 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
63 releases · first in 2022
One column per quarter.
* Update tqdm.utils.envwrap
* fixed some typos
* add base class property types
Fix kwargs that were not marked optional
Properly import tensorflow.keras in tqdm.keras
Use optional-dependencies for third-party packages
* Replace NoReturn with Never
NoReturn with Never (#16079)* Update to 4.69.*
[tqdm] Update to 4.68.*
[tqdm] Update to 4.68.* (#15876)
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
Rename requires to dependencies in METADATA files
[tqdm] Add thread_map and process_map type hints
[tqdm] Add thread_map and process_map type hints (#15460)
[stubsabot] Bump tqdm to 4.67.3
[stubsabot] Bump tqdm to 4.67.3 (#15366)
Release: https://pypi.org/pypi/tqdm/4.67.3 Repository: https://github.com/tqdm/tqdm Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/tqdm Diff: https://github.com/tqdm/tqdm/compare/v4.67.2...v4.67.3
Stubsabot analysis of the diff between the two releases:
If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
Closes: #15347 Diff: https://github.com/tqdm/tqdm/compare/v4.67.1...v4.67.2
[tqdm] Update to 4.67.2 (#15348)
Closes: #15347 Diff: https://github.com/tqdm/tqdm/compare/v4.67.1...v4.67.2
Mark stub-only private symbols as @type_check_only in third-party stubs
Mark stub-only private symbols as @type_check_only in third-party stubs (#14545)
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
tqdm: Fix return type of async for loop
tqdm: Fix return type of async for loop (#14028)
[tqdm] Add return type to tqdm.asyncio.gather
[tqdm] Add return type to tqdm.asyncio.gather (#13839)
Enable Ruff flake8-todos (TD)
Enable Ruff flake8-todos (TD) (#13748)
Add __all__ part 2 (#13719) --------- Co-authored-by: Avasam
[CI] Run stubtest with Python 3.13
[CI] Run stubtest with Python 3.13 (#13638)
fix yield type of tqdm.as_completed
fix yield type of tqdm.as_completed (#13557)
tqdm: Improve wrapattr
tqdm: Improve wrapattr (#13361)
Update to mypy 1.14
Update to mypy 1.14 (#13272)
Fix tqdm.asyncio type inconsistency
Fix tqdm.asyncio type inconsistency (#13259)
Update tqdm to 4.67.*
Update tqdm to 4.67.* (#13004)
Remove remaining bare Incompletes
Remove remaining bare Incompletes (#11768)
Enable Y065
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
Third-party stubs: remove unused type: ignores
Third-party stubs: remove unused type: ignores (#11063)
Remove redundant inheritances from Generic and various typing protocols
Remove redundant inheritances from Generic and various typing protocols (#10981)
Remove many redundant inheritances from Generic[]
Remove many redundant inheritances from Generic[] (#10933)
Consistently use Generic as the last base class
Consistently use Generic as the last base class (#10610)
Fix stubtest for tqdm
Fix stubtest for tqdm (#10560)
[stubsabot] Bump tqdm to 4.66.*
[stubsabot] Bump tqdm to 4.66.* (#10552)
Release: https://pypi.org/pypi/tqdm/4.66.0 Repository: https://github.com/tqdm/tqdm Diff: https://github.com/tqdm/tqdm/compare/v4.65.2...v4.66.0
Stubsabot analysis of the diff between the two releases:
tests/tests_utils.py.tqdm/cli.py, tqdm/contrib/discord.py, tqdm/contrib/slack.py, tqdm/contrib/telegram.py, tqdm/std.py, tqdm/utils.py.Co-authored-by: stubsabot <> Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
Add defaults for third-party stubs Q-T
Add defaults for third-party stubs Q-T (#9959)
Update tqdm stubs to 4.65.*
Update tqdm stubs to 4.65.* (#9840)
Improve many __(a)exit__ annotations
Improve many __(a)exit__ annotations (#9696)
Integrate requirements-stubtest.txt into METADATA.toml
Integrate requirements-stubtest.txt into METADATA.toml (#9778)
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
Complete stubtest and fix Any subclassing in tqdm
Complete stubtest and fix Any subclassing in tqdm (#9525)
Add a few more hooks. These are all very fast, and I've found them useful in other projects:
Improve pre-commit config (#9563)
trailing-whitespace: fixes trailing whitespacerequirements-txt-fixer: alphabetises items in requirements.txt filesend-of-file-fixer: makes sure every file ends with a single newline charactermixed-line-ending: Makes sure Windows users don't accidentally introduce CRLF line endings into a file that uses LF line endingscheck-yaml: loads YAML files to validate syntaxcheck-toml: loads TOML files to validate syntaxcheck-merge-conflict: detects merge-conflict strings in files and blocks them from accidentally being committedcheck-case-conflict: checks for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT; blocks them from being committed.black language target-version to Python 3.10, synching the setting here with the changes that were made to our pyproject.toml file in #7538Fix some Any subclassing in tqdm
Fix some Any subclassing in tqdm (#9505)
tqdm: Add missing tqdm.monitor class variable
tqdm: Add missing tqdm.monitor class variable (#9249)
Co-authored-by: Gabriel Smith gabriel.smith@precisionot.com
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
tqdm: allow disable=None in tqdm.__init__
tqdm: allow disable=None in tqdm.__init__ (#9154)
Fix and allow classes with missing metaclasses
Fix and allow classes with missing metaclasses (#9136)
Remove empty __init__ methods from classes with 0 parents
Remove empty __init__ methods from classes with 0 parents (#8907)
Bump mypy to 0.981
Bump mypy to 0.981 (#8796)
tqdm: All leave arguments can be None
tqdm: All leave arguments can be None (#8603)
All leave arguments are optional in tqdm.
Support extras in stubtest_third_party.py
Support extras in stubtest_third_party.py (#8467)
tqdm: Add __all__ to __init__.pyi and submodules
tqdm: Add __all__ to __init__.pyi and submodules (#8308)
Fixes #8307
tqdm: Improve a few __init__ methods
tqdm: Improve a few __init__ methods (#8246)
Your coding agent can read these notes before it upgrades. Set up the MCP server →