Builds recursive calls tree and saves it as an SVG file.
Project description
Recursion tree
Transforms recursive functions into graphical form.
Installation:
pip install RecursionTree
Usage:
import random
from RecursionTree import recursion_tree
scientific_style = {
'draw_boundary': False,
'color_background': 'white',
'color_num_background': 'white',
'color_node_body': 'white',
'color_node_stroke': 'black',
'color_text': 'black',
'color_connection': 'black',
'node_stroke_bezier': False
}
@recursion_tree(scientific_style)
def fibo(x: int) -> int:
return 1 if x in [1, 2] else fibo(x=x - 1) + fibo(x=x - 2)
# No parameters mean default settings
@recursion_tree
def random_tree(x: int) -> str:
if x == 0:
return 'Dead end'
for _ in range(random.randint(1, x)):
random_tree(x=x - 1)
if __name__ == '__main__':
# Run out target function and save results
fibo(x=5)
random_tree(x=4)
Just add the 'recursion_tree' decorator to any recursive function. The result will be automatically saved as an SVG file. Additional settings might be achieved via settings.py or by passing a dictionary to the decorator.
Default style:
Scientific style:
Default style with boundaries:
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file RecursionTree-2.0.tar.gz.
File metadata
- Download URL: RecursionTree-2.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3637dcf25ccd5977aa7868833f5ec8ebda5dd0546d5d48f77e104ad7eb73d63a
|
|
| MD5 |
1775536fda6c09742fa04efc44ee7547
|
|
| BLAKE2b-256 |
8588e2ce66e0e7568771681c9fb21059c9aeb925ce0de96cd562f40d65bedfd3
|
File details
Details for the file RecursionTree-2.0-py3-none-any.whl.
File metadata
- Download URL: RecursionTree-2.0-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70b766557cde68de48669a2792b27b0595fa5133aa9d25585aa0096e9def72fb
|
|
| MD5 |
fbd1573c23b855e58420c24ee5561681
|
|
| BLAKE2b-256 |
2e75340dcebe075c9a66757fd62ee76ff7308b18a6d52b75ada6b638168e0f27
|