View a markdown version of this page

Python-Kompatibilität - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Python-Kompatibilität

CodeArtifact unterstützt die PyPI Simple Repository-API unter/simple/<project>/,, und anderen pip Python-Clientstwine, die vonuv,, verwendet wird. Kunden wählen mithilfe des Accept Anforderungsheaders zwischen HTML- und JSON-Antworten.

Einfache Repository-API-Unterstützung

CodeArtifact implementiert Version 1.1 der PyPI Simple Repository API, wie in PEP 503, PEP691 und PEP 700 definiert.

Die folgenden Accept Header-Inhaltstypen werden auf dem Endpunkt unterstützt: /simple/<project>/

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

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

  • application/vnd.pypi.simple.latest+json: wird in die neueste unterstützte JSON-Version aufgelöst.

  • application/vnd.pypi.simple.latest+html: wird in die neueste unterstützte HTML-Version aufgelöst.

  • text/html,*/*, oder kein Accept Header: HTML-Antwort (Standard aus Gründen der Abwärtskompatibilität).

Gibt ein Client einen Accept Header an, der keinen der unterstützten Inhaltstypen enthält, wird CodeArtifact zurückgegeben406 Not Acceptable.

JSON-Antworten umfassen die PEP 700-Felder versions und upload-time zusammen mit den PEP 691-Feldern. size HTML-Antworten haben dieselbe Uploadzeit pro Artefakt wie ein data-upload-time Attribut auf jedem Artefakt-Link.

Die upload-time Felder size und fehlen möglicherweise für Paketversionen, die zwischengespeichert wurden, bevor die Erfassung der Metadaten pro Asset aktiviert wurde. Wenn ein Client ein solches Paket über die JSON Simple Repository API anfordert, werden die Metadaten CodeArtifact erneut aus der Upstream-Registrierung abgerufen und die fehlenden Felder gefüllt. Es ist kein Eingreifen des Kunden erforderlich, und nachfolgende Anfragen für dieselbe Paketversion geben die vollständigen Metadaten zurück.

pip23.0 und höher und uv sendet standardmäßig den Accept JSON-Header, sodass die meisten Clients JSON ohne zusätzliche Konfiguration erhalten.

Beispiel: JSON für ein Projekt anfordern

Im folgenden Beispiel wird curl die Antwort der JSON Simple Repository API für das requests Projekt abgerufen. Ruft die Repository-URL von aws codeartifact get-repository-endpoint und das Autorisierungstoken von abaws 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/"
Anmerkung

Der CodeArtifact PyPI-Endpunkt akzeptiert entweder die HTTP Basic-Authentifizierung (Benutzernameaws, Passwort, das auf Ihr Autorisierungstoken festgelegt ist) oder die Bearer-Token-Authentifizierung. Die pip twine Konfigurationen, die an anderer Stelle in diesem Handbuch gezeigt werden, verwenden HTTP Basic.

Das folgende Beispiel zeigt eine typische JSON-Antwort (der Kürze halber gekürzt). Die upload-time Felder versionssize, und stammen aus PEP 700; die Felder hashesrequires-python, und stammen aus PEP yanked 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 } ] }

Nicht unterstützte PyPI-APIs

CodeArtifact unterstützt die folgenden PyPI-APIs nicht:

  • Die PyPI-APIXML-RPC .

  • Die PyPI Warehouse JSON-API, die JSON-Endpunkte auf Projekt- und Release-Ebene unter bereitstellt. /pypi/ Dies ist eine separate API von der PEP 691 JSON-Variante der Simple Repository-API, die diese unterstützt. CodeArtifact

  • Der Endpunkt der Projektliste. /simple/ Nur der Endpunkt mit den Projektdetails /simple/<project>/ wird unterstützt.

Weitere Informationen zu den PyPI-APIs finden Sie in der Legacy-API-Referenz auf der Website der Python Packaging Authority. GitHub

Unterstützung für Pip-Befehle

In den folgenden Abschnitten werden die Pip-Befehle zusammengefasst, die von CodeArtifact Repositorys unterstützt werden, zusätzlich zu bestimmten Befehlen, die nicht unterstützt werden.

Unterstützte Befehle, die mit einem Repository interagieren

In diesem Abschnitt sind pip Befehle aufgeführt, bei denen der pip Client eine oder mehrere Anfragen an die Registry stellt, mit der er konfiguriert wurde. Es wurde überprüft, ob diese Befehle korrekt funktionieren, wenn sie in einem CodeArtifact Repository aufgerufen werden.

Befehl Description

install

Installiere Pakete.

herunterladen

Pakete herunterladen.

CodeArtifact implementiert nichtpip search. Wenn Sie pip mit einem CodeArtifact Repository konfiguriert haben, pip search werden beim Ausführen Pakete von PyPI gesucht und angezeigt.

Unterstützte clientseitige Befehle

Diese Befehle erfordern keine direkte Interaktion mit einem Repository und müssen daher auch CodeArtifact nichts tun, um sie zu unterstützen.

Befehl Description

deinstallieren

Pakete deinstallieren.

einfrieren

Gibt installierte Pakete im Anforderungsformat aus.

Liste

Listet die installierten Pakete auf.

show

Zeigt Informationen über installierte Pakete an.

überprüfen

Stellen Sie sicher, dass die installierten Pakete kompatible Abhängigkeiten haben.

config

Verwalten Sie die lokale und globale Konfiguration.

Rad

Baue Räder nach deinen Anforderungen.

Hash

Berechnet die Hashes von Paketarchiven.

Fertigstellung

Hilft bei der Befehlsvervollständigung.

debug

Zeigt Informationen an, die für das Debuggen nützlich sind.

help

Zeigt Hilfe für Befehle an.