94 Releases
casperdcl edited this page 2024-11-06 16:58:57 +00:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

tqdm/tqdm Releases

v4.67.0 (2024-11-06)

  • 🔨 contrib.discord: replace disco-py with requests (#1536)

v4.66.6 (2024-10-28)

  • ⛑ 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

v4.66.5 (2024-08-03)

v4.66.4 (2024-05-02)

  • 🧯 rich: fix completion (#1395 <- #1306)
  • 🧹 minor framework updates & code tidy (#1578)

v4.66.3 (2024-05-02)

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

v4.66.2 (2024-02-10)

  • 🎉 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)
  • 🛠 CI: bump actions (#1549)

v4.66.1 (2023-08-10)

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

v4.66.0 (2023-08-09)

  • 🔨 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 (cli/cli#6680)

v4.65.2 (2023-08-08)

  • 📘 exclude examples from distributed wheel (#1492)

v4.65.1 (2023-08-08)

  • 🔨 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

v4.65.0 (2023-03-03)

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

v4.64.1 (2022-09-03)

v4.64.0 (2022-04-04)

  • 🎉 add contrib.slack (#1313)

v4.63.2 (2022-04-04)

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

v4.63.1 (2022-03-23)

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

v4.63.0 (2022-02-28)

  • 🎉 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

v4.62.3 (2021-09-20)

  • 🧯 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

v4.62.2 (2021-08-23)

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

v4.62.1 (2021-08-14)

  • 🛠 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)

v4.62.0 (2021-07-30)

v4.61.2 (2021-07-16)

  • 🔨 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)

v4.61.1 (2021-06-12)

  • 🧯 fix utils._screen_shape_linux() sometimes raising ValueError (#1174)
  • 🛠 minor build/CI framework updates (#1175)
  • 📘 minor documentation updates

v4.61.0 (2021-05-24)

  • 🎉 keras support for initial_epoch (#1150 <- #1138)
  • 📘 misc documentation updates
  • 🧯 fix & update tests (#1163)
  • 🛠 minor framework updates (#1163)

v4.60.0 (2021-04-06)

  • 🛠 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

v4.59.0 (2021-03-05)

  • 🎉 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)

v4.58.0 (2021-02-25)

  • 🎉 add start delay in seconds (#836 <- #1069, #704)
  • 🔍 add tests
  • 🧹 misc code tidy (#1130)
  • 📘 misc documentation updates

v4.57.0 (2021-02-18)

  • 🎉 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

v4.56.2 (2021-02-10)

  • 🧯 fix attribute errors when disabled (#1126)
    • reset() (#1125)
    • unpause()
  • 🔍 add tests

v4.56.1 (2021-02-09)

  • 🧯 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

v4.56.0 (2021-01-11)

  • 🎉 add tqdm.tk (#1006)
  • 🎉 add tqdm.rich
  • 🎉 minor formatting improvements for tqdm.gui
  • 🧯 fix display() inheritance/override
  • 🔍 add tests
  • 📘 add documentation

v4.55.2 (2021-01-09)

  • 🔍 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

v4.55.1 (2021-01-02)

  • 🧯 fix (Rolling|Expanding).progress_apply() on pandas==1.2.0 (#1106)
  • 📘 minor documentation updates

v4.55.0 (2020-12-25)

  • 🧯 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

v4.54.1 (2020-12-05)

  • ⚠️ drop py3.4 (no longer tested) (#1091)
  • 🛠 misc CI updates (#1091)
    • update snap build & deploy method
    • bot releases

v4.54.0 (2020-11-27)

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

v4.53.0 (2020-11-21)

  • 🎉 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)
  • 🛠 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

v4.52.0 (2020-11-16)

  • 🔨 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

v4.51.0 (2020-10-25)

  • 🎉 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

v4.50.2 (2020-10-08)

  • 🧯 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

v4.50.1 (2020-10-07)

  • 🧯 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 👿
  • major test overhaul: fix, update, and speed up
  • 🛠 misc CI framework updates
  • 🧹 code linting
  • 🧹 minor documentation tidy

v4.50.0 (2020-09-28)

  • 🎉 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

v4.49.0 (2020-09-12)

  • 🎉 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

v4.48.2 (2020-08-03)

  • 🧯 fix notebook formatting

v4.48.1 (2020-08-03)

  • 🧯 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

v4.48.0 (2020-07-16)

  • 🎉 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

v4.47.0 (2020-06-28)

  • 🎉 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

contrib.telegram

v4.46.1 (2020-06-03)

  • 🧯 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

v4.46.0 (2020-05-03)

  • 🎉 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

v4.45.0 (2020-04-02)

  • 🔨 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

v4.44.1 (2020-03-29)

  • 🧯 fix _utils ImportError => DeprecationWarning (#928 <- #927)

v4.44.0 (2020-03-28)

  • 🎉 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

v4.43.0 (2020-02-19)

  • 🧯 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

v4.42.1 (2020-02-03)

  • 🎉 support pandas==1.0.0 (#780, #555)
  • 📘 minor metadata updates
  • 🛠 minor CI test update

v4.42.0 (2020-01-25)

  • 🔨 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
  • 🛠 update CI framework

v4.41.1 (2020-01-05)

  • 🧯 keras module tidy and fixes
    • fix batch_size=None (#869)
    • add missing pop('size')

v4.41.0 (2019-12-20)

  • 🔨 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

v4.40.2 (2019-12-11)

  • 🧯 fix pandas unhashable func (#862 -> #863)
    • add tests

v4.40.1 (2019-12-11)

v4.40.0 (2019-12-01)

  • 🎉 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)

v4.39.0 (2019-11-22)

  • 🎉 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)

v4.38.0 (2019-11-09)

  • 🎉 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

v4.37.0 (2019-10-31)

  • 🧯 potential future pandas fix (#824)
  • 🎉 better unicode widechar support (#803 -> #410, #805)
  • 🧯 fix example/tqdm_wget unknown total (#826)
  • 🎉 add stacklevel=2 to warnings (#821)
  • 🛠 misc framework updates
    • snapcraft version fix
    • update issue/pr templates (#830)
    • update unit tests
  • 📘 misc documentation updates
    • update parallel (multiprocessing, ThreadPoolExecutor) example (#407)
    • add slides, video images
    • add CII Best Practices badge
    • add repology badge
    • update badge icons

v4.36.1 (2019-09-20)

  • 🧯 fix CLI entrypoint

v4.36.0 (2019-09-17)

  • 🎉 expose more custom format params
  • 🧯 potential thread safety fix (#548)
  • ⚒ update submodule architecture (#198 -> #800)
    • backward-compatibility
    • expose utils
    • rename main -> cli
    • add/fix tests
    • fix minor cached var optimisation
    • gui partial upgrade (#790)
    • notebook upgrade (#790)
      • support {bar} in bar_format (#594)
      • inherit methods including set_*(refresh) (#740 -> #741)
    • ready for contrib releases (#252)
  • 🎉 support custom bar_format with unknown total
  • 🧯 fix tqdm_notebook red block on explicit file=None (#791)
  • 🎉 update notebook to fully support custom bar_format (#594, #649)
  • 🧹 misc tidy
    • warnings
    • linting
    • update submodule contribution guide (#252)
    • parallel (py)make test
    • fix Zenodo metadata
  • 📘 update documentation
    • pandas, notebook, gui (#245)
    • indentation
    • update multiprocessing and multithreading examples (#796)

v4.35.0 (2019-08-24)

  • 🎉 add {bar} format specifier (#623 -> #799)
    • [width][type]
  • 📘 add tests and documentation
  • update performance tests

v4.34.0 (2019-08-18)

  • 🎉 add leave=None convenience option for leave = position == 0
  • 🔨 ensure nested completed bars respect leave=True (#230)
  • 🔨 ensure nested bars are cleared before being moved up (#795)
  • 🎉 support both and = syntax for CLI options (#761 -> #774)
  • 📘 misc documentation updates (#778, #782)
  • 🧯 fix/update tests
  • 🛠 update GitHub docker package deployment

v4.33.0 (2019-08-08)

  • 🧯 fix pandas==0.25 API change (#780)
  • 📘 add contributor badges (sourcerer)
  • 🧯 fix py26 travis CI
  • 🧯 metadata fixes
    • .zenodo.json
    • CODEOWNERS
  • 🛠 GitHub package registry docker deployment
  • 🧹 minor linting
  • 📘 documentation updates (#773)

v4.32.2 (2019-06-18)

  • 🧯 fix 'Set changed size during iteration' (#481 -> #700, #754)
  • 🎉 add tqdm.autonotebook check for $VSCODE_PID (#747 -> #751)
  • 🧯 fix missing multiprocessing in Jython (#698)
  • 🔨 make bool(tqdm(iter)) consistent with bool(iter) (#353 -> #694)
  • 🔍 add and update unit tests
  • 🛠 add and update documentation & framework
    • update notable contributors list
    • update usage docstrings (#714, #715)
    • add funding
    • add awesome-python badge
    • trove classifier update
    • update demo notebook badges
    • add JOSS DOI
    • add Zenodo metadata
    • move unnecessary root clutter

v4.32.1 (2019-05-13)

  • 🧯 fix notebook with unknown total (#743)

v4.32.0 (2019-05-13)

  • 🎉 support unit_scale in notebook
  • 🎉 support negative update (#432, #545)
  • 🎉 add reset() function (#547, #545)
  • 🎉 add [python setup.py] make run
  • 📘 add and update documentation
    • example of dynamic usage (#735, #545, #547, #432, #374)
    • note writing issues (#737)
    • update badges
    • add PyData2019 slides link
    • add JOSS paper
    • update manpages
    • add docker install
    • add snapcraft install
    • notebooks: add binder, rename RMOTR => notebooks.ai (#679)
    • prettify and unify contributors/maintainers/authors
  • 🛠 CI and release framework updates
    • add snapcraft snaps (#647)
    • add travis auto-deployment (#685)
      • PyPI releases
      • docker devel/releases
    • update deployment dev docs
    • fix travis deploy pymake
    • update .gitinore
    • add & update unit tests
    • automate more documentation

v4.31.1 (2019-02-10)

  • 🧯 fix file.encoding==None caused by #598 (#673 -> #676)
    • add tests
  • 🧹 tidy code, update authors and tests
    • add setup.py test to CI

v4.31.0 (2019-02-09)

  • 🔨 Write bytes to stdout/stderr in py2 (https://bugs.python.org/issue21363, #589 -> #598)
    • Add write_bytes parameter for py2/3 default override
  • 🎉 support custom bar characters vias ascii parameter (#223 -> #227)
    • implement, document and test custom bar spinners
  • 🎉 support custom bar_format with unknown total (#282 -> #284)
  • 🧯 fix TypeError when unit_scale and unknown total
  • 📘 document format_dict
  • 🎉 expose elapsed_s, remaining_s to bar_format
  • 🎉 add unit option to bar_format (#368)
  • 🛠 auto README.rst generation framework
    • add notes in CONTRIBUTING.md
  • 🔍 update tests
  • 📘 update documentation
  • 🧹 misc code tidy

v4.30.0 (2019-01-26)

  • 🔨 avoid moving when leave=False
  • 🔍 generalise nested bar tests
  • 🎉 add display() helper function
  • 🎉 add and expose format_dict (#562, #482, #494, #656)
    • allow arbitrary keyword arguments for format_meter
    • document format_dict overriding
    • add tests for overriding
    • related: #660 #172 #587
  • 🧹 add and tidy developer documentation
  • 🧯 fix py3 CLI pipe decoding error (#663)
  • 🛠 framework overhaul (developing, testing, Travis CI updates)
  • 🧹 tidy code and style (flake8)
  • setup.py refactor
    • setup.py make
      • add support for multi-line commands
      • tidy and efficiency
    • replace setup.py's built-in make -> py-make>=0.1.9 (#290)
    • add requirements-dev.txt and extras_require[dev]
  • 🧹 add, update and tidy tests
  • 📘 include interactive Jupyter demonstration (#652 -> #659)
  • 📘 update documentation
    • add FAQ about py2 pipes (#359)
    • add badges
    • update examples
    • update authors

v4.29.1 (2019-01-11)

  • 🧯 fix classmethod lock bug (#617: #457 -> #658)
  • 🔍 add unit test to prevent regression

v4.29.0 (2019-01-06)

  • 🔨 Avoid global multiprocessing locks (#611 -> #617)
  • 🎉 Add support for infinite iterables (#651)
  • 🧯 Fix missing attr pos when used in multi-threaded environment (#573)
  • 🔨 Do not join TMonitor if it is the current thread (#613 -> #641)
  • 🎉 Add OpenBSD NIX support (#638)
  • 🧯 Unit tests, general documentation fixes and tidying (e.g. #642)
  • 🛠 CI travis improvements
    • py37-dev -> py37 (#622)
    • fix py26

v4.28.1 (2018-10-21)

  • 🧯 fix --manpath file not found
  • 🎉 expose main():argv
  • 🔍 add unit tests
  • 🧹 release framework tidy
    • update .gitattributes
    • remove deprecated make/dist options

v4.28.0 (2018-10-20)

  • 🧹 remove installation of man pages by default (#460, #628)
  • 🎉 CLI:add --manpath option (#629)
  • 🧯 documentation additions and fixes

v4.27.0 (2018-10-15)

  • 🧯 fix str.isnumeric #605
  • 🧯 fix WeakSet KeyError #548, #553, #596 -> #607
  • 🔨 stop tqdm_notebook description truncation #582 -> #599
  • 🔨 include unit_scale for rate #608
  • 🎉 add auto -> nowarning autonotebook
  • 🎉 add better postfix numeric formatting #621
  • ⚒ minor refactoring #609 -> #616
  • 📘 update documentation
  • 🔍 add unit tests
  • 🧯 fix py26 CI

v4.26.0 (2018-09-11)

  • 🧯 fix smoothing (#566 -> #601)
  • 🔨 pandas updates
    • address the FutureWarning in pandas, drop pandas test in py34, add in py37 (#603)
    • support pandas axis='index' or 'columns' (#570)
  • 📘 minor documentation updates (#597, #600, #606)
    • developer notes

v4.25.0 (2018-08-20)

  • 🔨 stop monitor on shutdown (#571, #572)
  • 🧯 fix find_packages() for submodules (#593)
  • 🔨 ignore ANSI escape codes in the bar length calculation (#450, #591 -> #592)
  • 📘 update documentation (#243)

v4.24.0 (2018-07-26)

  • 🔨 autonotebook submodule for automatic selection of notebook/CLI bar (#443, #508)
    • update/add pandas() example documentation (#474)
  • 🔨 NameError:IntProgress changed to a more helpful ImportError (#187, #451, #558)
  • 🎉 support bool() cast when disable=True (#574)
  • 🧯 fix format_sizeof hundreds rounding (#579 -> #581)
  • 📘 ensure URLs in documentation are secure (https)

v4.23.4 (2018-05-22)

  • 🎉 Support pandas 0.23.0 core.groupby module layout (#555 -> #554)
  • 🎉 Add python_requires to help pip (#557)
  • 🛠 minor maintenance updates
    • CI updates: drop travis py33 due to tox (tox-dev/tox#648)
    • minor code tidy

v4.23.3 (2018-05-22)

  • ⚠️ suppress 10 second warning (refix #323)

v4.23.2 (2018-05-02)

  • 🧯 minor import syntax fix #496
  • 🧯 re-fix nested overlaps #477
  • 📘 update documentation and examples
  • 🧹 code tidy and abstraction

v4.23.1 (2018-04-25)

  • 🧯 fix AttributeErrors (#546)
  • 🧯 fix py34 CI
  • 📘 update documentation

v4.23.0 (2018-04-15)

  • 🧯 Fix disable=True whereiterable has no len() and is not None (#539)
  • 🎉 Add ncols to specify tqdm_notebook bar width (#276 -> #292)
  • 🔨 allow custom pandas total (#364 -> #535)
  • 🎉 Add progress_apply for pandas.(Series|DataFrame).(rolling|expanding) (#530 -> #537)
  • 🧹 unit tests, pep8 tidy
  • 📘 postfix non-dict documentation note

v4.22.0 (2018-04-11)

  • 🔨 allow direct non-string assignment to postfix member (lists, dicts, etc) (#382 -> #534)
  • 📘 documentation updates
  • 🔍 unit tests

v4.21.0 (2018-04-08)

  • 🧯 fix #532 write() with manual position
    • more robust free position finding
  • 🎉 add TqdmWarning base class
  • 🧯 fix GUI __del__()
    • add TqdmExperimentalWarning
  • 🧯 add, tidy & fix unit tests
  • 📘 documentation
    • wiki release notes
    • update contributors
    • fix 7zx example

v4.20.0 (2018-04-03)

  • 🧹 pandas wrapper: remove *args and add better total handling (#244, #299, #322, #366 -> #524)
  • 📘 document windows unicode know issues (#454)
  • 🔨 suppress RuntimeError: Set changed size during iteration -> TqdmSynchronisationWarning (#481)

v4.19.9 (2018-03-27)

  • 🧯 fix monitor thread termination and update tests (#527)

v4.19.8 (2018-03-27)

  • 🧯 fix monitoring thread issues
    • avoid uninitialised instance manipulation (#493)
    • fix thread starting RuntimeError (#522 -> #523)
  • 🔨 these release notes (#529)

v4.19.6 (2018-02-27)

  • 🎉 CLI improvements
    • --bytes implies --unit B --unit_scale --unit_divisor 1024 (#503)
    • allow hyphens in CLI arguments (#511)
  • 🧯 synchronisation: fix for sem_open on aarch64 (#513)
  • 🛠 framework update
    • CI/tests, year 2018, py37, badges, documentation

v4.19.5 (2017-12-10)

  • 🧯 multiprocess/lock fixes (#457)
  • 🔨 set_description in notebook (#345 -> #475)
  • 🧹 minor tidy (#476)
  • 📘 documentation updates

v4.19.4 (2017-10-15)

  • 🧯 fix Lock:NotImplementedError on certain systems (#466 -> #468)
  • 🔨 use recursive locks (#469 -> #468)
    • fix deadlocks
  • 🧹 tidy (#448)
  • 🔨 flush() on moveto() (#398 -> #399, #420, #467)
  • 🔍 update tests and benchmarks

v4.19.2 (2017-10-08)

  • 🔨 flush() on refresh() (#459 from #317)
  • 🔨 status printer updates (#331)
    • use sp() in refresh()
    • remove redundant clear():nomove=False
  • 📘 misc minor documentation updates
  • 🔍 unit tests

v4.19.1 (2017-10-03)

  • 🔨 rate_(no)inv(_fmt) (#72, b228bc3)
  • 🧹 __repr__() tidy (#389)
  • 🧯 fix write() before initialisation AttributeError: _lock (#457)
  • 📘 man pages
  • 📘 documentation updates

v4.18.0 (2017-09-30)

Related to:

  • 🔨 Misc bugs (#334)
  • 🔨 concurrent.futures (#97)
  • 🔨 Multi-tqdm (#143)
  • 🔨 flush() and refresh() (#331)
  • 🔨 Newline on refresh() (#361)
  • 🔨 Nested trees (#384)
  • 🔨 Manually positioned nested bars clearing (#385)

v4.17.1 (2017-09-26)

  • 🔨 initialise n even when disabled (#438)
  • 🎉 better unicode detection (#437)
  • 🧯 __repr__() bugfix (#441)

v4.17.0 (2017-09-20)

  • 🔨 easier redirect of stdout (#426 -> #431)
    • cls.external_write_mode() @contextmanager
  • 🔨 refresh=True for set_description/update(_str) (#317 -> #377)

v4.16.0 (2017-09-20)

  • 🔨 more formatting control (#347 -> #362)
    • set_postfix_str(), set_description_str()
    • move ": " to bar_format
    • complements #266, #270
  • 🎉 better CLI support (e.g. hyphenated paths) (#421 #423 -> #424)
  • 🔍 more unit tests (#411)
    • upgrade to pypy2/3-5.8.0
    • add py37-dev
  • 📘 doc updates

v4.15.0 (2017-07-29)

v4.14.0 (2017-07-29)

  • 🎉 add unit_divisor #354 -> #356
  • 📘 update examples

v4.13.0 (2017-05-29)

v4.12.0 (2017-05-29)

  • 🧯 fix monitor race condition #338 -> #339
  • 🎉 add explicit NetBSD support #344
  • 🧹 documentation tidy

v4.11.2 (2017-01-24)

  • ⛑ thread safety #332
  • 🔨 address DeprecationWarning #319 -> #326
  • 🔨 version extra #328 -> #330
  • ⛑ minor safety
  • 📘 minor documentation and comments

v4.11.1 (2017-01-23)

Officially support Python 3.6, addressing #333

v4.11.0 (2017-01-12)

  • 🎉 postfix argument added #266->#270
  • 🧯 fix tests for
  • 📘 7z extraction example script
  • 📘 new logo #315
  • 📘 hit counter with logo colours and stats
  • 📘 documentation updates
  • ⛑ safer setup.py Makefile emulation
  • 📘 better github contributions integrations and Code of Conduct #310

v4.10.0 (2016-11-12)

  • 🧯 fix maxinterval to adjust miniters to mininterval #249
  • 🧯 minor bugfixes (eg #288)
  • misc optimisations, unit tests, and benchmarks (eg #298)
  • 📘 documentation updates

v4.9.0 (2016-10-31)

  • 🔨 monitoring thread to automatically to adjust miniters and avoid exceeding maxinterval
    • test race conditions
    • kill on KeyboardInterrupt + instant refresh
    • low performance overhead, option to disable
  • 🎉 new CLI argument: --bytes to count chars
  • 🔨 disable automatically on non-TTY (#281)
  • 🧯 fixed refresh() and clear() if disabled (#286)
  • 🧯 misc fixes
  • 📘 documentation
  • 🔍 unit tests
  • optimisations, style fixes
  • 📘 codacy badge
  • ⚠️ safety and warning suppression
  • 🔨 ignore coverall failures (#283)
  • 🧯 fix broken link in README (#262)
  • Fix time() in refresh() + avoid write() races (#264)
  • 🧯 Fix __repr__() #269
  • 🧯 Fix update(0) causing ZeroDivisionError (on first call) #268
  • 🔍 Faster simple bar for perf test (#257)
  • 🔨 cleaner tqdm_notebook exit when not run in a notebook (#267)
  • 🔨 Disable coveralls because of duplicate comments on github (#263)
  • 🔨 Migrate codecov config -> codecov.yml

v4.8.4 (2016-08-17)

  • 14% overhead reduction
  • 🧯 fix exception when closing tqdm_notebook without a total
  • 🎉 support more pandas modules
    • pandas.Series.progress_map
    • pandas.DataFrame.progress_applymap
    • Panel.progress_apply
    • PanelGroupBy.progress_apply
    • GroupBy.progress_aggregate
    • GroupBy.progress_transform
  • 🛠 faster CI builds
  • 📘 misc documentation update and link to wiki

v4.8.1 (2016-07-25)

  • ⚠️ custom tqdm warning/exceptions
  • 🔍 tests now multiprocessed and include pandas

v4.8.0 (2016-07-25)

  • ⚠️ tqdm.pandas classmethod replaces tqdm_pandas function (deprecated)
  • 🧯 ipython aliased imports fixes
  • 🔨 write without any instances
  • 📘 readme update
  • 📘 examples update
  • 🧯 test fixes and updates

v4.7.6 (2016-06-30)

  • 🎉 support for pandas series
  • 🎉 support for numpy arrays
  • 🧹 tidy & coverage

v4.7.4 (2016-06-04)

  • 🎉 pandas.DataFrame.apply support
  • 🔨 tqdm_notebook.write()
  • 🔨 tqdm_gui.write()
  • 🧯 misc notebook fixes
  • delay notebook imports (>80% reduction in import time when unused)
  • 🔨 optional colorama only on windows
  • 🧹 documentation tidy
  • 🔍 more & faster tests

v4.7.0 (2016-05-15)

  • 🎉 CLI custom delimiter support
  • 🔨 More robust CLI argument parsing
    • either one or two - preceding kwargs (eg -ascii or --ascii)
    • no positional args (so no need to quote multi-word -desc for example)
    • bool kwargs with implicit value=True still supported
    • optional = sign after kwargs
  • 🔍 tests
  • 📘 doc updates, badges
    • pyversions, doi, licence, github

v4.6.2 (2016-05-15)

  • 🧯 Fix warnings due to IPython/Jupyter widget

v4.6.1 (2016-05-15)

  • 🎉 add IPython/Jupyter support
  • 🧯 fix {bar} length breaking display when using custom bar_format
  • 🎉 add a no inversion rate formatting for bar_format (i.e., always show it/s and never s/it)

v4.5.0 (2016-04-25)

  • 🔨 print messages within (nested) loops using tqdm.write(...)

v4.4.3 (2016-04-24)

  • 🧹 remove docopt dependency for CLI
  • 🎉 re-added update(0) ability to trigger refresh
  • 🧯 minor fixes
    • re-added (OSI approved) licence to source
    • dev versioning auto-fallback
  • slight speed optimisation
  • 🔍 tests
  • 📘 documentation

v4.4.1 (2016-04-22)

  • 🔨 Module execution in CLI pipes!
    • tqdm executable
    • documentation
    • tests
  • 🔨 MSYS aded to supported envs
  • 🎉 better VTE support
  • 🔨 dev versioning
  • 🔍 tests

v4.2.0 (2016-04-22)

  • 📘 MPL licence!
  • 📘 slightly updated logo
  • 📘 update examples
  • 🔨 update(0) allowed
  • 🎉 better VTE support
    • ascii fallback when unicode not available

v4.0.0 (2016-02-04)

  • 🔨 automate nested
    • deprecate nested
    • add manual override control with position
  • 📘 documentation and example updates, coverage and tests
  • 🔨 make leave==True by default (was False)

v3.8.0 (2016-01-31)

  • 🔨 update(n<1) raises error
  • 📘 sanitise and update examples and README
  • 🧯 fix setup.py encoding error
  • 🧹 remove py32 from Travis
  • 📘 changelog more accessible from README

v3.7.1 (2016-01-13)

  • 🎉 Added more OS support (FreeBSD, Solaris/SunOS)
  • 🔍 Added Python3.5 support and tests
  • 🎉 Added IronPython2.7 support
  • 🧯 Fix Makefile management for Python3
  • 🔍 Added relative timing for tests
  • 🔨 More stable smoothed ETA
  • ⚒ Refactoring everything into one big tqdm class for even more subclassing fun

v3.6.0 (2015-12-31)

Added support for "restarting" a progressbar after a long pause without making the iteration rate go haywire. Simply call the unpause() method on the tqdm instance that is about to be restarted. Can also start tqdm skipping a number of steps specified by initial (without bias-ing ETA).

v3.5.0 (2015-12-31)

  • 🔨 Fully customisable output format using the bar_format keyword argument.
    • Valid strings: bar, n, n_fmt, total, total_fmt, percentage, rate, rate_fmt, elapsed, remaining, l_bar, r_bar, desc
    • Example: bar_format='{desc}{bar}{rate:03.3d}'
    • Default: '{l_bar}{bar}{r_bar}', where l_bar is '{desc}{percentage:3.0f}%|' and r_bar is '| {n_fmt}/{total_fmt} [{elapsed_str}<{remaining_str}, {rate_fmt}]'.
  • 🎉 Solaris, FreeBSD support mentioned
  • 🔨 Link redirects circumvented

v3.3.0 (2015-12-31)

  • 🎉 Support added for pandas apply => progress_apply
  • 🔨 80-char width when running interactive help()
  • 📘 update examples using with syntax

v3.1.4 (2015-11-28)

Added smoothing and maxinterval features for smooth progress bar and rate for unconstant, variable changes in update times, and abstracted gui to its own class and file.

Also added a performance test to prevent performance regressions.

v2.2.4 (2015-11-08)

Added the dynamic management of the bar on window resize, plus a better internal testing/build workflow using python setup.py make [alias].

v2.0.0 (2015-10-11)

First public release of the next generation of tqdm, with lots of new features, more speed, more unit testing, more coverage (100% yeah!), more beer and coffee.

This release can also be downloaded on PyPi here.