Professional Documents
Culture Documents
Laboratorio Quimico
Laboratorio Quimico
Python News
+++++++++++
(editors: check NEWS.help for information about editing NEWS using ReST.)
What's New in Python 2.5.1?
=============================
*Release date: 18-APR-2007*
Core and builtins
----------------- Revert SF #1615701: dict.update() does *not* call __getitem__() or keys()
if subclassed. This is to remain consistent with 2.5.
Also revert revision 53667 with made a similar change to set.update().
What's New in Python 2.5.1c1?
=============================
*Release date: 05-APR-2007*
Core and builtins
----------------- Patch #1682205: a TypeError while unpacking an iterable is no longer
masked by a generic one with the message "unpack non-sequence".
- Patch #1642547: Fix an error/crash when encountering syntax errors in
complex if statements.
- Patch #1462488: Python no longer segfaults when ``object.__reduce_ex__()``
is called with an object that is faking its type.
- Patch #1680015: Don't modify __slots__ tuple if it contains an unicode
name.
- Patch #922167: Python no longer segfaults when faced with infinitely
self-recursive reload() calls (as reported by bug #742342).
- Patch #1675981: remove unreachable code from ``type.__new__()`` method.
- Patch #1638879: don't accept strings with embedded NUL bytes in long().
- Bug #1674503: close the file opened by execfile() in an error condition.
- Patch #1674228: when assigning a slice (old-style), check for the
sq_ass_slice instead of the sq_slice slot.
- Bug #1669182: prevent crash when trying to print an unraisable error
from a string exception.
- The peephole optimizer left None as a global in functions with a docstring
and an explicit return value.
- Bug #1653736: Properly discard third argument to slot_nb_inplace_power.
- SF #151204: enumerate() now raises an Overflow error at sys.maxint items.
- Bug #1377858: Fix the segfaulting of the interpreter when an object created
a weakref on itself during a __del__ call for new-style classes (classic
classes still have the bug).
- Bug #1648179: set.update() did not recognize an overridden __iter__
method in subclasses of dict.
- Bug #1579370: Make PyTraceBack_Here use the current thread, not the
frame's thread state.
- patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py
- Bug #1637022: Prefix AST symbols with _Py_.
- Prevent seg fault on shutdown which could occur if an object
raised a warning.
- Bug #1566280: Explicitly invoke threading._shutdown from Py_Main,
to avoid relying on atexit.
- Bug #1590891: random.randrange don't return correct value for big number
- Bug #1456209: In some obscure cases it was possible for a class with a
custom ``__eq__()`` method to confuse set internals when class instances
were used as a set's elements and the ``__eq__()`` method mutated the set.
- The repr for self-referential sets and fronzensets now shows "..." instead
of falling into infinite recursion.
- Eliminated unnecessary repeated calls to hash() by set.intersection() and
set.symmetric_difference_update().
- Bug #1591996: Correctly forward exception in instance_contains().
- Bug #1588287: fix invalid assertion for `1,2` in debug builds.
- Bug #1576657: when setting a KeyError for a tuple key, make sure that
the tuple isn't used as the "exception arguments tuple". Applied to
both sets and dictionaries.
- Bug #1565514, SystemError not raised on too many nested blocks.
- Bug #1576174: WindowsError now displays the windows error code
again, no longer the posix error code.
- Patch #1549049: Support long values in structmember.
- Bug #1542016: make sys.callstats() match its docstring and return an
11-tuple (only relevant when Python is compiled with -DCALL_PROFILE).
- Bug #1545497: when given an explicit base, int() did ignore NULs
embedded in the string to convert.
- Bug #1569998: break inside a try statement (outside a loop) is now
recognized and rejected.
- Patch #1542451: disallow continue anywhere under a finally.
- list.pop(x) accepts any object x following the __index__ protocol.
Library
------- Reverted patch #1504333 because it introduced an infinite loop.
- Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE
by adding smarter caching in inspect.getmodule().
- Fix missing import of the types module in logging.config.
- Patch #1550886: Fix decimal module context management implementation
to match the localcontext() example from PEP 343.
- Bug #1541863: uuid.uuid1 failed to generate unique identifiers
on systems with low clock resolution.
- Bug #1543303, patch #1543897: remove NUL padding from tarfiles.
- Bug #1531862: Do not close standard file descriptors in subprocess.
Extension Modules
----------------- Bug #1599782: fix segfault on bsddb.db.DB().type().
- Fix bugs in ctypes:
- anonymous structure fields that have a bit-width specified did not work
- cast function did not accept c_char_p or c_wchar_p instances as first arg
- Bug #1551427: fix a wrong NULL pointer check in the win32 version
of os.urandom().
- Bug #1548092: fix curses.tparm seg fault on invalid input.
- Bug #1550714: fix SystemError from itertools.tee on negative value for n.
- Fixed a few bugs on cjkcodecs:
- gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly.
- iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312
codepoints to conform the standard.
- iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2
codepoints now.
Tests
----- Patch #1559413: Fix test_cmd_line if sys.executable contains a space.
- Fix bsddb test_basics.test06_Transactions to check the version
number properly.
Documentation
------------- Patch #1679379: add documentation for fnmatch.translate().
- Patch #1671450: add a section about subclassing builtin types to the
access, again.
- Bug #1512695: cPickle.loads could crash if it was interrupted with
a KeyboardInterrupt.
- Bug #1296433: parsing XML with a non-default encoding and
a CharacterDataHandler could crash the interpreter in pyexpat.
- Patch #1516912: improve Modules support for OpenVMS.
Build
----- Automate Windows build process for the Win64 SSL module.
- 'configure' now detects the zlib library the same way as distutils.
Previously, the slight difference could cause compilation errors of the
'zlib' module on systems with more than one version of zlib.
- The MSI compileall step was fixed to also support a TARGETDIR
with spaces in it.
- Bug #1517388: sqlite3.dll is now installed on Windows independent
of Tcl/Tk.
- Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
trying to be installed even though it's empty.
Tests
----- Call os.waitpid() at the end of tests that spawn child processes in order
to minimize resources (zombies).
Documentation
------------- Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
documentation for the warnings module.
- Patch #1509163: MS Toolkit Compiler no longer available.
- Patch #1504046: Add documentation for xml.etree.
What's New in Python 2.5 beta 1?
================================
*Release date: 20-JUN-2006*
Core and builtins
----------------- Patch #1507676: Error messages returned by invalid abstract object operations
(such as iterating over an integer) have been improved and now include the
type of the offending object to help with debugging.
- Bug #992017: A classic class that defined a __coerce__() method that returned
its arguments swapped would infinitely recurse and segfault the interpreter.
- WindowsError now has two error code attributes: errno, which carries
the error values from errno.h, and winerror, which carries the error
values from winerror.h. Previous versions put the winerror.h values
(from GetLastError()) into the errno attribute.
- Patch #1475845: Raise IndentationError for unexpected indent.
- Patch #1479181: split open() and file() from being aliases for each other.
- Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
methods were always silently ignored by dictionaries when comparing keys.
They are now passed through (except when using the C API function
``PyDict_GetItem()``, whose semantics did not change).
- Bug #1456209: In some obscure cases it was possible for a class with a
custom ``__eq__()`` method to confuse dict internals when class instances
were used as a dict's keys and the ``__eq__()`` method mutated the dict.
No, you don't have any code that did this ;-)
Extension Modules
----------------- Bug #1295808: expat symbols should be namespaced in pyexpat
- Patch #1462338: Upgrade pyexpat to expat 2.0.0
- Change binascii.hexlify to accept a read-only buffer instead of only a char
buffer and actually follow its documentation.
- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
- Patch #1478788 (modified version): The functional extension module has
been renamed to _functools and a functools Python wrapper module added.
This provides a home for additional function related utilities that are
not specifically about functional programming. See PEP 309.
- Patch #1493701: performance enhancements for struct module.
- Patch #1490224: time.altzone is now set correctly on Cygwin.
- Patch #1435422: zlib's compress and decompress objects now have a
copy() method.
- Patch #1454481: thread stack size is now tunable at runtime for thread
enabled builds on Windows and systems with Posix threads support.
- On Win32, os.listdir now supports arbitrarily-long Unicode path names
(up to the system limit of 32K characters).
- Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,ut
ime}.
As a result, these functions now raise WindowsError instead of OSError.
- ``time.clock()`` on Win64 should use the high-performance Windows
``QueryPerformanceCounter()`` now (as was already the case on 32-bit
Windows platforms).
- Calling Tk_Init twice is refused if the first call failed as that
may deadlock.
- Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
package.
- Patch #1472854: make the rlcompleter.Completer class usable on nonUNIX platforms.
- Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
- Bug #1472827: correctly escape newlines and tabs in attribute values in
the saxutils.XMLGenerator class.
Build
----- Bug #1502728: Correctly link against librt library on HP-UX.
- OpenBSD 3.9 is supported now.
- Patch #1492356: Port to Windows CE.
- Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
- Patch #1471883: Add --enable-universalsdk.
C API
----Tests
----Tools
----Documentation
-------------
multiple times.
- Bug #1454485, array.array('u') could crash the interpreter. This was
due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
to unicode when it didn't make sense. 'u#' now requires a unicode string.
- Py_UNICODE is unsigned. It was always documented as unsigned, but
due to a bug had a signed value in previous versions.
- Patch #837242: ``id()`` of any Python object always gives a positive
number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
``PyLong_AsVoidPtr`` have been changed accordingly. Note that it has
never been correct to implement a ``__hash()__`` method that returns the
``id()`` of an object:
def __hash__(self):
return id(self) # WRONG
because a hash result must be a (short) Python int but it was always
possible for ``id()`` to return a Python long. However, because ``id()``
could return negative values before, on a 32-bit box an ``id()`` result
was always usable as a hash value before this patch. That's no longer
necessarily so.
- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
to load extension modules and now provides the dl module. As a result,
sys.setdlopenflags() now works correctly on these systems. (SF patch
#1454844)
- Patch #1463867: enhanced garbage collection to allow cleanup of cycles
involving generators that have paused outside of any ``try`` or ``with``
blocks. (In 2.5a1, a paused generator that was part of a reference
cycle could not be garbage collected, regardless of whether it was
paused in a ``try`` or ``with`` block.)
Extension Modules
----------------- Patch #1191065: Fix preprocessor problems on systems where recvfrom
is a macro.
- Bug #1467952: os.listdir() now correctly raises an error if readdir()
fails with an error condition.
- Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
- Bug #1117761: bsddb.*open() no longer raises an exception when using
the cachesize parameter.
- Bug #1149413: bsddb.*open() no longer raises an exception when using
a temporary db (file=None) with the 'n' flag to truncate on open.
- Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
as older versions cause excessive test failures.
- Patch #1062014: AF_UNIX sockets under Linux have a special
abstract namespace that is now fully supported.
Library
-------
explicitly relative, using 'from .module import name' to mean 'from the same
package as this module is in. Imports without dots still default to the
old relative-then-absolute, unless 'from __future__ import
absolute_import' is used.
- Properly check if 'warnings' raises an exception (usually when a filter set
to "error" is triggered) when raising a warning for raising string
exceptions.
- CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
The name was removed from Include/code.h.
- PEP 308: conditional expressions were added: (x if cond else y).
- Patch 1433928:
- The copy module now "copies" function objects (as atomic objects).
- dict.__getitem__ now looks for a __missing__ hook before raising
KeyError.
- PEP 343: with statement implemented. Needs ``from __future__ import
with_statement``. Use of 'with' as a variable will generate a warning.
Use of 'as' as a variable will also generate a warning (unless it's
part of an import statement).
The following objects have __context__ methods:
- The built-in file type.
- The thread.LockType type.
- The following types defined by the threading module:
Lock, RLock, Condition, Semaphore, BoundedSemaphore.
- The decimal.Context class.
- Fix the encodings package codec search function to only search
inside its own package. Fixes problem reported in patch #1433198.
Note: Codec packages should implement and register their own
codec search function. PEP 100 has the details.
- PEP 353: Using ``Py_ssize_t`` as the index type.
- ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
now allow Python to make use of memory blocks exceeding 2**32 bytes for
some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited
to 4-byte allocations before.
- Patch #1400181, fix unicode string formatting to not use the locale.
This is how string objects work. u'%f' could use , instead of .
for the decimal point. Now both strings and unicode always use periods.
- Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
configure would break checking curses.h.
- Bug #959576: The pwd module is now builtin. This allows Python to be
built on UNIX platforms without $HOME set.
- Bug #1072182, fix some potential problems if characters are signed.
- Bug #889500, fix line number on SyntaxWarning for global declarations.
- Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
codes.
- Changes donated by Elemental Security to make it work on AIX 5.3
with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
bug #105470: test_pwd fails on 64bit system (Opteron).
- Changes donated by Elemental Security to make it work on HP-UX 11 on
Itanium2 with HP's 64-bit compiler (SF patch #1225212).
- Disallow keyword arguments for type constructors that don't use them
(fixes bug #1119418).
- Forward UnicodeDecodeError into SyntaxError for source encoding errors.
- SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
exceptions that cause a function to exit.
- The implementation of set() and frozenset() was revised to use its
own internal data structure. Memory consumption is reduced by 1/3
and there are modest speed-ups as well. The API is unchanged.
- SF bug #1238681: freed pointer is used in longobject.c:long_pow().
- SF bug #1229429: PyObject_CallMethod failed to decrement some
reference counts in some error exit cases.
- SF bug #1185883: Python's small-object memory allocator took over
a block managed by the platform C library whenever a realloc specified
a small new size. However, there's no portable way to know then how
much of the address space following the pointer is valid, so there's no
portable way to copy data from the C-managed block into Python's
small-object space without risking a memory fault. Python's small-object
realloc now leaves such blocks under the control of the platform C
realloc.
- SF bug #1232517: An overflow error was not detected properly when
attempting to convert a large float to an int in os.utime().
- SF bug #1224347: hex longs now print with lowercase letters just
like their int counterparts.
- SF bug #1163563: the original fix for bug #1010677 ("thread Module
Breaks PyGILState_Ensure()") broke badly in the case of multiple
interpreter states; back out that fix and do a better job (see
http://mail.python.org/pipermail/python-dev/2005-June/054258.html
for a longer write-up of the problem).
- SF patch #1180995: marshal now uses a binary format by default when
serializing floats.
- SF patch #1181301: on platforms that appear to use IEEE 754 floats,
the routines that promise to produce IEEE 754 binary representations
of floats now simply copy bytes around.
- bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
278.
- patch #1109424: int, long, float, complex, and unicode now check for the
proper magic slot for type conversions when subclassed. Previously the
magic slot was ignored during conversion. Semantics now match the way
MultibyteStreamReader, or MultibyteStreamWriter
- Fix memory leak in posix.access().
- Patch #1213831: Fix typo in unicodedata._getcode.
- Bug #1007046: os.startfile() did not accept unicode strings encoded in
the file system encoding.
- Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
platforms that don't have inet_aton().
- Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
- Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
line without newlines.
- Bug #728515: mmap.resize() now resizes the file on Unix as it did
on Windows.
- Patch #1180695: Add nanosecond stat resolution, and st_gen,
st_birthtime for FreeBSD.
- Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
the request code argument, which results in more C-like behaviour
for large or negative values.
- Bug #1234979: For the argument of thread.Lock.acquire, the Windows
implementation treated all integer values except 1 as false.
- Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
- Patch #1212117: os.stat().st_flags is now accessible as a attribute
if available on the platform.
- Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
available on the platform.
- Bug #1166660: The readline module could segfault if hook functions
were set in a different thread than that which called readline.
- collections.deque objects now support a remove() method.
- operator.itemgetter() and operator.attrgetter() now support retrieving
multiple fields. This provides direct support for sorting on multiple
keys (primary, secondary, etc).
- os.access now supports Unicode path names on non-Win32 systems.
- Patches #925152, #1118602: Avoid reading after the end of the buffer
in pyexpat.GetInputContext.
- Patches #749830, #1144555: allow UNIX mmap size to default to current
file size.
- Added functional.partial(). See PEP309.
- Patch #1093585: raise a ValueError for negative history items in readline.
{remove_history,replace_history}
- The spwd module has been added, allowing access to the shadow password
database.
- stat_float_times is now True.
- array.array objects are now picklable.
- the cPickle module no longer accepts the deprecated None option in the
args tuple returned by __reduce__().
- itertools.islice() now accepts None for the start and step arguments.
This allows islice() to work more readily with slices:
islice(s.start, s.stop, s.step)
- datetime.datetime() now has a strptime class method which can be used to
create datetime object using a string and format.
- Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
Library
------- Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
been renamed to have only a single underscore prefix. This was done to
make subclassing easier.
- PEP 338: new module runpy defines a run_module function to support
executing modules which provide access to source code or a code object
via the PEP 302 import mechanisms.
- The email module's parsedate_tz function now sets the daylight savings
flag to -1 (unknown) since it can't tell from the date whether it should
be set.
- Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
now sport attributes that provide access to the parts of the result.
- Patch #1462498: sgmllib now handles entity and character references
in attribute values.
- Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
later to build this - if you have an earlier version, the C extension
module will not be built.
- Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts
aren't officially supported here, and trying to use them will probably
raise an exception some day. But dicts have been allowed, and "mostly
worked", so support for them won't go away without warning.
- Bug #1445068: getpass.getpass() can now be given an explicit stream
argument to specify where to write the prompt.
- Patch #1462313, bug #1443328: the pickle modules now can handle classes
that have __private names in their __slots__.
- Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
- patch #1457316: "setup.py upload" now supports --identity to select the
- Bug #1015140: disambiguated the term "article id" in nntplib docs and
docstrings to either "article number" or "message id".
- Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
parameter, but uses the usual "kwargs=None".
- textwrap now processes text chunks at O(n) speed instead of O(n**2).
Patch #1209527 (Contributed by Connelly).
- urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
to W3C name (404 -> 'Not Found'). RFE #1216944.
- Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
as this can cause problems with apps closing all file descriptors.
- Bug #839151: Fix an attempt to access sys.argv in the warnings module;
it can be missing in embedded interpreters
- Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
- Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
error messages.
- Bug #1108948: Cookie.py produced invalid JavaScript code.
- The tokenize module now detects and reports indentation errors.
Bug #1224621.
- The tokenize module has a new untokenize() function to support a full
roundtrip from lexed tokens back to Python source code. In addition,
the generate_tokens() function now accepts a callable argument that
terminates by raising StopIteration.
- Bug #1196315: fix weakref.WeakValueDictionary constructor.
- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
component of the path.
- Patch #1120353: The xmlrpclib module provides better, more transparent,
support for datetime.{datetime,date,time} objects. With use_datetime set
to True, applications shouldn't have to fiddle with the DateTime wrapper
class at all.
- distutils.commands.upload was added to support uploading distribution
files to PyPI.
- distutils.commands.register now encodes the data as UTF-8 before posting
them to PyPI.
- decimal operator and comparison methods now return NotImplemented
instead of raising a TypeError when interacting with other types. This
allows other classes to implement __radd__ style methods and have them
work as expected.
- Bug #1163325: Decimal infinities failed to hash. Attempting to
hash a NaN raised an InvalidOperation instead of a TypeError.
- Patch #918101: Add tarfile open mode r|* for auto-detection of the
stream compression; add, for symmetry reasons, r:* as a synonym of r.
+ the parser now removes the escapechar prefix from escaped characters.
+ when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric
types, rather than any object that can be represented as a numeric.
+ when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields
to floats.
+ reader now allows \r characters to be quoted (previously it only allowed
\n to be quoted).
+ writer doublequote handling improved.
+ Dialect classes passed to the module are no longer instantiated by
the module before being parsed (the former validation scheme required
this, but the mechanism was unreliable).
+ The dialect registry now contains instances of the internal
C-coded dialect type, rather than references to python objects.
+ the internal c-coded dialect type is now immutable.
+ register_dialect now accepts the same keyword dialect specifications
as the reader and writer, allowing the user to register dialects
without first creating a dialect class.
+ a configurable limit to the size of parsed fields has been added previously, an unmatched quote character could result in the entire
file being read into the field buffer before an error was reported.
+ A new module method csv.field_size_limit() has been added that sets
the parser field size limit (returning the former limit). The initial
limit is 128kB.
+ A line_num attribute has been added to the reader object, which tracks
the number of lines read from the source iterator. This is not
the same as the number of records returned, as records can span
multiple lines.
+ reader and writer objects were not being registered with the cyclic-GC.
This has been fixed.
- _DummyThread objects in the threading module now delete self.__block that is
inherited from _Thread since it uses up a lock allocated by 'thread'. The
lock primitives tend to be limited in number and thus should not be wasted on
a _DummyThread object. Fixes bug #1089632.
- The imghdr module now detects Exif files.
- StringIO.truncate() now correctly adjusts the size attribute.
(Bug #951915).
- locale.py now uses an updated locale alias table (built using
Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
alias file); the encoding lookup was enhanced to use Python's
encoding alias table.
- moved deprecated modules to Lib/lib-old: whrandom, tzparse, statcache.
- the pickle module no longer accepts the deprecated None option in the
args tuple returned by __reduce__().
- optparse now optionally imports gettext. This allows its use in setup.py.
- the pickle module no longer uses the deprecated bin parameter.
- the shelve module no longer uses the deprecated binary parameter.
- the pstats module no longer uses the deprecated ignore() method.
- the filecmp module no longer uses the deprecated use_statcache argument.