{"adoption": {"forks": 5546, "observed_at": "2026-08-28T04:11:47.754332+00:00", "stars": 27490}, "canonical_url": "https://ross.abutalabs.com/products/walter201230-python", "card": {"archived": false, "artifact_type": "learning-resource", "description": "小白 python 教程", "domain": ["tutorials", "education", "programming-languages"], "enriched": true, "function": ["documentation", "developer-tools"], "health_score": 75, "homepage": "https://learn-py.org/", "language": "Python", "license": "CC-BY-4.0", "license_family": "other", "maturity": "active", "member_repos": ["walter201230/Python"], "name": "walter201230/Python", "platform": ["browser", "python"], "pushed_at": "2026-07-08T11:41:13+00:00", "repo": "walter201230/Python", "stars": 27490, "tags": ["python-tutorial", "beginner-friendly", "interactive-learning", "chinese-language", "pyodide", "in-browser-code-execution", "static-site", "cc-by-4.0", "web"], "topics": ["python", "python3"], "urls": [], "use_cases": ["learn python from scratch", "beginner python tutorial in chinese", "practice python exercises in the browser", "learn decorators and closures with examples", "understand python packaging and publishing to pypi", "python 3.10+ features tutorial", "free python course without installing anything"], "what_it_is": "A free, open-source Chinese-language Python tutorial (walter201230/Python, 25k+ stars, CC BY 4.0) covering basics through advanced features like decorators, metaclasses, and packaging to PyPI. It ships as a readable documentation site plus an interactive companion site (learn-py.org) where 29 chapters with ~100 exercises run Python in the browser via Pyodide with instant grading.", "when_to_avoid": ["you need an English-language tutorial", "you want cross-device progress syncing or account-based tracking (progress is localStorage-only)", "you are an advanced developer seeking deep dives into specialized topics like async internals or performance tuning", "you need hands-on practice for chapters that are read-only, such as packaging and CLI tools"], "when_to_choose": ["you are a complete beginner wanting a structured, step-by-step Python course", "you prefer learning by solving graded exercises directly in the browser", "you read Chinese and want a free, well-maintained tutorial covering modern Python 3.10+", "you want a reference document to read through or consult chapter by chapter"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/walter201230-python", "repo": "walter201230/Python", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "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:11:47.754332+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:47.754332+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:54:31.879439+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8e116d0d0537e4e04c6029690f62e831938fc6b29e492a158c12aa4bc6dc3c7a", "fetched_at": "2026-08-28T04:11:47.754332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/walter201230/Python"}, {"content_hash": "243cd37048927796c997ba9f307c4c4323ab97bb07691d406fd7a9b87d7213ad", "fetched_at": "2026-08-29T07:51:33.163609+00:00", "kind": "homepage", "missing": false, "url": "https://learn-py.org/"}, {"content_hash": "16592553777b3c03697adac606648bc850f9d7f29d0848950c54728966779848", "fetched_at": "2026-08-29T07:51:33.193394+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/about"}, {"content_hash": "ad5824f63b32fb374ea8d8f47fae082ff830017cf57360d7d459b05d6944b34e", "fetched_at": "2026-08-29T07:51:33.189593+00:00", "kind": "site_page", "missing": false, "url": "https://learn-py.org/lessons/python27/pypi"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "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": 3374, "days_push": 56, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}