def __init__(self, _identifier, _source, command, protocol=None, label=None, version=None, tags=None, **kwargs): self._identifier = _identifier self._source = _source self._command = command self._protocol = protocol self._label = label if label is not None else _identifier self._version = to_string(version) if not version is None else None self._envvars, args = Tracker._collect_envvars(**kwargs) self._metadata, args = Tracker._collect_metadata(**args) self._arguments, self._args = Tracker._collect_arguments(**args) if tags is None: self._tags = [] elif isinstance(tags, str): self._tags = tags.split(",") self._tags = [tag.strip() for tag in self._tags] self._tags = [tag for tag in self._tags if is_valid_identifier(tag)] if not self._version is None and not self._version.isalnum(): raise TrackerException("Illegal version format", tracker=self)
def write(self, results: Results, name: str): with results.write(name + ".txt") as fp: write_file(fp, self._regions) for k, v in self._properties.items(): with results.write(name + "_" + k + ".value") as fp: fp.writelines([to_string(e) + "\n" for e in v])