JelleZijlstra / typing-spec

Draft specification for the Python type system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is a historical repository that was used to create the spec that is now available at https://typing.readthedocs.io/en/latest/spec/index.html. This repo will be archived.

Typing Specification

This is a draft specification for the Python type system. It accompanies a proposal to create a Typing Council that has the authority to create and maintain a spec.

The spec itself is in a separate file: spec/spec.rst.

I am creating the spec by collating the typing PEPs, essentially copy-pasting their "Specification" sections and editing them only to the extent necessary to keep the document coherent.

The aim for now is to keep the normative specification the same as the PEPs, so no edits should be made that affect the content of the specification. Once the Typing Council exists, it can start making more substantive changes.

Editorial contributions are welcome. Those can include:

  • Incorporating more PEPs. I am going through the list chronologically; check the git log for the latest PEPs covered.
  • Making sure the text reads as a specification, not as a proposal, e.g. by removing references to how something "will" work, or to "this PEP".
  • Reorganizing the text to make the entire document more coherent.
  • Removing or rewriting clearly obsolete material.

No substantive changes should be made yet, not even if they seem uncontroversial. I expect that once the Typing Council exists, one of its first actions will be to adopt this document as the official specification. Subsequently, the Council will consider changes to improve the specification.

However, feel free to open issues on this repo for cases where a spec change seems warranted. Discussion should be kept to a minimum, though; this is not the place to discuss controversial issues.

About

Draft specification for the Python type system


Languages

Language:Python 40.1%Language:Batchfile 33.4%Language:Makefile 26.5%