Skip to content

gh-132775: Add _PyFunction_GetXIData() - #133481

Merged
ericsnowcurrently merged 2 commits into
python:mainfrom
ericsnowcurrently:add-pyfunction-getxidata
May 12, 2025
Merged

gh-132775: Add _PyFunction_GetXIData()#133481
ericsnowcurrently merged 2 commits into
python:mainfrom
ericsnowcurrently:add-pyfunction-getxidata

Conversation

@ericsnowcurrently

@ericsnowcurrentlyericsnowcurrently commented May 6, 2025

Copy link
Copy Markdown
Member

(This is based on gh-133480, thus only the last commit.)

@ericsnowcurrently
ericsnowcurrentlyforce-pushed the add-pyfunction-getxidata branch from d762347 to 4a195d8CompareMay 8, 2025 16:07
@ericsnowcurrently
ericsnowcurrently marked this pull request as ready for review May 8, 2025 16:08
@ericsnowcurrentlyericsnowcurrently added the needs backport to 3.14 bugs and security fixes label May 8, 2025
Comment threadPython/crossinterp_data_lookup.h Outdated
if (_PyFunction_VerifyStateless(tstate, func) < 0) {
PyObject *cause = _PyErr_GetRaisedException(tstate);
assert(cause != NULL);
const char *msg = "non-stateless functions are not shareable";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not confusing, but the triple negation (non, less, not) looks a bit redundant. I do not think NotShareableError needs "not shareable" in the message.

@ericsnowcurrently
ericsnowcurrently enabled auto-merge (squash) May 12, 2025 21:44
@ericsnowcurrently
ericsnowcurrently merged commit 8cf4947 into python:mainMay 12, 2025
@miss-islington-app

Copy link
Copy Markdown

Thanks @ericsnowcurrently for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 12, 2025
(cherry picked from commit 8cf4947)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
@bedevere-app

Copy link
Copy Markdown

GH-133955 is a backport of this pull request to the 3.14 branch.

@bedevere-appbedevere-appBot removed the needs backport to 3.14 bugs and security fixes label May 12, 2025
@ericsnowcurrently
ericsnowcurrently deleted the add-pyfunction-getxidata branch May 12, 2025 22:13
@bedevere-bot

Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Debian root 3.x (tier-1) has failed when building commit 8cf4947.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/345/builds/11348) and take a look at the build logs.
  4. Check if the failure is related to this commit (8cf4947) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/345/builds/11348

Failed tests:

  • test_interpreters

Failed subtests:

  • test_build_c11 - test.test_cext.TestExt.test_build_c11
  • test_threads - test.test_io.CBufferedReaderTest.test_threads
  • test_first_completed_some_already_completed - test.test_concurrent_futures.test_wait.ProcessPoolForkserverWaitTest.test_first_completed_some_already_completed
  • test_build - test.test_cext.TestExt.test_build
  • test_build_cpp11 - test.test_cppext.TestCPPExt.test_build_cpp11

Summary of the results of the build (if available):

==

