Working with Files
Files, containing images or other data are attached to elements with URIs
defining a resource
level and a file
level:
>>> project.resources().files()
['image.nii']
Upload Files
Files are uploaded with the insert()
method, which
is similar to the insert()
method but supports
different arguments:
>>> project.resource('NIFTI').file('T1.nii').insert('/tmp/image.nii')
>>> project.resource('NIFTI').file('image.nii').insert(
... '/tmp/image.nii',
... content='T1',
... format='NIFTI'
... tags='image test')
Note
The old put()
method is equivalent to
insert()
and is still working.
Warning
The content, format and tags attributes can only be set when uploading the file, and then cannot be modified.
Download Files
Files are downloaded with the get()
method. Given no
location, a default path in the cachedir will be automatically generated
and returned.
>>> project.resource('NIFTI').file('T1.nii').get()
'/tmp/nosetests@central.xnat.org/c7a5b961fc504ffc9aa292f76d75fb0c_image.nii'
>>> project.resource('NIFTI').file('T1.nii').get('/tmp/test.nii')
'/tmp/test.nii'
>>> project.resource('NIFTI').file('T1.nii').get_copy()
'/tmp/nosetests@central.xnat.org/workspace/projects/Volatile/resources/123150742/files/image.nii'
>>> project.resource('NIFTI').file('T1.nii').get_copy('/tmp/test.nii')
'/tmp/test.nii'
Get attributes
If attributes were defined they can be retrieved:
>>> project.resource('NIFTI').file('image.nii').size()
98098
>>> project.resource('NIFTI').file('image.nii').content()
'T1'
>>> project.resource('NIFTI').file('image.nii').format()
'NIFTI'
>>> project.resource('NIFTI').file('image.nii').tags()
'image test'