RFC 17: 파이썬 이름공간
저자: 하워드 버틀러(Howard Butler)
연락처: hobu.inc@gmail.com
상태: 승인
요약
파이썬 용 GDAL 바인딩은 패키지 및 이름공간을 이용해서 구조(organization)를 제공하는 일반적인 파이썬 관행을 피해온 이력이 있습니다.
이 RFC는 GDAL 파이썬 바인딩이 이제부터 상주하게 될 ‘osgeo’라는 파이썬 용 새 이름공간을 구현합니다. 하위 호환성을 제공하기 때문에 현재 코드를 변경하지 않고 계속 실행하지만, 코드 구조 및 전체 수준 이름공간 오염이라는 이유를 위해 이름공간을 사용해야 하도록 개발할 것입니다. 2007년 10월 1일부로 이 RFC 17에서 설명하는 변경 사항들은 “차세대” 파이썬 바인딩에만 적용됩니다. GDAL 1.5버전에서는 이 바인딩이 기본 바인딩이 될 것으로 예상합니다.
목표
이름공간이 제대로 지정된 파이썬 패키지에 GDAL 파이썬 바인딩을 제공해서 파이썬의 전체 수준 이름공간 오염을 제거합니다.
과거 사용례
예전 GDAL의 파이썬 바인딩은 전체 수준에서 인식되는 파이썬 모듈들을 사용했습니다:
import gdal
import osr
import ogr
import gdalconst
import gdalnumeric
새로운 사용례
RFC 17은 이제 ‘osgeo’ 이름공간 아래 이 모듈들을 제공합니다:
from osgeo import gdal
from osgeo import osr
from osgeo import ogr
from osgeo import gdalconst
from osgeo import gdal_array
뿐만 아니라, 예전 모듈 스타일의 가져오기도 퇴출 경고와 함께 계속 작동합니다:
>>> import gdal
/Users/hobu/svn/gdal/swig/python/gdal.py:3: DeprecationWarning: gdal.py was placed in a namespace, it is now available as osgeo.gdal
warn('gdal.py was placed in a namespace, it is now available as osgeo.gdal', DeprecationWarning)
향후 적절한 시기에 GDAL 특화 전체 수준 모듈을 제거할 계획입니다.
기타 스프린트 업데이트
하워드 버틀러와 크리스 바커(Chris Barker)가 FOSS4G2007 GDAL 코드 스프린트에서 이 RFC를 위한 작업을 수행했습니다. 파이썬 이름공간 작업만이 아니라 GDAL 바인딩 빌드라는 측면에서 몇몇 사소한 문제점들을 처리했습니다.
차세대 파이썬 바인딩은 이제 설정 도구(setuptools)를 사용할 수 있는 경우 기본적으로 설정 도구를 사용합니다.
순수한 파이썬 모듈로부터 확장 사양을 구분할 수 있도록
./swig/python
디렉터리의 구조를 살짝 변경했습니다.페트르 클로칸(Petr Klokan)의 구글 서머 오브 코드(Google Summer of Code) 프로젝트인 gdal2tiles 유틸리티를 차세대 바인딩으로 통합했습니다.
투표 이력
FOSS4G2007 스프린트에서 (최초의) 음성 투표가 시행되었습니다.
프랑크 바르메르담 +1
하워드 버틀러 +1
대니얼 모리셋 +1
세케레시 터마시 +1