Click to see traceback logs
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/runpy.py", line 198, in _run_module_as_mainreturn _run_code(code, main_globals, None,
"__main__", mod_spec)
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/runpy.py", line 88, in _run_codeexec(code, run_globals)
~~~~^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_1383957æ/tempcwd/env/lib/python3.15/site-packages/pip/__main__.py", line 22, in <module>from pip._internal.cli.main import main as _main
File "/root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_1383957æ/tempcwd/env/lib/python3.15/site-packages/pip/_internal/__init__.py", line 3, in <module>from pip._internal.utils import _log
File "/root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_1383957æ/tempcwd/env/lib/python3.15/site-packages/pip/_internal/utils/_log.py", line 8, in <module>import logging
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/logging/__init__.py", line 26, in <module>import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/traceback.py", line 13, in <module>import _colorize
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/_colorize.py", line 6, in <module>from dataclasses import dataclass, field, Field
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/dataclasses.py", line 5, in <module>import inspect
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/inspect.py", line 3317, in <module>classBufferFlags(enum.IntFlag):
...<18 lines>...WRITE=0x200
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/inspect.py", line 3319, in BufferFlagsWRITABLE=0x1^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/enum.py", line 398, in __setitem__elifself._cls_name isnotNoneand _is_internal_class(self._cls_name, value):
^^^^^^^^^^^^^^^^^^NameError: name '_cls_name' is not defined. Did you mean: 'self._cls_name'?
ERROR
Traceback.test_colorized_traceback_is_the_default) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_multiline) ... ok
TracebackException.test_traceback_header) ... ok
TracebackErrorCaretTests.test_caret_for_subscript) ... ok
TracebackLegacyErrorCaretTests.test_caret_multiline_expression_bin_op) ... ok
TracebackCases.test_format_exception_group_syntax_error_with_custom_values) ... ok
TracebackException.test_comparison_params_variations) ... ok
TracebackException.test_no_locals) ... ok
TracebackCases.test_format_exception_group_explicit_class) ... ok
TracebackException_ExceptionGroups.test_exception_group_format_exception_only) ... ok
TracebackException.test_context) ... ok
TracebackLegacyErrorCaretTests.test_caret_multiline_expression_syntax_error) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_with_unicode) ... ok
TracebackCases.test_print_exception) ... ok
TracebackException.test_print) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_io.py", line 1633, in test_threads
random.shuffle(l)
~~~~~~~~~~~~~~^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/random.py", line 363, in shuffle
x[i], x[j] = x[j], x[i]
~^^^TypeError: list indices must be integers or slices, not Random
TracebackLegacyErrorCaretTests.test_many_lines_binary_op) ... ok
TracebackFormat.test_unhashable) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_two_char) ... ok
TracebackErrorCaretTests.test_specialization_variations) ... ok
TracebackLegacyErrorCaretTests.test_specialization_variations) ... ok
TracebackErrorCaretTests.test_memory_error) ... ok
TracebackErrorCaretTests.test_caret_multiline_expression) ... ok
TracebackErrorCaretTests.test_byte_offset_with_wide_characters_term_highlight) ... ok
TracebackCases.test_format_exception_group_with_note) ... ok
TracebackException.test_no_refs_to_exception_and_traceback_objects) ... ok
TracebackException.test_unhashable) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/string_tests.py", line 347, in test_find_periodic_pattern
check_pattern(rr)
~~~~~~~~~~~~~^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/string_tests.py", line 339, in check_pattern
right =''.join(choices('abcdef', k=rr(2000)))
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/random.py", line 473, in choicesreturn [population[floor(random() * n)] for i in _repeat(None, k)]
~~~~~~~~~^~~TypeError: unsupported operand type(s) for *: 'float' and 'Random'
TracebackCases.test_caret) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_with_spaces_and_parenthesis) ... ok
TracebackCases.test_print_last) ... ok
TracebackErrorCaretTests.test_byte_offset_wide_chars_subscript) ... ok
TracebackFormat.test_recursive_traceback) ... ok
TracebackCases.test_extract_stack) ... ok
TracebackErrorCaretTests.test_byte_offset_with_emojis_term_highlight) ... ok
TracebackErrorCaretTests.test_line_with_unicode) ... ok
TracebackException.test_compact_with_cause) ... ok
TracebackCases.test_format_exception_group_syntax_error) ... ok
TracebackLegacyErrorCaretTests.test_byte_offset_with_wide_characters_term_highlight) ... ok
TracebackErrorCaretTests.test_byte_offset_multiline) ... ok
TracebackCases.test_encoded_file) ... ok
TracebackCases.test_recursion_error_during_traceback) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_concurrent_futures/test_wait.py", line 65, in test_first_completed_some_already_completed
future1.result() # wait for job to finish~~~~~~~~~~~~~~^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/concurrent/futures/_base.py", line 450, in resultreturnself.__get_result()
~~~~~~~~~~~~~~~~~^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/concurrent/futures/_base.py", line 395, in __get_resultraiseself._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
TracebackErrorCaretTests.test_caret_multiline_expression_syntax_error) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_with_spaces_and_parenthesis) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_call_unicode) ... ok
TracebackLegacyErrorCaretTests.test_byte_offset_with_wide_characters_middle) ... ok
TracebackErrorCaretTests.test_basic_caret) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_subscript) ... ok
TracebackFormat.test_print_stack) ... ok
TracebackLegacyErrorCaretTests.test_anchors_for_simple_return_statements_are_elided) ... ok
TracebackFormat.test_traceback_format) ... ok
TracebackException.test_smoke_builtin) ... ok
TracebackLegacyErrorCaretTests.test_traceback_very_long_line) ... ok
TracebackException_ExceptionGroups.test_max_group_width) ... ok
TracebackException.test_long_context_chain) ... ok
TracebackCases.test_format_exception_group_with_tracebacks) ... ok
TracebackLegacyErrorCaretTests.test_byte_offset_with_emojis_term_highlight) ... ok
TracebackErrorCaretTests.test_many_lines_binary_op) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_subscript_unicode) ... ok
TracebackCases.test_format_exception_only_bad__str__) ... ok
TracebackCases.test_bad_indentation) ... ok
TracebackLegacyErrorCaretTests.test_basic_caret) ... ok
TracebackErrorCaretTests.test_caret_for_call_unicode) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_multiline_two_char) ... ok
TracebackErrorCaretTests.test_caret_exception_group) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cppext/__init__.py", line 43, in test_build_cpp11self.check_build('_testcpp11ext', std='c++11')
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cppext/__init__.py", line 58, in check_buildself._check_build(extension_name, python_exe,
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
std=std, limited=limited)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cppext/__init__.py", line 95, in _check_build
run_cmd('Install', cmd)
~~~~~~~^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cppext/__init__.py", line 76, in run_cmd
subprocess.run(cmd, check=True, env=env)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/subprocess.py", line 577, in runraise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_1383957æ/tempcwd/env/bin/python', '-X', 'dev', '-m', 'pip', 'install', '--no-build-isolation', '/root/buildarea/3.x.angelico-debian-amd64/build/build/test_python_1383957æ/tempcwd/pkg', '-v']' returned non-zero exit status 1.
TracebackLegacyErrorCaretTests.test_multiline_method_call_c) ... ok
TracebackException.test_cause) ... ok
TracebackLegacyErrorCaretTests.test_many_lines_no_caret) ... ok
TracebackCases.test_format_exception_group_multiple_exceptions) ... ok
TracebackCases.test_base_exception) ... ok
TracebackErrorCaretTests.test_many_lines_no_caret) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_with_unicode) ... ok
TracebackException_ExceptionGroups.test_dont_swallow_subexceptions_of_falsey_exceptiongroup) ... ok
TracebackException.test_no_save_exc_type) ... ok
TracebackException_ExceptionGroups.test_exception_group_format_exception_onlyi_recursive) ... ok
TracebackException.test_lookup_lines) ... ok
TracebackLegacyErrorCaretTests.test_caret_multiline_expression) ... ok
TracebackLegacyErrorCaretTests.test_secondary_caret_not_elided) ... ok
TracebackException.test_compact_no_cause) ... ok
TracebackException.test_comparison_equivalent_exceptions_are_equal) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_multiline_with_unicode) ... ok
TracebackLegacyErrorCaretTests.test_decorator_application_lineno_correct) ... ok
TracebackCases.test_signatures) ... ok
TracebackLegacyErrorCaretTests.test_many_lines) ... ok
TracebackException_ExceptionGroups.test_max_group_depth) ... ok
TracebackLegacyErrorCaretTests.test_memory_error) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_multiline) ... ok
TracebackCases.test_format_exception_group_multiline_messages) ... ok
TracebackLegacyErrorCaretTests.test_multiline_method_call_a) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_multiline_with_unicode) ... ok
TracebackErrorCaretTests.test_multiline_method_call_a) ... ok
TracebackErrorCaretTests.test_wide_characters_unicode_with_problematic_byte_offset) ... ok
TracebackCases.test_print_exception_exc) ... ok
TracebackErrorCaretTests.test_many_lines) ... ok
TracebackErrorCaretTests.test_caret_multiline_expression_bin_op) ... ok
TracebackLegacyErrorCaretTests.test_caret_exception_group) ... ok
TracebackCases.test_format_exception_group_with_cause) ... ok
TracebackErrorCaretTests.test_traceback_specialization_with_syntax_error) ... ok
TracebackFormat.test_exception_group_deep_recursion_capi) ... ok
TracebackErrorCaretTests.test_secondary_caret_not_elided) ... ok
TracebackLegacyErrorCaretTests.test_wide_characters_unicode_with_problematic_byte_offset) ... ok
TracebackCases.test_format_exception_only_exc) ... ok
TracebackCases.test_format_exception_group_nested_with_notes) ... ok
TracebackCases.test_clear) ... ok
TracebackErrorCaretTests.test_anchors_for_simple_assign_statements_are_elided) ... ok
TracebackException.test_locals) ... ok
TracebackFormat.test_print_exception_bad_type_python) ... ok
Traceback.test_colorized_traceback_from_exception_group) ... ok
TracebackErrorCaretTests.test_multiline_method_call_c) ... ok
TracebackException_ExceptionGroups.test_exception_group_format) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators) ... ok
TracebackErrorCaretTests.test_caret_for_call_with_spaces_and_parenthesis) ... ok
TracebackException.test_limit) ... ok
TracebackFormat.test_exception_group_deep_recursion_traceback) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_subscript_multiline) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_subscript_with_spaces_and_parenthesis) ... ok
TracebackErrorCaretTests.test_caret_for_subscript_unicode) ... ok
TracebackCases.test_format_exception_exc) ... ok
TracebackCases.test_no_caret_with_no_debug_ranges_flag_python_traceback) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators) ... ok
TracebackErrorCaretTests.test_caret_for_subscript_multiline) ... ok
TracebackFormat.test_format_stack) ... ok
TracebackFormat.test_print_exception_bad_type_capi) ... ok
Traceback.test_colorized_syntax_error) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_call_multiline) ... ok
TracebackFormat.test_traceback_format_with_cleared_frames) ... ok
TracebackErrorCaretTests.test_anchors_for_simple_return_statements_are_elided) ... ok
Traceback.test_colorized_traceback) ... ok
TracebackException.test_comparison_basic) ... ok
TracebackException.test_from_exception) ... ok
TracebackFormat.test_stack_format) ... ok
TracebackErrorCaretTests.test_caret_for_call_multiline) ... ok
TracebackErrorCaretTests.test_caret_for_subscript_with_spaces_and_parenthesis) ... ok
TracebackLegacyErrorCaretTests.test_byte_offset_wide_chars_subscript) ... ok
TracebackErrorCaretTests.test_caret_for_binary_operators_multiline_two_char) ... ok
TracebackException.test_smoke_user_exception) ... ok
TracebackLegacyErrorCaretTests.test_traceback_specialization_with_syntax_error) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cext/__init__.py", line 37, in test_build_c11self.check_build('_test_c11_cext', std='c11')
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cext/__init__.py", line 56, in check_buildwith support.setup_venv_with_pip_setuptools(venv_dir) as python_exe:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/contextlib.py", line 141, in __enter__returnnext(self.gen)
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/support/__init__.py", line 2458, in setup_venv_with_pip_setuptools
run_command(cmd)
~~~~~~~~~~~^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/support/__init__.py", line 2448, in run_command
subprocess.run(cmd, check=True)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/subprocess.py", line 577, in runraise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/root/buildarea/3.x.angelico-debian-amd64/build/python', '-X', 'dev', '-m', 'venv', 'env']' returned non-zero exit status 1.
TracebackCases.test_format_exception_group) ... ok
TracebackErrorCaretTests.test_byte_offset_with_wide_characters_middle) ... ok
TracebackLegacyErrorCaretTests.test_byte_offset_multiline) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_call_with_spaces_and_parenthesis) ... ok
TracebackErrorCaretTests.test_traceback_very_long_line) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_binary_operators_two_char) ... ok
TracebackCases.test_exception_is_None) ... ok
TracebackErrorCaretTests.test_decorator_application_lineno_correct) ... ok
TracebackLegacyErrorCaretTests.test_caret_for_call) ... ok
TracebackException_ExceptionGroups.test_comparison) ... ok
TracebackException_ExceptionGroups.test_exception_group_construction) ... ok
TracebackCases.test_format_exception_group_multiline2_messages) ... ok
TracebackErrorCaretTests.test_caret_in_type_annotation) ... ok
TracebackErrorCaretTests.test_multiline_method_call_b) ... ok
Traceback (most recent call last):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cext/__init__.py", line 34, in test_buildself.check_build('_test_cext')
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_cext/__init__.py", line 56, in check_buildwith support.setup_venv_with_pip_setuptools(venv_dir) as python_exe:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/contextlib.py", line 141, in __enter__returnnext(self.gen)
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/support/__init__.py", line 2458, in setup_venv_with_pip_setuptools
run_command(cmd)
~~~~~~~~~~~^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/support/__init__.py", line 2448, in run_command
subprocess.run(cmd, check=True)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/subprocess.py", line 577, in runraise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/root/buildarea/3.x.angelico-debian-amd64/build/python', '-X', 'dev', '-m', 'venv', 'env']' returned non-zero exit status 1.
TracebackCases.test_print_traceback_at_exit) ... ok
TracebackLegacyErrorCaretTests.test_line_with_unicode) ... ok
TracebackCases.test_format_exception_group_without_show_group) ... ok
TracebackCases.test_no_caret_with_no_debug_ranges_flag) ... ok
TracebackLegacyErrorCaretTests.test_caret_in_type_annotation) ... ok
TracebackLegacyErrorCaretTests.test_multiline_method_call_b) ... ok
TracebackLegacyErrorCaretTests.test_anchors_for_simple_assign_statements_are_elided) ... ok
TracebackCases.test_format_base_exception_group) ... ok
TracebackCases.test_nocaret) ... ok
TracebackException.test_dont_swallow_cause_or_context_of_falsey_exception) ... ok
TracebackErrorCaretTests.test_caret_for_call) ... ok

