pyclbr — 파이썬 모듈 브라우저 지원

pyclbr — 파이썬 모듈 브라우저 지원

pyclbr 모듈은 파이썬으로 작성된 모듈에 정의된 함수, 클래스, 메서드에 대한 제한된 정보를 제공해요. 이 정보는 모듈 브라우저를 구현하기에 충분해요. 정보는 모듈을 import 하는 대신 파이썬 소스 코드에서 추출되므로, 이 모듈은 신뢰할 수 없는 코드에 사용하기에 안전해요. 이 제한 때문에 파이썬으로 구현되지 않은 모듈(모든 표준·선택 확장 모듈 포함)에는 이 모듈을 사용할 수 없어요.

출처: Python documentation

본문

  • pyclbr.readmodule(module, path=None) — 모듈 레벨 클래스 이름을 클래스 디스크립터에 매핑하는 딕셔너리를 반환해요. 가능하면 import 된 기본 클래스의 디스크립터도 포함돼요. module 은 읽을 모듈 이름 문자열이며 패키지 안의 모듈 이름일 수 있어요. path 가 주어지면 모듈 소스 코드를 찾는 데 사용되는 sys.path 앞에 붙는 디렉터리 경로 시퀀스예요. 이 함수는 원래 인터페이스이며 역호환을 위해 유지돼요.
  • pyclbr.readmodule_ex(module, path=None)def 또는 class 문으로 정의된 각 함수·클래스에 대한 함수·클래스 디스크립터를 담은 딕셔너리 기반 트리를 반환해요. 반환된 딕셔너리는 모듈 레벨 함수·클래스 이름을 디스크립터에 매핑해요. 중첩 객체는 부모의 children 딕셔너리에 들어가요. 읽을 모듈이 패키지면 반환된 딕셔너리는 값이 패키지 검색 경로를 담은 리스트인 '__path__' 키를 가져요. 버전 3.7에서 중첩 정의의 디스크립터가 추가됐어요(새 children 속성으로 접근, 각각 새 parent 속성).

이 함수들이 반환하는 디스크립터는 FunctionClass 클래스의 인스턴스예요. 사용자는 이 클래스의 인스턴스를 만들 것으로 기대되지 않아요.

함수 객체 (Function Objects)

  • class pyclbr.FunctionFunction 인스턴스는 def 문으로 정의된 함수를 설명해요.
    • file — 함수가 정의된 파일 이름.
    • module — 설명하는 함수를 정의하는 모듈 이름.
    • name — 함수 이름.
    • lineno — 정의가 시작되는 파일의 줄 번호.
    • parent — 최상위 함수는 None, 중첩 함수는 부모. (버전 3.7 추가)
    • children — 중첩 함수·클래스의 디스크립터에 이름을 매핑하는 dictionary. (버전 3.7 추가)
    • is_asyncasync 접두사로 정의된 함수는 True, 아니면 False. (버전 3.10 추가)

클래스 객체 (Class Objects)

  • class pyclbr.ClassClass 인스턴스는 class 문으로 정의된 클래스를 설명해요. Function 과 같은 속성을 가지며 두 개를 더 가져요.
    • file — 클래스가 정의된 파일 이름.
    • module — 설명하는 클래스를 정의하는 모듈 이름.
    • name — 클래스 이름.
    • lineno — 정의가 시작되는 줄 번호.
    • parent — 최상위 클래스는 None, 중첩 클래스는 부모.
    • children — 중첩 함수·클래스 디스크립터에 이름을 매핑하는 dictionary.
    • super — 상위 클래스를 설명하는 디스크립터 목록.

더 알아보기 (Learn more)