View a markdown version of this page

Python の互換性 - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Python の互換性

CodeArtifact は、/simple/<project>/、、piptwineuv、およびその他の Python クライアントで使用される で PyPI Simple Repository API をサポートしています。クライアントは、 Accept リクエストヘッダーを使用して HTML レスポンスと JSON レスポンスのいずれかを選択します。

Simple Repository API のサポート

CodeArtifact は、PEP 503、PEP 691、PEP 700 で定義されている PyPI Simple Repository API のバージョン 1.1 を実装します。 https://peps.python.org/pep-0700/

/simple/<project>/ エンドポイントでは、次のAcceptヘッダーコンテンツタイプがサポートされています。

  • application/vnd.pypi.simple.v1+json: JSON レスポンス (PEP 691、PEP 700)。

  • application/vnd.pypi.simple.v1+html: HTML レスポンス (PEP 503)。

  • application/vnd.pypi.simple.latest+json: サポートされている最新の JSON バージョンに解決されます。

  • application/vnd.pypi.simple.latest+html: サポートされている最新の HTML バージョンに解決されます。

  • text/html*/*、またはAcceptヘッダーなし: HTML レスポンス (下位互換性のデフォルト)。

クライアントがサポートされているコンテンツタイプを含まない Acceptヘッダーを指定した場合、CodeArtifact は を返します406 Not Acceptable

JSON レスポンスには、PEP 700 フィールド versionssize、および PEP 691 フィールドupload-timeが含まれます。HTML レスポンスは、各アーティファクトリンクのdata-upload-time属性と同じアーティファクトごとのアップロード時間を持ちます。

アセットごとのメタデータキャプチャが有効になる前にキャッシュされたパッケージバージョンでは、 フィールドsizeupload-timeフィールドが欠落している可能性があります。クライアントが JSON Simple Repository API を介してこのようなパッケージをリクエストすると、CodeArtifact はアップストリームレジストリからメタデータを再取得し、欠落しているフィールドに入力します。カスタマーアクションは必要なく、同じパッケージバージョンの後続のリクエストは完全なメタデータを返します。

pip 23.0 以降と はデフォルトで JSON Acceptヘッダーuvを送信するため、ほとんどのクライアントは追加の設定なしで JSON を受け取ります。

例: プロジェクトの JSON をリクエストする

次の例では、 curlを使用してrequestsプロジェクトの JSON Simple Repository API レスポンスを取得します。リポジトリ URL を から取得しaws codeartifact get-repository-endpoint、認可トークンを から取得します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/"
注記

CodeArtifact PyPI エンドポイントは、HTTP 基本認証 (ユーザー名 aws、認可トークンに設定されたパスワード) またはベアラートークン認証のいずれかを受け入れます。このガイドの他の部分で示している pipおよび twineの設定は、HTTP Basic を使用します。

次の例は、一般的な JSON レスポンス (簡潔にするために切り捨て) を示しています。versionssize、および upload-timeフィールドは PEP 700 からのものでhashes、、requires-python、および yankedフィールドは 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 } ] }

サポートされていない PyPI APIs

CodeArtifact は、次の PyPI APIsをサポートしていません。

  • PyPI XML-RPC API

  • PyPI Warehouse JSON API は、プロジェクトレベルとリリースレベルの JSON エンドポイントを で提供します/pypi/。これは、CodeArtifact がサポートする Simple Repository API の PEP 691 JSON バリアントとは別の API です。

  • プロジェクトリストエンドポイント /simple/。プロジェクト詳細エンドポイントのみがサポート/simple/<project>/されています。

PyPI APIs の詳細については、Python Packaging Authority の GitHub ウェブサイトのレガシー API リファレンスを参照してください。

pipコマンドサポート

以下のセクションでは、CodeArtifactリポジトリでサポートされているpipコマンドと、サポートされていない特定のコマンドについてまとめます。

リポジトリとインタラクトするサポートされたコマンド

このセクションでは、pipクライアントが設定されたレジストリに1つかそれ以上のリクエストを行うpipコマンドをリストアップします。これらのコマンドは、CodeArtifactリポジトリに対して呼び出されたときに正しく機能することが確認されています。

コマンド 説明

install (インストール)

パッケージのインストール

download

パッケージのダウンロード

CodeArtifactはpip searchを実装していません。pipを CodeArtifactのリポジトリで設定した場合、pip searchを実行するとPyPIからパッケージを検索して表示します。

サポートされているクライアント側コマンド

これらのコマンドはリポジトリとの直接的なやりとりを必要としないため、CodeArtifactはそのサポートのために何もする必要はありません。

コマンド 説明

uninstall (アンインストール)

パッケージをアンインストールする

フリーズ

インストール済みパッケージを要件形式で出力します。

list

インストールされているパッケージを一覧表示します。

show

インストールされたパッケージに関する情報を表示します。

チェック

インストールされているパッケージに互換性のある依存関係があることを確認します。

config

ローカルおよびグローバル設定を管理します。

ホイール

要件からホイールを構築します。

ハッシュ

パッケージアーカイブのハッシュを計算します。

完了

コマンド補完に役立ちます。

debug

デバッグ時に便利な情報を表示します。

help

コマンドのヘルプを表示します。