while True: if something.changed: do.stuff() # trailing comment # Comment belongs to the `if` block. # This one belongs to the `while` block. # Should this one, too? I guess so. # This one is properly standalone now. for i in range(100): # first we do this if i % 33 == 0: break # then we do this print(i) # and finally we loop around with open(some_temp_file) as f: data = f.read() try: with open(some_other_file) as w: w.write(data) except OSError: print("problems") import sys # leading function comment def wat(): ... # trailing function comment # SECTION COMMENT # leading 1 @deco1 # leading 2 @deco2(with_args=True) # leading 3 @deco3 def decorated1(): ... # leading 1 @deco1 # leading 2 @deco2(with_args=True) # leading function comment def decorated1(): ... # Note: crappy but inevitable. The current design of EmptyLineTracker doesn't # allow this to work correctly. The user will have to split those lines by # hand. some_instruction # This comment should be split from `some_instruction` by two lines but isn't. def g(): ... if __name__ == "__main__": main()