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

Python 개선 제안 한국어 번역

PEP 291 – Python 2 표준 라이브러리의 하위 호환성

Author:
Neal Norwitz <nnorwitz at gmail.com>
Status:
Superseded
Type:
Informational
Created:
06-Jun-2002
Python-Version:
2.3
Post-History:

Superseded-By:
387

Table of Contents

번역·라이선스 안내

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

초록

이 PEP는 Python 2 표준 라이브러리에서 이전 Python 버전과 하위 호환성을 유지해야 하는 패키지와 모듈을 설명합니다. 패키지가 여기에 나열되어 있지 않다면, 해당 패키지는 배포된 Python 버전과의 호환성만 유지하면 됩니다.

이 PEP는 Python 3 표준 라이브러리와는 관련이 없습니다.

근거

패키지와 모듈이 이전 Python 버전에서도 계속 작동해야 하는 이유는 저자마다 다양합니다. 나머지 표준 라이브러리를 발전시키면서 이러한 모듈의 하위 호환성을 유지하려면, 어떤 모듈을 수정할 수 있고 어떤 모듈이 오래되었거나 사용 중단될 가능성이 있는 기능을 사용해야 하는지 알아야 합니다.

일반적으로 저자는 버그 수정을 더 쉽게 백포팅할 수 있도록 변경 사항을 Python의 이전 릴리스 버전과 하위 호환되게 유지하려고 시도해야 합니다.

이 PEP에 패키지나 모듈을 나열하는 것 외에도, 저자는 각 파일의 상단에 호환성 요구 사항을 설명하는 주석을 추가해야 합니다.

Python의 주요 버전이 릴리스되면 지속적인 유지 관리와 버그 수정 릴리스를 위해 Subversion 브랜치가 생성됩니다. 브랜치의 패키지 버전은 트렁크의 동일한 패키지와 다른 호환성 요구 사항을 가질 수 있습니다(즉, 현재의 최신 개발 버전). 해당하는 경우 이러한 브랜치 호환성이 아래에 나열되어 있습니다.

피해야 할 기능

다음 목록에는 각 Python 버전과의 하위 호환성을 유지하기 위해 피해야 할 일반적인 기능이 포함되어 있습니다. 이 목록은 완전하지 않습니다! 이는 일반적인 지침으로만 제공됩니다.

아래 기능은 나열된 버전의 다음 버전에서 구현되었다는 점에 유의하십시오. 예를 들어 1.5.2 옆에 나열된 기능은 2.0에서 구현되었습니다.

버전 피해야 할 기능
1.5.2 문자열 메서드, Unicode, 리스트 컴프리헨션, 증강 대입(예: +=), zip(), import x as y, dict.setdefault(), print >> f, f(*args, **kw) 호출, 그리고 아래의 모든 기능
2.0 중첩 스코프, 풍부한 비교, 함수 속성, 그리고 아래의 모든 기능
2.1 object 또는 뉴 스타일 클래스 사용, 이터레이터, 제너레이터 사용, 중첩 스코프, 또는 from __future__ import … 문 없이 // 사용, TYP가 타입 튜플인 isinstance(X, TYP), 그리고 아래의 모든 기능
2.2 bool, True, False, basestring, enumerate(), {}.pop(), PendingDeprecationWarning, Universal Newlines, 그리고 아래의 모든 기능 그리고 아래의 모든 기능
2.3 제너레이터 표현식, 여러 줄 import, 데코레이터, int/long 통합, set/frozenset, reversed(), sorted(), “”.rsplit(), 그리고 아래의 모든 기능
2.4 with 문, 조건식, 결합된 try/except/finally, 상대 임포트, yield 식 또는 제너레이터.throw/send/close()를 비롯하여 아래의 모든 기능을 포함합니다.
2.5 from __future__ import 없이 사용하는 with 문, io 모듈, str.format(), except as, bytes, b’’ 리터럴, property.setter/deleter

하위 호환 패키지, 모듈 및 도구

패키지/모듈 유지 관리자 Python 버전 주의 사항
2to3 Benjamin Peterson 2.5
bsddb
  • Greg Smith
  • Barry Warsaw
2.1
compiler Jeremy Hylton 2.1
decimal Raymond Hettinger 2.3 [2]
distutils Tarek Ziade 2.3
email Barry Warsaw 2.1 / 2.3 [1]
pkgutil Phillip Eby 2.3
platform Marc-Andre Lemburg 1.5.2
pybench Marc-Andre Lemburg 1.5.2 [3]
sre Fredrik Lundh 2.1
subprocess Peter Astrand 2.2
wsgiref Phillip J. Eby 2.1
xml (PyXML) Martin v. Loewis 2.0
xmlrpclib Fredrik Lundh 2.1
도구 유지 관리자 Python 버전
없음

참고 사항

  1. email 패키지 버전 2는 Python 2.3까지 Python과 함께 배포되었으며, 이 버전은 Python 2.1과 호환되는 상태로 유지되어야 합니다. email 패키지 버전 3은 Python 2.4와 함께 배포되며 Python 2.3과만 호환되는 상태로 유지되어야 합니다.
  2. 사양 업데이트는 버그 수정으로 간주하고 백포트합니다. Python 2.3 하위 호환성은 최소한 Python 2.4까지 유지합니다. 이 결정은 Python 2.5에서 재검토하며, 설득력 있는 이점이 발생하지 않는 한 변경하지 않습니다.
  3. pybench는 Tools/ 디렉터리 아래에 있습니다. Python 버전 간 성능을 비교할 수 있으려면 이전 Python 버전과의 호환성이 필요합니다. 새 테스트에서는 새로운 기능을 사용할 수도 있으며, 이 경우 이전 Python 버전에서 도구가 임포트할 때 정상적으로 실패하도록 구성할 수 있습니다.