{"adoption": {"forks": 343, "observed_at": "2026-08-28T04:05:45.084859+00:00", "stars": 1858}, "canonical_url": "https://ross.abutalabs.com/products/pycallgraph", "card": {"archived": true, "artifact_type": "library", "description": "pycallgraph is a Python module that creates call graphs for Python programs.", "domain": ["developer-tools", "data-visualization"], "enriched": true, "function": ["developer-tools", "data-visualization", "cli", "graphics"], "health_score": 10, "homepage": null, "language": "Python", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "abandoned", "member_repos": ["gak/pycallgraph"], "name": "gak/pycallgraph", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-04-09T02:03:25+00:00", "repo": "gak/pycallgraph", "stars": 1858, "tags": ["call-graph", "profiling", "code-analysis", "graphviz", "gephi", "unmaintained", "python"], "topics": [], "urls": [], "use_cases": ["visualize call graphs for python code", "profile which functions are called most often", "generate call graph images with graphviz", "understand control flow of an unfamiliar python codebase", "color code functions by time or memory usage", "trace function calls in a python script"], "what_it_is": "pycallgraph is a Python module that generates call graph visualizations for Python programs, usable from the command line or as an imported library. It renders static call graphs with tools like Graphviz and Gephi, with customizable colors based on call counts, execution time, or memory usage.", "when_to_avoid": ["you need a maintained tool - the project is explicitly abandoned and points to forks like Lewiscowles1986/py-call-graph", "you need support for modern Python versions beyond 3.3", "you need dynamic/interactive profiling rather than static visualization"], "when_to_choose": ["you need a quick static call graph of a Python 2.7/3.3 program", "you want command-line or programmatic call graph generation with Graphviz/Gephi output", "you are okay using an unmaintained tool on legacy code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pycallgraph", "repo": "gak/pycallgraph", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.084859+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:16:12.679627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cc7ea3790ee1631d228c0aff9da7214493a2908df4e76ae08ba48d5878b00eb4", "fetched_at": "2026-08-28T04:05:45.084859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gak/pycallgraph"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6232, "days_push": 877, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}