Upgrading billiard 3 to 4
Breaking3.6.4.0 → 4.3.1Breaking5Platform5Changed14Fixed17Other31
BreakingUpgrade verdict
5 breaking changes and 5 platform requirement changes.
In plain terms
- Passing True or False where a number is expected now raises an error instead of being treated as 1 or 0.
- Creating a pool with zero or negative processes now fails instead of being accepted.
- Setting maxtasksperchild to zero or a negative number now raises an error.
- Calling close on a process that has not finished now raises an error instead of silently closing it.
Must act Top 5 of 10 that need code or config changes
Requires Python >=3.10 from 4.3.0 (none stated before).
What you must change
Breaking5
Rejects bool values for Pool numeric arguments such as processes, timeouts and limits.
PoolRejects fewer than one pool process.
PoolRejects a non-positive maxtasksperchild in Pool.
PoolmaxtasksperchildRefuses to close a Process that is still running.
ProcessProcess.close()Raises ValueError when using a closed Queue.
QueuePlatform5
Updates the Python version requirement to 3.10.
Adds initial support for Python 3.13.
Removes Python 3.7 support.
Adds support for Python 3.11 _posixsubprocess.fork_exec() arguments.
_posixsubprocess.fork_exec()Drops support for Python versions below 3.7.
API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- removed:
variable cpickle - removed:
variable pickle - changed:
class restart_state(object) → class restart_state - added:
function clear_terminate_handler_fired() - added:
function terminate_handler_fired()
- removed:
class bytes(_bytes) - removed:
function closerange(fd_low, fd_high) - removed:
variable buf_t - removed:
variable bytes - removed:
variable closerange - removed:
variable is_new_buffer
- changed:
class Listener(object) → class Listener
- changed:
class ExceptionInfo(object) → class ExceptionInfo - changed:
class Traceback(object) → class Traceback
- removed:
class WhateverIO(StringIO) - removed:
class timespec(ctypes.Structure) - removed:
function exec_(code, globs=…, locs=…) - removed:
function items(d) - removed:
function keys(d) - removed:
function nextfun(it) - removed:
function reraise(tp, value, tb=…) - removed:
function values(d) - removed:
function with_metaclass(Type, skip_attrs=…) - removed:
method WhateverIO.write(data) - removed:
variable BytesIO - removed:
variable CLOCK_MONOTONIC - removed:
variable CoreServices - removed:
variable PY3 - removed:
variable SYSTEM - removed:
variable WhateverIO - removed:
variable absolute_to_nanoseconds - removed:
variable clock_gettime - removed:
variable ctypes - removed:
variable exec_ - removed:
variable int_types - removed:
variable libSystem - removed:
variable librt - removed:
variable long_t - removed:
variable mach_absolute_time - removed:
variable map - removed:
variable monotonic - removed:
variable range - removed:
variable reload - removed:
variable string - removed:
variable string_t - removed:
variable text_t
- changed:
class BufferWrapper(object) → class BufferWrapper
- changed:
class BaseManager(object) → class BaseManager - changed:
class BaseProxy(object) → class BaseProxy - changed:
class Token(object) → class Token
- changed:
class ApplyResult(object) → class ApplyResult - changed:
class IMapIterator(object) → class IMapIterator - changed:
class Pool(object) → class Pool - changed:
class Worker(object) → class Worker
- changed:
class Popen(object) → class Popen
- changed:
class Popen(object) → class Popen
- changed:
class BaseProcess(object) → class BaseProcess
- changed:
class Queue(object) → class Queue
- changed:
class DupHandle(object) → class DupHandle
- changed:
class DupFd(object) → class DupFd - changed:
class DupSocket(object) → class DupSocket
- changed:
class Condition(object) → class Condition - changed:
class Event(object) → class Event