Skip to main content

Function decorator that ensures that no global and no nonlocal variables are used, making Jupyter notebooks much safer

Project description

no_global_nonlocal_vars

Function decorator that ensures that no global and no nonlocal variables are used, making Jupyter notebooks much safer

Installing

Install:

pip install no_global_nonlocal_vars

Usage

# Correct Output
@no_global_nonlocal_vars
def test_no_global_nonlocal_vars_GOOD(x, repeat):
    return np.array([x] * repeat)


# Error from typo
@no_global_nonlocal_vars
def test_no_global_nonlocal_vars_typo_GOOD(x_typo, repeat_typo):
    return np.array([x] * repeat)


# Nested function works
@no_global_nonlocal_vars
def test_no_global_nonlocal_vars_nested_GOOD(x, repeat=10):

    @no_global_nonlocal_vars
    def helper(x, repeat):
        return np.array([x] * repeat)

    return helper(x, repeat)


# Error from nonlocal variable typo
@no_global_nonlocal_vars
def test_no_global_nonlocal_vars_nested_typo_GOOD(x, repeat=10):

    @no_global_nonlocal_vars
    def helper(x_typo, repeat_typo):
        return np.array([x] * repeat)

    return helper(x, repeat)

Notes

  • The errors show up only upon first time running the function, not at function definition time

Related Work

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

no_global_nonlocal_vars-0.0.1.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

no_global_nonlocal_vars-0.0.1-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file no_global_nonlocal_vars-0.0.1.tar.gz.

File metadata

File hashes

Hashes for no_global_nonlocal_vars-0.0.1.tar.gz
Algorithm Hash digest
SHA256 204434df4d3b60d8ecdfece19be32ff655b6d7ca1b135d9491919b2fad7a72a3
MD5 e921e1d66b4cf5802fe1b130e497190d
BLAKE2b-256 43725d24807b5eedcbf595048d188660df43218c4363f277fb7083ea7a73782d

See more details on using hashes here.

File details

Details for the file no_global_nonlocal_vars-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for no_global_nonlocal_vars-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ca01f2dd46a07f2280bc15272c0c4065f4bb029c263250d813b7cc8b5c65c434
MD5 56b638bdb772f739ba9e11794b05bfb3
BLAKE2b-256 2c320340775fd43c9f32d3b97f5f99268be9a596ff0948ed3932e6c07db81c33

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page