{"adoption": {"forks": 218, "observed_at": "2026-08-28T04:07:39.203606+00:00", "stars": 3038}, "canonical_url": "https://ross.abutalabs.com/products/python-decouple", "card": {"archived": false, "artifact_type": "library", "description": "Strict separation of config from code.", "domain": ["developer-tools", "web-development", "backend"], "enriched": true, "function": ["configuration-management", "developer-tools"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["HBNetwork/python-decouple"], "name": "HBNetwork/python-decouple", "platform": ["python", "cli"], "pushed_at": "2024-11-28T20:56:27+00:00", "repo": "HBNetwork/python-decouple", "stars": 3038, "tags": ["env-files", "ini-files", "django", "settings", "twelve-factor"], "topics": ["python", "configuration-files", "environment-variables"], "urls": [], "use_cases": ["load environment variables from a .env file in python", "parse DEBUG=False as a boolean instead of a truthy string", "manage Django settings with defaults and type casting", "keep secrets like API keys out of source code", "share one settings module across dev and production instances"], "what_it_is": "python-decouple is a Python library that enforces strict separation of configuration settings from code, reading parameters from .env or .ini files with typed casting and sensible defaults. Originally built for Django, it works as a generic settings helper for any Python application.", "when_to_avoid": ["you need schema validation or nested config structures - use pydantic-settings or dynaconf", "you only need plain os.environ access with no casting", "you need hierarchical config across many services"], "when_to_choose": ["you want typed config values (bool, int) instead of raw strings from os.environ", "you use Django or Flask and want simple .env/.ini based settings", "you need per-deploy configuration without redeploying code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-decouple", "repo": "HBNetwork/python-decouple", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "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:39.203606+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.203606+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:29:16.604373+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9cb7f9a38fe6f8efb317df8cfa51a882aab1dc10cbc6d6bb421928ef39d623a1", "fetched_at": "2026-08-28T04:07:39.203606+00:00", "kind": "readme", "missing": false, "url": "https://github.com/HBNetwork/python-decouple"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4572, "days_push": 643, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}