Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_maui_train_missing_endpoint(document_corpus, project):
maui_type = annif.backend.get_backend("maui")
maui = maui_type(
backend_id='maui',
config_params={
'tagger': 'dummy',
'language': 'en'},
project=project)
with pytest.raises(ConfigurationException):
maui.train(document_corpus)
def _convert_param(self, param, val):
pspec, _ = self.VW_PARAMS[param]
if isinstance(pspec, list):
if val in pspec:
return val
raise ConfigurationException(
"{} is not a valid value for {} (allowed: {})".format(
val, param, ', '.join(pspec)), backend_id=self.backend_id)
try:
return pspec(val)
except ValueError:
raise ConfigurationException(
"The {} value {} cannot be converted to {}".format(
param, val, pspec), backend_id=self.backend_id)
def backend(self):
if self._backend is None:
if 'backend' not in self.config:
raise ConfigurationException(
"backend setting is missing", project_id=self.project_id)
backend_id = self.config['backend']
try:
backend_class = annif.backend.get_backend(backend_id)
self._backend = backend_class(
backend_id, config_params=self.config,
datadir=self.datadir)
except ValueError:
logger.warning(
"Could not create backend %s, "
"make sure you've installed optional dependencies",
backend_id)
return self._backend
def _init_access(self):
access = self.config.get('access', self.DEFAULT_ACCESS)
try:
self.access = getattr(Access, access)
except AttributeError:
raise ConfigurationException(
"'{}' is not a valid access setting".format(access),
project_id=self.project_id)
if not os.path.exists(projects_file):
logger.warning(
'Project configuration file "%s" is missing. Please provide one.' +
' You can set the path to the project configuration file using ' +
'the ANNIF_PROJECTS environment variable or the command-line ' +
'option "--projects".', projects_file)
return {}
config = configparser.ConfigParser()
config.optionxform = lambda option: option
with open(projects_file, encoding='utf-8') as projf:
try:
config.read_file(projf)
except (configparser.DuplicateOptionError,
configparser.DuplicateSectionError) as err:
raise ConfigurationException(err)
# create AnnifProject objects from the configuration file
projects = collections.OrderedDict()
for project_id in config.sections():
projects[project_id] = AnnifProject(project_id,
config[project_id],
datadir)
if init_projects:
projects[project_id].initialize()
return projects
def _convert_param(self, param, val):
pspec, _ = self.VW_PARAMS[param]
if isinstance(pspec, list):
if val in pspec:
return val
raise ConfigurationException(
"{} is not a valid value for {} (allowed: {})".format(
val, param, ', '.join(pspec)), backend_id=self.backend_id)
try:
return pspec(val)
except ValueError:
raise ConfigurationException(
"The {} value {} cannot be converted to {}".format(
param, val, pspec), backend_id=self.backend_id)
def analyzer(self):
if self._analyzer is None:
if self.analyzer_spec:
self._analyzer = annif.analyzer.get_analyzer(
self.analyzer_spec)
else:
raise ConfigurationException(
"analyzer setting is missing (and needed by the backend)",
project_id=self.project_id)
return self._analyzer