{"id":19764271,"url":"https://github.com/theobori/callviz","last_synced_at":"2026-02-24T00:45:43.727Z","repository":{"id":245078272,"uuid":"816546591","full_name":"theobori/callviz","owner":"theobori","description":"Function calls visualization","archived":false,"fork":false,"pushed_at":"2024-09-27T13:07:07.000Z","size":48,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-06T04:40:48.659Z","etag":null,"topics":["calls","debug","function","graph","graphviz","python","recursion"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/callviz/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theobori.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-18T01:06:18.000Z","updated_at":"2024-09-27T13:08:46.000Z","dependencies_parsed_at":"2024-07-27T15:27:35.268Z","dependency_job_id":"b6d45871-deb1-425c-9272-a21970fc7137","html_url":"https://github.com/theobori/callviz","commit_stats":null,"previous_names":["theobori/call_viz","theobori/callviz"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fcallviz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fcallviz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fcallviz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theobori%2Fcallviz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theobori","download_url":"https://codeload.github.com/theobori/callviz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224214049,"owners_count":17274524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calls","debug","function","graph","graphviz","python","recursion"],"created_at":"2024-11-12T04:12:59.668Z","updated_at":"2025-10-30T14:25:39.887Z","avatar_url":"https://github.com/theobori.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Function call visualization\n\n[![lint](https://github.com/theobori/callviz/actions/workflows/lint.yml/badge.svg)](https://github.com/theobori/callviz/actions/workflows/lint.yml) [![build](https://github.com/theobori/callviz/actions/workflows/build.yml/badge.svg)](https://github.com/theobori/callviz/actions/workflows/build.yml) [![publish](https://github.com/theobori/callviz/actions/workflows/publish.yml/badge.svg)](https://github.com/theobori/callviz/actions/workflows/publish.yml)\n\n[![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org)\n\nIt is a Python decorator that will help you visualizate the function calls, in particular for the recursive ones. Under the hood [Graphviz](https://graphviz.org/) is used to generate the graph.\n\n## 📖 Build and run\n\nFor the build, you only need the following requirements:\n\n- [Python](https://www.python.org/downloads/) 3+ (tested with 3.12.4)\n\nTo install it from [PyPi](https://pypi.org), you can run the following command:\n\n```bash\npython -m pip install callviz\n```\n\n## 🤝 Contribute\n\nIf you want to help the project, you can follow the guidelines in [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## 📎 Some examples\n\nHere is an example of how you could use the decorator.\n\n```py\nfrom callviz import callviz\n\n@callviz(_format=\"png\", memoization=True, open_file=True)\ndef fib(n: int):\n    if n \u003c 2:\n        return n\n\n    return fib(n - 2) + fib(n - 1)\n\n@callviz(show_link_value=False)\ndef rev(arr, new):\n    if arr == []:\n        return new\n\n    return rev(arr[1:], [arr[0]] + new)\n\nfib(7)\nrev(list(range(6, 0, -1)), [])\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheobori%2Fcallviz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheobori%2Fcallviz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheobori%2Fcallviz/lists"}