Issue40504
Created on 2020-05-04 20:36 by rhettinger, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 19938 | merged | Dennis Sweeney, 2020-05-05 17:10 | |
| Messages (5) | |||
|---|---|---|---|
| msg368081 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2020-05-04 20:36 | |
The pure python version of lru_cache() wrappers supported weak references. It's not essential, but I have used it a couple of times. In the spirit of PEP 399, the C version should add back the weakref support (and a test). |
|||
| msg368093 - (view) | Author: Dennis Sweeney (Dennis Sweeney) * | Date: 2020-05-04 23:35 | |
I can submit a PR. Just making sure I understand, is this essentially the desired behavior change?
import weakref
import functools
if 0:
from test.support import import_fresh_module
functools = import_fresh_module('functools', blocked=['_functools'])
@functools.lru_cache
def f(x):
return x
ref_to_f = weakref.ref(f)
print(ref_to_f)
# Current:
# TypeError: cannot create weak reference to 'functools._lru_cache_wrapper' object
# Desired:
# <weakref at 0x000001ABFE0F5090; to 'function' at 0x000001ABFE2D5AF0 (f)>
|
|||
| msg368097 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2020-05-05 01:59 | |
Yes. That is the desired behavior. Use Objects/setobject.c and Include/setobject.h as a model. |
|||
| msg368207 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2020-05-05 21:14 | |
New changeset 1253c3ef70ea5632d32ae19579a14152db0d45c1 by Dennis Sweeney in branch 'master': bpo-40504: Allow weakrefs to lru_cache objects (GH-19938) https://github.com/python/cpython/commit/1253c3ef70ea5632d32ae19579a14152db0d45c1 |
|||
| msg368208 - (view) | Author: Raymond Hettinger (rhettinger) * | Date: 2020-05-05 21:15 | |
Thanks for the PE :-) |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:30 | admin | set | github: 84684 |
| 2020-05-05 21:15:17 | rhettinger | set | status: open -> closed resolution: fixed messages: + msg368208 stage: patch review -> resolved |
| 2020-05-05 21:14:39 | rhettinger | set | messages: + msg368207 |
| 2020-05-05 17:10:00 | Dennis Sweeney | set | keywords:
+ patch stage: patch review pull_requests: + pull_request19253 |
| 2020-05-05 01:59:27 | rhettinger | set | messages: + msg368097 |
| 2020-05-04 23:35:18 | Dennis Sweeney | set | nosy:
+ Dennis Sweeney messages: + msg368093 |
| 2020-05-04 20:36:26 | rhettinger | create | |