{"adoption": {"forks": 456, "observed_at": "2026-08-28T04:05:36.174554+00:00", "stars": 1786}, "canonical_url": "https://ross.abutalabs.com/products/pyfa", "card": {"archived": false, "artifact_type": "application", "description": "Python fitting assistant, cross-platform fitting tool for EVE Online", "domain": ["gaming-tools", "simulation", "cross-platform"], "enriched": true, "function": ["gui", "simulation", "developer-tools"], "health_score": 98, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["pyfa-org/Pyfa"], "name": "pyfa-org/Pyfa", "platform": ["windows", "python", "cross-platform"], "pushed_at": "2026-08-07T22:49:57+00:00", "repo": "pyfa-org/Pyfa", "stars": 1786, "tags": ["eve-online", "ship-fitting", "wxpython", "game-planning", "mmo", "macos", "linux", "desktop"], "topics": ["eve-online", "python", "pyfa", "mmo", "fitting", "wxpython"], "urls": [], "use_cases": ["plan EVE Online ship fits without logging into the game", "compare different ship fitting setups and DPS calculations", "save and share ship fittings with other players", "experiment with module and skill loadouts offline", "check whether a fitting is valid before buying modules in-game"], "what_it_is": "Pyfa (Python Fitting Assistant) is a cross-platform desktop application for creating, experimenting with, and saving EVE Online ship fittings outside of the game. It is written in Python with wxWidgets and ships self-contained builds for Windows, macOS, and Linux.", "when_to_avoid": ["you need a fitting tool for a game other than EVE Online", "you want an in-game or web-based fitting tool rather than a desktop app", "you need a general-purpose game planning tool with no EVE-specific data"], "when_to_choose": ["you play EVE Online and want to theorycraft ship fittings offline", "you need a cross-platform, open-source fitting tool with regular releases", "you want to compare fits, costs, and stats before committing in-game ISK"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pyfa", "repo": "pyfa-org/Pyfa", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "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:36.174554+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.174554+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:24:10.803440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e6e5c86122beae88c3a1c04be66866eddf2448538daa2f223f1681a72144c0a", "fetched_at": "2026-08-28T04:05:36.174554+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pyfa-org/Pyfa"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 92}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4832, "days_push": 26, "days_rel": 57, "gap_med": 14, "n_releases_24m": 30}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}