+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
+
+
+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