{"adoption": {"forks": 644, "observed_at": "2026-08-28T04:07:24.787773+00:00", "stars": 2841}, "canonical_url": "https://ross.abutalabs.com/products/explore-python", "card": {"archived": false, "artifact_type": "learning-resource", "description": ":green_book: The Beauty of Python Programming.", "domain": ["programming-languages", "tutorials", "education"], "enriched": true, "function": ["documentation", "developer-tools"], "health_score": 20, "homepage": "https://funhacks.gitbooks.io/explore-python/", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["ethan-funny/explore-python"], "name": "ethan-funny/explore-python", "platform": ["python", "cross-platform"], "pushed_at": "2023-02-07T10:05:14+00:00", "repo": "ethan-funny/explore-python", "stars": 2841, "tags": ["python-book", "gitbook", "python-2-7", "chinese-language", "interview-prep", "core-python"], "topics": ["python", "gitbook"], "urls": [], "use_cases": ["learn python fundamentals from scratch", "understand python generators and iterators", "study python decorators and closures", "prepare for python interview questions", "review python concurrency with threads and coroutines", "find a free python book in chinese"], "what_it_is": "An open-source GitBook titled 'The Beauty of Python Programming' (explore-python), a 15-chapter Chinese-language book summarizing core Python concepts such as data types, functional programming, classes, generators, context managers, concurrency, and testing. It is based on the author's study notes, primarily targeting Python 2.7 while noting Python 3 differences.", "when_to_avoid": ["you need up-to-date Python 3.10+ features and modern best practices", "you require a commercially usable or modifiable resource (CC BY-NC-ND license)", "you want an interactive course with exercises rather than a reference book"], "when_to_choose": ["you want a concise, chapter-independent introduction to core Python concepts", "you prefer reading curated notes over long official documentation", "you are preparing for Python interviews and need quick topic reviews"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/explore-python", "repo": "ethan-funny/explore-python", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "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:24.787773+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.787773+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:37:15.124540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dfea14569f8789c28f401b1ff79bf37807a58fa72368afc5551d4df97630ba18", "fetched_at": "2026-08-28T04:07:24.787773+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ethan-funny/explore-python"}, {"content_hash": "0a070addd135ca4296c90e8c8cb2a039e592a6078351099d13114be14999e253", "fetched_at": "2026-08-29T09:53:01.623529+00:00", "kind": "homepage", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/"}, {"content_hash": "3ee03567af5a11e28aef8104850a721678151454a0872179d1168706c4b80f54", "fetched_at": "2026-08-29T09:53:01.633581+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features"}, {"content_hash": "264202a94b0a9df22406f4643ba14fd7c2af93e0ec2322a2c8abf8fdfcea81ef", "fetched_at": "2026-08-29T09:53:01.635758+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/iterator.html"}, {"content_hash": "96f6791061e1b474dc256d6575d6aedd33e4931b413cd5789ded80a9141cf926", "fetched_at": "2026-08-29T09:53:01.637947+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/generator.html"}, {"content_hash": "b387e8a268b7aa681374457487dd5eb7ab6ec84f73dbf9f44a9188277eb8435e", "fetched_at": "2026-08-29T09:53:01.640246+00:00", "kind": "site_page", "missing": false, "url": "https://funhacks.gitbooks.io/explore-python/content/Advanced-Features/context.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3598, "days_push": 1303, "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}}