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-118921: Addcopy() method forFrameLocalsProxy#118923

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
gvanrossum merged 3 commits intopython:mainfromgaogaotiantian:framelocalsproxy-copy
May 10, 2024

Conversation

gaogaotiantian
Copy link
Member

@gaogaotiantiangaogaotiantian commentedMay 10, 2024
edited by bedevere-appbot
Loading

@gaogaotiantian
Copy link
MemberAuthor

@gvanrossum do we want to supportcopy.copy(proxy) as well?

Copy link
Member

@gvanrossumgvanrossum left a comment

Choose a reason for hiding this comment

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

LG, one nit. I don't think there's much evidence that people are usingcopy.copy() for the same purpose, andmappingproxy doesn't support it either.

x = 0
d = sys._getframe().f_locals
d_copy = d.copy()
self.assertIs(type(d_copy), dict)
Copy link
Member

Choose a reason for hiding this comment

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

I think assertIsInstance is good enough here.

Copy link
MemberAuthor

Choose a reason for hiding this comment

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

Right, I did not use that method a lot so I didn't think of it.

@gvanrossumgvanrossum added the 3.13bugs and security fixes labelMay 10, 2024
@gvanrossumgvanrossum merged commit35c4361 intopython:mainMay 10, 2024
@gvanrossumgvanrossum added the needs backport to 3.13bugs and security fixes labelMay 10, 2024
@miss-islington-app
Copy link

Thanks@gaogaotiantian for the PR, and@gvanrossum for merging it 🌮🎉.. I'm working now to backport this PR to: 3.13.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull requestMay 10, 2024
…-118923)(cherry picked from commit35c4361)Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>
@bedevere-app
Copy link

GH-118933 is a backport of this pull request to the3.13 branch.

@bedevere-appbedevere-appbot removed the needs backport to 3.13bugs and security fixes labelMay 10, 2024
gvanrossum pushed a commit that referenced this pull requestMay 10, 2024
…) (#118933)(cherry picked from commit35c4361)Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>
@gaogaotiantiangaogaotiantian deleted the framelocalsproxy-copy branchMay 12, 2024 20:44
rominf added a commit to rominf/sentry-python that referenced this pull requestJul 10, 2024
Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.html
rominf added a commit to rominf/sentry-python that referenced this pull requestJul 10, 2024
Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148
sentrivana pushed a commit to getsentry/sentry-python that referenced this pull requestJul 16, 2024
…3271)Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148
sentrivana added a commit to getsentry/sentry-python that referenced this pull requestJul 16, 2024
Adding preliminary support for Python 3.13.The `_partialmethod` attribute of methods wrapped with `partialmethod()`was renamed to `__partialmethod__` in CPython 3.13:python/cpython#16600Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148---------Co-authored-by: Roman Inflianskas <rominf@pm.me>
estyxx pushed a commit to estyxx/cpython that referenced this pull requestJul 17, 2024
arjennienhuis pushed a commit to arjennienhuis/sentry-python that referenced this pull requestSep 30, 2024
Adding preliminary support for Python 3.13.The `_partialmethod` attribute of methods wrapped with `partialmethod()`was renamed to `__partialmethod__` in CPython 3.13:python/cpython#16600Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148---------Co-authored-by: Roman Inflianskas <rominf@pm.me>
turicas added a commit to turicas/sentry-python that referenced this pull requestJun 6, 2025
Partial cherry-pick of:a98f660Adding preliminary support for Python 3.13.The `_partialmethod` attribute of methods wrapped with `partialmethod()`was renamed to `__partialmethod__` in CPython 3.13:python/cpython#16600Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148
turicas added a commit to turicas/sentry-python that referenced this pull requestJun 6, 2025
Partial cherry-pick of:a98f660Adding preliminary support for Python 3.13.The `_partialmethod` attribute of methods wrapped with `partialmethod()`was renamed to `__partialmethod__` in CPython 3.13:python/cpython#16600Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148
turicas added a commit to turicas/sentry-python that referenced this pull requestJun 6, 2025
Partial cherry-pick of:a98f660Adding preliminary support for Python 3.13.The `_partialmethod` attribute of methods wrapped with `partialmethod()`was renamed to `__partialmethod__` in CPython 3.13:python/cpython#16600Starting from Python 3.13, `frame.f_locals` is not `dict` anymore, but`FrameLocalsProxy`, that cannot be copied using `copy.copy()`. In Python3.13 and later, it should be copied using a method `.copy()`. The new wayof copying works the same as the old one for versions of Python prior to3.13, according to the documentation (both copying methods produce ashallow copy).Since Python 3.13, `FrameLocalsProxy` skips items of `locals()` that havenon-`str` keys; this is a CPython implementation detail, so we hencedisable `test_non_string_variables` test on Python 3.13.See:https://peps.python.org/pep-0667/python/cpython#118921python/cpython#118923https://docs.python.org/3.13/whatsnew/3.13.html#porting-to-python-3-13https://docs.python.org/3/library/copy.htmlhttps://github.com/python/cpython/blame/7b413952e817ae87bfda2ac85dd84d30a6ce743b/Objects/frameobject.c#L148
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@gvanrossumgvanrossumgvanrossum approved these changes

@szef1233szef1233szef1233 approved these changes

@markshannonmarkshannonAwaiting requested review from markshannonmarkshannon is a code owner

Assignees
No one assigned
Labels
3.13bugs and security fixes
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

3 participants
@gaogaotiantian@gvanrossum@szef1233

[8]ページ先頭

©2009-2025 Movatter.jp