History¶
v6.4.5¶
09 Sep 2024
Bugfixes¶
Omit sentinel values from a namespace path. (#311)
v6.4.4¶
21 Aug 2024
No significant changes.
v6.4.3¶
17 Aug 2024
Bugfixes¶
When inferring the caller in
files()
correctly detect one’s own module even when the resources package source is not present. (python/cpython#123085)
v6.4.2¶
14 Aug 2024
Bugfixes¶
Merged fix for UTF-16 BOM handling in functional tests. (#312)
v6.4.1¶
14 Aug 2024
Bugfixes¶
When constructing ZipReader, only append the name if the indicated module is a package. (python/cpython#121735)
v6.4.0¶
21 Mar 2024
Features¶
The functions
is_resource()
,open_binary()
,open_text()
,path()
,read_binary()
, andread_text()
are un-deprecated, and support subdirectories via multiple positional arguments. Thecontents()
function also allows subdirectories, but remains deprecated. (#303)Deferred select imports in for a speedup (python/cpython#109829).
v6.3.2¶
19 Mar 2024
Bugfixes¶
Restored expectation that local standard readers are preferred over degenerate readers. (#298)
v6.3.1¶
16 Mar 2024
Bugfixes¶
Restored expectation that stdlib readers are suppressed on Python 3.10. (#257)
v6.3.0¶
12 Mar 2024
Features¶
Add
Anchor
toimportlib.resources
(in order for the code to comply with the documentation)
v6.2.0¶
12 Mar 2024
Features¶
Future compatibility adapters now ensure that standard library readers are replaced without overriding non-standard readers. (#295)
v6.1.3¶
07 Mar 2024
No significant changes.
v6.1.2¶
25 Feb 2024
Bugfixes¶
Fixed NotADirectoryError when calling files on a subdirectory of a namespace package. (#293)
v6.1.1¶
06 Nov 2023
Bugfixes¶
Added missed stream argument in simple.ResourceHandle. Ref python/cpython#111775.
v6.1.0¶
20 Sep 2023
Features¶
MultiplexedPath now expects Traversable paths. String arguments to MultiplexedPath are now deprecated.
Bugfixes¶
Enabled support for resources in namespace packages in zip files. (#287)
v6.0.1¶
07 Aug 2023
Bugfixes¶
Restored Apache license. (#285)
v6.0.0¶
07 Jul 2023
Deprecations and Removals¶
Removed legacy functions deprecated in 5.3. (#80)
v5.13.0¶
07 Jul 2023
Features¶
Require Python 3.8 or later.
v5.12.0¶
17 Feb 2023
#257:
importlib_resources
(backport) now gives precedence to built-in readers (file system, zip, namespace packages), providing forward-compatibility of behaviors likeMultiplexedPath
.
v5.11.1¶
17 Feb 2023
v5.10.4¶
17 Feb 2023
#280: Fixed one more
EncodingWarning
in test suite.
v5.11.0¶
17 Feb 2023
#265:
MultiplexedPath
now honors multiple subdirectories initerdir
andjoinpath
.
v5.10.3¶
17 Feb 2023
Packaging refresh, including fixing EncodingWarnings and some tests cleanup.
v5.10.2¶
28 Dec 2022
#274: Prefer
write_bytes
to context manager as proposed in gh-100586.
v5.10.1¶
06 Dec 2022
#274: Fixed
ResourceWarning
in_common
.
v5.10.0¶
07 Oct 2022
#203: Lifted restriction on modules passed to
files
. Now modules need not be a package and if a non-package module is passed, resources will be resolved adjacent to those modules, even for modules not found in any package. For example,files(import_module('mod.py'))
will resolve resources found at the root. The parameter to files was renamed from ‘package’ to ‘anchor’, with a compatibility shim for those passing by keyword.#259:
files
no longer requires the anchor to be specified and can infer the anchor from the caller’s scope (defaults to the caller’s module).
v5.9.0¶
22 Jul 2022
#228:
as_file
now also supports aTraversable
representing a directory and (when needed) renders the full tree to a temporary directory.
v5.8.1¶
22 Jul 2022
#253: In
MultiplexedPath
, restore expectation that a compound path with a non-existent directory does not raise an exception.
v5.8.0¶
15 Jun 2022
#250: Now
Traversable.joinpath
provides a concrete implementation, replacing the implementation in.simple
and converging with the behavior inMultiplexedPath
.
v5.7.1¶
16 Apr 2022
#249: In
simple.ResourceContainer.joinpath
, honor names split byposixpath.sep
.
v5.7.0¶
13 Apr 2022
#248:
abc.Traversable.joinpath
now allows for multiple arguments and specifies thatposixpath.sep
is allowed in any argument to accept multiple arguments, matching the behavior found inzipfile.Path
andpathlib.Path
.simple.ResourceContainer
now honors this behavior.
v5.6.0¶
25 Mar 2022
#244: Add type declarations in ABCs.
v5.5.0¶
Require Python 3.7 or later.
#243: Fix error when no
__pycache__
directories exist when testingupdate-zips
.
v5.4.0¶
30 Oct 2021
#80: Test suite now relies entirely on the traversable API.
v5.3.0¶
18 Oct 2021
#80: Now raise a
DeprecationWarning
for all legacy functions. Instead, users should rely on thefiles()
API introduced in importlib_resources 1.3. See Migrating from Legacy for guidance on avoiding the deprecated functions.
v5.2.3¶
17 Oct 2021
Updated readme to reflect current behavior and show which versions correspond to which behavior in CPython.
v5.0.7¶
09 Oct 2021
bpo-45419: Correct
DegenerateFiles.Path
.name
and.open()
interfaces to matchTraversable
.
v5.2.2¶
30 Jul 2021
#234: Fix refleak in
as_file
caught by CPython tests.
v5.2.1¶
28 Jul 2021
bpo-38291: Avoid DeprecationWarning on
typing.io
.
v5.2.0¶
27 Jun 2021
v5.0.6¶
26 May 2021
bpo-38693: Prefer f-strings to
.format
calls.
v5.1.4¶
21 May 2021
#225: Require zipp 3.1.0 or later on Python prior to 3.10 to incorporate those fixes.
v5.0.5¶
21 May 2021
#216: Make MultiplexedPath.name a property per the spec.
v5.1.3¶
13 May 2021
Refresh packaging and improve tests.
#216: Make MultiplexedPath.name a property per the spec.
v5.1.2¶
04 Mar 2021
Re-release with changes from 5.0.4.
v5.0.4¶
04 Mar 2021
Fixed non-hermetic test in test_reader, revealed by GH-24670.
v5.1.1¶
28 Feb 2021
Re-release with changes from 5.0.3.
v5.0.3¶
28 Feb 2021
Simplified DegenerateFiles.Path.
v5.0.2¶
28 Feb 2021
#214: Added
_adapters
module to ensure that degeneratefiles
behavior can be made available for legacy loaders whose resource readers don’t implement it. Fixes issue where backport compatibility module was masking this fallback behavior only to discover the defect when applying changes to CPython.
v5.1.0¶
18 Jan 2021
Added
simple
module implementing adapters from a low-level resource reader interface to aTraversableResources
interface. Closes #90.
v5.0.1¶
18 Jan 2021
Remove pyinstaller hook for hidden ‘trees’ module.
v5.0.0¶
09 Jan 2021
Removed
importlib_resources.trees
, deprecated since 1.3.0.
v4.1.1¶
27 Dec 2020
Fixed badges in README.
v4.1.0¶
24 Dec 2020
#209: Adopt jaraco/skeleton.
Cleaned up some straggling Python 2 compatibility code.
Refreshed test zip files without .pyc and .pyo files.
v4.0.0¶
23 Dec 2020
#108: Drop support for Python 2.7. Now requires Python 3.6+.
v3.3.1¶
22 Dec 2020
Minor cleanup.
v3.3.0¶
28 Oct 2020
#107: Drop support for Python 3.5. Now requires Python 2.7 or 3.6+.
v3.2.1¶
24 Oct 2020
#200: Minor fixes and improved tests for namespace package support.
v3.2.0¶
25 Oct 2020
v3.1.1¶
23 Oct 2020
bpo-41490:
contents
is now also more aggressive about consuming any iterator from theReader
.
v3.1.0¶
22 Oct 2020
v3.0.0¶
30 Jun 2020
Package no longer exposes
importlib_resources.__version__
. Users that wish to inspect the version ofimportlib_resources
should instead invoke.version('importlib_resources')
fromimportlib-metadata
( stdlib or backport) directly. This change eliminates the dependency onimportlib_metadata
. Closes #100.Package now always includes its data. Closes #93.
Declare hidden imports for PyInstaller. Closes #101.
v2.0.1¶
13 Jun 2020
Select pathlib and contextlib imports based on Python version and avoid pulling in deprecated [pathlib](https://pypi.org/project/pathlib). Closes #97.
v2.0.0¶
07 Jun 2020
Loaders are no longer expected to implement the
abc.TraversableResources
interface, but are instead expected to returnTraversableResources
from theirget_resource_reader
method.
v1.5.0¶
26 Apr 2020
Traversable is now a Protocol instead of an Abstract Base Class (Python 2.7 and Python 3.8+).
Traversable objects now require a
.name
property.
v1.4.0¶
18 Mar 2020
#79: Temporary files created will now reflect the filename of their origin.
v1.3.1¶
06 Mar 2020
For improved compatibility,
importlib_resources.trees
is now imported implicitly. Closes #88.
v1.3.0¶
06 Mar 2020
Add extensibility support for non-standard loaders to supply
Traversable
resources. Introduces a new abstract base classabc.TraversableResources
that supersedes (but implements for compatibility)abc.ResourceReader
. Any loader that implements (implicitly or explicitly) theTraversableResources.files
method will be capable of supplying resources with subdirectory support. Closes #77.Preferred way to access
as_file
is now from top-level module.importlib_resources.trees.as_file
is deprecated and discouraged. Closes #86.Moved
Traversable
abc toabc
module. Closes #87.
v1.2.0¶
02 Mar 2020
v1.1.0¶
29 Feb 2020
Add support for retrieving resources from subdirectories of packages through the new
files()
function, which returns aTraversable
object withjoinpath
andread_*
interfaces matching those ofpathlib.Path
objects. This new function supersedes all of the previous functionality as it provides a more general-purpose access to a package’s resources.With this function, subdirectories are supported (Closes #58).
The documentation has been updated to reflect that this function is now the preferred interface for loading package resources. It does not, however, support resources from arbitrary loaders. It currently only supports resources from file system path and zipfile packages (a consequence of the ResourceReader interface only operating on Python packages).
1.0.2¶
01 Nov 2018
Fix
setup_requires
andinstall_requires
metadata insetup.cfg
. Given by Anthony Sottile.
1.0.1¶
29 Jun 2018
Update Trove classifiers. Closes #63
1.0¶
28 Jun 2018
Backport fix for test isolation from Python 3.8/3.7. Closes #61
0.8¶
17 May 2018
0.7¶
15 May 2018
Fix
setup.cfg
metadata bug. Closes #55
0.6¶
15 May 2018
Move everything from
pyproject.toml
tosetup.cfg
, with the added benefit of fixing the PyPI metadata. Closes #54Turn off mypy’s
strict_optional
setting for now.
0.5¶
01 May 2018
Resynchronize with Python 3.7; changes the return type of
contents()
to be anIterable
. Closes #52
0.4¶
27 Mar 2018
Correctly find resources in subpackages inside a zip file. Closes #51
0.3¶
17 Feb 2018
0.2¶
14 Dec 2017
Backward incompatible change. Split the
open()
andread()
calls into separate binary and text versions, i.e.open_binary()
,open_text()
,read_binary()
, andread_text()
. Closes #41Fix a bug where unrelated resources could be returned from
contents()
. Closes #44Correctly prevent namespace packages from containing resources. Closes #20
0.1¶
06 Dec 2017
Initial release.