Message327436
inspect.getclosurevars() omits globals or nonlocals that are bound within comprehensions:
22:50 ~ python3
Python 3.7.0 (default, Aug 17 2018, 21:14:48)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(ins)>>> import inspect
(ins)>>> x = 1
(ins)>>> def f():
(ins)... return [x for _ in range(1)]
(ins)...
(ins)>>> inspect.getclosurevars(f)
ClosureVars(nonlocals={}, globals={}, builtins={'range': <class 'range'>}, unbound=set())
(ins)>>> def f():
(ins)... return x
(ins)...
(ins)>>> inspect.getclosurevars(f)
ClosureVars(nonlocals={}, globals={'x': 1}, builtins={}, unbound=set())
It can be fixed quite easily along the following lines:
https://github.com/azag0/calcfw/blob/master/caf2/hashing/func.py#L133-L146
Does this look like a reasonable solution? |
|
Date |
User |
Action |
Args |
2018-10-09 20:58:00 | jhrmnn | set | recipients:
+ jhrmnn |
2018-10-09 20:58:00 | jhrmnn | set | messageid: <1539118680.94.0.545547206417.issue34947@psf.upfronthosting.co.za> |
2018-10-09 20:58:00 | jhrmnn | link | issue34947 messages |
2018-10-09 20:58:00 | jhrmnn | create | |
|