View a markdown version of this page

Python 호환성 - CodeArtifact

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Python 호환성

CodeArtifact는 pip, /simple/<project>/, twine uv및 기타 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-0503/ 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 691 필드와 upload-time 함께 PEP 700 필드 versionssize, 및가 포함됩니다. 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, 인증 토큰으로 설정된 암호) 또는 베어러 토큰 인증을 허용합니다. 이 설명서의 다른 곳에 표시된 piptwine 구성은 HTTP Basic을 사용합니다.

다음 예제에서는 일반적인 JSON 응답(간결성을 위해 잘림)을 보여줍니다. versions, sizeupload-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입니다.

  • 에서 프로젝트 수준 및 릴리스 수준 JSON 엔드포인트를 제공하는 PyPI 웨어하우스 JSON API입니다/pypi/. https://github.com/pypi/warehouse/blob/main/docs/dev/api-reference/json.rst 이는 CodeArtifact가 지원하는 Simple Repository API의 PEP 691 JSON 변형과는 별도의 API입니다.

  • 프로젝트 목록 엔드포인트 /simple/. 프로젝트 세부 정보 엔드포인트만 지원/simple/<project>/됩니다.

PyPI APIs에 대한 자세한 내용은 Python Packaging Authority의 GitHub 웹 사이트에서 레거시 API 참조를 참조하세요.

pip 명령 지원

다음 섹션에는 지원되지 않는 특정 명령 외에도 CodeArtifact 리포지토리에서 지원하는 pip 명령이 요약되어 있습니다.

리포지토리와 상호 작용하는 지원되는 명령

이 섹션에는 pip 클라이언트가 구성된 레지스트리에 하나 이상의 요청을 보내는 pip 명령이 나열되어 있습니다. CodeArtifact 리포지토리에 대해 이러한 명령을 호출했을 때 제대로 작동하는 것으로 확인되었습니다.

명령 설명

install

패키지를 설치합니다.

download

패키지를 다운로드합니다.

CodeArtifact는 pip search를 실행하지 않습니다. pip를 CodeArtifact 리포지토리로 구성한 경우 pip search를 실행하면 PyPI에서 패키지를 검색하고 표시합니다.

지원되는 클라이언트 측 명령

이러한 명령은 리포지토리와 직접 상호 작용할 필요가 없으므로 CodeArtifact는 명령을 지원하기 위해 아무 것도 할 필요가 없습니다.

명령 설명

uninstall

패키지를 제거합니다.

freeze

설치된 패키지를 요구 사항 형식으로 출력합니다.

list

설치된 패키지를 나열합니다.

show

설치된 패키지에 대한 정보를 표시합니다.

check

설치된 패키지에 호환되는 종속성이 있는지 확인합니다.

config

로컬 및 글로벌 구성을 관리합니다.

wheel

요구 사항에 맞게 휠을 빌드합니다.

hash

패키지 아카이브의 해시를 계산합니다.

completion

명령 완성을 돕습니다.

debug

디버깅에 유용한 정보를 표시합니다.

help

명령에 대한 도움말을 표시합니다.