Hi Victor, I use PyCharm which is set up by default to warn when line length exceeds 120 chars, not 80. Perhaps times have changed?
I often break comprehensions at the for, in and else clauses. It's often not for line length reasons but because it's easier to follow the code that way. I have heard this is how Haskell programmers tend to use comprehensions (comprehensions are from Haskell originally): location=random.choice([loc['pk'] for loc in locations.whole_register() if loc['fields']['provider_id'] == provider_id]))) The other suggestion I have is to put the with clauses in a generator function. This saves you a level or more of indentation and modularises the code usefully. Here's an example: def spreadsheet(csv_filename): with open(csv_filename) as csv_file: for csv_row in list(csv.DictReader(csv_file, delimiter='\t')): yield csv_row then invoked using: for row in spreadsheet("...") # your processing code here Cheers, Nick -- https://mail.python.org/mailman/listinfo/python-list