All notable changes to this project will be documented in this file.
0.3.20 - 2019-10-09¶
- now possible to create/retrieve data for resources properly. XNAT would only return the catalog when queried and not the object information. Created a work around that catches the case in get_json and retrieves the json data from the listing instead and presents it in a format consistent with the REST API so other code still functions.
0.3.19 - 2019-09-20¶
- xnatpy changes the user-agent header to give detailed information about the xnatpy client running.
- option to have some progress logging/printing added to the download_dir methods for projects and subjects
- add method to find specific sessions in the prearchive
- Avoid use of get_source when generating xnatpy module code, which should help when compiling xnatpy to a binary (py2exe etc)
0.3.18 - 2019-06-06¶
PrearchiveFile(same as for FileData)
PrearchiveScan(same as for ScanData)
- Documentation improved, added code reference and changelog into docs
- Flag extension_types=False now also working for 1.7 servers
0.3.17 - 2019-04-04¶
- Can open FileData object with
file.open()to get a file-like object that can be used similar to a local file.
read_dicom()to ScanData to read the dicom header/file with pydicom
external_urimethod to get a full external uri of an XNAT object
0.3.16 - 2019-03-28¶
- Support for changing subject and experiment labels
- Support creation of ScanData types with the id and type set on creation
- Fix a bug in scanning extension types where there are new-lines in the xs:schema tag
0.3.14 - 2019-02-22¶
- Check which user is logged in and expose that in
- Check the cookies to set the appropriate heartbeat interval for the server.
- Allow getting the session expiration information with
- Refactored some code in the model building, which is optional if you only want
to use xnatpy for a convenience layer about requests. Giving
no_build_model=Trueto the connect function will disable the scraping of the server xml structure and not create all classes, but will log in and keep alive a connection. Only the simple connection
uploadmethods are really safe to use in that case.
- XNAT objects (including subject and experiments) will use the listing to get their label and xsitype to avoid the need to get each experiment when creating a listing. This makes listings way more efficient.
- Bug with auth when xnat was not running in the server root, but rather in a subdirectory
0.3.12 - 2019-01-03¶
- Adds fields argument to the dicom_dump method to filter on dicom tags server side.
- Adds dicom_dump method to prearchive scan.
- Allow deleting variables by useing del object.variable, this works in most cases but seem to fail server-side on restriction such as gender (it does not match any valid options)
- Beter computation for the uri’s of resources
- Fixed xml deprecation warning due to the use of .getchildren()
0.3.11 - 2018-11-12¶
- Functions with an async parameter had them renamed to asynchronous as async is a keyword as of Python 3.7
- Fix a bug in the XSD parsing when an XSD contains a schema-level simpleType
- Bug in upload_dir with python3 when using a method based on a temporary file
- Resource upload methods can now forward kwargs to the
- Resource constructor also optionally takes a
upload_methodarguments for uploading data immediately after creation.
0.3.10 - 2018-08-31¶
- The experiment.create_resource and scan.create_resource now take two extra arguments: data_dir and method, which allow the uploading of the content of a directory as the content of the newly created resource. The method is the method for resource.upload_dir method
- Command line callable scripts that copies an entire project to another xnat.
- Removed wrong default argument for create_assessor (invalid assessor type)
- The lower level get/put/post/delete methods now can process full uris as well as paths as long as the uri start matches the server uri (e.g. instead of using /data/projects you can also give https://serveruri.com/data/projects.
- Fixed a small bug where an incorrect error message was giving when not giving a value for the secondary label during object creation.
0.3.9 - 2018-07-02¶
- xnatpy had issues with shared subjects and sessions as the REST API would return the original object (with sharing information in it). Now xnatpy check the requested uri and makes sure the information of the correct project is used. Now shared objects can be used properly in xnatpy.
- resource.upload now takes an
extractparameter indicating data should be extracted into files after upload
- resource.upload_dir to upload an entire directory to a resource, the directory will be added into the resources so that e.g. directory/a.txt becomes resource/a.txt
- redirection detections, if the server has moved and is being redirected (e.g. using a 302 or 301 response), xnatpy will detect that and use the new url instead.
0.3.8 - 2018-06-04¶
- Methods to retrieve the DICOM header dump using the dcmdump service. This can be used via services.dicom_dump(uri) or experiment.dicom_dump to get the dump of the specific experiment
- Strict username checking after login disabled to avoid problems with OIDC
- Fix a bug where token result would contain extra data
0.3.7 - 2018-03-12¶
- Fixed a bug where the prompt for the password on Windows would not work
- Hide certificate warnings if verify=False, just give a one time warning that things might not be safe, but no spam at every single request
0.3.6 - 2018-03-09¶
- Support for issuing tokens in the service module
- Allow user to login using a token (the username check will catch this an allow it)
- Improved the logging by reducing spam at the INFO/DEBUG levels. The debug parameter on connect can now be used to enable the logging of xnatpy internals.
- Give a specific error if the XNAt password is outdated and requires an update.
0.3.5 - 2018-01-02¶
- There were bugs in the prearchive breaking the entire pre-archive funcationaly
0.3.4 - 2017-11-13¶
- Files in assessors would have a path prefixed with a / in some cases (which should never happen)
0.3.3 - 2017-10-18¶
- Abstracted the progress bar for downloading to allow other progress hooks (e.g. GUI)
- Set proper minimal versions for requirements (e.g. six can be too old)
- Bug in upload for Python3
- Bug with getting the file size when there are redirects (issue #8)
- Bug with getting files from a project/subject/experiment/scan directly instead of via resource (issue #5)
0.3.2 - 2017-10-15¶
- Bug in the the create_object function in the selection of the non-history object
- Bug in the setting of project properties (due to the lack of a parent)
0.3.1 - 2017-09-04¶
- FileData now has an id and path, the id is the filename and the path is the path relative from the resource. This makes working with subdirectories in resources possible.
- Bug where history of XNAT was misinterpreted and an old version of an object could be loaded
- Resources could loose track of their ID when the cache was cleared
- Resources did not invalidate cache after uploading files
0.3.0 - 2017-08-17¶
- Better support for complex data structures, especially data types that include lists in their data.
- Support for extension types, xnatpy automatically searches for all extension xsd files and will create Python classes for those as well.
- Listings can be indexed with integers to get their n-th element, the order is the order given by XNAT.
- Allow overwriting of files on upload
- Support for listing users via /data/users REST endpoint in the session.users
- xsd schema parsing is completely rewritten, allows more support for complex data structures
- Support for XNAT 1.7.3
- Fixed a bug where opening a second session would ruin the first one, it should now be possible to have multiple sessions open concurently.
0.2.3 - 2017-04-03¶
- xnatpy now uses the progressbar2 package to deliver fancy progress bars when downloading
- Attributes in the session that allow users to skip/alter the checking of responses
- Logging now using a logger. You can change the log levels or supply your own logger which xnatpy will use in favour of its own
- xnatpy now gets the version information from 1.7 xnat correctly
- A bug in XNAT 1.7 caused the prearchive routes to be wrong, added a work around that fixes the prearchive with xnatpy