Source code for githubarium.util

"""유틸리티 함수와 클래스 모음"""
from importlib import import_module

__all__ = ['import_string']

UNDEFINED = type('Undefined', (object,),
                 {'__repr__': lambda self: 'UNDEFINED'})()


[문서]def import_string(import_name, package=None, default=UNDEFINED): """지정한 경로에 있는 파이썬 모듈이나 객체를 가져온다 .. code-block:: pycon >>> from urllib.request import urlopen >>> import_string('urllib.request:urlopen') is urlopen True :param str import_name: 불러올 모듈이나 객체. 콜론(:)이 없을 경우 모듈 경로, 있을 경우에는 콜론 이후를 모듈 안의 객체 이름으로 해석한다. :param package: 모듈이 속한 패키지 경로 :type package: str or None :param default: 모듈을 찾지 못했을 경우 예외를 발생하는 대신에 돌려줄 값 :return: 가져온 모듈 또는 객체 :rtype: module or object :raises ImportError: 모듈을 찾지 못함 :raises AttributeError: 모듈은 찾았으나 객체를 찾지 못함 """ try: module_name, object_name = import_name.split(':', 1) except ValueError: module_name = import_name object_name = None try: obj = import_module(module_name, package) if object_name is not None: obj = getattr(obj, object_name) return obj except (ImportError, AttributeError): if default is not UNDEFINED: return default raise