datalad / datalad-xnat

Track XNAT projects with DataLad
Other
3 stars 9 forks source link

Discontinue use of urljoin #48

Closed mih closed 2 years ago

mih commented 2 years ago

It requires a base url with a trailing slash to do the right thing. Given all URL suffixes are hand-crafted, we can simply not use it.

Fixes datalad/datalad-xnat#47

In [3]: urljoin('https://www.nitrc.org/ir/', 'data/JSESSION')
Out[3]: 'https://www.nitrc.org/ir/data/JSESSION'

In [4]: urljoin('https://www.nitrc.org/ir/', '/data/JSESSION')
Out[4]: 'https://www.nitrc.org/data/JSESSION'

In [5]: urljoin('https://www.nitrc.org/ir', '/data/JSESSION')
Out[5]: 'https://www.nitrc.org/data/JSESSION'

In [6]: urljoin('https://www.nitrc.org/ir', 'data/JSESSION')
Out[6]: 'https://www.nitrc.org/data/JSESSION'
mih commented 2 years ago

It seems this now makes things work with NITRC IR:

% dl xnat-init --credential anonymous https://www.nitrc.org/ir -p fcon_1000
[INFO   ] XNAT reports 1288 subjects currently on-record for project fcon_1000 
xnat_init(ok): . (dataset)                                                                                                 
% dl xnat-update --credential anonymous -s xnat_S01288 -f
[INFO   ] Querying info for subject xnat_S01288 
xnat_parse(ok): (file)                                                                                                     
[INFO   ] Downloading files for subject xnat_S01288 
addurl(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/anat_mprage_anonymized/scan_mprage_anonymized.nii.gz (file) [to xnat_S01288/xnat_E01288/anat_mprage_anonymized/scan_mprage_anonymized.nii.gz]                                                          
addurl(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/anat_mprage_skullstripped/scan_mprage_skullstripped.nii.gz (file) [to xnat_S01288/xnat_E01288/anat_mprage_skullstripped/scan_mprage_skullstripped.nii.gz]                                              
addurl(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/func_rest/scan_rest.nii.gz (file) [to xnat_S01288/xnat_E01288/func_rest/scan_rest.nii.gz]                                                                                                              
metadata(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/anat_mprage_anonymized/scan_mprage_anonymized.nii.gz (file)               
metadata(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/anat_mprage_skullstripped/scan_mprage_skullstripped.nii.gz (file)         
metadata(ok): /tmp/nitrc/xnat_S01288/xnat_E01288/func_rest/scan_rest.nii.gz (file)                                         
action summary:                                                                                                            
  addurl (ok: 3)
  metadata (ok: 3)
[INFO   ] Files were updated for the following subjects in XNAT project fcon_1000:                                         
[INFO   ]  xnat_S01288 
xnat_update(ok): . (dataset)
action summary:
  xnat_parse (ok: 1)
  xnat_update (ok: 1)
datalad xnat-update --credential anonymous -s xnat_S01288 -f  8.69s user 1.46s system 46% cpu 21.873 total
codecov-commenter commented 2 years ago

Codecov Report

Merging #48 (2476555) into master (7aafe53) will decrease coverage by 0.08%. The diff coverage is 100.00%.

:exclamation: Current head 2476555 differs from pull request most recent head 9e3cd3d. Consider uploading reports for the commit 9e3cd3d to get more accurate results Impacted file tree graph

@@            Coverage Diff             @@
##           master      #48      +/-   ##
==========================================
- Coverage   81.22%   81.14%   -0.09%     
==========================================
  Files           8        8              
  Lines         229      228       -1     
==========================================
- Hits          186      185       -1     
  Misses         43       43              
Impacted Files Coverage Δ
datalad_xnat/parser.py 88.46% <100.00%> (-0.43%) :arrow_down:
datalad_xnat/platform.py 80.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 7aafe53...9e3cd3d. Read the comment docs.