View a markdown version of this page

Compatibilité Python - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Compatibilité Python

CodeArtifact prend en charge l'API PyPI Simple Repository /simple/<project>/ sur, utilisée pip par, twineuv, et d'autres clients Python. Les clients choisissent entre les réponses HTML et JSON à l'aide de l'en-tête de Accept demande.

Support de l'API Simple Repository

CodeArtifact implémente la version 1.1 de l'API PyPI Simple Repository telle que définie par PEP 503, PEP 691et PEP 700.

Les types de contenu Accept d'en-tête suivants sont pris en charge sur le /simple/<project>/ point de terminaison :

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

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

  • application/vnd.pypi.simple.latest+json: correspond à la dernière version JSON prise en charge.

  • application/vnd.pypi.simple.latest+html: renvoie à la dernière version HTML prise en charge.

  • text/html*/*, ou aucun Accept en-tête : réponse HTML (par défaut pour la rétrocompatibilité).

Si un client spécifie un Accept en-tête qui n'inclut aucun des types de contenu pris en charge, CodeArtifact renvoie406 Not Acceptable.

Les réponses JSON incluent les champs PEP 700 versionssize, upload-time ainsi que les champs PEP 691. Les réponses HTML ont le même temps de chargement par artefact que celui d'un data-upload-time attribut sur chaque lien d'artefact.

Les upload-time champs size et peuvent être absents pour les versions de package mises en cache avant l'activation de la capture des métadonnées par ressource. Lorsqu'un client demande un tel package via l'API JSON Simple Repository, il CodeArtifact récupère les métadonnées du registre en amont et remplit les champs manquants. Aucune action du client n'est requise, et les demandes ultérieures pour la même version de package renvoient les métadonnées complètes.

pip23.0 et versions ultérieures et uv envoyez l'Accepten-tête JSON par défaut, de sorte que la plupart des clients reçoivent du JSON sans aucune configuration supplémentaire.

Exemple : demande de code JSON pour un projet

L'exemple suivant permet curl de récupérer la réponse de l'API JSON Simple Repository pour le requests projet. Obtenez l'URL du référentiel et aws codeartifact get-repository-endpoint le jeton d'autorisation auprès 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/"
Note

Le point de terminaison CodeArtifact PyPI accepte soit l'authentification HTTP Basic (awsnom d'utilisateur, mot de passe défini pour votre jeton d'autorisation), soit l'authentification par jeton Bearer. Les twine configurations pip et présentées ailleurs dans ce guide utilisent le protocole HTTP Basic.

L'exemple suivant montre une réponse JSON typique (tronquée pour des raisons de concision). Les upload-time champs versionssize, et proviennent du PEP 700 ; les yanked champs hashesrequires-python, et proviennent du 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 } ] }

API PyPI non prises en charge

CodeArtifact ne prend pas en charge les API PyPI suivantes :

  • L'API XML-RPC PyPI.

  • L'API JSON PyPI Warehouse, qui fournit des points de terminaison JSON au niveau du projet et au niveau de la version sous. /pypi/ Il s'agit d'une API distincte de la variante JSON PEP 691 de l'API Simple Repository, qui est prise en charge CodeArtifact .

  • Le point de terminaison de la liste des projets/simple/. Seul le point de terminaison détaillé du projet /simple/<project>/ est pris en charge.

Pour plus d'informations sur les API PyPI, consultez la référence des API Legacy sur le site Web de la Python Packaging Authority. GitHub

support de la commande pip

Les sections suivantes résument les commandes pip prises en charge par les CodeArtifact référentiels, en plus des commandes spécifiques qui ne sont pas prises en charge.

Commandes prises en charge qui interagissent avec un référentiel

Cette section répertorie pip les commandes dans lesquelles le pip client envoie une ou plusieurs requêtes au registre avec lequel il a été configuré. Il a été vérifié que ces commandes fonctionnent correctement lorsqu'elles sont invoquées dans un CodeArtifact dépôt.

Commande Description

installer

Installez les packages.

télécharger

Téléchargez les packages.

CodeArtifact ne met pas en œuvrepip search. Si vous avez configuré pip avec un CodeArtifact référentiel, l'exécution pip search recherchera et affichera les packages depuis PyPI.

Commandes côté client prises en charge

Ces commandes ne nécessitent aucune interaction directe avec un dépôt, il n'est donc CodeArtifact pas nécessaire de faire quoi que ce soit pour les prendre en charge.

Commande Description

désinstaller

Désinstallez les packages.

geler

Afficher les packages installés au format des exigences.

liste

Répertoriez les packages installés.

show

Afficher les informations sur les packages installés.

vérifier

Vérifiez que les packages installés ont des dépendances compatibles.

configuration

Gérez la configuration locale et globale.

roue

Construisez des roues selon vos besoins.

hachage

Calculez les hachages des archives de packages.

achèvement

Aide à terminer les commandes.

debug

Afficher les informations utiles pour le débogage.

help

Afficher l'aide pour les commandes.