def __call__(self): interface = self.interface filename = interface.queryTaggedValue(FILENAME_KEY, None) if filename is None: return schema = interface.queryTaggedValue(SCHEMA_NAME_KEY, u"") moduleName = interface.__module__ module = sys.modules.get(moduleName, None) directory = moduleName if hasattr(module, '__path__'): directory = module.__path__[0] else: while "." in moduleName: moduleName, _ = moduleName.rsplit('.', 1) module = sys.modules.get(moduleName, None) if hasattr(module, '__path__'): directory = module.__path__[0] break directory = os.path.abspath(directory) # Let / act as path separator on all platforms filename = filename.replace('/', os.path.sep) filename = os.path.abspath(os.path.join(directory, filename)) model = loadFile(filename) if schema not in model.schemata: raise ValueError( u"Schema '%s' specified for interface %s does not exist in %s." % (schema, interface.__identifier__, filename,)) syncSchema(model.schemata[schema], interface, overwrite=False)
def lookupModel(self): if self.model_source: return loadString(self.model_source, policy=self.schema_policy) elif self.model_file: model_file = self._absModelFile() return loadFile(model_file, reload=True, policy=self.schema_policy) elif self.schema: schema = self.lookupSchema() return Model({u"": schema}) raise ValueError("Neither model source, nor model file, nor schema is specified in FTI %s" % self.getId())
def lookupModel(self): if self.model_source: return loadString(self.model_source, policy=self.schema_policy) elif self.model_file: model_file = self._absModelFile() return loadFile(model_file, reload=True, policy=self.schema_policy) elif self.schema: schema = self.lookupSchema() return Model({u"": schema}) raise ValueError( "Neither model source, nor model file, nor schema is specified in FTI %s" % self.getId())
def __call__(self): interface = self.interface filename = interface.queryTaggedValue(FILENAME_KEY, None) if filename is None: return schema = interface.queryTaggedValue(SCHEMA_NAME_KEY, u"") moduleName = interface.__module__ module = sys.modules.get(moduleName, None) directory = moduleName if hasattr(module, '__path__'): directory = module.__path__[0] else: while "." in moduleName: moduleName, _ = moduleName.rsplit('.', 1) module = sys.modules.get(moduleName, None) if hasattr(module, '__path__'): directory = module.__path__[0] break directory = os.path.abspath(directory) # Let / act as path separator on all platforms filename = filename.replace('/', os.path.sep) filename = os.path.abspath(os.path.join(directory, filename)) model = loadFile(filename) if schema not in model.schemata: raise ValueError( u"Schema '{0}' specified for interface {1} does not exist " "in {2}.".format( schema, interface.__identifier__, filename, ) ) syncSchema(model.schemata[schema], interface, overwrite=False)