{"id":15008228,"url":"https://github.com/python/typing-council","last_synced_at":"2025-10-01T16:31:35.272Z","repository":{"id":209610848,"uuid":"724378571","full_name":"python/typing-council","owner":"python","description":"Decisions by the Python Typing Council","archived":false,"fork":false,"pushed_at":"2024-10-02T14:30:58.000Z","size":11,"stargazers_count":44,"open_issues_count":1,"forks_count":3,"subscribers_count":30,"default_branch":"main","last_synced_at":"2025-01-19T23:43:33.423Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/python.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},"funding":{"custom":"https://www.python.org/psf/donations/python-dev/","github":["python"]}},"created_at":"2023-11-28T00:34:08.000Z","updated_at":"2025-01-14T12:12:36.000Z","dependencies_parsed_at":"2024-02-02T17:25:20.849Z","dependency_job_id":"b8166829-a5a9-4d1f-b85a-720553f6737f","html_url":"https://github.com/python/typing-council","commit_stats":{"total_commits":6,"total_committers":3,"mean_commits":2.0,"dds":"0.33333333333333337","last_synced_commit":"a0b8e44dccb3dd7cd23e4035a9b0032a338ab6f8"},"previous_names":["python/typing-council"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python%2Ftyping-council","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python%2Ftyping-council/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python%2Ftyping-council/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python%2Ftyping-council/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/python","download_url":"https://codeload.github.com/python/typing-council/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234881206,"owners_count":18901081,"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":[],"created_at":"2024-09-24T19:15:38.898Z","updated_at":"2025-10-01T16:31:30.002Z","avatar_url":"https://github.com/python.png","language":null,"funding_links":["https://www.python.org/psf/donations/python-dev/","https://github.com/sponsors/python"],"categories":[],"sub_categories":[],"readme":"# Python Typing Council\n\n## About the Typing Council\n\nThe Typing Council was created in [PEP 729](https://peps.python.org/pep-0729/) to\ngovern the Python type system. Its mandate is to ensure that the type system is\nuseful, usable, and stable.\n\nThe current members of the Council are:\n\n* Eric Traut ([@erictraut](https://github.com/erictraut))\n* Carl Meyer ([@carljm](https://github.com/carljm))\n* Jelle Zijlstra ([@JelleZijlstra](https://github.com/JelleZijlstra))\n* Rebecca Chen ([@rchen152](https://github.com/rchen152))\n* Jukka Lehtosalo ([@JukkaL](https://github.com/JukkaL))\n\n## Decisions\n\nThe Council makes decisions in response to issues opened on this repo. Such\ndecisions include:\n\n* Substantive changes to the specification for the type system\n* Recommendations on [PEPs that relate to typing](https://peps.python.org/topic/typing/)\n\nAny such issues should first be discussed on [discuss.python.org](https://discuss.python.org/c/typing/32)\nbefore being submitted for a decision.\n\nBefore the Council makes a decision, the community should get a chance\nto weigh in. The procedure for requesting a specification change\nwithout a PEP is:\n\n1. Post on [discuss.python.org](https://discuss.python.org/c/typing/32)\n   about the topic\n1. Once the decision has run its course, create a concrete proposal (i.e.,\n   a proposed change to the spec) and make a pull request on the\n   [python/typing](https://github.com/python/typing) repo.\n1. Create an issue on this repo asking the Typing Council for a decision.\n1. After at least a week, the Council will make a decision, which may be\n   to accept the change, reject it, or modify it.\n\nThe following items will be helpful when proposing a change to the\nspecification:\n\n* A survey of the current behavior of major type checkers\n* A rationale for why the proposed behavior is better than alternatives\n* An implementation or proposed implementation of the proposed behavior\n  in at least one major type checker\n\n## Purpose of this repo\n\nThis repo exists only as a place to record the Typing Council's\nprocedures and to ask for decisions from the Council. No substantive\ndiscussions should take place on this repo.\n\n## Decision-making considerations\n\nThe Council is new and we will need time to figure out what works best.\nHowever, to help contributors, we are listing some factors we expect\nto consider when making decisions.\n\n* What do type checkers currently do? Proposed spec changes should\n  come with a survey of current type checker behavior. If all type\n  checkers currently behave one way, but the spec says something else,\n  we should almost certainly change the spec.\n* Are type checkers willing to implement the proposed behavior? Often,\n  there will be some disagreement among type checkers. If type checker\n  maintainers aren't able or willing to change their tool’s behavior,\n  we may not be ready for a change.\n* Is the proposed behavior well-specified? Much of the current spec is\n  vague. We should gradually work to improve that, and in particular\n  new spec changes should be clear and unambiguous.\n* Does the proposed change make the type system more consistent?\n  If so, we are more likely to accept it.\n* Is the proposed change sound (in the type-theoretic sense)? The\n  Python type system is known to be not fully sound, and there are\n  differing opinions on whether and to what extent we should aim to\n  make it sound, but in general, a change that brings us closer to\n  soundness is better.\n* What are the backward compatibility implications of the change?\n  We believe that it is important to keep the type system stable\n  and avoid gratuitous compatibility breaks.\n* What would be the effect of the change on real-world code\n  checked by type checkers? Does it result in more false positives\n  or false negatives?\n* Does the proposed change make the type system better for our\n  users?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython%2Ftyping-council","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpython%2Ftyping-council","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpython%2Ftyping-council/lists"}