Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 314 – Python 소프트웨어 패키지를 위한 메타데이터 1.1

Author:
A.M. Kuchling, Richard Jones
Discussions-To:
Distutils-SIG list
Status:
Superseded
Type:
Standards Track
Topic:
Packaging
Created:
12-Apr-2003
Python-Version:
2.5
Post-History:
29-Apr-2003
Replaces:
241
Superseded-By:
345

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

Important

This PEP is a historical document. The up-to-date, canonical spec, Core metadata specifications, is maintained on the PyPA specs page.

×

See the PyPA specification update process for how to propose changes.

소개

이 PEP는 Python 패키지에 메타데이터를 추가하는 메커니즘을 설명합니다. 여기에는 필드 이름과 각 필드의 의미 및 용법에 대한 세부 사항이 포함됩니다.

이 문서는 메타데이터 형식의 버전 1.1을 규정합니다. 버전 1.0은 PEP 241에 명세되어 있습니다.

패키지에 메타데이터 포함하기

Distutils sdist 명령은 인자에서 메타데이터 필드를 추출하여, 생성된 zip 파일이나 tarball 안의 파일에 기록합니다. 이 파일의 이름은 PKG-INFO이며, 소스 배포판의 최상위 디렉터리(보통 README, INSTALL 및 기타 파일이 위치하는 곳)에 놓입니다.

개발자는 자체 PKG-INFO 파일을 제공할 수 없습니다. sdist 명령은 기존 PKG-INFO 파일을 발견하면 적절한 오류 메시지와 함께 종료합니다. 이렇게 하면 PKG-INFO 파일과 setup.py 파일이 서로 맞지 않아 생기는 혼란을 막을 수 있을 것입니다.

PKG-INFO 파일 형식은 rfc822.py 모듈로 파싱할 수 있는 단일 RFC 822 헤더 집합입니다. 다음 절에 나열된 필드 이름이 헤더 이름으로 사용됩니다.

필드

이 절에서는 지원되는 각 메타데이터 필드의 이름과 의미를 규정합니다.

“(Multiple use)”로 표시된 필드는 하나의 PKG-INFO 파일에서 여러 번 지정할 수 있습니다. 그 밖의 필드는 PKG-INFO 파일에 한 번만 나타날 수 있습니다. “(optional)”로 표시된 필드는 유효한 PKG-INFO 파일에 반드시 나타나지 않아도 되며, 그 밖의 모든 필드는 반드시 있어야 합니다.

Metadata-Version (메타데이터 버전)

파일 형식의 버전입니다. 현재 이 필드에 허용되는 값은 “1.0”과 “1.1”뿐입니다.

예시:

Metadata-Version: 1.1

Name

패키지의 이름입니다.

예시:

Name: BeagleVote

버전

패키지의 버전 번호를 담은 문자열입니다. 이 필드는 distutils.version 모듈의 Version 클래스(StrictVersion 또는 LooseVersion) 중 하나로 파싱할 수 있어야 합니다.

예시:

Version: 1.0a2

Platform (플랫폼, 여러 번 사용 가능)

쉼표로 구분된 플랫폼 명세 목록으로, 패키지가 지원하는 운영 체제 중 “Operating System” Trove 분류자에 나열되지 않은 것을 요약합니다. 아래의 “Classifier”를 참조하십시오.

예시:

Platform: ObscureUnix, RareDOS

Supported-Platform (지원 플랫폼, 여러 번 사용 가능)

PKG-INFO 파일을 포함하는 바이너리 배포는 메타데이터의 Supported-Platform 필드를 사용하여 해당 바이너리 패키지가 컴파일된 플랫폼의 OS와 CPU를 명시합니다. Supported-Platform 필드(지원 플랫폼 필드)의 의미는 이 PEP에서 명세하지 않습니다.

예시:

Supported-Platform: RedHat 7.2
Supported-Platform: i386-win32-2791

요약

패키지가 하는 일을 한 줄로 요약한 것입니다.

예시:

Summary: A module for collecting votes from beagles.

Description (선택 사항)

여러 문단에 이를 수 있는, 패키지에 대한 더 긴 설명입니다. 메타데이터를 다루는 소프트웨어는 이 필드의 최대 크기를 가정해서는 안 됩니다. 다만 사용 설명서 전체를 설명으로 넣어서는 안 됩니다.

이 필드의 내용은 reStructuredText 마크업 [1]을 사용하여 작성할 수 있습니다. 메타데이터를 다루는 프로그램에서 마크업 지원은 선택 사항입니다. 프로그램은 필드의 내용을 있는 그대로 표시할 수도 있습니다. 따라서 작성자는 마크업을 보수적으로 사용해야 합니다.

예시:

Description: This module collects votes from beagles
             in order to determine their electoral wishes.
             Do *not* try to use this module with basset hounds;
             it makes them grumpy.

Keywords (키워드, 선택 사항)

더 큰 카탈로그에서 패키지 검색을 돕는 데 사용할 추가 키워드 목록입니다.

예시:

Keywords: dog puppy voting election

Home-page (선택 사항)

패키지 홈페이지의 URL을 담은 문자열입니다.

예시:

Home-page: http://www.example.com/~cschultz/bvote/

Download-URL

이 버전의 패키지를 내려받을 수 있는 URL을 담은 문자열입니다. (즉, URL은 “…/package-latest.tgz”와 같은 형태여서는 안 되며, “../package-0.45.tgz”와 같은 형태여야 합니다.)

