A package to extract your nested functions!
Project description
nested
Extract your nested functions!
Installation
pip install nestd
Usage
from nestd import nested, get_all_nested
def dummy_function():
test_variable = "hello, world"
def inner_function():
nonlocal test_variable
return test_variable
def dummy_function_with_two_inner_functions():
test_variable = "hello, world"
test_array = [1, 2, 3]
def inner_function():
nonlocal test_variable
return test_variable
def inner_function_2():
nonlocal test_array
return test_array[1:]
def test_nested_function():
inner_function = nested(dummy_function, "inner_function", test_variable="hello" )
assert "hello" == inner_function()
def test_2_nested_functions():
all_inner_functions = get_all_nested(dummy_function_with_two_inner_functions, "hello_world", [1,2])
inner_function, inner_function_2 = all_inner_functions
assert inner_function[0] == "inner_function"
assert inner_function[1]() == "hello_world"
assert inner_function_2[0] == "inner_function_2"
assert inner_function_2[1]() == [2]
To perform a very deep nested search
def dummy_function_with_nested_inner_functions():
test_array = [1, 2, 3]
def math():
nonlocal test_array
def sum():
nonlocal test_array
def sum_of_array():
nonlocal test_array
inside_arr = [random.randint(1, 10)] * len(test_array)
return test_array + inside_arr
def multi_of_array():
nonlocal test_array
inside_arr = [random.randint(1, 10)] * len(test_array)
for i in range(len(test_array)):
inside_arr[i] = inside_arr[i] * test_array[i]
return inside_arr
ans = 0
for i in test_array:
ans += i
return ans
def multiply():
nonlocal test_array
ans = 1
for i in test_array:
ans = ans * i
return ans
return test_array
def stats():
nonlocal test_array
def mean():
nonlocal test_array
return sum(test_array) / len(test_array)
return test_array
def test_3_nested_functions():
inner_functions = get_all_deep_nested(
dummy_function_with_nested_inner_functions,
test_array=[1, 2, 3],
)
assert inner_functions["math"]() == [1, 2, 3]
assert inner_functions["sum"]() == 6
assert inner_functions["mean"]() == 2.0
Contributor Guidelines
Feel free to open an issue for any clarification or for any suggestions.
To Develop Locally
poetry install
to install the dependenciespytest tests
to run the tests
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
nestd-0.3.2.tar.gz
(3.3 kB
view details)
Built Distribution
nestd-0.3.2-py3-none-any.whl
(3.0 kB
view details)
File details
Details for the file nestd-0.3.2.tar.gz
.
File metadata
- Download URL: nestd-0.3.2.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.7 Darwin/21.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 111e59a7d86bebe903d736a1c7a652c1e75a1c31d5b8aae3b416b7cb2e5ba8e5 |
|
MD5 | 26716ee3ebb26b080ff24a2aa0fada96 |
|
BLAKE2b-256 | 09b6a23ca291cbd2695c59c0df5defb39ecc2b717168f025347b60c3f470b44c |
File details
Details for the file nestd-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: nestd-0.3.2-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.7 Darwin/21.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | efecca80d5780495f178bbbb9af2e6a54f115f47beb7a9e19c1bfd03a0341a39 |
|
MD5 | 42b241521481054d99f750f9d5c5d865 |
|
BLAKE2b-256 | 08c1af9e8e04ac9bcc67b8cb1e906b3a93738d9a0fbbbbb99b3aa723368e8c96 |