Glossário

Distribuição Binária

Um tipo específico de Distribuição Construída que contém extensões compiladas.

Backend de construção

A library that takes a source tree and builds a source distribution or built distribution from it. The build is delegated to the backend by a frontend. All backends offer a standardized interface.

Exemplos de backends de construção são flit-core do flit, hatchling do hatch, Maturin, meson-python, scikit-build-core e Setuptools.

Frontend de construção

Uma ferramenta que os usuários podem executar que pega árvores de fontes arbitrárias ou distribuições fonte e constrói distribuições fontes ou wheels a partir delas. A construção real é delegada ao backend de construção de cada árvore de fontes.

Exemplos de frontends de construção são pip e construir.

Distribuição Construída

Um formato de Distribuição contendo arquivos e metadados que só precisam ser movidos para o local correto no sistema de destino, para serem instalados. Wheel é esse formato, enquanto o Distribuição Fonte não é, pois requer uma etapa de construção antes de poder ser instalado. Este formato não implica que os arquivos Python tenham que ser pré-compilados (Wheel intencionalmente não inclui arquivos Python compilados). Veja Formatos de Pacotes para mais informações.

Built Metadata

The concrete form Core Metadata takes when included inside an installed Project (METADATA file) or a Distribution Archive (PKG-INFO in a Sdist and METADATA in a Wheel).

Core Metadata

The specification and the set of Core Metadata Fields it defines that describe key static attributes of a Distribution Package or Installed Project.

Core Metadata Field

A single key-value pair (or sequence of such with the same name, for multiple-use fields) defined in the Core Metadata spec and stored in the Built Metadata. Notably, distinct from a Pyproject Metadata Key.

Distribution Archive

The physical distribution artifact (i.e. a file on disk) for a Distribution Package.

Pacote de Distribuição

Um arquivo com versão que contém pacotes Python, módulos, e outros arquivos de recursos que são usados para distribuir um Release (lançamento). O arquivo é o que um usuário final irá baixar da Internet e instalar.

Um pacote de distribuição é mais comumente referido com as palavras “pacote” ou “distribuição”, mas este guia pode usar o termo expandido quando mais clareza for necessária para evitar confusão com um Pacote de Importação (que também é comumente chamado de “pacote”) ou outro tipo de distribuição (por exemplo, uma distribuição Linux ou a distribuição da linguagem Python), que são frequentemente referidos com o único termo “distribuição”. Veja Pacote de distribuição vs. pacote de importação para uma explicação das diferenças.

Egg

Um formato de Distribuição Construída introduzido pelo Setuptools, que foi substituído pelo Wheel. Para detalhes, veja E quanto a eggs?.

Módulo de Extensão

Um Módulo escrito na linguagem de baixo nível da implementação Python: C/C++ para Python, Java para Jython. Normalmente contido em um único arquivo pré-compilado carregável dinamicamente, por exemplo, um arquivo de objeto compartilhado (.so) para extensões Python no Unix, uma DLL (dada a extensão .pyd) para extensões Python no Windows ou um arquivo de classe Java para extensões Jython.

Pacote de Importação

Um módulo Python que pode conter outros módulos ou recursivamente, outros pacotes.

Um pacote de importação é mais comumente referido com a palavra “pacote”, mas este guia usará o termo expandido quando mais clareza for necessária para evitar confusão com um Pacote de Distribuição que também é comumente chamado de “pacote” . Veja Pacote de distribuição vs. pacote de importação para uma explicação das diferenças.

Installed Project

A Project that is installed for use with a Python interpreter or Virtual Environment, as described in the specification Gravando projetos instalados.

Known Good Set (KGS)

Um conjunto de distribuições em versões especificadas que são compatíveis entre si. Normalmente, será executado um conjunto de testes que passa em todos os testes antes que um conjunto específico de pacotes seja declarado como um conjunto sabidamente bom (known good set). Este termo é comumente usado por frameworks e kits de ferramentas que são compostos de várias distribuições individuais.

License Classifier

A PyPI Trove classifier (as described in the Core Metadata specification) which begins with License ::.

Expressão da licença
SPDX Expression

A string with valid SPDX license expression syntax, including one or more SPDX License Identifier(s), which describes a Project’s license(s) and how they inter-relate. Examples: GPL-3.0-or-later, MIT AND (Apache-2.0 OR BSD-2-Clause)

License Identifier
SPDX Identifier

A valid SPDX short-form license identifier, originally specified in PEP 639. This includes all valid SPDX identifiers and the custom LicenseRef-[idstring] strings conforming to the SPDX specification. Examples: MIT, GPL-3.0-only, LicenseRef-My-Custom-License

Módulo

A unidade básica de reutilização de código em Python, existindo em um dos dois tipos: Módulo Puro ou Módulo de Extensão.

Índice de Pacotes

Um repositório de distribuições com uma interface web para automatizar descoberta e consumo de pacotes.

Índice Por Projeto

Um Índice de Pacotes privado ou outro não canônico indicado por um Projeto específico como o índice preferido ou necessário para resolver dependências desse projeto.

Projeto

Uma biblioteca, estrutura, script, plugin, aplicação ou coleção de dados ou outros recursos, ou alguma combinação dos mesmos que se destina a ser empacotado em uma Distribuição.

Como a maioria dos projetos cria Distribuições usando build-system da PEP 518, distutils ou Setuptools, outra maneira prática de definir projetos atualmente é algo que contém um arquivo pyproject.toml, setup.py ou setup.cfg na raiz do diretório fonte do projeto.

