"pyclbr" --- 파이썬 모듈 브라우저 지원
**************************************

**소스 코드:** Lib/pyclbr.py

======================================================================

The "pyclbr" module provides limited information about the functions,
classes, and methods defined in a Python-coded module.  The
information is sufficient to implement a module browser.  The
information is extracted from the Python source code rather than by
importing the module, so this module is safe to use with untrusted
code. This restriction makes it impossible to use this module with
modules not implemented in Python, including all standard and optional
extension modules.

pyclbr.readmodule(module, path=None)

   모듈 수준의 클래스 이름을 클래스 설명자에 매핑하는 딕셔너리를 돌려
   줍니다. 가능하면, 임포트 된 베이스 클래스에 관한 설명자가 포함됩니
   다. 매개 변수 *module*은 읽을 모듈 이름이 들어있는 문자열입니다; 패
   키지 내의 모듈 이름일 수 있습니다. 주어지면, *path*는 "sys.path" 앞
   에 추가된 디렉터리 경로 시퀀스인데, 모듈 소스 코드의 위치를 찾는 데
   사용됩니다.

   이 함수는 원래 인터페이스이며 이전 버전과의 호환성을 위해서만 유지
   됩니다. 다음 함수의 필터링 된 버전을 반환합니다.

pyclbr.readmodule_ex(module, path=None)

   "def" 나 "class" 문을 사용하여 모듈에 정의된 각 함수 및 클래스에 대
   한 함수나 클래스 설명자를 포함하는 딕셔너리 기반 트리를 반환합니다.
   반환된 딕셔너리는 모듈 수준의 함수와 클래스 이름을 해당 설명자에 대
   응합니다. 중첩된 객체는 그들의 parent의 children 딕셔너리에 들어갑
   니다. readmodule과 마찬가지로, *module*은 읽을 모듈의 이름을 지정하
   고 *path*는 sys.path의 앞에 추가됩니다. 읽히는 모듈이 패키지면, 반
   환된 딕셔너리는 키 "'__path__'"를 가지는데, 값은 패키지 검색 경로를
   포함하는 리스트입니다.

Added in version 3.7: 중첩된 정의에 대한 설명자. 새로운 children 어트
리뷰트를 통해 액세스할 수 있습니다. 각에는 새로운 parent 어트리뷰트가
있습니다.

이러한 함수에 의해 반환되는 설명자는 Function과 Class 클래스의 인스턴
스입니다. 사용자가 이러한 클래스의 인스턴스를 만들 것으로 기대하지 않
습니다.


Function 객체
=============

class pyclbr.Function

   클래스 "Function" 인스턴스는 def 문으로 정의된 함수를 설명합니다.
   다음과 같은 어트리뷰트를 가지고 있습니다 :

   file

      함수가 정의된 파일의 이름.

   module

      설명된 함수를 정의하는 모듈의 이름.

   name

      함수의 이름.

   lineno

      정의가 시작되는 파일의 줄 번호.

   parent

      최상위 함수면, "None". 중첩된 함수면, 부모.

      Added in version 3.7.

   children

      이름을 중첩된 함수와 클래스에 관한 설명자로 매핑하는 "딕셔너리".

      Added in version 3.7.

   is_async

      "True" for functions that are defined with the "async" prefix,
      "False" otherwise.

      Added in version 3.10.


Class 객체
==========

class pyclbr.Class

   클래스 "Class" 인스턴스는 class 문으로 정의된 클래스를 설명합니다.
   "Function"과 같은 어트리뷰트에 더해 두 개의 어트리뷰트가 더 있습니
   다.

   file

      클래스가 정의된 파일의 이름.

   module

      설명된 클래스를 정의하는 모듈의 이름.

   name

      클래스의 이름.

   lineno

      정의가 시작되는 파일의 줄 번호.

   parent

      최상위 클래스면, "None". 중첩된 클래스면, 부모.

      Added in version 3.7.

   children

      이름을 중첩된 함수와 클래스에 관한 설명자로 매핑하는 딕셔너리.

      Added in version 3.7.

   super

      설명되는 클래스의 직접적인 베이스 클래스를 설명하는 "Class" 객체
      의 리스트. 슈퍼 클래스로 명명되었지만 "readmodule_ex()"가 찾을
      수 없는 클래스는 "Class" 객체가 아니라 클래스 이름을 담은 문자열
      로 나열됩니다.

   methods

      메서드 이름을 줄 번호에 매핑하는 "딕셔너리". 최신 "children" 딕
      셔너리에서 파생될 수 있지만, 이전 버전과의 호환성을 위해 남아있
      습니다.
