{"adoption": {"forks": 386, "observed_at": "2026-08-28T04:07:48.417355+00:00", "stars": 3198}, "canonical_url": "https://ross.abutalabs.com/products/pyflow", "card": {"archived": false, "artifact_type": "framework", "description": "Visual scripting framework for python", "domain": ["developer-tools", "programming-languages", "cross-platform"], "enriched": true, "function": ["gui", "developer-tools", "workflow-automation", "interpreter"], "health_score": 49, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["pedroCabrera/PyFlow"], "name": "pedroCabrera/PyFlow", "platform": ["python", "cross-platform", "cli"], "pushed_at": "2025-09-02T11:08:15+00:00", "repo": "pedroCabrera/PyFlow", "stars": 3198, "tags": ["visual-scripting", "dataflow-programming", "node-based", "pyside2", "qt", "subgraphs", "automation"], "topics": ["python", "pyflow", "dataflow-programming", "qt", "pyside2", "framework", "subgraphs"], "urls": [], "use_cases": ["build programs visually by wiring nodes instead of writing code", "create custom node-based tools with Python packages", "evaluate dataflow graphs headlessly without a GUI", "collapse graph sections into reusable subgraphs", "embed a visual scripting editor into a Python application", "prototype pipelines using a node graph editor"], "what_it_is": "PyFlow is a general-purpose visual scripting framework for Python built on Qt/PySide2, letting users compose programs as node graphs with subgraphs, pins, and packages. Its logic is separated from the UI, so graphs can be evaluated headlessly or embedded in any Python environment.", "when_to_avoid": ["you need efficient complex flow control like loops with delays or cycles", "you require mature code generation or object/function abstractions not yet implemented", "you need a polished, production-hardened visual programming environment", "you want a web-based or collaborative node editor"], "when_to_choose": ["you want a Python-embeddable visual scripting or node graph framework", "you need headless evaluation of graphs as well as a GUI editor", "you want a modular system where you can replace all default nodes and tools", "you prefer an Apache-2.0 licensed, self-hosted desktop tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pyflow", "repo": "pedroCabrera/PyFlow", "role": "main", "score": 41}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "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:07:48.417355+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.417355+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:52.211350+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a530637e7d31a74b37db9fcc9a8bdca295d3e4304b8062f7e20255914bd95a9", "fetched_at": "2026-08-28T04:07:48.417355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pedroCabrera/PyFlow"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 40, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3158, "days_push": 365, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 41, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}