PEP 241 – Python 소프트웨어 패키지를 위한 메타데이터
- Author:
- A.M. Kuchling <amk at amk.ca>
- Discussions-To:
- Distutils-SIG list
- Status:
- Superseded
- Type:
- Standards Track
- Topic:
- Packaging
- Created:
- 12-Mar-2001
- Post-History:
- 19-Mar-2001
- Superseded-By:
- 314
번역·라이선스 안내
이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판
서론
이 PEP는 Python 패키지에 메타데이터를 추가하는 메커니즘을 설명합니다. 여기에는 필드 이름의 세부 사항과 그 의미 및 사용법이 포함됩니다.
패키지에 메타데이터 포함하기
Distutils의 ‘sdist’ 명령은 인자에서 메타데이터 필드를 추출하여 생성된 zipfile 또는 tarball 내 파일에 기록하도록 수정될 것입니다. 이 파일은 PKG-INFO라는 이름을 가지며, 소스 배포판의 최상위 디렉터리(README, INSTALL 및 기타 파일들이 보통 위치하는 곳)에 놓이게 됩니다.
개발자는 자신만의 PKG-INFO 파일을 제공할 수 없습니다. “sdist” 명령은 기존 PKG-INFO 파일이 존재하는 것을 감지하면, 적절한 오류 메시지와 함께 종료됩니다. 이는 PKG-INFO 파일과 setup.py 파일이 동기화되지 않아 발생하는 혼란을 방지할 것입니다.
PKG-INFO 파일 형식은 rfc822.py 모듈로 파싱 가능한 단일 RFC 822 헤더 집합입니다. 다음 절에 나열된 필드 이름들이 헤더 이름으로 사용됩니다. 이 단순한 형식에는 확장 메커니즘이 없으며, Catalog 및 Distutils SIG는 Python 2.2를 위해 더 유연한 형식을 준비하는 것을 목표로 할 것입니다.
필드
이 절은 지원되는 각 메타데이터 필드의 이름과 의미를 명시합니다.
“(Multiple use)”로 표시된 필드는 하나의 PKG-INFO 파일 안에서 여러 번 지정될 수 있습니다. 그 외의 필드는 PKG-INFO 파일 안에서 한 번만 나타날 수 있습니다. “(optional)”로 표시된 필드는 유효한 PKG-INFO 파일에 반드시 나타날 필요는 없으며, 그 외의 모든 필드는 반드시 존재해야 합니다.
Metadata-Version
파일 형식의 버전으로, 현재 “1.0”만이 여기서 유효한 값입니다.
예시:
Metadata-Version: 1.0
Name
패키지의 이름입니다.
예시:
Name: BeagleVote
Version
패키지의 버전 번호를 담은 문자열입니다. 이 필드는 distutils.version 모듈의 Version 클래스(StrictVersion 또는 LooseVersion) 중 하나로 파싱 가능해야 합니다.
예시:
Version: 1.0a2
Platform (multiple use)
패키지가 지원하는 운영 체제를 요약한, 쉼표로 구분된 플랫폼 명세 목록입니다. 주요 지원 플랫폼은 아래에 나열되어 있으나, 이 목록이 반드시 완전한 것은 아닙니다.
POSIX, MacOS, Windows, BeOS, Palm OS.
바이너리 배포판은 메타데이터의 Supported-Platform 필드를 사용하여 바이너리 패키지가 컴파일된 OS와 CPU를 지정합니다. Supported-Platform의 의미는 이 PEP에서 규정하지 않습니다.
예제:
Platform: POSIX, Windows
요약
패키지가 수행하는 작업에 대한 한 줄 요약입니다.
예제:
Summary: A module for collecting votes from beagles.
Description (선택 사항)
여러 문단에 걸칠 수 있는 패키지에 대한 더 긴 설명입니다. (메타데이터를 다루는 소프트웨어는 이 필드의 최대 크기를 가정해서는 안 되지만, 사람들이 사용 설명서 전체를 long-description으로 넣지 않기를 바랍니다.)
예제:
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/
License
패키지를 포괄하는 라이선스를 지정하는, 짧은 선택지 목록에서 선택된 문자열입니다. 일부 라이선스는 소프트웨어를 자유롭게 재배포할 수 있게 하여, 패키저와 재판매자가 소프트웨어를 자유롭게 재배포할 수 있다는 것을 자동으로 알 수 있게 합니다. 다른 라이선스는 소프트웨어를 어떻게 재패키징하고 재판매할 수 있는지 결정하기 위해 사람이 주의 깊게 읽어야 합니다.
선택지는 다음과 같습니다:
Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL, unknown,
nocommercial, nosell, nosource, shareware, other
일부 라이선스의 정의는 다음과 같습니다:
| DFSG | 이 라이선스는 데비안 자유 소프트웨어 지침(Debian Free Software Guidelines)을 준수하지만, 여기에 나열된 다른 DFSG 준수 라이선스 중 하나를 사용하지는 않습니다. 자세한 정보는 http://www.debian.org/social_contract#guidelines 에서 확인할 수 있습니다. |
| Python | Python 1.6 이상 라이선스입니다. 버전 1.5.2 이하는 MIT 라이선스를 따릅니다. |
| public domain | 소프트웨어는 퍼블릭 도메인이며, 저작권이 없습니다. |
| unknown | 상태를 알 수 없습니다. |
| nocommercial | 개인적인 용도로는 자유롭게 사용할 수 있지만 상업적 용도는 허용되지 않습니다. |
| nosell | 자유롭게 사용할 수 있지만 영리 목적의 배포는 별도 계약이 필요합니다. |
| nosource | 자유롭게 배포할 수 있지만 소스 코드는 제공되지 않습니다. |
| 셰어웨어 | 소프트웨어를 사용할 경우 대금을 지불해야 합니다 |
| 기타 | 기타 비-DFSG 라이선스를 위한 일반 범주입니다 |
이 라이선스들 중 일부는 소프트웨어를 자유롭게 재배포할 수 있다는 의미로 해석될 수 있습니다. 재배포 가능한 라이선스 목록은 다음과 같습니다:
Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL,
nosource, shareware
재배포 가능하다는 것이 패키지가 자유 소프트웨어로 인정됨을 의미하지는 않는다는 점에 유의하십시오. ‘nosource’와 ‘shareware’가 그 예입니다.
예제:
License: MIT
감사의 말
이 문서에 대한 많은 변경과 재작성은 Distutils SIG 독자들의 제안에 따른 것입니다. 특히 Sean Reifschneider는 이 PEP에 포함될 실제 텍스트를 자주 제공했습니다.
라이선스 목록은 SourceForge 라이선스 목록과 Graham Williams가 편집한 CTAN 라이선스 목록을 사용하여 작성되었습니다. Carey Evans 역시 이 목록에 대해 여러 유용한 제안을 해주었습니다.
Copyright
This document has been placed in the public domain.