Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jeertmans/varscope

Encapsulate Python variables in scopes
https://github.com/jeertmans/varscope

python scope utility-library

Last synced: 30 days ago
JSON representation

Encapsulate Python variables in scopes

Awesome Lists containing this project

README

        



VarScope Logo

# VarScope

[![Documentation][documentation-badge]][documentation-url]
[![codecov][codecov-badge]][codecov-url]

Ultra simple module for creating local scopes in Python.

## Installation

VarScope can be installed with `pip`:

```bash
pip install varscope
```

## Usage

```python
>>> 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 "", line 1, in
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 "", line 1, in
NameError: name 'a' is not defined
>>>
>>> d = {}
>>> with scope(): # Scope can mutate object from outside
... d["a"] = 1
...
>>> d["a"]
1
```

[documentation-badge]: https://img.shields.io/website?down_color=lightgrey&down_message=offline&label=documentation&up_color=green&up_message=online&url=https%3A%2F%2Feertmans.be%2Fvarscope%2F
[documentation-url]: https://eertmans.be/varscope/
[codecov-badge]: https://codecov.io/gh/jeertmans/varscope/branch/main/graph/badge.svg?token=1dJ1AKWMR5
[codecov-url]: https://codecov.io/gh/jeertmans/varscope