From 70c381d9f4538eff92c5b5a3a478a47aed4c607a Mon Sep 17 00:00:00 2001 From: Jeppe Klitgaard Date: Mon, 6 Apr 2015 01:36:06 +0200 Subject: [PATCH] pylint-full.py should now be windows compatible --- bin/pylint-full.py | 38 ++++++++++++++++++++++++++------------ tox.ini | 6 +++--- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/bin/pylint-full.py b/bin/pylint-full.py index 34b94cc..d17ee20 100644 --- a/bin/pylint-full.py +++ b/bin/pylint-full.py @@ -7,12 +7,14 @@ this program will exit with exit code 1. __doc__ = DOCSTR -from sh import pylint -from sh import ErrorReturnCode +import subprocess +import os import sys import re import argparse +os.chdir("..") # leave bin/ + parser = argparse.ArgumentParser(DOCSTR) parser.add_argument("--min-eval", dest="min_eval", type=float, default=10.00, @@ -22,20 +24,32 @@ parser.add_argument("--min-eval", dest="min_eval", type=float, default=10.00, args = parser.parse_args() -PYLINT_ARGS = ("minecraft", "--disable=E") +PYLINT = ("pylint", "minecraft", "--disable=E") +EVAL_PATTERN = (r"Global evaluation\n-----------------\n" + r"Your code has been rated at (\d*\.\d+)/10") -try: - output = pylint(*PYLINT_ARGS) -except ErrorReturnCode as e: - output = e.stdout -output = output.decode() -global_eval_pattern = re.compile(r"Global evaluation\n-----------------\n" - r"Your code has been rated at (\d*\.\d+)/10") +def get_evaluation_score_and_output(): + """ + Returns a tuple containing ``(output, eval_score)`` where: + ``output`` is a ``str`` with the pylint output. + ``eval_score`` is a ``float`` with the pylint evaluation score + """ + try: + output = subprocess.check_output(PYLINT) + except subprocess.CalledProcessError as e: + output = e.output + output = output.decode() -match = global_eval_pattern.search(output) -evaluation = float(match.group(1)) + global_eval_pattern = re.compile(EVAL_PATTERN) + match = global_eval_pattern.search(output) + + evaluation = float(match.group(1)) + + return (output, evaluation) + +output, evaluation = get_evaluation_score_and_output() print(output) # We want to appear as if we're pylint if evaluation < args.min_eval: diff --git a/tox.ini b/tox.ini index 9bba141..ad7c288 100644 --- a/tox.ini +++ b/tox.ini @@ -36,7 +36,7 @@ deps = [testenv:flake8] basepython = python3.4 commands = - flake8 minecraft tests bin/*.py setup.py start.py + flake8 minecraft tests setup.py deps = {[testenv]deps} flake8 @@ -53,9 +53,9 @@ basepython = python3.4 deps = {[testenv]deps} pylint - sh +changedir = bin commands = - python {toxinidir}/bin/pylint-full.py --min-eval=9.5 + python pylint-full.py --min-eval=9.5 [testenv:docs] basepython = python3.4