[cctbxbb] [git/cctbx] master: Add --print_statement checking capability to libtbx.find_clutter (d499b973b)
Aaron Brewster
asbrewster at lbl.gov
Thu Oct 19 14:01:41 PDT 2017
Hi, should this have been
from __future__ import print_function
?
Thanks,
-Aaron
On Thu, Oct 19, 2017 at 1:33 PM, CCTBX Commit via DLS Jenkins <
graeme.winter at gmail.com> wrote:
> Repository : ssh://g18-sc-serv-04.diamond.ac.uk/cctbx
> On branch : master
>
> ------------------------------
>
>
> commit d499b973be4c0443e607fbad13e495bb450938a3
> Author: Markus Gerstel <markus.gerstel at diamond.ac.uk>
> Date: Thu Oct 19 21:33:54 2017 +0100
>
> Add --print_statement checking capability to libtbx.find_clutter
>
>
> ------------------------------
>
>
> d499b973be4c0443e607fbad13e495bb450938a3
> libtbx/command_line/find_clutter.py | 12 +++++++++++-
> libtbx/file_clutter.py | 23 +++++++++++++++++++----
> 2 files changed, 30 insertions(+), 5 deletions(-)
>
> diff --git a/libtbx/command_line/find_clutter.py
> b/libtbx/command_line/find_clutter.py
> index 27baa6d7b..66f4b46eb 100644
> --- a/libtbx/command_line/find_clutter.py
> +++ b/libtbx/command_line/find_clutter.py
> @@ -13,6 +13,7 @@ def run(args):
> only_dos = False
> only_future = False
> flag_absolute_import = False
> + flag_print_statement = False
> #
> paths = []
> for arg in args:
> @@ -34,6 +35,8 @@ def run(args):
> only_future = True
> elif (arg == "--absolute_import"):
> flag_absolute_import = True
> + elif (arg == "--print_statement"):
> + flag_print_statement = True
> else:
> paths.append(arg)
> if (len(paths) == 0): paths = ["."]
> @@ -45,9 +48,12 @@ def run(args):
> n_too_many_from_future_import_division = 0
> n_missing_from_future_import_absolute_import = 0
> n_too_many_from_future_import_absolute_import = 0
> + n_missing_from_future_import_print_statement = 0
> + n_too_many_from_future_import_print_statement = 0
> n_bad_indentation = 0
> for info in gather(paths=paths, find_unused_imports=not flag_ni,
> - find_bad_indentation=flag_indentation, flag_absolute_import=flag_
> absolute_import):
> + find_bad_indentation=flag_indentation, flag_absolute_import=flag_
> absolute_import,
> + flag_print_statement=flag_print_statement):
> if (info.is_cluttered(flag_x=flag_x)):
> n_is_cluttered += 1
> if (info.n_bare_excepts > 0):
> @@ -62,6 +68,10 @@ def run(args):
> n_missing_from_future_import_absolute_import += 1
> elif info.n_from_future_import_absolute_import > 1:
> n_too_many_from_future_import_absolute_import += 1
> + if info.n_from_future_import_print_statement == 0:
> + n_missing_from_future_import_print_statement += 1
> + elif info.n_from_future_import_print_statement > 1:
> + n_too_many_from_future_import_print_statement += 1
> if (info.bad_indentation is not None) and (flag_indentation) :
> n_bad_indentation += 1
> info.show(
> diff --git a/libtbx/file_clutter.py b/libtbx/file_clutter.py
> index 8af972751..768f06491 100644
> --- a/libtbx/file_clutter.py
> +++ b/libtbx/file_clutter.py
> @@ -11,9 +11,12 @@ class file_clutter(object):
> '^ from [ ]+ __future__ [ ]+ import [ \w,]+ division', re.VERBOSE)
> from_future_import_absolute_import_pat = re.compile(
> '^ from [ ]+ __future__ [ ]+ import [ \w,]+ absolute_import',
> re.VERBOSE)
> + from_future_import_print_statement_pat = re.compile(
> + '^ from [ ]+ __future__ [ ]+ import [ \w,]+ print_statement',
> re.VERBOSE)
>
> def __init__(self, path, find_unused_imports=False,
> - find_bad_indentation=True, flag_absolute_import=False):
> + find_bad_indentation=True, flag_absolute_import=False,
> + flag_print_statement=False):
> self.path = path
> self.is_executable = os.access(path, os.X_OK)
> self.dos_format = False
> @@ -25,6 +28,8 @@ class file_clutter(object):
> self.n_from_future_import_division = None
> self.flag_absolute_import = flag_absolute_import
> self.n_from_future_import_absolute_import = None
> + self.flag_print_statement = flag_print_statement
> + self.n_from_future_import_print_statement = None
> self.bad_indentation = None
> self.file_should_be_empty = False
> bytes = open(path, "rb").read()
> @@ -45,6 +50,7 @@ class file_clutter(object):
> if (path.endswith(".py")):
> self.n_from_future_import_division = 0
> self.n_from_future_import_absolute_import = 0
> + self.n_from_future_import_print_statement = 0
> py_lines = bytes.splitlines()
> self.file_should_be_empty = True
> for line in py_lines:
> @@ -54,6 +60,8 @@ class file_clutter(object):
> self.n_from_future_import_division += 1
> if self.from_future_import_absolute_import_pat.search(line):
> self.n_from_future_import_absolute_import += 1
> + if self.from_future_import_print_statement_pat.search(line):
> + self.n_from_future_import_print_statement += 1
> ls = line.strip()
> if ( ls.startswith("except")
> and ls[6:].strip().startswith(":")
> @@ -103,7 +111,8 @@ class file_clutter(object):
> if (self.has_unused_imports()):
> sapp("unused imports=%d" % len(self.unused_imports))
> if self.file_should_be_empty:
> - if self.n_from_future_import_division == 0 and
> self.n_from_future_import_absolute_import == 0:
> + if self.n_from_future_import_division == 0 and
> self.n_from_future_import_absolute_import == 0 and \
> + self.n_from_future_import_print_statement:
> sapp("file is empty, should be 0 byte file")
> else:
> sapp("file contains only 'from __future__ import' and should be
> empty instead")
> @@ -116,6 +125,11 @@ class file_clutter(object):
> sapp("missing 'from __future__ import absolute_import'")
> elif self.n_from_future_import_absolute_import > 1:
> sapp("more than one appearance of 'from __future__ import
> absolute_import'")
> + if self.flag_print_statement and not self.file_should_be_empty:
> + if self.n_from_future_import_print_statement == 0:
> + sapp("missing 'from __future__ import print_statement'")
> + elif self.n_from_future_import_print_statement > 1:
> + sapp("more than one appearance of 'from __future__ import
> print_statement'")
> if (self.bad_indentation is not None) and (flag_indentation) :
> n_tab, n_space = self.bad_indentation
> sapp("non-standard indentation: %d space, %d tab" % (n_space,
> n_tab))
> @@ -144,11 +158,12 @@ def is_text_file(file_name):
> if (name.endswith(extension)): return True
> return False
>
> -def gather(paths, find_unused_imports=False, find_bad_indentation=False,
> flag_absolute_import=False):
> +def gather(paths, find_unused_imports=False, find_bad_indentation=False,
> flag_absolute_import=False, flag_print_statement=False):
> clutter = []
> def capp():
> clutter.append(file_clutter(path, find_unused_imports,
> - find_bad_indentation=find_bad_indentation,
> flag_absolute_import=flag_absolute_import))
> + find_bad_indentation=find_bad_indentation,
> flag_absolute_import=flag_absolute_import,
> + flag_print_statement=flag_print_statement))
> for path in paths:
> if (not os.path.exists(path)):
> print >> sys.stderr, "No such file or directory:", path
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://phenix-online.org/pipermail/cctbxbb/attachments/20171019/a228c27f/attachment.htm>
More information about the cctbxbb
mailing list