Skip to content

Commit 95ea456

Browse files
authored
Merge pull request #165 from dartmouth-pbs/bf-datalad-metadata
Use .repo.set_metadata to stay compatible with upcoming datalad 0.10
2 parents ad4f35e + 3e119b3 commit 95ea456

File tree

2 files changed

+29
-26
lines changed

2 files changed

+29
-26
lines changed

heudiconv/external/dlad.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,34 @@
11
import os
22
import os.path as op
33
import logging
4+
from glob import glob
5+
from os import path as op
46

5-
from ..utils import create_file_if_missing, mark_sensitive
7+
from ..utils import create_file_if_missing
68

79
lgr = logging.getLogger(__name__)
810

911
MIN_VERSION = '0.7'
1012

13+
1114
def prepare_datalad(studydir, outdir, sid, session, seqinfo, dicoms, bids):
1215
""" Prepare data for datalad """
16+
from datalad.api import Dataset
1317
datalad_msg_suf = ' %s' % sid
1418
if session:
1519
datalad_msg_suf += ", session %s" % session
1620
if seqinfo:
1721
datalad_msg_suf += ", %d sequences" % len(seqinfo)
1822
datalad_msg_suf += ", %d dicoms" % (len(sum(seqinfo.values(), []))
1923
if seqinfo else len(dicoms))
20-
from datalad.api import Dataset
2124
ds = Dataset(studydir)
2225
if not op.exists(outdir) or not ds.is_installed():
2326
add_to_datalad(outdir, studydir,
2427
msg="Preparing for %s" % datalad_msg_suf,
2528
bids=bids)
2629
return datalad_msg_suf
2730

31+
2832
def add_to_datalad(topdir, studydir, msg, bids):
2933
"""Do all necessary preparations (if were not done before) and save
3034
"""
@@ -33,7 +37,7 @@ def add_to_datalad(topdir, studydir, msg, bids):
3337
from datalad.support.annexrepo import AnnexRepo
3438
from datalad.support.external_versions import external_versions
3539
assert external_versions['datalad'] >= MIN_VERSION, (
36-
"Need datalad >= {}".format(MIN_VERSION)) # add to reqs
40+
"Need datalad >= {}".format(MIN_VERSION)) # add to reqs
3741

3842
studyrelpath = op.relpath(studydir, topdir)
3943
assert not studyrelpath.startswith(op.pardir) # so we are under
@@ -133,3 +137,25 @@ def add_to_datalad(topdir, studydir, msg, bids):
133137
http://git-annex.branchable.com/tips/automatically_adding_metadata/
134138
- possibly even make separate sub-datasets for originaldata, derivatives ?
135139
"""
140+
141+
142+
def mark_sensitive(ds, path_glob):
143+
"""
144+
145+
Parameters
146+
----------
147+
ds : Dataset to operate on
148+
path_glob : str
149+
glob of the paths within dataset to work on
150+
151+
Returns
152+
-------
153+
None
154+
"""
155+
paths = glob(op.join(ds.path, path_glob))
156+
if not paths:
157+
return
158+
ds.repo.set_metadata(
159+
paths,
160+
init=[('distribution-restrictions', 'sensitive')],
161+
recursive=True)

heudiconv/utils.py

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import sys
88
import shutil
99
import copy
10-
import logging
1110
import stat
1211
import os.path as op
1312
from pathlib import Path
@@ -121,28 +120,6 @@ def create_file_if_missing(filename, content):
121120
return True
122121

123122

124-
def mark_sensitive(ds, path_glob=None):
125-
"""
126-
127-
Parameters
128-
----------
129-
ds : Dataset to operate on
130-
path_glob : str, optional
131-
glob of the paths within dataset to work on
132-
Returns
133-
-------
134-
None
135-
"""
136-
sens_kwargs = dict(
137-
init=[('distribution-restrictions', 'sensitive')]
138-
)
139-
if path_glob:
140-
paths = glob(op.join(ds.path, path_glob))
141-
if not paths:
142-
return
143-
sens_kwargs['path'] = paths
144-
ds.metadata(recursive=True, **sens_kwargs)
145-
146123
def read_config(infile):
147124
with open(infile, 'rt') as fp:
148125
info = eval(fp.read())

0 commit comments

Comments
 (0)