Pablo Galindo Salgado
b743eb03d8
Merge pull request #19 from DinoV/lazy_tests_dunder
2025-11-09 12:40:47 -05:00
Dino Viehland
8d57aca95a
Merge remote-tracking branch 'origin/main' into HEAD
2025-11-03 10:10:28 -08:00
Serhiy Storchaka
6826166280
gh-135801: Improve filtering by module in warn_explicit() without module argument (GH-140151)
...
* Try to match the module name pattern with module names constructed
starting from different parent directories of the filename.
E.g., for "/path/to/package/module" try to match with
"path.to.package.module", "to.package.module", "package.module" and
"module".
* Ignore trailing "/__init__.py".
* Ignore trailing ".pyw" on Windows.
* Keep matching with the full filename (without optional ".py" extension)
for compatibility.
* Only ignore the case of the ".py" extension on Windows.
2025-10-30 15:55:39 +02:00
Dino Viehland
aeda7ac09f
Add tests for __lazy_import__
2025-10-27 10:13:38 -07:00
Dino Viehland
5166d39584
Allow try/except in with block
2025-10-23 10:06:18 -07:00
Dino Viehland
06b9110569
Update sys module to conform with the PEP, add matching C API
2025-10-09 13:37:28 -07:00
Dino Viehland
c63198cba4
Move eager check for from imports into import from
2025-10-07 16:20:47 -07:00
Dino Viehland
7d07ae13d7
Add test case for external usage
2025-10-07 16:20:47 -07:00
Dino Viehland
aa85f9d79e
dir() doesn't reify module
2025-10-07 14:52:23 -07:00
Dino Viehland
7c494053b0
Don't allow __lazy_imports__ to work in try/except
2025-10-02 13:22:55 -07:00
Dino Viehland
9be59ecebd
Publish lazy imported packages on parent
2025-10-02 13:22:54 -07:00
Dino Viehland
781eedb9d4
Add PyExc_ImportCycleError and raise it when a cycle is detected
2025-10-02 13:22:54 -07:00
Dino Viehland
00e7800e4c
Implement disabling imports in try/except and * imports, report errors on bad usage of lazy
2025-10-02 13:22:54 -07:00
Dino Viehland
f992ee760e
Import lazy.get
2025-10-02 13:22:54 -07:00
Dino Viehland
6d7c87a3fe
Reify lazy objects when accessed via the module object
2025-10-02 13:22:54 -07:00
Dino Viehland
41ab092407
Add compatiblity mode
2025-10-02 13:22:53 -07:00
Dino Viehland
de281fd894
Add lazy import filter
2025-10-02 13:22:53 -07:00
Dino Viehland
3b0d745e73
Add __lazy_import__, check sys.modules before import
2025-10-02 13:22:53 -07:00
Petr Viktorin
aee219f455
gh-123880: Allow recursive import of single-phase-init modules (GH-123950)
...
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Brett Cannon <brett@python.org>
2024-09-20 10:27:34 +02:00
Serhiy Storchaka
c0eaa232f6
gh-117860: Add tests for resolving names when import rebind names (GH-118176)
...
Add tests for "import", pkgutil.resolve_name() and unittest.mock.path()
for cases when "import a.b as x" and "from a import b as x" give
different results.
2024-04-30 17:23:44 +03:00
Shantanu
61e8184095
gh-95754: Better AttributeError on partially initialised module ( #112577 )
...
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-12-21 13:24:10 -08:00
Nikita Sobolev
0738b9a338
gh-108303: Move double_const to test_import where it belongs ( #112108 )
2023-12-11 19:29:43 +01:00
Filipe Laíns
0a8ae8a50a
bpo-44717: improve AttributeError on circular imports of submodules (GH-27338)
2021-07-24 23:44:46 +01:00
Pablo Galindo Salgado
3eae8f20d7
Revert "bpo-44717: improve AttributeError on circular imports of submodules (GH-27299)" (GH-27331)
...
This reverts commit 8072a1181d .
2021-07-24 14:33:03 +01:00
Filipe Laíns
8072a1181d
bpo-44717: improve AttributeError on circular imports of submodules (GH-27299)
...
Signed-off-by: Filipe Laíns <lains@riseup.net>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-07-24 11:50:17 +02:00
Dino Viehland
9b6fec4651
bpo-39336: Allow packages to not let their child modules be set on them ( #18006 )
...
* bpo-39336: Allow setattr to fail on modules which aren't assignable
When attaching a child module to a package if the object in sys.modules raises an AttributeError (e.g. because it is immutable) it causes the whole import to fail. This now allows immutable packages to exist and an ImportWarning is reported and the AttributeError exception is ignored.
2020-01-22 16:42:38 -08:00
Anthony Sottile
65366bc8bd
bpo-20490: Improve circular import error message (GH-15308)
2019-09-09 08:17:50 -07:00
Serhiy Storchaka
3e429dcc24
bpo-33237: Improve AttributeError message for partially initialized module. (GH-6398)
2018-10-30 13:19:51 +02:00
Serhiy Storchaka
8a9cd20edc
bpo-30876: Relative import from unloaded package now reimports the package ( #2639 )
...
instead of failing with SystemError.
Relative import from non-package now fails with ImportError rather than
SystemError.
2017-07-12 06:50:03 +03:00
Serhiy Storchaka
b4baacee1a
bpo-30814: Fixed a race condition when import a submodule from a package. ( #2580 )
2017-07-06 08:09:03 +03:00
Serhiy Storchaka
f93234bb8a
bpo-30024: Circular imports involving absolute imports with binding ( #1264 )
...
a submodule to a name are now supported.
2017-05-09 22:31:05 +03:00
Antoine Pitrou
44fff77684
Whitespace
2014-10-13 20:21:12 +02:00
Antoine Pitrou
0373a106a1
Issue #17636 : Circular imports involving relative imports are now supported.
2014-10-13 20:19:45 +02:00