[tor-commits] [stem/master] Include standardization on single quotes in our style checks

atagar at torproject.org atagar at torproject.org
Fri Apr 10 16:17:59 UTC 2015


commit fe48c81e5f08b949215e3f3ec334da68f37db819
Author: Damian Johnson <atagar at torproject.org>
Date:   Fri Apr 10 08:55:08 2015 -0700

    Include standardization on single quotes in our style checks
    
    While grepping around to standardize the nyx codebase I realized we can
    actually do a pretty good job of eliminating false positives. Including this in
    our style checks to make it easier for contributors to keep the codebase's
    conventions.
---
 run_tests.py            |    2 +-
 stem/util/test_tools.py |   17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/run_tests.py b/run_tests.py
index 0407ece..9903c61 100755
--- a/run_tests.py
+++ b/run_tests.py
@@ -78,7 +78,7 @@ PYFLAKES_TASK = Task(
 PEP8_TASK = Task(
   'running pep8',
   stem.util.test_tools.stylistic_issues,
-  args = (SRC_PATHS, True, True, True, True),
+  args = (SRC_PATHS, True, True, True, True, True),
   is_required = False,
   print_result = False,
 )
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index c84c58d..907af63 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -116,7 +116,7 @@ def is_pep8_available():
     return False
 
 
-def stylistic_issues(paths, check_two_space_indents = False, check_newlines = False, check_trailing_whitespace = False, check_exception_keyword = False):
+def stylistic_issues(paths, check_two_space_indents = False, check_newlines = False, check_trailing_whitespace = False, check_exception_keyword = False, prefer_single_quotes = False):
   """
   Checks for stylistic issues that are an issue according to the parts of PEP8
   we conform to. You can suppress PEP8 issues by making a 'test' configuration
@@ -157,6 +157,9 @@ def stylistic_issues(paths, check_two_space_indents = False, check_newlines = Fa
      Changing tuples in return value to be namedtuple instances, and adding the
      line that had the issue.
 
+  .. versionchanged:: 1.4.0
+     Added the prefer_single_quotes option.
+
   :param list paths: paths to search for stylistic issues
   :param bool check_two_space_indents: check for two space indentations and
     that no tabs snuck in
@@ -166,6 +169,8 @@ def stylistic_issues(paths, check_two_space_indents = False, check_newlines = Fa
     trailing whitespace
   :param bool check_exception_keyword: checks that we're using 'as' for
     exceptions rather than a comma
+  :param bool prefer_single_quotes: standardize on using single rather than
+    double quotes for strings, when reasonable
 
   :returns: **dict** of the form ``path => [(line_number, message)...]``
   """
@@ -227,6 +232,16 @@ def stylistic_issues(paths, check_two_space_indents = False, check_newlines = Fa
 
           issues.setdefault(path, []).append(Issue(index + 1, "except clause should use 'as', not comma", line))
 
+        if prefer_single_quotes and line and not is_block_comment:
+          content = line.strip().split('#', 1)[0]
+
+          if '"' in content and "'" not in content and '"""' not in content:
+            # Checking if the line already has any single quotes since that
+            # usually means double quotes are preferable for the content (for
+            # instance "I'm hungry").
+
+            issues.setdefault(path, []).append(Issue(index + 1, "use single rather than double quotes", line))
+
   return issues
 
 





More information about the tor-commits mailing list