Author (선택 사항)

최소한 작성자의 이름을 담은 문자열이며, 추가 연락처 정보를 포함할 수도 있습니다.

예시:

Author: C. Schultz, Universal Features Syndicate,
        Los Angeles, CA <cschultz@peanuts.example.com>

Author-email

작성자의 이메일 주소를 담은 문자열입니다. RFC 822 ‘From:’ 헤더에서 허용되는 형식으로 이름과 이메일 주소를 포함할 수 있습니다. 카탈로그 시스템이 이 필드의 이메일 부분을 작성자를 나타내는 고유 키로 사용할 수 있으므로, 이 필드는 선택 사항이 아닙니다. 카탈로그는 작성자가 자신의 GPG 키, 개인 홈페이지, 그 밖의 작성자에 관한 추가 메타데이터를 저장할 수 있는 기능을 제공할 수 있으며, 선택적으로 여러 이메일 주소를 같은 사람에게 연결하는 기능도 제공할 수 있습니다. 작성자 관련 메타데이터 필드는 이 PEP에서 다루지 않습니다.

예시:

Author-email: "C. Schultz" <cschultz@example.com>

라이선스

라이선스가 “License” Trove 분류자 중에서 선택된 것이 아닐 때, 패키지에 적용되는 라이선스를 나타내는 텍스트입니다. 아래의 “Classifier”를 참조하십시오.

예시:

License: This software may only be obtained by sending the
         author a postcard, and then the user promises not
         to redistribute it.

Classifier (여러 번 사용 가능)

각 항목은 패키지에 대한 하나의 분류 값을 나타내는 문자열입니다. 분류자는 PEP 301에 설명되어 있습니다.

예시:

Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console (Text Based)

Requires (여러 번 사용 가능)

각 항목은 이 패키지에 필요한 다른 모듈이나 패키지를 설명하는 문자열을 담고 있습니다.

요구 사항 문자열의 형식은 ‘import’ 문에서 사용할 수 있는 모듈이나 패키지 이름의 형식과 같으며, 그 뒤에 괄호로 묶은 버전 선언을 선택적으로 붙일 수 있습니다.

버전 선언은 조건 연산자와 버전 번호를 쉼표로 구분하여 나열한 것입니다. 조건 연산자는 “<”, “>”, “<=”, “>=”, “==”, “!=” 중 하나여야 합니다. 버전 번호는 distutils.version.StrictVersion 클래스가 허용하는 형식이어야 합니다. 이 형식은 점으로 구분된 두 개 또는 세 개의 숫자 구성 요소로 이루어지며, 끝에 선택적으로 “사전 릴리스” 태그를 붙일 수 있습니다. 이 태그는 문자 ‘a’ 또는 ‘b’ 뒤에 숫자가 오는 형태입니다. 버전 번호의 예로는 “1.0”, “2.3a2”, “1.3.99” 등이 있습니다.

조건 연산자는 개수에 제한 없이 지정할 수 있습니다. 예를 들어 “>1.0, !=1.3.4, <2.0”이라는 문자열은 올바른 버전 선언입니다.

다음은 모두 가능한 요구 사항 문자열입니다: “rfc822”, “zlib (>=1.1.4)”, “zope”.

어떤 문자열을 사용해야 하는지에 대한 정식 목록은 없습니다. Python 커뮤니티가 스스로 표준을 정하도록 맡겨져 있습니다.

예시:

Requires: re
Requires: sys
Requires: zlib
Requires: xml.parsers.expat (>1.0)
Requires: psycopg

Provides (여러 번 사용 가능)

각 항목은 이 패키지가 설치되면 제공하게 될 패키지나 모듈을 설명하는 문자열을 담고 있습니다. 이 문자열들은 Requirements 필드에서 사용하는 문자열과 일치해야 합니다. 버전 선언을 (비교 연산자 없이) 제공할 수 있으며, 지정하지 않으면 패키지의 버전 번호가 암묵적으로 적용됩니다.

예시:

Provides: xml
Provides: xml.utils
Provides: xml.utils.iso8601
Provides: xml.dom
Provides: xmltools (1.3)

Obsoletes (여러 번 사용 가능)

각 항목은 이 패키지로 인해 더 이상 쓰이지 않게 되는 패키지나 모듈을 설명하는 문자열을 담고 있으며, 이는 두 패키지를 동시에 설치해서는 안 된다는 뜻입니다. 버전 선언을 제공할 수 있습니다.

이 필드는 주로 패키지 이름이 바뀌는 경우에 사용될 것입니다. 예를 들어 Gorgon 2.3이 Torqued Python 1.0에 흡수되는 경우입니다. Torqued Python을 설치하면 Gorgon 패키지는 제거되어야 합니다.

예시:

Obsoletes: Gorgon

PEP 241과의 차이점 요약

  • 이제 Metadata-Version(메타데이터 버전)은 1.1입니다.
  • PEP 301의 Classifiers 필드를 추가했습니다.
  • 이제 License 및 Platform 파일은 적절한 Classifier 값으로 플랫폼이나 라이선스를 처리할 수 없는 경우에만 사용해야 합니다.
  • 추가된 필드: Download-URL, Requires, Provides, Obsoletes.

미해결 문제

없습니다.

감사의 글

없습니다.

참고 문헌