포함한 이전 버전과의 호환성을 유지하십시오 Bar
클래스로 이동되도록모듈을 리팩토링과 <code>pack.foo.Bar</code> 클래스 제공하는 파이썬 패키지 <code>pack</code>을 감안할 때 intersphinx
pack/
__init__.py # empty
foo.py
# content of foo.py
"""
This module does stuff using the :class:`pack.foo.Bar` class.
"""
class Bar(object):
pass
# much more code here
내가, 패키지에 pack.foo
모듈을 리팩토링 할을 pack/foo/bar.py
파일 이전 버전과의 호환성을 유지하기 위해, 나는 pack/foo/__init__.py
파일이 한 수의 API
"""
This module does stuff using the :class:`pack.foo.Bar` class.
"""
from pack.foo.bar import Bar
__all__ = ['Bar']
사용자는 여전히 from pack.foo import Bar
를 사용할 수 있습니다.
한 가지 문제가 남아 있습니다. 스핑크스를 사용할 때의 참고 사항입니다. intersphinx 확장자를 사용하는 경우 사용자가 만든 문서를 끊을
WARNING: py:class reference target not found pack.foo.bar.Bar
: 스핑크스가 pack/foo/__init__.py
에 문서화 문자열을 구문 분석 할 때 대상을 찾을 수 없습니다.
스핑크스 객체 인벤토리를 포함하여 패키지 구조를 리팩토링하고 완전한 하위 호환성을 유지하는 적절한 방법은 무엇입니까?