Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(792)

Unified Diff: l2tdevtools/helpers/review.py

Issue 340100043: [l2tdevtools] Add yapf helper #206 (Closed)
Patch Set: Changes after review Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: l2tdevtools/helpers/review.py
diff --git a/l2tdevtools/helpers/review.py b/l2tdevtools/helpers/review.py
index a72894f30d1a61f20205a8aae26c5c8e8aebcaf8..0a9584b669cca8bd4c3b08f337cc2e1cfd81f1fc 100644
--- a/l2tdevtools/helpers/review.py
+++ b/l2tdevtools/helpers/review.py
@@ -15,6 +15,7 @@ from l2tdevtools.helpers import pylint
from l2tdevtools.helpers import readthedocs
from l2tdevtools.helpers import sphinxapi
from l2tdevtools.helpers import upload
+from l2tdevtools.helpers import yapf
from l2tdevtools.helpers import git
from l2tdevtools.lib import netrcfile
@@ -28,6 +29,10 @@ class ReviewHelper(object):
r'\[({0:s})\] '.format(
'|'.join(projects.ProjectsHelper.SUPPORTED_PROJECTS)))
+ # Commands that trigger inspection (pylint, yapf) of changed files.
+ _CODE_INSPECTION_COMMANDS = frozenset(
+ ['create', 'merge', 'lint', 'lint-test', 'lint_test', 'update'])
+
def __init__(
self, command, project_path, github_origin, feature_branch, diffbase,
all_files=False, no_browser=False, no_confirm=False): # yapf: disable
@@ -194,9 +199,9 @@ class ReviewHelper(object):
if not self._codereview_helper.CloseIssue(codereview_issue_number):
print('Unable to close code review: {0!s}'.format(
codereview_issue_number)) # yapf: disable
- print((
- 'Close it manually on: https://codereview.appspot.com/'
- '{0!s}').format(codereview_issue_number))
+ print(
+ ('Close it manually on: https://codereview.appspot.com/'
+ '{0!s}').format(codereview_issue_number))
return True
@@ -362,7 +367,7 @@ class ReviewHelper(object):
self._sphinxapidoc_helper = sphinxapi.SphinxAPIDocHelper(
self._project_name)
# TODO: disable the version check for now since sphinx-apidoc 1.2.2
- # on Unbuntu 14.04 does not have the --version option. Re-enable when
+ # on Ubuntu 14.04 does not have the --version option. Re-enable when
# sphinx-apidoc 1.2.3 or later is introduced.
# if not self._sphinxapidoc_helper.CheckUpToDateVersion():
# print((
@@ -372,6 +377,47 @@ class ReviewHelper(object):
return True
+ def CheckStyle(self):
+ """Checks the code style of a change.
+
+ Returns:
+ bool: True if the code style check was successful or no style was defined.
+ """
+ yapf_helper = yapf.YAPFHelper()
+ configuration = yapf_helper.GetStyleConfig(self._project_path)
+ if not configuration:
+ return True
+
+ if self._command not in self._CODE_INSPECTION_COMMANDS:
+ return True
+
+ if not yapf_helper.CheckUpToDateVersion():
+ message = '{0:s} aborted - yapf version {1:s} or later required.'.format(
+ self._command.title(), pylint.PylintHelper.MINIMUM_VERSION)
+ print(message)
+ return False
+
+ if self._all_files:
+ diffbase = None
+ elif self._command == 'merge':
+ diffbase = 'origin/master'
+ else:
+ diffbase = self._diffbase
+
+ changed_python_files = self._git_helper.GetChangedPythonFiles(
+ diffbase=diffbase)
+
+ if not yapf_helper.CheckFiles(changed_python_files, configuration):
+ message = '{0:s} aborted - unable to pass style inspection.'.format(
+ self._command.title())
+ print(message)
+
+ if self._command == 'merge':
+ self._git_helper.DropUncommittedChanges()
+ return False
+
+ return True
+
# yapf: disable
def Lint(self):
"""Lints a review.
@@ -382,9 +428,7 @@ class ReviewHelper(object):
if self._project_name == 'l2tdocs':
return True
- if self._command not in (
- 'create', 'create-pr', 'create_pr', 'merge', 'lint', 'lint-test',
- 'lint_test', 'update'):
+ if self._command not in self._CODE_INSPECTION_COMMANDS:
return True
pylint_helper = pylint.PylintHelper()
@@ -455,8 +499,7 @@ class ReviewHelper(object):
commit_message = (
'Changes have been merged with master branch. '
'To close the review and clean up the feature branch you can run: '
- 'review.py close {0:s}'
- ).format(self._fork_feature_branch)
+ 'review.py close {0:s}').format(self._fork_feature_branch)
self._codereview_helper.AddMergeMessage(
codereview_issue_number, commit_message)
@@ -632,6 +675,7 @@ class ReviewHelper(object):
else:
description = user_input
+ # yapf: disable
if not self._codereview_helper.UpdateIssue(
self._codereview_issue_number, self._diffbase, description):
print('Unable to update code review: {0!s}'.format(
@@ -639,6 +683,7 @@ class ReviewHelper(object):
return False
return True
+ # yapf: enable
def UpdateAuthors(self):
"""Updates the authors.
« no previous file with comments | « .style.yapf ('k') | l2tdevtools/helpers/yapf.py » ('j') | l2tdevtools/helpers/yapf.py » ('J')

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b