What’s New¶
What’s new in version 0.18.2 (2019-10-30)¶
This is a minor bug-fix release containing a number of fixes: - Fix min/max functions with generators, and ‘None’ default (PR #514) - Use BaseException in raise_() (PR #515) - Fix builtins.round() for Decimals (Issue #501) - Fix raise_from() to prevent failures with immutable classes (PR #518) - Make FixInput idempotent (Issue #427) - Fix type in newround (PR #521) - Support mimetype guessing in urllib2 for Py3.8+ (Issue #508)
Python 3.8 is not yet officially supported.
What’s new in version 0.18.1 (2019-10-09)¶
This is a minor bug-fix release containing a fix for raise_() when passed an exception that’s not an Exception (e.g. BaseException subclasses)
What’s new in version 0.18.0 (2019-10-09)¶
This is a major bug-fix and feature release, including:
Fix collections.abc import for py38+
Remove import for isnewbytes() function, reducing CPU cost significantly
Fix bug with importing past.translation when importing past which breaks zipped python installations
Fix an issue with copyreg import under Py3 that results in unexposed stdlib functionality
Export and document types in future.utils
Update behavior of newstr.__eq__() to match str.__eq__() as per reference docs
Fix raising and the raising fixer to handle cases where the syntax is ambigious
Allow “default” parameter in min() and max() (Issue #334)
Implement __hash__() in newstr (Issue #454)
Future proof some version checks to handle the fact that Py4 won’t be a major breaking release
Fix urllib.request imports for Python 3.8 compatibility (Issue #447)
Fix future import ordering (Issue #445)
Fixed bug in fix_division_safe fixture (Issue #434)
Do not globally destroy re.ASCII in PY3
Fix a bug in email.Message.set_boundary() (Issue #429)
Implement format_map() in str
Implement readinto() for socket.fp
As well as a number of corrections to a variety of documentation, and updates to test infrastructure.
What’s new in version 0.17.1 (2018-10-30)¶
This release address a packaging error because of an erroneous declaration that any built wheels are universal.
What’s new in version 0.17.0 (2018-10-19)¶
This is a major bug-fix release, including:
Fix
from collections import ChainMap
after install_aliases() (issue #226)Fix multiple import from
__future__
bug in futurize (issue #113)Add support for proper %s formatting of newbytes
Properly implement iterator protocol for newrange object
Fix
past.translation
on read-only file systemsFix Tkinter import bug introduced in Python 2.7.4 (issue #262)
Correct TypeError to ValueError in a specific edge case for newrange
Support inequality tests betwen newstrs and newbytes
Add type check to __get__ in newsuper
Fix fix_divsion_safe to support better conversion of complex expressions, and skip obvious float division.
As well as a number of corrections to a variety of documentation, and updates to test infrastructure.
What’s new in version 0.16.0 (2016-10-27)¶
This release removes the configparser
package as an alias for
ConfigParser
on Py2 to improve compatibility with the backported
configparser package <https://pypi.org/project/configparser/>. Previously
python-future
and the PyPI configparser
backport clashed, causing
various compatibility issues. (Issues #118, #181)
If your code previously relied on configparser
being supplied by
python-future
, the recommended upgrade path is to run pip install
configparser
or add configparser
to your requirements.txt
file.
Note that, if you are upgrading future
with pip
, you may need to
uninstall the old version of future or manually remove the
site-packages/future-0.15.2-py2.7.egg
folder for this change to take
effect on your system.
This releases also fixes these bugs:
Fix
newbytes
constructor bug. (Issue #171)Fix semantics of
bool()
withnewobject
. (Issue #211)Fix
standard_library.install_aliases()
on PyPy. (Issue #205)Fix assertRaises for
pow
andcompile`
on Python 3.5. (Issue #183)Fix return argument of
future.utils.ensure_new_type
if conversion to new type does not exist. (Issue #185)Add missing
cmp_to_key
for Py2.6. (Issue #189)Allow the
old_div
fixer to be disabled. (Issue #190)Improve compatibility with Google App Engine. (Issue #231)
Add some missing imports to the
tkinter
andtkinter.filedialog
package namespaces. (Issues #212 and #233)More complete implementation of
raise_from
on PY3. (Issues #141, #213 and #235, fix provided by Varriount)
What’s new in version 0.15.2 (2015-09-11)¶
This is a minor bug-fix release:
Fix
socket.create_connection()
backport on Py2.6 (issue #162)Add more tests of
urllib.request
etc.Fix
newsuper()
calls from the__init__
method of PyQt subclassses (issue #160, thanks to Christopher Arndt)
What’s new in version 0.15.1 (2015-09-09)¶
This is a minor bug-fix release:
Use 3-argument
socket.create_connection()
backport to restore Py2.6 compatibility inurllib.request.urlopen()
(issue #162)Remove breakpoint in
future.backports.http.client
triggered on certain data (issue #164)Move
exec
fixer to stage 1 offuturize
because the forward-compatibleexec(a, b)
idiom is supported in Python 2.6 and 2.7. See https://docs.python.org/2/reference/simple_stmts.html#exec.
What’s new in version 0.15.0 (2015-07-25)¶
This release fixes compatibility bugs with CherryPy’s Py2/3 compat layer and
the latest version of the urllib3
package. It also adds some additional
backports for Py2.6 and Py2.7 from Py3.4’s standard library.
New features:
install_aliases()
now exposes full backports of the Py3 urllib submodules (parse
,request
etc.) fromfuture.backports.urllib
as submodules ofurllib
on Py2. This implies, for example, thaturllib.parse.unquote
now takes an optional encoding argument as it does on Py3. This improves compatibility with CherryPy’s Py2/3 compat layer (issue #158).tkinter.ttk
support (issue #151)Backport of
collections.ChainMap
(issue #150)Backport of
itertools.count
for Py2.6 (issue #152)Enable and document support for the
surrogateescape
error handler fornewstr
andnewbytes
objects on Py2.x (issue #116). This feature is currently in alpha.Add constants to
http.client
such asHTTP_PORT
andBAD_REQUEST
(issue #137)Backport of
reprlib.recursive_repr
to Py2
Bug fixes:
Add
HTTPMessage
tohttp.client
, which is missing fromhttplib.__all__
on Python <= 2.7.10. This restores compatibility with the latesturllib3
package (issue #159, thanks to Waldemar Kornewald)Expand newint.__divmod__ and newint.__rdivmod__ to fall back to <type ‘long’> implementations where appropriate (issue #146 - thanks to Matt Bogosian)
Fix newrange slicing for some slice/range combos (issue #132, thanks to Brad Walker)
Small doc fixes (thanks to Michael Joseph and Tim Tröndle)
Improve robustness of test suite against opening .pyc files as text on Py2
Update backports of
Counter
andOrderedDict
to use the newer implementations from Py3.4. This fixes.copy()
preserving subclasses etc.futurize
no longer breaks working Py2 code by changingbasestring
tostr
. Instead it imports thebasestring
forward-port frompast.builtins
(issues #127 and #156)future.utils
: addstring_types
etc. and update docs (issue #126)
Previous versions¶
See Changes in previous versions for versions prior to v0.15.