diff --git a/install_wfm_stitching.py b/install_wfm_stitching.py index a6b6743e8da2e7481f2fefe60df6c3b77f40e185..b187fac0e2c336efbdf6d52ea8987c545ee1bce3 100644 --- a/install_wfm_stitching.py +++ b/install_wfm_stitching.py @@ -11,7 +11,7 @@ You can install from the command line using the lauch_mantid_plot executable wit (execute and quit) option set, you can also pass a version to installation script, if not provided it will fetch the latest wfm_stitching package. -Example: +Example on windows: C:\\MantidInstall\\bin\\launch_mantidplot -x install_wfm_stitching.py @@ -23,22 +23,46 @@ import subprocess from argparse import ArgumentParser import os import sys +import re -def do_wfm_stitching_install(python, required_version): - url = 'git+http://git.esss.dk/wedel/wfm_stitching.git' +def extract_upload_url(python, required_version=None): + """ From gitlab project releases fetch the download url for the release matching the tag + """ + try: + import gitlab + except ImportError: + subprocess.check_call([python, '-m', 'pip', 'install', '--upgrade', '--user', 'python-gitlab']) + import gitlab + + gl = gitlab.Gitlab('https://git.esss.dk') + project = gl.projects.list(search='wfm_stitching')[0] if required_version: - url = '{0}@{1}'.format(url, required_version) - subprocess.check_call([python, '-m' 'pip', 'install', '--user', '--upgrade', url]) + tag = project.tags.get(required_version) + else: + # Get the latest tag + tag = project.tags.list(order_by='updated', sort='desc')[0] + description = tag.attributes['release']['description'] + # Search for mark-down style upload in the form [link-text](upload-url) and extract upload-url + upload = re.search('\[.*\]\((.*)\)', description).group(1) + # Join with the project web url to obtain the full address + upload_url = project.attributes['web_url'] + upload + return upload_url + + +def do_wfm_stitching_install(python, required_version): + url = extract_upload_url(python, required_version) + subprocess.check_call([python, '-m', 'pip', 'install', '--user', '--upgrade', url]) def do_wfm_stitching_uninstall(python): """Convenience function to allow the removal of the wfm-stitching package""" - subprocess.check_call([python, '-m' 'pip', 'uninstall', '-y', 'wfm-stitching']) + subprocess.check_call([python, '-m', 'pip', 'uninstall', '-y', 'wfm_stitching']) + subprocess.check_call([python, '-m', 'pip', 'uninstall', '-y', 'python-gitlab']) if __name__ == "__main__": parser = ArgumentParser(description='Install WFM package http://git.esss.dk/wedel/wfm_sitching') - parser.add_argument('-v', '--version', default=None, - help='optionally specify the version you wish to use i.e. v0.1.2.' - 'Defaults to latest version. Version must match git tag version.') + parser.add_argument('-v', '--version', default='v0.1.0', + help='Specify the version you wish to use i.e. v0.1.2.' + 'Defaults to version v0.1.0. Version must match git tag version.') parser.add_argument('-u', '--uninstall', action='store_true', default=False, help='uninstall any existing wfm-stitching package') args = parser.parse_args() interpreter = os.path.join(os.path.dirname(sys.executable), 'python') diff --git a/installation.md b/installation.md index 042a42916439b90a4d096ab76f10cef197f6e5b7..af0ca29f509085b18ead4917acbf27b423150fbd 100644 --- a/installation.md +++ b/installation.md @@ -47,4 +47,12 @@ If this works without issue then, skip forward to the installation of wfm-stitch On OSX this would be done via `export PYTHONPATH=/Applications/MantidPlot.app/Contents/MacOS`, or on linux via `export PYTHONPATH=/opt/Mantid/bin`. After doing this, recheck that the mantid modules are in the python path via `/usr/bin/python -c "import mantid"``, which should produce no error. +### Astropy caveat and versioning + +Astropy, the up-to-date pacakge for loading fits files, [does not install cleanly](http://docs.astropy.org/en/stable/install.html) via pip without a c++ compiler. While we work around this issue, the default will be to install `v0.1.0` (see tags) of the WFM stitching package, which depends on the deprecated [pyfits](https://pythonhosted.org/pyfits/) package. Note that you will see this warning at present, but it should not cause alarm. + +```PyFITS is deprecated, please use astropy.io.fits PyFITSDeprecationWarning``` + + If you want to use astropy, instead and have a suitable environement to support it, you can install it by using `v0.1.2` of this package, which you can pass as a command line argument (`-v`) to the [installation script](https://git.esss.dk/wedel/wfm_stitching/raw/master/install_wfm_stitching.py). +