Ultra simple module for creating local scopes in Python.
VarScope can be installed with pip
:
pip install varscope
>>> from varscope import scope
>>>
>>> a = 1
>>> with scope(): # Everything defined after will only apply inside the scope
... a = 2
... b = 3
...
>>> a
1
>>> b # Not defined, because outside of scope
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
>>>
>>> with scope() as s: # We can choose to keep some variables
... a = 2
... b = 3
... s.keep("b")
...
>>> b
3
>>> with scope("a"): # We can also move variables inside scope
... a = 2
...
>>> a # Not defined, because outside of scope
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>>
>>> d = {}
>>> with scope(): # Scope can mutate object from outside
... d["a"] = 1
...
>>> d["a"]
1