03 Jan 2025
Replaced reference to typing_extensions with stdlib Literal. (#323)
03 Jan 2025
UpdatedTraversable.read_text() to reflect theerrors parameter (python/cpython#127012). (#321)
03 Jan 2025
Add type annotations for Traversable.open. (#317)
Require Python 3.9 or later.
09 Sep 2024
Omit sentinel values from a namespace path. (#311)
21 Aug 2024
No significant changes.
17 Aug 2024
When inferring the caller infiles() correctly detect one’s own module even when the resources package source is not present. (python/cpython#123085)
14 Aug 2024
Merged fix for UTF-16 BOM handling in functional tests. (#312)
14 Aug 2024
When constructing ZipReader, only append the name if the indicated module is a package. (python/cpython#121735)
21 Mar 2024
The functionsis_resource(),open_binary(),open_text(),path(),read_binary(), andread_text() are un-deprecated, and supportsubdirectories via multiple positional arguments.Thecontents() function also allows subdirectories,but remains deprecated. (#303)
Deferred select imports in for a speedup (python/cpython#109829).
19 Mar 2024
Restored expectation that local standard readers are preferred over degenerate readers. (#298)
16 Mar 2024
Restored expectation that stdlib readers are suppressed on Python 3.10. (#257)
12 Mar 2024
AddAnchor toimportlib.resources (in order for the code to comply with the documentation)
12 Mar 2024
Future compatibility adapters now ensure that standard library readers are replaced without overriding non-standard readers. (#295)
07 Mar 2024
No significant changes.
25 Feb 2024
Fixed NotADirectoryError when calling files on a subdirectory of a namespace package. (#293)
06 Nov 2023
Added missed stream argument in simple.ResourceHandle. Refpython/cpython#111775.
20 Sep 2023
MultiplexedPath now expects Traversable paths. String arguments to MultiplexedPath are now deprecated.
Enabled support for resources in namespace packages in zip files. (#287)
07 Aug 2023
Restored Apache license. (#285)
07 Jul 2023
Removed legacy functions deprecated in 5.3. (#80)
07 Jul 2023
Require Python 3.8 or later.
17 Feb 2023
#257:importlib_resources (backport) now givesprecedence to built-in readers (file system, zip,namespace packages), providing forward-compatibilityof behaviors likeMultiplexedPath.
17 Feb 2023
17 Feb 2023
#280: Fixed one moreEncodingWarning in test suite.
17 Feb 2023
#265:MultiplexedPath now honors multiple subdirectoriesiniterdir andjoinpath.
17 Feb 2023
Packaging refresh, including fixing EncodingWarningsand some tests cleanup.
28 Dec 2022
#274: Preferwrite_bytes to context manager asproposed in gh-100586.
06 Dec 2022
#274: FixedResourceWarning in_common.
07 Oct 2022
#203: Lifted restriction on modules passed tofiles.Now modules need not be a package and if a non-packagemodule is passed, resources will be resolved adjacent tothose modules, even for modules not found in any package.For example,files(import_module('mod.py')) willresolve resources found at the root. The parameter tofiles was renamed from ‘package’ to ‘anchor’, with acompatibility shim for those passing by keyword.
#259:files no longer requires the anchor to bespecified and can infer the anchor from the caller’s scope(defaults to the caller’s module).
22 Jul 2022
#228:as_file now also supports aTraversablerepresenting a directory and (when needed) renders thefull tree to a temporary directory.
22 Jul 2022
#253: InMultiplexedPath, restore expectation thata compound path with a non-existent directory does notraise an exception.
15 Jun 2022
#250: NowTraversable.joinpath provides a concreteimplementation, replacing the implementation in.simpleand converging with the behavior inMultiplexedPath.
16 Apr 2022
#249: Insimple.ResourceContainer.joinpath, honornames split byposixpath.sep.
13 Apr 2022
#248:abc.Traversable.joinpath now allows for multiplearguments and specifies thatposixpath.sep is allowedin any argument to accept multiple arguments, matching thebehavior found inzipfile.Path andpathlib.Path.
simple.ResourceContainer now honors this behavior.
25 Mar 2022
#244: Add type declarations in ABCs.
Require Python 3.7 or later.
#243: Fix error when no__pycache__ directories existwhen testingupdate-zips.
30 Oct 2021
#80: Test suite now relies entirely on the traversableAPI.
18 Oct 2021
#80: Now raise aDeprecationWarning for all legacyfunctions. Instead, users should rely on thefiles()API introduced in importlib_resources 1.3. SeeMigrating from Legacyfor guidance on avoiding the deprecated functions.
17 Oct 2021
Updated readme to reflect current behavior and showwhich versions correspond to which behavior in CPython.
09 Oct 2021
bpo-45419: CorrectDegenerateFiles.Path.nameand.open() interfaces to matchTraversable.
30 Jul 2021
#234: Fix refleak inas_file caught by CPython tests.
28 Jul 2021
bpo-38291: Avoid DeprecationWarning ontyping.io.
27 Jun 2021
26 May 2021
bpo-38693: Prefer f-strings to.format calls.
21 May 2021
#225: Requirezipp 3.1.0or later on Python prior to 3.10 to incorporate those fixes.
21 May 2021
#216: Make MultiplexedPath.name a property per thespec.
13 May 2021
Refresh packaging and improve tests.
#216: Make MultiplexedPath.name a property per thespec.
04 Mar 2021
Re-release with changes from 5.0.4.
04 Mar 2021
Fixed non-hermetic test in test_reader, revealed byGH-24670.
28 Feb 2021
Re-release with changes from 5.0.3.
28 Feb 2021
Simplified DegenerateFiles.Path.
28 Feb 2021
#214: Added_adapters module to ensure that degeneratefiles behavior can be made available for legacy loaderswhose resource readers don’t implement it. Fixes issue wherebackport compatibility module was masking this fallbackbehavior only to discover the defect when applying changes toCPython.
18 Jan 2021
Addedsimple module implementing adapters froma low-level resource reader interface to aTraversableResources interface. Closes#90.
18 Jan 2021
Remove pyinstaller hook for hidden ‘trees’ module.
09 Jan 2021
Removedimportlib_resources.trees, deprecated since 1.3.0.
27 Dec 2020
Fixed badges in README.
24 Dec 2020
#209: Adoptjaraco/skeleton.
Cleaned up some straggling Python 2 compatibility code.
Refreshed test zip files without .pyc and .pyo files.
23 Dec 2020
#108: Drop support for Python 2.7. Now requires Python 3.6+.
22 Dec 2020
Minor cleanup.
28 Oct 2020
#107: Drop support for Python 3.5. Now requires Python 2.7 or 3.6+.
24 Oct 2020
#200: Minor fixes and improved tests for namespace package support.
25 Oct 2020
23 Oct 2020
bpo-41490:contents is now also more aggressive aboutconsuming any iterator from theReader.
22 Oct 2020
30 Jun 2020
Package no longer exposesimportlib_resources.__version__.Users that wish to inspect the version ofimportlib_resourcesshould instead invoke.version('importlib_resources') fromimportlib-metadata (stdliborbackport)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.
13 Jun 2020
Select pathlib and contextlib imports based on Python versionand avoid pulling in deprecated[pathlib](https://pypi.org/project/pathlib). Closes#97.
07 Jun 2020
Loaders are no longer expected to implement theabc.TraversableResources interface, but are insteadexpected to returnTraversableResources from theirget_resource_reader method.
26 Apr 2020
Traversable is now a Protocol instead of an Abstract BaseClass (Python 2.7 and Python 3.8+).
Traversable objects now require a.name property.
18 Mar 2020
#79: Temporary files created will now reflect the filename oftheir origin.
06 Mar 2020
For improved compatibility,importlib_resources.trees isnow imported implicitly. Closes#88.
06 Mar 2020
Add extensibility support for non-standard loaders to supplyTraversable resources. Introduces a new abstract baseclassabc.TraversableResources that supersedes (butimplements for compatibility)abc.ResourceReader. Anyloader that implements (implicitly or explicitly) theTraversableResources.files method will be capable ofsupplying resources with subdirectory support. Closes#77.
Preferred way to accessas_file is now from top-level module.importlib_resources.trees.as_file is deprecated and discouraged.Closes#86.
MovedTraversable abc toabc module. Closes#87.
02 Mar 2020
29 Feb 2020
Add support for retrieving resources from subdirectories of packagesthrough the newfiles() function, which returns aTraversableobject withjoinpath andread_* interfaces matching thoseofpathlib.Path objects. This new function supersedes all of theprevious functionality as it provides a more general-purpose accessto a package’s resources.
With this function, subdirectories are supported (Closes#58).
Thedocumentation has been updated to reflect that this function is nowthe preferred interface for loading package resources. It does not,however, support resources from arbitrary loaders. It currently onlysupports resources from file system path and zipfile packages (aconsequence of the ResourceReader interface only operating onPython packages).
01 Nov 2018
Fixsetup_requires andinstall_requires metadata insetup.cfg.Given by Anthony Sottile.
29 Jun 2018
Update Trove classifiers. Closes#63
28 Jun 2018
Backport fix for test isolation from Python 3.8/3.7. Closes#61
17 May 2018
15 May 2018
Fixsetup.cfg metadata bug. Closes#55
15 May 2018
Move everything frompyproject.toml tosetup.cfg, with the addedbenefit of fixing the PyPI metadata. Closes#54
Turn off mypy’sstrict_optional setting for now.
01 May 2018
Resynchronize with Python 3.7; changes the return type ofcontents() tobe anIterable. Closes#52
27 Mar 2018
Correctly find resources in subpackages inside a zip file. Closes#51
17 Feb 2018
14 Dec 2017
Backward incompatible change. Split theopen() andread() callsinto separate binary and text versions, i.e.open_binary(),open_text(),read_binary(), andread_text(). Closes#41
Fix a bug where unrelated resources could be returned fromcontents().Closes#44
Correctly prevent namespace packages from containing resources. Closes#20
06 Dec 2017
Initial release.