-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
gh-104310: Rename the New Function in importlib.util #105255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 6 commits
4f9521d
04b36cf
d459def
27296cb
01fdb4d
bec03a2
760238e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -116,12 +116,24 @@ def find_spec(name, package=None): | |
# is imported by runpy, which means we want to avoid any unnecessary | ||
# dependencies. Thus we use a class. | ||
|
||
class allowing_all_extensions: | ||
"""A context manager that lets users skip the compatibility check. | ||
class _incompatible_extension_module_restrictions: | ||
"""A context manager that can temporarily skip the compatibility check. | ||
|
||
NOTE: This function is meant to accommodate an unusual case; one | ||
which is likely to eventually go away. There's is a pretty good | ||
chance this is not what you were looking for. | ||
|
||
WARNING: Using this function to disable the check can lead to | ||
unexpected behavior and even crashes. It should only be used during | ||
extension module development. | ||
|
||
If "disable_check" is True then the compatibility check will not | ||
happen while the context manager is active. Otherwise the check | ||
*will* happen. | ||
|
||
Normally, extensions that do not support multiple interpreters | ||
may not be imported in a subinterpreter. That implies modules | ||
that do not implement multi-phase init. | ||
that do not implement multi-phase init or that explicitly of out. | ||
|
||
Likewise for modules import in a subinterpeter with its own GIL | ||
when the extension does not support a per-interpreter GIL. This | ||
|
@@ -130,10 +142,14 @@ class allowing_all_extensions: | |
|
||
In both cases, this context manager may be used to temporarily | ||
disable the check for compatible extension modules. | ||
|
||
You can get the same effect as this function by implementing the | ||
basic interface of multi-phase init (PEP 489) and lying about | ||
support for mulitple interpreters (or per-interpreter GIL). | ||
""" | ||
|
||
def __init__(self, disable_check=True): | ||
self.disable_check = disable_check | ||
def __init__(self, disable_check): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Without the keyword, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good point. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done |
||
self.disable_check = bool(disable_check) | ||
|
||
def __enter__(self): | ||
self.old = _imp._override_multi_interp_extensions_check(self.override) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
In the beta 1 release we added a utility function for extension module | ||
authors, to use when testing their module for support in multiple | ||
interpreters or under a per-interpreter GIL. The name of that function has | ||
changed from ``allowing_all_extensions`` to | ||
``_incompatible_extension_module_restrictions``. The default for the | ||
"disable_check" argument has change from ``True`` to ``False``, to better | ||
match the new function name. |
Uh oh!
There was an error while loading. Please reload this page.