コード例 #1
0
    def __init__(self, name, overrides=False, **kwds):
        _Construct.__init__(self, **kwds)
        self._overrides = None
        assert name is not None
        self.__name = name

        if overrides is False:
            return
        elif overrides is True:
            # Look for an overrides module
            overrides = False
            for annotation in self.annotations:
                if annotation.name == 'native':
                    overrides = True
                    break
            if not overrides:
                return

            from thryft.generator.document import Document
            if isinstance(self, Document):
                return
            parent_document = self._parent_document()
            overrides_module_file_path = os.path.splitext(parent_document.path)[0] + '.py'
            if not os.path.isfile(overrides_module_file_path):
                return
            overrides_module_dir_path, overrides_module_file_name = \
                os.path.split(overrides_module_file_path)
            overrides_module_name = \
                os.path.splitext(overrides_module_file_name)[0]
            try:
                overrides_module = \
                    imp.load_module(
                        overrides_module_name,
                        *imp.find_module(
                            overrides_module_name,
                            [overrides_module_dir_path]
                        )
                    )
            except ImportError:
                logging.error(
                    "error importing overrides module %s",
                    overrides_module_file_path,
                    exc_info=True
                )
                return

            try:
                overrides_class = getattr(overrides_module, name)
                if not isclass(overrides_class):
                    raise AttributeError
            except AttributeError:
                logging.error(
                    "overrides module %s has no class %s",
                    overrides_module_file_path,
                    name
                )
                return

            try:
                overrides = overrides_class(self)
            except:
                logging.error(
                    "could not instantiate overrides class %s from %s",
                    name,
                    overrides_module_file_path,
                    exc_info=True
                )
                return

        self._overrides = overrides
コード例 #2
0
    def __init__(self, name, overrides=False, **kwds):
        _Construct.__init__(self, **kwds)
        self._overrides = None
        assert name is not None
        self.__name = name

        if overrides is False:
            return
        elif overrides is True:
            # Look for an overrides module
            overrides = False
            for annotation in self.annotations:
                if annotation.name == 'native':
                    overrides = True
                    break
            if not overrides:
                return

            from thryft.generator.document import Document
            if isinstance(self, Document):
                return
            parent_document = self._parent_document()
            overrides_module_file_path = os.path.splitext(
                parent_document.path)[0] + '.py'
            if not os.path.isfile(overrides_module_file_path):
                return
            overrides_module_dir_path, overrides_module_file_name = \
                os.path.split(overrides_module_file_path)
            overrides_module_name = \
                os.path.splitext(overrides_module_file_name)[0]
            try:
                overrides_module = \
                    imp.load_module(
                        overrides_module_name,
                        *imp.find_module(
                            overrides_module_name,
                            [overrides_module_dir_path]
                        )
                    )
            except ImportError:
                logging.error("error importing overrides module %s",
                              overrides_module_file_path,
                              exc_info=True)
                return

            try:
                overrides_class = getattr(overrides_module, name)
                if not isclass(overrides_class):
                    raise AttributeError
            except AttributeError:
                logging.error("overrides module %s has no class %s",
                              overrides_module_file_path, name)
                return

            try:
                overrides = overrides_class(self)
            except:
                logging.error(
                    "could not instantiate overrides class %s from %s",
                    name,
                    overrides_module_file_path,
                    exc_info=True)
                return

        self._overrides = overrides
コード例 #3
0
 def __init__(self, abspath, document, relpath, **kwds):
     _Construct.__init__(self, **kwds)
     self.__abspath = abspath
     self.__document = document
     self.__relpath = relpath
コード例 #4
0
 def __init__(self, name, **kwds):
     _Construct.__init__(self, **kwds)
     assert name is not None
     self.__name = name
コード例 #5
0
ファイル: include.py プロジェクト: adam-singer/thryft
 def __init__(self, document, path, **kwds):
     _Construct.__init__(self, **kwds)
     self.__document = document
     self.__path = path
コード例 #6
0
ファイル: include.py プロジェクト: minorg/thryft
 def __init__(self, abspath, document, relpath, **kwds):
     _Construct.__init__(self, **kwds)
     self.__abspath = abspath
     self.__document = document
     self.__relpath = relpath
     self.__used = False