Commit graph

33 commits

Author SHA1 Message Date
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