| """Docstring.""" |
| |
| |
| # leading comment |
| def f(): |
| NO = '' |
| SPACE = ' ' |
| DOUBLESPACE = ' ' |
| |
| t = leaf.type |
| p = leaf.parent # trailing comment |
| v = leaf.value |
| |
| if t in ALWAYS_NO_SPACE: |
| pass |
| if t == token.COMMENT: # another trailing comment |
| return DOUBLESPACE |
| |
| |
| assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" |
| |
| |
| prev = leaf.prev_sibling |
| if not prev: |
| prevp = preceding_leaf(p) |
| if not prevp or prevp.type in OPENING_BRACKETS: |
| |
| |
| return NO |
| |
| |
| if prevp.type == token.EQUAL: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.argument, |
| }: |
| return NO |
| |
| elif prevp.type == token.DOUBLESTAR: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.dictsetmaker, |
| }: |
| return NO |
| |
| ############################################################################### |
| # SECTION BECAUSE SECTIONS |
| ############################################################################### |
| |
| def g(): |
| NO = '' |
| SPACE = ' ' |
| DOUBLESPACE = ' ' |
| |
| t = leaf.type |
| p = leaf.parent |
| v = leaf.value |
| |
| # Comment because comments |
| |
| if t in ALWAYS_NO_SPACE: |
| pass |
| if t == token.COMMENT: |
| return DOUBLESPACE |
| |
| # Another comment because more comments |
| assert p is not None, f'INTERNAL ERROR: hand-made leaf without parent: {leaf!r}' |
| |
| prev = leaf.prev_sibling |
| if not prev: |
| prevp = preceding_leaf(p) |
| |
| if not prevp or prevp.type in OPENING_BRACKETS: |
| # Start of the line or a bracketed expression. |
| # More than one line for the comment. |
| return NO |
| |
| if prevp.type == token.EQUAL: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.argument, |
| }: |
| return NO |
| |
| |
| # output |
| |
| |
| """Docstring.""" |
| |
| |
| # leading comment |
| def f(): |
| NO = "" |
| SPACE = " " |
| DOUBLESPACE = " " |
| |
| t = leaf.type |
| p = leaf.parent # trailing comment |
| v = leaf.value |
| |
| if t in ALWAYS_NO_SPACE: |
| pass |
| if t == token.COMMENT: # another trailing comment |
| return DOUBLESPACE |
| |
| assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" |
| |
| prev = leaf.prev_sibling |
| if not prev: |
| prevp = preceding_leaf(p) |
| if not prevp or prevp.type in OPENING_BRACKETS: |
| |
| return NO |
| |
| if prevp.type == token.EQUAL: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.argument, |
| }: |
| return NO |
| |
| elif prevp.type == token.DOUBLESTAR: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.dictsetmaker, |
| }: |
| return NO |
| |
| |
| ############################################################################### |
| # SECTION BECAUSE SECTIONS |
| ############################################################################### |
| |
| |
| def g(): |
| NO = "" |
| SPACE = " " |
| DOUBLESPACE = " " |
| |
| t = leaf.type |
| p = leaf.parent |
| v = leaf.value |
| |
| # Comment because comments |
| |
| if t in ALWAYS_NO_SPACE: |
| pass |
| if t == token.COMMENT: |
| return DOUBLESPACE |
| |
| # Another comment because more comments |
| assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" |
| |
| prev = leaf.prev_sibling |
| if not prev: |
| prevp = preceding_leaf(p) |
| |
| if not prevp or prevp.type in OPENING_BRACKETS: |
| # Start of the line or a bracketed expression. |
| # More than one line for the comment. |
| return NO |
| |
| if prevp.type == token.EQUAL: |
| if prevp.parent and prevp.parent.type in { |
| syms.typedargslist, |
| syms.varargslist, |
| syms.parameters, |
| syms.arglist, |
| syms.argument, |
| }: |
| return NO |