Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-115231: fill __module__ for built-in staticmethods#115232

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
17 commits
Select commitHold shift + click to select a range
9b31877
gh-115231: fill __module__ attribute for built-in staticmethods
skirpichevFeb 9, 2024
be1c7ef
PyObject_GetAttr -> PyObject_GetOptionalAttr
skirpichevFeb 10, 2024
1f854ee
Merge branch 'main' into static-bltin-__module__-115231
skirpichevFeb 10, 2024
c4dec10
fill __module__ attribute for built-in classmethods too
skirpichevFeb 11, 2024
1e25d84
use PyObject_GetAttr & ignore exceptions
skirpichevFeb 11, 2024
63b05a0
Merge branch 'master' into static-bltin-__module__-115231
skirpichevNov 2, 2024
777bc8d
address review: use type_module()
skirpichevNov 2, 2024
d1650bf
+ rename news
skirpichevNov 2, 2024
d0f5bb0
Merge branch 'main' into static-bltin-__module__-115231
skirpichevNov 2, 2024
e20339b
XXX Revert "address review: use type_module()"
skirpichevNov 2, 2024
4ba1288
Merge branch 'main' into static-bltin-__module__-115231
skirpichevFeb 24, 2025
543a5b3
Address review: use type_module()
skirpichevFeb 24, 2025
b3fbb8c
Merge branch 'master' into static-bltin-__module__-115231
skirpichevSep 9, 2025
6666a1a
Revert "fill __module__ attribute for built-in classmethods too"
skirpichevSep 9, 2025
386f383
+1
skirpichevSep 9, 2025
598a964
Update Objects/typeobject.c
skirpichevJan 30, 2026
0481304
Merge branch 'main' into static-bltin-__module__-115231
vstinnerJan 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletionsLib/test/test_funcattrs.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -459,6 +459,24 @@ class BuiltinFunctionPropertiesTest(unittest.TestCase):
# XXX Not sure where this should really go since I can't find a
# test module specifically for builtin_function_or_method.

def test_builtin__module__(self):
import math

# builtin function:
self.assertEqual(len.__module__, 'builtins')
self.assertEqual(math.sin.__module__, 'math')

# instance method:
self.assertRaises(AttributeError, getattr, int.to_bytes, '__module__')
self.assertEqual(int.to_bytes.__objclass__.__module__, 'builtins')

# builtin classmethod:
self.assertEqual(int.from_bytes.__module__, None)
self.assertEqual(int.from_bytes.__self__.__module__, 'builtins')

# builtin staticmethod:
self.assertEqual(bytes.maketrans.__module__, 'builtins')

def test_builtin__qualname__(self):
import time

Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
Setup ``__module__`` attribute for built-in static methods. Patch by Sergey
B Kirpichev.
10 changes: 9 additions & 1 deletionObjects/typeobject.c
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -8361,7 +8361,15 @@ type_add_method(PyTypeObject *type, PyMethodDef *meth)
descr = PyDescr_NewClassMethod(type, meth);
}
else if (meth->ml_flags & METH_STATIC) {
PyObject *cfunc = PyCFunction_NewEx(meth, (PyObject*)type, NULL);
PyObject *mod = type_module(type);
if (mod == NULL) {
if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
return -1;
}
PyErr_Clear();
}
PyObject *cfunc = PyCFunction_NewEx(meth, (PyObject*)type, mod);
Py_XDECREF(mod);
if (cfunc == NULL) {
return -1;
}
Expand Down
Loading

[8]ページ先頭

©2009-2026 Movatter.jp