|
@@ -5,14 +5,7 @@ import logging
|
|
from os.path import join, isfile, isdir
|
|
from os.path import join, isfile, isdir
|
|
from collections import defaultdict, OrderedDict
|
|
from collections import defaultdict, OrderedDict
|
|
|
|
|
|
-try:
|
|
|
|
- from yaml import CLoader as Loader, CDumper as Dumper
|
|
|
|
-except ImportError:
|
|
|
|
- from yaml import Loader, Dumper
|
|
|
|
-
|
|
|
|
-import yaml
|
|
|
|
-
|
|
|
|
-from nabirds.utils import attr_dict
|
|
|
|
|
|
+from nabirds.utils import read_info_file, feature_file_name
|
|
from nabirds.dataset import Dataset
|
|
from nabirds.dataset import Dataset
|
|
|
|
|
|
class BaseAnnotations(abc.ABC):
|
|
class BaseAnnotations(abc.ABC):
|
|
@@ -57,8 +50,7 @@ class BaseAnnotations(abc.ABC):
|
|
return self.info.PARTS[self.part_type]
|
|
return self.info.PARTS[self.part_type]
|
|
|
|
|
|
def root_from_infofile(self, info_file, parts=None, feature_model=None):
|
|
def root_from_infofile(self, info_file, parts=None, feature_model=None):
|
|
- with open(info_file) as f:
|
|
|
|
- self.info = attr_dict(yaml.load(f, Loader=Loader))
|
|
|
|
|
|
+ self.info = read_info_file(info_file)
|
|
|
|
|
|
dataset_info = self.dataset_info
|
|
dataset_info = self.dataset_info
|
|
annot_dir = join(self.data_root, dataset_info.folder, dataset_info.annotations)
|
|
annot_dir = join(self.data_root, dataset_info.folder, dataset_info.annotations)
|
|
@@ -95,11 +87,9 @@ class BaseAnnotations(abc.ABC):
|
|
|
|
|
|
if None not in [subset, self.feature_model]:
|
|
if None not in [subset, self.feature_model]:
|
|
tried = []
|
|
tried = []
|
|
|
|
+ model_info = self.info[self.feature_model]
|
|
for subset_phony in BaseAnnotations.FEATURE_PHONY[subset]:
|
|
for subset_phony in BaseAnnotations.FEATURE_PHONY[subset]:
|
|
- features = "{subset}_{suffix}.{model}.npz".format(
|
|
|
|
- subset=subset_phony,
|
|
|
|
- suffix=dataset_info.feature_suffix,
|
|
|
|
- model=self.feature_model)
|
|
|
|
|
|
+ features = feature_file_name(subset_phony, dataset_info, model_info)
|
|
feature_path = join(self.root, "features", features)
|
|
feature_path = join(self.root, "features", features)
|
|
if isfile(feature_path): break
|
|
if isfile(feature_path): break
|
|
tried.append(feature_path)
|
|
tried.append(feature_path)
|