Skip to content

Upgrading tqdm 3 to 4

Breaking3.8.0 → 4.70.1Security1Platform2Deprecated1New10Changed14Fixed26Other33

Fetching 140 releases from GitHub…18 / 140
BreakingUpgrade verdict

2 platform requirement changes and a security fix.

  • This version requires a newer Python and no longer works on Python 3.7.
  • tqdm now officially supports Python 3.12.
  • A security flaw in how the command-line tool handled evaluated input has been fixed.
  • The envwrap helper is being phased out in favor of a standalone package.
4 items need code or config changes

Requires Python >=3.8 from 4.68.3 (none stated before).

Security1
Fixes a safety issue in the CLI eval handling (CVE-2024-34062, GHSA-g7vv-2v7x-gj9p).
clievalLow
Platform2
Adds Python 3.14 support and drops Python 3.7 support.
Adds official Python 3.12 support.
Deprecated1
Soft-deprecates tqdm.utils.envwrap in favour of the separate envwrap package.
tqdm.utils.envwrap

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export TMonitor
  • added: export TqdmDeprecationWarning
  • added: export TqdmExperimentalWarning
  • added: export TqdmKeyError
  • added: export TqdmMonitorWarning
  • added: export TqdmSynchronisationWarning
  • added: export TqdmTypeError
  • added: export TqdmWarning
  • added: export main
  • added: function tnrange(*args, **kwargs)
  • added: function tqdm_notebook(*args, **kwargs)
  • added: async static method tqdm_asyncio.gather(*fs, loop=…, timeout=…, total=…, return_exceptions=…, **tqdm_kwargs)
  • added: class tqdm_asyncio(std_tqdm)
  • added: constructor tqdm_asyncio(iterable=…, *args, **kwargs)
  • added: function tarange(*args, **kwargs)
  • added: method tqdm_asyncio.send(*args, **kwargs)
  • added: static method tqdm_asyncio.as_completed(fs, *, loop=…, timeout=…, total=…, **tqdm_kwargs)
  • added: variable tqdm
  • added: variable trange
  • added: class tqdm(notebook_tqdm, asyncio_tqdm)
  • added: function trange(*args, **kwargs)
  • added: variable tqdm
  • added: export tqdm
  • added: export trange
  • added: function main(fp=…, argv=…)
  • added: function tenumerate(iterable, start=…, total=…, tqdm_class=…, **tqdm_kwargs)
  • added: function tmap(function, *sequences, **tqdm_kwargs)
  • added: function tzip(iter1, *iter2plus, **tqdm_kwargs)
  • added: export tqdm
  • added: export trange
  • added: function interpreter_map(fn, *iterables, **tqdm_kwargs)
  • added: function process_map(fn, *iterables, lock_name=…, **tqdm_kwargs)
  • added: function thread_map(fn, *iterables, **tqdm_kwargs)
  • added: class DiscordIO(MonoWorker)
  • added: class tqdm_discord(tqdm_auto)
  • added: constructor DiscordIO(token, channel_id)
  • added: constructor tqdm_discord(*args, token=…, channel_id=…, **kwargs)
  • added: field DiscordIO.API
  • added: field DiscordIO.UA
  • added: function tdrange(*args, **kwargs)
  • added: method DiscordIO.delete()
  • added: method DiscordIO.write(s)
  • added: method tqdm_discord.clear(*args, **kwargs)
  • added: method tqdm_discord.close()
  • added: method tqdm_discord.display(**kwargs)
  • added: property DiscordIO.message_id
  • added: variable tqdm
  • added: variable trange
  • added: function batched(iterable, n, total=…, tqdm_class=…, **kwargs)
  • added: function chain(*iterables, total=…, tqdm_class=…, **kwargs)
  • added: function combinations(iterable, r, total=…, tqdm_class=…, **kwargs)
  • added: function combinations_with_replacement(iterable, r, total=…, tqdm_class=…, **kwargs)
  • added: function permutations(iterable, r=…, total=…, tqdm_class=…, **kwargs)
  • added: function product(*iterables, repeat=…, total=…, tqdm_class=…, **kwargs)
  • added: function logging_redirect_tqdm(loggers=…, tqdm_class=…)
  • added: function tqdm_logging_redirect(*args, **kwargs)
  • added: class SlackIO(MonoWorker)
  • added: class tqdm_slack(tqdm_auto)
  • added: constructor SlackIO(token, channel)
  • added: constructor tqdm_slack(*args, token=…, channel=…, **kwargs)
  • added: function tsrange(*args, **kwargs)
  • added: method SlackIO.write(s)
  • added: method tqdm_slack.clear(*args, **kwargs)
  • added: method tqdm_slack.display(**kwargs)
  • added: variable tqdm
  • added: variable trange
  • added: class TelegramIO(MonoWorker)
  • added: class tqdm_telegram(tqdm_auto)
  • added: constructor TelegramIO(token, chat_id)
  • added: constructor tqdm_telegram(*args, token=…, chat_id=…, **kwargs)
  • added: field TelegramIO.API
  • added: function ttgrange(*args, **kwargs)
  • added: method TelegramIO.delete()
  • added: method TelegramIO.write(s)
  • added: method tqdm_telegram.clear(*args, **kwargs)
  • added: method tqdm_telegram.close()
  • added: method tqdm_telegram.display(**kwargs)
  • added: property TelegramIO.message_id
  • added: variable tqdm
  • added: variable trange
  • added: class MonoWorker
  • added: constructor MonoWorker()
  • added: method MonoWorker.submit(func, *args, **kwargs)
  • added: class TqdmCallback(Callback)
  • added: constructor TqdmCallback(start=…, pretask=…, tqdm_class=…, **tqdm_kwargs)
  • added: method TqdmCallback.display()
  • added: class tqdm_gui(std_tqdm)
  • added: constructor tqdm_gui(*args, **kwargs)
  • added: function tgrange(*args, **kwargs)
  • added: method tqdm_gui.clear(*_, **__)
  • added: method tqdm_gui.close()
  • added: method tqdm_gui.display(*_, **__)
  • added: variable tqdm
  • added: variable trange
  • added: class TqdmCallback(keras.callbacks.Callback)
  • added: constructor TqdmCallback(epochs=…, data_size=…, batch_size=…, verbose=…, tqdm_class=…, **tqdm_kwargs)
  • added: method TqdmCallback.display()
  • added: method TqdmCallback.on_epoch_begin(epoch, *_, **__)
  • added: method TqdmCallback.on_train_begin(*_, **__)
  • added: method TqdmCallback.on_train_end(*_, **__)
  • added: static method TqdmCallback.bar2callback(bar, pop=…, delta=…)
  • added: class tqdm_notebook(std_tqdm)
  • added: constructor tqdm_notebook(*args, **kwargs)
  • added: function tnrange(*args, **kwargs)
  • added: method tqdm_notebook.clear(*_, **__)
  • added: method tqdm_notebook.close()
  • added: method tqdm_notebook.display(msg=…, pos=…, close=…, bar_style=…, check_delay=…)
  • added: method tqdm_notebook.reset(total=…)
  • added: method tqdm_notebook.update(n=…)
  • added: property tqdm_notebook.colour
  • added: static method tqdm_notebook.status_printer(_, total=…, desc=…, ncols=…)
  • added: variable tqdm
  • added: variable trange
  • added: class tqdm_rich(std_tqdm)
  • added: constructor tqdm_rich(*args, **kwargs)
  • added: function trrange(*args, **kwargs)
  • added: method tqdm_rich.clear(*_, **__)
  • added: method tqdm_rich.close()
  • added: method tqdm_rich.display(*_, **__)
  • added: method tqdm_rich.reset(total=…)
  • added: variable tqdm
  • added: variable trange
  • added: class TqdmDeprecationWarning(TqdmWarning, DeprecationWarning)
  • added: class TqdmExperimentalWarning(TqdmWarning, FutureWarning)
  • added: class TqdmKeyError(KeyError)
  • added: class TqdmMonitorWarning(TqdmWarning, RuntimeWarning)
  • added: class TqdmTypeError(TypeError)
  • added: class TqdmWarning(Warning)
  • added: class tqdm(Comparable)
  • added: constructor TqdmWarning(msg, fp_write=…)
  • added: constructor tqdm(iterable=…, desc=…, total=…, leave=…, file=…, ncols=…, mininterval=…, maxinterval=…, miniters=…, ascii=…, disable=…, unit=…, unit_scale=…, dynamic_ncols=…, smoothing=…, bar_format=…, initial=…, position=…, postfix=…, unit_divisor=…, write_bytes=…, lock_args=…, nrows=…, colour=…, delay=…, gui=…, **kwargs)
  • added: field tqdm.monitor
  • added: field tqdm.monitor_interval
  • added: function trange(*args, **kwargs)
  • added: method tqdm.clear(nolock=…)
  • added: method tqdm.close()
  • added: method tqdm.display(msg=…, pos=…)
  • added: method tqdm.moveto(n)
  • added: method tqdm.refresh(nolock=…, lock_args=…)
  • added: method tqdm.reset(total=…)
  • added: method tqdm.set_description(desc=…, refresh=…)
  • added: method tqdm.set_description_str(desc=…, refresh=…)
  • added: method tqdm.set_postfix(ordered_dict=…, refresh=…, **kwargs)
  • added: method tqdm.set_postfix_str(s=…, refresh=…)
  • added: method tqdm.unpause()
  • added: method tqdm.update(n=…)
  • added: property tqdm.format_dict
  • added: static method tqdm.external_write_mode(file=…, nolock=…)
  • added: static method tqdm.format_interval(t)
  • added: static method tqdm.format_meter(n, total, elapsed, ncols=…, prefix=…, ascii=…, unit=…, unit_scale=…, rate=…, bar_format=…, postfix=…, unit_divisor=…, initial=…, colour=…, **extra_kwargs)
  • added: static method tqdm.format_num(n)
  • added: static method tqdm.format_sizeof(num, suffix=…, divisor=…)
  • added: static method tqdm.get_lock()
  • added: static method tqdm.pandas(**tqdm_kwargs)
  • added: static method tqdm.set_lock(lock)
  • added: static method tqdm.status_printer(file)
  • added: static method tqdm.wrapattr(stream, method, total=…, bytes=…, **tqdm_kwargs)
  • added: static method tqdm.write(s, file=…, end=…, nolock=…)
  • added: class tqdm_tk(std_tqdm)
  • added: constructor tqdm_tk(*args, **kwargs)
  • added: function ttkrange(*args, **kwargs)
  • added: method tqdm_tk.cancel()
  • added: method tqdm_tk.clear(*_, **__)
  • added: method tqdm_tk.close()
  • added: method tqdm_tk.display(*_, **__)
  • added: method tqdm_tk.reset(total=…)
  • added: method tqdm_tk.set_description(desc=…, refresh=…)
  • added: method tqdm_tk.set_description_str(desc=…, refresh=…)
  • added: variable tqdm
  • added: variable trange
  • added: class CallbackIOWrapper(ObjectWrapper)
  • added: class Comparable
  • added: class DisableOnWriteError(ObjectWrapper)
  • added: class FormatReplace
  • added: class ObjectWrapper
  • added: class SimpleTextIOWrapper(ObjectWrapper)
  • added: constructor CallbackIOWrapper(callback, stream, method=…)
  • added: constructor DisableOnWriteError(wrapped, tqdm_instance)
  • added: constructor FormatReplace(replace=…)
  • added: constructor ObjectWrapper(wrapped)
  • added: constructor SimpleTextIOWrapper(wrapped, encoding)
  • added: function disp_len(data)
  • added: function disp_trim(data, length)
  • added: function envwrap(name, app=…, types=…, is_method=…)
  • added: method ObjectWrapper.wrapper_getattr(name)
  • added: method ObjectWrapper.wrapper_setattr(name, value)
  • added: method SimpleTextIOWrapper.write(s)
  • added: static method DisableOnWriteError.disable_on_exception(tqdm_instance, func)
  • added: variable CUR_OS
  • added: variable IS_NIX
  • added: variable IS_WIN
  • added: variable RE_ANSI
  • added: variable colorama