{"adoption": {"forks": 690, "observed_at": "2026-08-28T04:06:14.568408+00:00", "stars": 2113}, "canonical_url": "https://ross.abutalabs.com/products/pypsa", "card": {"archived": false, "artifact_type": "framework", "description": "PyPSA: Python for Power System Analysis", "domain": ["simulation", "mathematics"], "enriched": true, "function": ["simulation", "math"], "health_score": 100, "homepage": "https://docs.pypsa.org", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["PyPSA/PyPSA"], "name": "PyPSA/PyPSA", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-26T18:49:38+00:00", "repo": "PyPSA/PyPSA", "stars": 2113, "tags": ["energy-systems", "power-systems", "optimal-power-flow", "power-flow", "capacity-expansion-planning", "unit-commitment", "renewable-energy", "sector-coupling", "electrical-engineering", "optimization", "energy-modelling", "linopy", "scientific-computing", "pandas", "electricity-grid"], "topics": ["python", "optimisation", "energy-system", "power-systems-analysis", "optimal-power-flow", "powerflow", "energy", "energy-systems", "power-flow", "power-systems", "renewable-energy", "electrical-engineering", "capacity-expansion-planning", "clean-energy", "climate-change", "renewables", "electricity", "energy-system-model", "energy-system-modelling", "modelling-framework"], "urls": [], "use_cases": ["model national or regional electricity systems with renewables in python", "solve optimal power flow for a transmission network", "run capacity expansion planning for least-cost energy scenarios", "simulate dispatch of wind, solar, hydro, and storage over a year of time series", "compute linearised DC or AC power flows on large grids", "model coupling of electricity with heat, gas, or mobility sectors", "study unit commitment of conventional power plants"], "what_it_is": "PyPSA is an open-source Python framework for optimising and simulating power and energy systems, covering conventional generators with unit commitment, wind and solar generation, storage, sector coupling, and linearised DC/AC power flow. It is built to scale to large networks with long time series and is aimed at researchers, planners, and utilities with basic coding skills.", "when_to_avoid": ["you need detailed dynamic or transient grid simulation rather than optimisation and static power flow", "you require a graphical point-and-click tool with no programming", "you need certified commercial planning software for regulatory studies", "your problem is unrelated to power or energy systems"], "when_to_choose": ["you need a transparent, open-source alternative to proprietary energy system modelling tools", "you want scriptable, reproducible scenario analysis integrated with the scientific Python stack", "you need to handle large networks with long time series efficiently", "you are doing academic research or planning on renewable integration, storage, or grid expansion"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pypsa", "repo": "PyPSA/PyPSA", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "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:06:14.568408+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.568408+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:53:39.271936+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff43efe40b99ac2c410295b01cc158def7198260b3747977342903642aff26c1", "fetched_at": "2026-08-28T04:06:14.568408+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyPSA/PyPSA"}, {"content_hash": "503428ce774bd52c2760aee75a48204aa7495cc5d8bf8975d7d9720019431e68", "fetched_at": "2026-08-29T10:34:10.114232+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pypsa/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 98}, "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": 3887, "days_push": 7, "days_rel": 14, "gap_med": 13, "n_releases_24m": 34}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}