{"id":16737352,"url":"https://github.com/dogweather/python-exhaustiveness-adts-monads","last_synced_at":"2025-11-11T19:27:06.696Z","repository":{"id":60740210,"uuid":"544714529","full_name":"dogweather/python-exhaustiveness-adts-monads","owner":"dogweather","description":"Demo code showing off the new true exhaustiveness checks with Python 3.10 + Pyright","archived":false,"fork":false,"pushed_at":"2023-02-11T02:05:48.000Z","size":61,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T12:32:28.673Z","etag":null,"topics":["mypy","pattern-matching","pyright","python-typing","type-systems"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dogweather.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-03T05:03:04.000Z","updated_at":"2024-08-04T21:02:12.000Z","dependencies_parsed_at":"2025-04-10T12:42:40.609Z","dependency_job_id":"28b9ce34-d9d2-4ae7-9497-062fb5542615","html_url":"https://github.com/dogweather/python-exhaustiveness-adts-monads","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dogweather/python-exhaustiveness-adts-monads","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogweather%2Fpython-exhaustiveness-adts-monads","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogweather%2Fpython-exhaustiveness-adts-monads/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogweather%2Fpython-exhaustiveness-adts-monads/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogweather%2Fpython-exhaustiveness-adts-monads/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dogweather","download_url":"https://codeload.github.com/dogweather/python-exhaustiveness-adts-monads/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogweather%2Fpython-exhaustiveness-adts-monads/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263679223,"owners_count":23495009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mypy","pattern-matching","pyright","python-typing","type-systems"],"created_at":"2024-10-13T00:25:59.502Z","updated_at":"2025-11-11T19:27:06.659Z","avatar_url":"https://github.com/dogweather.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Exhaustiveness Checking Demo\n\nDemo code showing the new true exhaustiveness checking with Python 3.10 + Pyright.\nI created this repo to support [my blog post](https://dogweather.dev/2022/10/03/i-discovered-that-python-now-can-do-true-match-exhaustiveness-checking/)\nand make it easy to try out\nthis technique.\n\n## To set up\n\nYou'll need [Poetry](https://python-poetry.org) and Python 3.10. I used 3.10.6 and 3.10.7 to write this.\n\n```\npoetry install\npoetry shell\n```\n\n## Now you can run Pyright\n\nTo see the exhaustiveness checks for all the files:\n\n```\npyright\n```\n\n## VS Code\n\nVS Code has **Pylance** checking built into its Python extension. This\nbrings the Pyright checking into the IDE. IMO it's an amazing experience.\n\nPylance/Pyright should pick up\nthe settings from `pyproject.toml`. The settings in VS Code seem to mostly\nbe overridden by the file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogweather%2Fpython-exhaustiveness-adts-monads","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdogweather%2Fpython-exhaustiveness-adts-monads","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogweather%2Fpython-exhaustiveness-adts-monads/lists"}