[cctbxbb] [git/cctbx] master: libtbx.clean_clutter runs isort in supported locations (612869130)
Aaron Brewster
asbrewster at lbl.gov
Thu Oct 26 10:25:10 PDT 2017
Hi Markus, I understand. I think a try import followed by a print
statement giving directions how to install it if not there could be
sufficient? Something like this:
try:
from isort.main import main
except ImportError:
print "isort not available. Run 'libtbx.python -m pip install isort' and
try again."
exit()
On Thu, Oct 26, 2017 at 10:19 AM, <markus.gerstel at diamond.ac.uk> wrote:
> Hi Aaron,
>
> I didn't want to add it as a dependency in bootstrap since it is
> definitely only a developer tool, and I wouldn't want to install it with a
> distribution.
> I guess we could just run it if it is installed and add a command to
> install this kinds of development stuff? What do you think?
>
> -Markus
>
> ________________________________
> From: cctbxbb-bounces at phenix-online.org [cctbxbb-bounces at phenix-online.org]
> on behalf of Aaron Brewster [asbrewster at lbl.gov]
> Sent: Thursday, October 26, 2017 17:54
> To: cctbx mailing list
> Cc: CCTBX-COMMIT at jiscmail.ac.uk
> Subject: Re: [cctbxbb] [git/cctbx] master: libtbx.clean_clutter runs isort
> in supported locations (612869130)
>
> Hi Markus, could isort be added as a dependency instead? If I understand
> this commit right, when running libtbx.clean_clutter, if .isort.cfg is
> present and isort is not installed, pip is invoked to install isort. l'm
> nervous about pip being imported anywhere in our code, especially to
> install things when running code unrelated to installation.
>
> It's important to keep installation of stuff separate from running of
> stuff. Otherwise, it's impossible to keep dependencies straight.
>
> -Aaron
>
> On Thu, Oct 26, 2017 at 2:29 AM, CCTBX Commit via DLS Jenkins <
> graeme.winter at gmail.com<mailto:graeme.winter at gmail.com>> wrote:
> Repository : ssh://g18-sc-serv-04.diamond.ac.uk/cctbx<http://g18-sc-
> serv-04.diamond.ac.uk/cctbx>
> On branch : master
>
> ________________________________
>
>
> commit 612869130a6210d49a573a3cff04416a9de67808
> Author: Markus Gerstel <markus.gerstel at diamond.ac.uk<mailto:
> markus.gerstel at diamond.ac.uk>>
> Date: Thu Oct 26 10:29:05 2017 +0100
>
> libtbx.clean_clutter runs isort in supported locations
>
>
> ________________________________
>
>
> 612869130a6210d49a573a3cff04416a9de67808
> libtbx/command_line/clean_clutter.py | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/libtbx/command_line/clean_clutter.py
> b/libtbx/command_line/clean_clutter.py
> index d49bf4c25..8fc2e53c8 100644
> --- a/libtbx/command_line/clean_clutter.py
> +++ b/libtbx/command_line/clean_clutter.py
> @@ -32,6 +32,24 @@ def clean_clutter_in(files, tabsize=8):
> os.remove(tmpname)
> raise
>
> +def isort(path):
> + try:
> + import mock
> + from isort.main import main
> + except ImportError:
> + # Install package if necessary
> + import pip
> + pip.main(['install', 'isort', 'mock'])
> + import mock
> + from isort.main import main
> + with mock.patch.object(sys, 'argv', ['isort', '-y', '-ac', '-vb']):
> + oldcwd = os.getcwd()
> + try:
> + os.chdir(path)
> + main()
> + finally:
> + os.chdir(oldcwd)
> +
> def run():
> opt_parser = (option_parser(
> usage="""
> @@ -60,6 +78,7 @@ by running svn commit.""")
> if co.committing and files:
> opt_parser.show_help()
> exit(1)
> + run_isort_in_path = False
> if co.committing:
> try:
> files = list(subversion.marked_for_commit())
> @@ -72,7 +91,14 @@ by running svn commit.""")
> else: dir = files[0]
> files = [ c.path for c in libtbx.file_clutter.gather([dir])
> if c.is_cluttered(flag_x=False) ]
> + if os.path.exists(os.path.join(dir, '.isort.cfg')):
> + run_isort_in_path = dir
> clean_clutter_in(files, tabsize=co.tabsize)
> + if run_isort_in_path:
> + try:
> + isort(run_isort_in_path)
> + except Exception as e:
> + print("Did not run isort (%s)" % str(e))
>
> if (__name__ == "__main__"):
> import sys
>
>
> --
> This e-mail and any attachments may contain confidential, copyright and or
> privileged material, and are for the use of the intended addressee only. If
> you are not the intended addressee or an authorised recipient of the
> addressee please notify us of receipt by returning the e-mail and do not
> use, copy, retain, distribute or disclose the information in or attached to
> the e-mail.
> Any opinions expressed within this e-mail are those of the individual and
> not necessarily of Diamond Light Source Ltd.
> Diamond Light Source Ltd. cannot guarantee that this e-mail or any
> attachments are free from viruses and we cannot accept liability for any
> damage which you may sustain as a result of software viruses which may be
> transmitted in or with the message.
> Diamond Light Source Limited (company no. 4375679). Registered in England
> and Wales with its registered office at Diamond House, Harwell Science and
> Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
>
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/cctbxbb/attachments/20171026/50e94cbf/attachment-0001.htm>
More information about the cctbxbb
mailing list