Skip to content

Commit 6a024f4

Browse files
authored
Merge pull request #45 from mgxd/enh/auto-update
ENH: Run an automatic skeleton update on import by default
2 parents 7a08e40 + ea7dd5c commit 6a024f4

File tree

5 files changed

+27
-42
lines changed

5 files changed

+27
-42
lines changed

.github/workflows/pythonpackage.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ jobs:
7474
rm -rf ${TEMPLATEFLOW_HOME}/tpl-MNI152NLin2009cAsym
7575
source /tmp/install_sdist/bin/activate
7676
python -m pip install dist/templateflow*.tar.gz
77+
python -c "import templateflow; templateflow.update(overwrite=False)"
7778
find ${TEMPLATEFLOW_HOME} >> /tmp/.sdist-install-2.txt
7879
diff /tmp/.sdist-install.txt /tmp/.sdist-install-2.txt
7980
exit $?
@@ -138,6 +139,7 @@ jobs:
138139
rm -rf ${TEMPLATEFLOW_HOME}/tpl-MNI152NLin2009cAsym
139140
source /tmp/setup_install/bin/activate
140141
python setup.py install
142+
python -c "import templateflow; templateflow.update(overwrite=False)"
141143
find ${TEMPLATEFLOW_HOME} >> /tmp/.setup-install-2.txt
142144
diff /tmp/.setup-install.txt /tmp/.setup-install-2.txt
143145
exit $?
@@ -170,6 +172,7 @@ jobs:
170172
rm -rf ${TEMPLATEFLOW_HOME}/tpl-MNI152NLin2009cAsym
171173
source /tmp/setup_develop/bin/activate
172174
python setup.py develop
175+
python -c "import templateflow; templateflow.update(overwrite=False)"
173176
find ${TEMPLATEFLOW_HOME} >> /tmp/.setup-develop-2.txt
174177
diff /tmp/.setup-develop.txt /tmp/.setup-develop-2.txt
175178
exit $?

setup.py

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
"""Templateflow's setup script."""
33
import sys
44
from setuptools import setup
5-
from setuptools.command.install import install
6-
from setuptools.command.develop import develop
75

86

97
# Give setuptools a hint to complain if it's too old a version
@@ -18,38 +16,9 @@
1816
# This enables setuptools to install wheel on-the-fly
1917
SETUP_REQUIRES += ["wheel"] if "bdist_wheel" in sys.argv else []
2018

21-
22-
def make_cmdclass(basecmd):
23-
"""Decorate setuptools commands."""
24-
base_run = basecmd.run
25-
26-
def new_run(self):
27-
from templateflow.conf import setup_home
28-
29-
setup_home()
30-
base_run(self)
31-
32-
basecmd.run = new_run
33-
return basecmd
34-
35-
36-
@make_cmdclass
37-
class CheckHomeDevCommand(develop):
38-
"""Setuptools command."""
39-
40-
41-
@make_cmdclass
42-
class CheckHomeProdCommand(install):
43-
"""Setuptools command."""
44-
45-
4619
if __name__ == "__main__":
4720
""" Install entry-point """
4821
setup(
4922
name="templateflow",
5023
setup_requires=SETUP_REQUIRES,
51-
cmdclass={
52-
"develop": CheckHomeDevCommand,
53-
"install": CheckHomeProdCommand,
54-
},
5524
)

templateflow/__init__.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,20 @@
1414
del get_distribution
1515
del DistributionNotFound
1616

17+
import os
1718
from . import api
18-
from .conf import update
19+
from .conf import update, TF_USE_DATALAD
20+
21+
22+
if not TF_USE_DATALAD and os.getenv("TEMPLATEFLOW_AUTOUPDATE", "1") not in (
23+
"false",
24+
"off",
25+
"0",
26+
"no",
27+
"n",
28+
):
29+
# trigger skeleton autoupdate
30+
update(local=True, overwrite=False, silent=True)
1931

2032
__all__ = [
2133
'__copyright__',

templateflow/conf/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@
4242
_update_s3(TF_HOME, local=True, overwrite=True)
4343

4444

45-
def update(local=False, overwrite=True):
45+
def update(local=False, overwrite=True, silent=False):
4646
"""Update an existing DataLad or S3 home."""
4747
if TF_USE_DATALAD and _update_datalad():
4848
return True
4949

5050
from ._s3 import update as _update_s3
5151

52-
return _update_s3(TF_HOME, local=local, overwrite=overwrite)
52+
return _update_s3(TF_HOME, local=local, overwrite=overwrite, silent=silent)
5353

5454

5555
def setup_home(force=False):

templateflow/conf/_s3.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
).read_text()
1414

1515

16-
def update(dest, local=True, overwrite=True):
16+
def update(dest, local=True, overwrite=True, silent=False):
1717
"""Update an S3-backed TEMPLATEFLOW_HOME repository."""
1818
skel_file = Path((_get_skeleton_file() if not local else None) or TF_SKEL_PATH)
1919

20-
retval = _update_skeleton(skel_file, dest, overwrite=overwrite)
20+
retval = _update_skeleton(skel_file, dest, overwrite=overwrite, silent=silent)
2121
if skel_file != TF_SKEL_PATH:
2222
skel_file.unlink()
2323
return retval
@@ -45,7 +45,7 @@ def _get_skeleton_file():
4545
return skel_file
4646

4747

48-
def _update_skeleton(skel_file, dest, overwrite=True):
48+
def _update_skeleton(skel_file, dest, overwrite=True, silent=False):
4949
from zipfile import ZipFile
5050

5151
dest = Path(dest)
@@ -62,11 +62,12 @@ def _update_skeleton(skel_file, dest, overwrite=True):
6262
]
6363
newfiles = sorted(set(allfiles) - set(existing))
6464
if newfiles:
65-
print(
66-
"Updating TEMPLATEFLOW_HOME using S3. "
67-
"Adding: \n%s" % "\n".join(newfiles)
68-
)
65+
if not silent:
66+
print(
67+
"Updating TEMPLATEFLOW_HOME using S3. Adding:\n%s" % '\n'.join(newfiles)
68+
)
6969
zipref.extractall(str(dest), members=newfiles)
7070
return True
71-
print("TEMPLATEFLOW_HOME directory (S3 type) was up-to-date.")
71+
if not silent:
72+
print("TEMPLATEFLOW_HOME directory (S3 type) was up-to-date.")
7273
return False

0 commit comments

Comments
 (0)