

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
<a name="python-compatibility"></a>

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

## Suporte à API Simple Repository
<a name="python-simple-api-support"></a>

CodeArtifact [[implementa a versão 1.1 da API PyPI Simple Repository, conforme definido [pelo PEP 503, PEP 691 e PEP](https://peps.python.org/pep-0503/) 700.](https://peps.python.org/pep-0700/)](https://peps.python.org/pep-0691/)

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 `versions``size`, `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.

`pip`23.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
<a name="python-simple-api-example"></a>

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 de`aws 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 (`aws`nome 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 `versions``size`, e são do PEP 700; os `yanked` campos `hashes``requires-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
<a name="python-unsupported-apis"></a>

CodeArtifact não é compatível com as seguintes APIs PyPI:
+ A API [XML-RPC PyPi](https://github.com/pypi/warehouse/blob/main/docs/dev/api-reference/xml-rpc.rst).
+ A API JSON do PyPI [Warehouse, que fornece endpoints JSON](https://github.com/pypi/warehouse/blob/main/docs/dev/api-reference/json.rst) 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](https://github.com/pypi/warehouse/blob/main/docs/dev/api-reference/legacy.rst) Python Packaging Authority. GitHub 

## Suporte para comandos pip
<a name="pip-command-support"></a>

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.

**Topics**
+ [Comandos compatíveis que interagem com um repositório](#supported-pip-commands-that-interact-with-a-repository)
+ [Comandos do lado do cliente compatíveis](#supported-pip-client-side-commands)

### Comandos compatíveis que interagem com um repositório
<a name="supported-pip-commands-that-interact-with-a-repository"></a>

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](https://pip.pypa.io/en/stable/reference/pip_install/)  | Instalar pacotes. | 
|  [baixar](https://pip.pypa.io/en/stable/reference/pip_download/)  | Baixar pacotes. | 

CodeArtifact não implementa`pip search`. Se você configurou `pip` com um CodeArtifact repositório, a execução `pip search` pesquisará e mostrará pacotes do [PyPI](https://pypi.org/).

### Comandos do lado do cliente compatíveis
<a name="supported-pip-client-side-commands"></a>

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](https://pip.pypa.io/en/stable/reference/pip_uninstall/)  | Desinstalar pacotes. | 
|  [freeze](https://pip.pypa.io/en/stable/reference/pip_freeze/)  | Emita pacotes instalados no formato de requisitos. | 
|  [list](https://pip.pypa.io/en/stable/reference/pip_list/)  | Listar pacotes instalados. | 
|  [show](https://pip.pypa.io/en/stable/reference/pip_show/)  | Mostre informações sobre os pacotes instalados. | 
|  [check](https://pip.pypa.io/en/stable/reference/pip_check/)  | Verifique se os pacotes instalados têm dependências compatíveis. | 
|  [config](https://pip.pypa.io/en/stable/reference/pip_config/)  | Gerencie a configuração local e global. | 
|  [wheel](https://pip.pypa.io/en/stable/reference/pip_wheel/)  | Construa rodas conforme suas necessidades. | 
|  [hash](https://pip.pypa.io/en/stable/reference/pip_hash/)  | Calcule hashes de arquivos de pacotes. | 
|  [completion](https://pip.pypa.io/en/stable/user_guide/#command-completion)  | Ajuda na conclusão do comando. | 
|  [debug](https://pip.pypa.io/en/stable/reference/pip_debug/)  | Mostre informações úteis para depuração. | 
| help | Mostre ajuda para comandos. | 