User:Σ/Testing facility/Protoss

The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python. It is analogous to CPAN, the repository for Perl. Some package managers, including pip, use PyPI as the default source for packages and their dependencies. Although code authors may use PyPI to host actual files, they can also choose to only place an external link that leads to the project home page on the index page. Over 10,000 Python packages can be accessed through PyPI.

History
The Python Distribution Utilities (distutils) Python module was first added to the Python standard library in the 1.6.1 release, in September 2000, and in the 2.0 release, in October 2000. with the goal of simplifying the process of installing third-party Python packages.

However, distutils only provided the tools for packaging Python code, and no more. It included mechanisms for the capture of package metadata, but did little with the metadata save ship it with the package. Python still lacked a centralised catalog for packages on the internet. PEP 241, a proposal to standardise metadata for indexes, was finalised in March 2001. A proposal to create this centralised catalog, hosted at the python.org domain, was later finalised in November 2002.

Structure
Although code authors may use PyPI to host actual files, they can also choose to only place an external link that leads to the project home page on the index page. PyPI primarily hosts Python packages in the form of archives known as Python Eggs. Similarly to JAR archives in Java, Eggs are fundamentally ZIP files, but with the  extension, that contains the Python code for the package itself, and a   file that holds the package's metadata. The  file also constitutes the entry point to managing the package: by executing it, the user can perform actions such as creating Eggs, RPM archives, or Windows Installers of the package's source code; building certain portions of the package; installing the package directly to the system; running unit tests; or uploading the package back to PyPI.

PyPI as an index allows users to search for packages by keywords or by filters against their metadata, such as free software license or compatibility with POSIX. A single entry on PyPI is able to store, aside from just a package and its metadata, previous releases of the package, the package's HTML documentation, precompiled eggs (e.g. containing DLLs on Windows), as well as different forms for operating system or Python version incompatibilities.