{"adoption": {"forks": 441, "observed_at": "2026-08-28T04:08:18.108649+00:00", "stars": 3769}, "canonical_url": "https://ross.abutalabs.com/products/python-phonenumbers", "card": {"archived": false, "artifact_type": "library", "description": "Python port of Google's libphonenumber", "domain": ["developer-tools", "apis"], "enriched": true, "function": ["parser", "nlp", "developer-tools"], "health_score": 79, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["daviddrysdale/python-phonenumbers"], "name": "daviddrysdale/python-phonenumbers", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-14T05:27:20+00:00", "repo": "daviddrysdale/python-phonenumbers", "stars": 3769, "tags": ["phone-numbers", "libphonenumber", "validation", "formatting", "e164", "natural-language-processing"], "topics": [], "urls": [], "use_cases": ["parse phone numbers from user input", "validate phone numbers for a country", "format phone numbers in E.164", "normalize phone numbers in a database", "check if a phone number is valid or possible", "extract country code from a phone number"], "what_it_is": "A Python port of Google's libphonenumber library for parsing, formatting, and validating international phone numbers. It converts phone number strings into structured PhoneNumber objects and checks their validity and possibility per country rules.", "when_to_avoid": ["you only need simple US-only digit checks", "you need live carrier or line-type lookups, which require external services", "you work in a non-Python language and can use libphonenumber directly"], "when_to_choose": ["you need robust international phone number parsing and validation in Python", "you want feature parity with Google's libphonenumber metadata", "you need to format numbers for storage or display in a consistent standard"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-phonenumbers", "repo": "daviddrysdale/python-phonenumbers", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "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:08:18.108649+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.108649+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:27:53.955248+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4744dfc8e38d9280b7938db6c2f7d3ac241d4627c429b956c3704bc155305d00", "fetched_at": "2026-08-28T04:08:18.108649+00:00", "kind": "readme", "missing": false, "url": "https://github.com/daviddrysdale/python-phonenumbers"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5613, "days_push": 19, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}