Serhiy Storchaka
17d5b9df10
gh-59110: zipimport: support namespace packages when no directory entry exists (GH-121233)
2024-07-04 15:04:24 +00:00
Alex Waygood
0622839cfe
gh-112414: Fix `AttributeError` when calling `repr()` on a namespace package imported with a custom loader ( #112425 )
2023-11-27 08:19:29 +00:00
Victor Stinner
ae319e4b43
gh-105407: Remove unused imports in tests ( #105408 )
2023-06-06 22:50:43 +02:00
Anh71me
bd221c01dd
gh-98139: enhance namespace package repr
2022-11-06 22:13:40 +00:00
Barry Warsaw
e1182bc377
gh-94619: Remove long deprecated methods module_repr() and load_module() ( #94624 )
...
* gh-94619: Remove long deprecated methods module_repr() and load_module()
Closes #94619
* Update Misc/NEWS.d/next/Library/2022-07-06-14-57-33.gh-issue-94619.PRqKVX.rst
Fix typo
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Brett Cannon <brett@python.org>
2022-08-04 17:24:26 -07:00
Serhiy Storchaka
086c6b1b0f
bpo-45046: Support context managers in unittest (GH-28045)
...
Add methods enterContext() and enterClassContext() in TestCase.
Add method enterAsyncContext() in IsolatedAsyncioTestCase.
Add function enterModuleContext().
2022-05-08 17:49:09 +03:00
Miro Hrončok
ae1965ccb4
bpo-45703: Invalidate _NamespacePath cache on importlib.invalidate_ca… (GH-29384)
...
Consider the following directory structure:
.
└── PATH1
└── namespace
└── sub1
└── __init__.py
And both PATH1 and PATH2 in sys path:
$ PYTHONPATH=PATH1:PATH2 python3.11
>>> import namespace
>>> import namespace.sub1
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> ...
While this interpreter still runs, PATH2/namespace/sub2 is created:
.
├── PATH1
│ └── namespace
│ └── sub1
│ └── __init__.py
└── PATH2
└── namespace
└── sub2
└── __init__.py
The newly created module cannot be imported:
>>> ...
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> import namespace.sub2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'namespace.sub2'
Calling importlib.invalidate_caches() now newly allows to import it:
>>> import importlib
>>> importlib.invalidate_caches()
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace'])
>>> import namespace.sub2
>>> namespace.__path__
_NamespacePath(['.../PATH1/namespace', '.../PATH2/namespace'])
This was not previously possible.
2021-11-23 07:38:02 -08:00
Barry Warsaw
876fc7fcec
bpo-35673: Add a public alias for namespace package __loader__ attribute ( #29049 )
...
Rename namespace package __loader__ class to be public.
Make the old name, i.e. _NamespaceLoader, an alias for the public name, for backward compatibility.
2021-10-20 14:05:29 -07:00
Brett Cannon
1899087b21
bpo-42136: Deprecate module_repr() as found in importlib (GH-25022)
2021-03-26 11:55:07 -07:00
Brett Cannon
9cb31d6716
bpo-42137: have ModuleType.__repr__ prefer __spec__ over module_repr() (GH-24953)
...
This is to work towards the removal of the use of module_repr() in Python 3.12 (documented as deprecated since 3.4).
2021-03-24 08:26:56 -07:00
Anthony Sottile
ab9b31f947
bpo-35843: Implement __getitem__ for _NamespacePath (GH-11690)
2019-03-08 10:58:00 -08:00
Barry Warsaw
bbbcf8693b
bpo-32303 - Consistency fixes for namespace loaders ( #5481 )
...
* Make sure ``__spec__.loader`` matches ``__loader__`` for namespace packages.
* Make sure ``__spec__.origin` matches ``__file__`` for namespace packages.
https://bugs.python.org/issue32303
https://bugs.python.org/issue32305
2018-02-02 15:15:58 -05:00
Eric Snow
d65018b17c
Fixes #19711 : Add tests for reloading namespace packages.
2016-05-10 15:29:05 -06:00
Serhiy Storchaka
e437a10d15
Issue #23277 : Remove unused imports in tests.
2016-04-24 21:41:02 +03:00
Serhiy Storchaka
597d15afe4
Issue #23277 : Remove unused support.run_unittest import.
2016-04-24 13:45:58 +03:00
Eric Snow
c4bbd7a492
Issue #21097 : Move test_namespace_pkgs into test_importlib.
2014-03-29 15:57:44 -06:00