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 문자열 메서드, 유니코드, 리스트 컴프리헨션, 복합 대입(예: +=), 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 제너레이터 표현식, 여러 줄 임포트, 데코레이터, int/long 통합, set/frozenset, reversed(), sorted(), “”.rsplit(), 그리고 아래의 모든 기능
2.4 with 문, 조건식, 결합된 try/except/finally, 상대 임포트, yield 표현식 또는 generator.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
컴파일러 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
플랫폼 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 버전에서 도구가 임포트할 때 문제없이 실패하도록 구성할 수 있습니다.