Projetos Python devem ter nomes únicos, que são registrados no PyPI. Cada projeto conterá então um ou mais Lançamentos, e cada lançamento pode incluir uma ou mais distribuições.

Observe que há uma forte convenção para dar o nome do projeto ao pacote que é importado para executar esse projeto. No entanto, isso não é obrigatório. É possível instalar uma distribuição do projeto “foo” e fazer com que ele forneça um pacote importável apenas como “bar”.

Project Root Directory

The filesystem directory in which a Project’s source tree is located.

Project Source Tree

The on-disk format of a Project used for development, containing its raw source code before being packaged into a Source Distribution or Built Distribution.

Project Source Metadata

Metadata defined by the package author in a Project’s source tree, to be transformed into Core Metadata fields in the Built Metadata by the project’s build backend. Can be written as Pyproject Metadata, or in a tool-specific format (under the [tool] table in pyproject.toml, or in a tool’s own configuration file).

Módulo Puro

Um Módulo escrito em Python e contido em um único arquivo .py (e possivelmente arquivos .pyc e/ou .pyo associados).

Pyproject Metadata

The Project Source Metadata format defined by the Especificação do pyproject.toml specification and originally introduced in PEP 621, stored as Pyproject Metadata Keys under the [project] table of a pyproject.toml file. Notably, not a tool-specific source metadata format under the [tool] table in pyproject.toml.

Pyproject Metadata Key

A top-level TOML key in the [project] table in pyproject.toml; part of the Pyproject Metadata. Notably, distinct from a Core Metadata Field.

Pyproject Metadata Subkey

A second-level TOML key under a table-valued Pyproject Metadata Key.

Python Packaging Authority (PyPA)

PyPA é um grupo de trabalho que mantém muitos dos projetos relevantes em pacotes Python. Eles mantêm um site em pypa.io, hospedam projetos no GitHub e Bitbucket, e discutem questões na lista de discussão distutils-sig e o fórum Discourse do Python.

Python Package Index (PyPI)

PyPI é o Índice de Pacotes padrão para a comunidade Python. Está aberto a todos os desenvolvedores Python para consumir e distribuir suas distribuições.

pypi.org

pypi.org é o nome de domínio do Python Package Index (PyPI). Ele substituiu o nome de domínio do índice legado, pypi.python.org, em 2017. Ele é tornado possível pelo Warehouse.

pyproject.toml

O arquivo de especificação agnóstica de ferramenta para Projetos. Definido na PEP 518.

Lançamento

Um snapshot de um Projeto em um determinado ponto no tempo, denotado por um identificador de versão.

Fazer um lançamento pode implicar na publicação de várias Distribuições. Por exemplo, se a versão 1.0 de um projeto foi lançada, ele pode estar disponível em um formato de distribuição fonte e um formato de distribuição de instalador do Windows.

Requisito

Uma especificação para um pacote a ser instalado. pip, o instalador recomendado do PYPA, permite várias formas de especificação que podem ser consideradas um “requisito”. Para obter mais informações, consulte a referência de pip install.

Especificador de Requisitos

Um formato usado por pip para instalar pacotes de um Índice de Pacotes. Para um diagrama EBNF do formato, veja Especificadores de dependência. Por exemplo, “foo>=1.3” é um especificador de requisitos, onde “foo” é o nome do projeto e a parte “>=1.3” é o Especificador de Versão

Arquivo de Requisitos

Um arquivo contendo uma lista de Requisitos que podem ser instalados usando pip. Para mais informações, veja a documentação pip em Requirements Files.

Root License Directory
License Directory

The directory under which license files are stored in a Project Source Tree, Distribution Archive or Installed Project. For a Project Source Tree or Source Distribution (or “sdist”), this is the Project Root Directory. For a Built Distribution or Installed Project, this is the .dist-info/licenses/ directory of the wheel archive or project folder respectively. Also, the root directory that paths recorded in the License-File Core Metadata Field are relative to.

setup.py
setup.cfg

Os arquivos de especificação do projeto para distutils e Setuptools. Veja também pyproject.toml.

Arquivo Fonte

Um arquivo contendo o código-fonte bruto para um Lançamento, antes da criação de uma Distribuição Fonte ou Distribuição Construída.

Distribuição Fonte (ou “sdist”)

A distribution format (usually generated using python -m build --sdist) that provides metadata and the essential source files needed for installing by a tool like pip, or for generating a Built Distribution. See Formatos de Pacotes for more information.

Pacote de Sistemas

Um pacote fornecido em um formato nativo para o sistema operacional, por exemplo, um arquivo rpm ou dpkg.

Especificador de Versão

O componente de versão de um Especificador de Requisitos. Por exemplo, a parte “>=1.3” de “foo>=1.3”. Leia a especificação de especificador de versão para a especificação completa dos especificadores que o empacotamento do Python oferece suporte atualmente. O suporte para esta especificação foi implementado no Setuptools v8.0 e no pip v6.0.

Ambiente Virtual

Um ambiente Python isolado que permite que os pacotes sejam instalados para uso por uma aplicação específica, em vez de serem instalados em todo o sistema. Para obter mais informações, consulte a seção sobre Criando ambientes virtuais.

Wheel Format
Wheel

The standard Built Distribution format originally introduced in PEP 427 and defined by the Formato de distribuição binária specification. See Formatos de Pacotes for more information. Not to be confused with its reference implementation, the Wheel Project.

Wheel Project

The PyPA reference implementation of the Wheel Format; see wheel.

Conjunto de Trabalho

Uma coleção de distribuições disponíveis para importação. Estas são as distribuições que estão na variável sys.path. No máximo, uma Distribuição para um projeto é possível em um conjunto de trabalho.