aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <morbo@google.com>2018-03-27 00:15:30 -0700
committerBill Wendling <morbo@google.com>2018-03-27 00:43:37 -0700
commit5b40ffe6b9a85432e4ef3ed632623f7718ad98a1 (patch)
treee5749cef8ced85d10b787ef110880f117113f5cf
parentd5df20819ea54fb501ef3e506e8c81e7645ae9ce (diff)
downloadyapf-5b40ffe6b9a85432e4ef3ed632623f7718ad98a1.tar.gz
A comment before a decorator isn't part of the decorator.
-rw-r--r--CHANGELOG1
-rw-r--r--yapf/yapflib/pytree_unwrapper.py6
-rw-r--r--yapf/yapflib/pytree_utils.py4
-rw-r--r--yapftests/reformatter_buganizer_test.py12
4 files changed, 21 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 0a00c8c..699428b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -15,6 +15,7 @@
### Fixed
- Attempt to determine if long lambdas are allowed. This can be done on a
case-by-case basis with a "pylint" disable comment.
+- A comment before a decorator isn't part of the decorator's line.
## [0.21.0] 2018-03-18
### Added
diff --git a/yapf/yapflib/pytree_unwrapper.py b/yapf/yapflib/pytree_unwrapper.py
index f6be260..bbb5cdb 100644
--- a/yapf/yapflib/pytree_unwrapper.py
+++ b/yapf/yapflib/pytree_unwrapper.py
@@ -222,6 +222,12 @@ class PyTreeUnwrapper(pytree_visitor.PyTreeVisitor):
for child in node.children[index].children:
self.Visit(child)
+ def Visit_decorator(self, node): # pylint: disable=invalid-name
+ for child in node.children:
+ self.Visit(child)
+ if pytree_utils.NodeName(child) == 'COMMENT':
+ self._StartNewLine()
+
def Visit_decorators(self, node): # pylint: disable=invalid-name
for child in node.children:
self._StartNewLine()
diff --git a/yapf/yapflib/pytree_utils.py b/yapf/yapflib/pytree_utils.py
index 3444f44..d89588f 100644
--- a/yapf/yapflib/pytree_utils.py
+++ b/yapf/yapflib/pytree_utils.py
@@ -268,7 +268,7 @@ def GetOpeningBracket(node):
Returns:
The opening bracket node or None if it couldn't find one.
"""
- return getattr(node, _NODE_ANNOTATION_PREFIX + "container_bracket", None)
+ return getattr(node, _NODE_ANNOTATION_PREFIX + 'container_bracket', None)
def SetOpeningBracket(node, bracket):
@@ -278,7 +278,7 @@ def SetOpeningBracket(node, bracket):
node: the node.
bracket: opening bracket to set.
"""
- setattr(node, _NODE_ANNOTATION_PREFIX + "container_bracket", bracket)
+ setattr(node, _NODE_ANNOTATION_PREFIX + 'container_bracket', bracket)
def DumpNodeToString(node):
diff --git a/yapftests/reformatter_buganizer_test.py b/yapftests/reformatter_buganizer_test.py
index 5b50c28..914befc 100644
--- a/yapftests/reformatter_buganizer_test.py
+++ b/yapftests/reformatter_buganizer_test.py
@@ -28,6 +28,18 @@ class BuganizerFixes(yapf_test_helper.YAPFTest):
def setUpClass(cls):
style.SetGlobalStyle(style.CreateChromiumStyle())
+ def testB38343525(self):
+ code = """\
+# This does foo.
+@arg.String('some_path_to_a_file', required=True)
+# This does bar.
+@arg.String('some_path_to_a_file', required=True)
+def f():
+ print 1
+"""
+ uwlines = yapf_test_helper.ParseAndUnwrap(code)
+ self.assertCodeEqual(code, reformatter.Reformat(uwlines))
+
def testB37099651(self):
unformatted_code = """\
_MEMCACHE = lazy.MakeLazy(