View a markdown version of this page

Compatibilidade com o Python - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Compatibilidade com o Python

CodeArtifact suporta a API PyPI Simple Repository /simple/<project>/ em, usada pip por,, twineuv, e outros clientes Python. Os clientes escolhem entre respostas HTML e JSON usando o cabeçalho da Accept solicitação.

Suporte à API Simple Repository

CodeArtifact implementa a versão 1.1 da API PyPI Simple Repository, conforme definido pelo PEP 503, PEP 691 e PEP 700.

Os seguintes tipos de conteúdo de Accept cabeçalho são compatíveis com o /simple/<project>/ endpoint:

  • application/vnd.pypi.simple.v1+json: resposta JSON (PEP 691, PEP 700).

  • application/vnd.pypi.simple.v1+html: resposta HTML (PEP 503).

  • application/vnd.pypi.simple.latest+json: resolve para a versão mais recente compatível do JSON.

  • application/vnd.pypi.simple.latest+html: resolve para a versão HTML compatível mais recente.

  • text/html,*/*, ou sem Accept cabeçalho: resposta HTML (padrão para compatibilidade com versões anteriores).

Se um cliente especificar um Accept cabeçalho que não inclua nenhum dos tipos de conteúdo compatíveis, ele CodeArtifact retornará406 Not Acceptable.

As respostas JSON incluem os campos PEP 700 e versionssize, upload-time junto com os campos PEP 691. As respostas em HTML têm o mesmo tempo de upload por artefato que um data-upload-time atributo em cada link de artefato.

Os upload-time campos size e podem estar ausentes nas versões do pacote armazenadas em cache antes da ativação da captura de metadados por ativo. Quando um cliente solicita esse pacote por meio da API JSON Simple Repository, CodeArtifact busca novamente os metadados do registro upstream e preenche os campos ausentes. Nenhuma ação do cliente é necessária, e as solicitações subsequentes da mesma versão do pacote retornam os metadados completos.

pip23.0 e versões posteriores e uv envie o Accept cabeçalho JSON por padrão, para que a maioria dos clientes receba JSON sem nenhuma configuração extra.

Exemplo: solicitar JSON para um projeto

O exemplo a seguir é usado curl para buscar a resposta da API JSON Simple Repository para o projeto. requests Obtenha a URL do repositório e aws codeartifact get-repository-endpoint o token de autorização deaws codeartifact get-authorization-token.

curl --header "Accept: application/vnd.pypi.simple.v1+json" \ --header "Authorization: Bearer $CODEARTIFACT_AUTH_TOKEN" \ "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/pypi/my_repo/simple/requests/"
nota

O endpoint CodeArtifact PyPI aceita a autenticação HTTP Basic (awsnome de usuário, senha definida para seu token de autorização) ou a autenticação do token do portador. As twine configurações pip e mostradas em outras partes deste guia usam HTTP Basic.

O exemplo a seguir mostra uma resposta JSON típica (truncada por questões de brevidade). Os upload-time campos versionssize, e são do PEP 700; os yanked campos hashesrequires-python, e são do PEP 691.

{ "meta": { "api-version": "1.1" }, "name": "requests", "versions": [ "2.31.0", "2.32.0", "2.32.3" ], "files": [ { "filename": "requests-2.32.3-py3-none-any.whl", "url": "2.32.3/requests-2.32.3-py3-none-any.whl", "hashes": { "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", "md5": "df6df19f49fc7ae54ee5ff2dd3d22d2c" }, "requires-python": ">=3.8", "size": 64928, "upload-time": "2024-05-29T15:37:49.123456Z", "yanked": false } ] }

APIs PyPI não suportadas

CodeArtifact não é compatível com as seguintes APIs PyPI:

  • A API XML-RPC PyPi.

  • A API JSON do PyPI Warehouse, que fornece endpoints JSON em nível de projeto e de versão abaixo. /pypi/ Essa é uma API separada da variante JSON PEP 691 da API Simple Repository, que oferece suporte. CodeArtifact

  • O endpoint /simple/ da lista de projetos. Somente o endpoint detalhado do projeto /simple/<project>/ é suportado.

Para obter mais informações sobre as APIs PyPI, consulte a referência da API Legacy no site da Python Packaging Authority. GitHub

Suporte para comandos pip

As seções a seguir resumem os comandos pip que são suportados pelos CodeArtifact repositórios, além dos comandos específicos que não são suportados.

Comandos compatíveis que interagem com um repositório

Esta seção lista os comandos pip em que o cliente pip faz uma ou mais solicitações ao registro com o qual foi configurado. Verificou-se que esses comandos funcionam corretamente quando invocados em um CodeArtifact repositório.

Command Description

install

Instalar pacotes.

baixar

Baixar pacotes.

CodeArtifact não implementapip search. Se você configurou pip com um CodeArtifact repositório, a execução pip search pesquisará e mostrará pacotes do PyPI.

Comandos do lado do cliente compatíveis

Esses comandos não exigem nenhuma interação direta com um repositório, portanto, CodeArtifact não é necessário fazer nada para suportá-los.

Command Description

uninstall

Desinstalar pacotes.

freeze

Emita pacotes instalados no formato de requisitos.

list

Listar pacotes instalados.

show

Mostre informações sobre os pacotes instalados.

check

Verifique se os pacotes instalados têm dependências compatíveis.

config

Gerencie a configuração local e global.

wheel

Construa rodas conforme suas necessidades.

hash

Calcule hashes de arquivos de pacotes.

completion

Ajuda na conclusão do comando.

debug

Mostre informações úteis para depuração.

help

Mostre ajuda para comandos.