ericsnowcurrently added a commit that referenced this pull request May 12, 2025
(cherry picked from commit 8cf4947, AKA gh-133481)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
ericsnowcurrently added a commit that referenced this pull request May 27, 2025
…4758)
This is a small follow-up to gh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request May 27, 2025
…ythongh-134758)
This is a small follow-up to pythongh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
(cherry picked from commit 9b5e800)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
ericsnowcurrently added a commit that referenced this pull request May 27, 2025
…gh-134794)
This is a small follow-up to gh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
(cherry picked from commit 9b5e800, AKA gh-134758)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
Pranjal095 pushed a commit to Pranjal095/cpython that referenced this pull request Jul 12, 2025
Pranjal095 pushed a commit to Pranjal095/cpython that referenced this pull request Jul 12, 2025
…ythongh-134758)
This is a small follow-up to pythongh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
taegyunkim pushed a commit to taegyunkim/cpython that referenced this pull request Aug 4, 2025
taegyunkim pushed a commit to taegyunkim/cpython that referenced this pull request Aug 4, 2025
…ythongh-134758)
This is a small follow-up to pythongh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
gostak-dd pushed a commit to gostak-dd/cpython that referenced this pull request Jun 2, 2026
…ythongh-134758)
This is a small follow-up to pythongh-133481. There's a corner case
in the behavior of PyImport_ImportModuleAttrString(), where
it expects __builtins__ to be set if __globals__ is set.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ericsnowcurrently@bedevere-bot@neonene