Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b8c02f4

Browse files
author
Release Manager
committedOct 21, 2023
sagemathgh-36488: Fix func_persist: do not use the (now removed) inspect.formatargspec, but instead use inspect.signature.
Fix func_persist: do not use inspect.formatargspec (gone as of Python 3.11) <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> The method `inspect.formatargspec` has been deprecated since Python 3.5, now removed as of 3.11. `func_persist` still uses it, so we replace it with `inspect.signature`. Another option would be to replace it with `sageinspect.sage_formatargspec`. I think that func_persist should only be used with Python functions, not Cython, and `inspect.signature` is nicer for Python functions. If the function is defined as `def test(n: int) -> int:`, For example, then `inspect.signature` will return `(n: int) -> int` while `sageinspect.sage_formatargspec` will just return `(n)`. This should fix sagemath#36302. <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [X] The title is concise, informative, and self-explanatory. - [X] The description explains in detail what this PR is about. - [X] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36488 Reported by: John H. Palmieri Reviewer(s): balejk
2 parents 8c280f4 + 5d8ddcf commit b8c02f4

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed
 

‎build/pkgs/configure/checksums.ini

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=aa7054a0e6a582d2db1475dc47f63a54e6ac569f
3-
md5=40eab024557ad51e08dfb08e2753a465
4-
cksum=802824779
2+
sha1=e9ec90b5f3a9fc230231b585a9c08ea8a66ace6c
3+
md5=72292ce4a4020d99ea0f6d065e678034
4+
cksum=2701940086
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
c47788b02a42ef4907a0e61e702fbe9bbef27590
1+
234e44080724748caf9c59fd72f1720782ebd619

‎src/sage/misc/func_persist.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ def bern(n):
4545

4646
from . import persist
4747

48-
4948
class func_persist:
5049
r"""
5150
Put ``@func_persist`` right before your function
@@ -57,7 +56,7 @@ def __init__(self, f, dir='func_persist'):
5756
os.makedirs(dir, exist_ok=True)
5857
self.__doc__ = '%s%s%s' % (
5958
f.__name__,
60-
inspect.formatargspec(*inspect.getargs(f.__code__)),
59+
inspect.signature(f),
6160
f.__doc__)
6261

6362
def __call__(self, *args, **kwds):

0 commit comments

Comments
 (0)
Please sign in to comment.