class XnatSourceInputSpec(ArchiveSourceInputSpec): project_id = traits.Str(mandatory=True, desc='The project ID') server = traits.Str(mandatory=True, desc="The address of the XNAT server") user = traits.Str( mandatory=False, desc=("The XNAT username to connect with in with if not " "supplied it can be read from ~/.netrc (see " "https://xnat.readthedocs.io/en/latest/static/tutorial.html" "#connecting-to-a-server)")) password = traits.Password( mandatory=False, desc=("The XNAT password corresponding to the supplied username, if " "not supplied it can be read from ~/.netrc (see " "https://xnat.readthedocs.io/en/latest/static/tutorial.html" "#connecting-to-a-server)")) cache_dir = Directory( exists=True, desc=("Path to the base directory where the downloaded" "datasets will be cached")) race_cond_delay = traits.Int( usedefault=True, default=30, desc=("The amount of time to wait before checking that the required " "dataset has been downloaded to cache by another process has " "completed if they are attempting to download the same dataset")) stagger = traits.Int( mandatory=False, desc=("Stagger the download of the required datasets by " "stagger_delay * subject_id seconds to avoid sending too many " "concurrent requests to XNAT"))
class XNATSinkInputSpec(DynamicTraitedSpec, BaseInterfaceInputSpec): _outputs = traits.Dict(traits.Str, value={}, usedefault=True) server = traits.Str(mandatory=True, requires=['user', 'pwd'], xor=['config']) user = traits.Str() pwd = traits.Password() config = File(mandatory=True, xor=['server']) cache_dir = Directory(desc='') project_id = traits.Str(desc='Project in which to store the outputs', mandatory=True) subject_id = traits.Str(desc='Set to subject id', mandatory=True) experiment_id = traits.Str(desc='Set to workflow name', mandatory=True) assessor_id = traits.Str( desc=('Option to customize ouputs representation in XNAT - ' 'assessor level will be used with specified id'), mandatory=False, xor=['reconstruction_id']) reconstruction_id = traits.Str( desc=('Option to customize ouputs representation in XNAT - ' 'reconstruction level will be used with specified id'), mandatory=False, xor=['assessor_id']) share = traits.Bool( desc=('Option to share the subjects from the original project' 'instead of creating new ones when possible - the created ' 'experiments are then shared backk to the original project'), value=False, usedefault=True, mandatory=False, ) def __setattr__(self, key, value): if key not in self.copyable_trait_names(): self._outputs[key] = value else: super(XNATSinkInputSpec, self).__setattr__(key, value)
class XnatSinkInputSpecMixin(object): project_id = traits.Str(mandatory=True, desc='The project ID') server = traits.Str('https://mf-erc.its.monash.edu.au', mandatory=True, usedefault=True, desc="The address of the MF server") user = traits.Str( mandatory=False, desc=("The XNAT username to connect with in with if not " "supplied it can be read from ~/.netrc (see " "https://xnat.readthedocs.io/en/latest/static/tutorial.html" "#connecting-to-a-server)")) password = traits.Password( mandatory=False, desc=("The XNAT password corresponding to the supplied username, if " "not supplied it can be read from ~/.netrc (see " "https://xnat.readthedocs.io/en/latest/static/tutorial.html" "#connecting-to-a-server)")) cache_dir = Directory( exists=True, desc=("Path to the base directory where the downloaded" "datasets will be cached"))
class XNATSourceInputSpec(DynamicTraitedSpec, BaseInterfaceInputSpec): query_template = traits.Str( mandatory=True, desc=('Layout used to get files. Relative to base ' 'directory if defined')) query_template_args = traits.Dict(traits.Str, traits.List(traits.List), value=dict(outfiles=[]), usedefault=True, desc='Information to plug into template') server = traits.Str(mandatory=True, requires=['user', 'pwd'], xor=['config']) user = traits.Str() pwd = traits.Password() config = File(mandatory=True, xor=['server']) cache_dir = Directory(desc='Cache directory')