Upgrading tqdm 3 to 4
Breaking3.8.0 → 4.70.1Security1Platform2Deprecated1New10Changed14Fixed26Other33
Fetching 140 releases from GitHub…18 / 140
SecurityLowFixes a safety issue in the CLI `eval` handling (CVE-2024-34062, GHSA-g7vv-2v7x-gj9p).GHSA-g7vv-2v7x-gj9p · CVE-2024-34062 ↗
BreakingUpgrade verdict
2 platform requirement changes and a security fix.
In plain terms
- 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.
Must act 4 items need code or config changes
Requires Python >=3.8 from 4.68.3 (none stated before).
What you must change
Security1
Fixes a safety issue in the CLI
eval handling (CVE-2024-34062, GHSA-g7vv-2v7x-gj9p).clievalLowPlatform2
Adds Python 3.14 support and drops Python 3.7 support.
Adds official Python 3.12 support.
Deprecations to plan for
Deprecated1
Soft-deprecates tqdm.utils.envwrap in favour of the separate envwrap package.
tqdm.utils.envwrapAPI changes
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