Python and PEP8 - Recommendations on breaking up long lines?
Jussi Piitulainen
jpiitula at ling.helsinki.fi
Thu Nov 28 01:12:43 EST 2013
Victor Hooi <victorhooi at gmail.com> writes:
> Hi,
>
> Also, forgot two other examples that are causing me grief:
cur.executemany("INSERT INTO foobar_foobar_files VALUES (?)",
[[os.path.relpath(filename, foobar_input_folder)]
for filename in filenames])
> I've already broken it up using the parentheses, not sure what's the
> tidy way to break it up again to fit under 80? In this case, the
> 80-character mark is hitting me around the "for filename" towards
> the end.
That's a natural break. I did it to your code above. Another is the
condition, if it's there:
cur.executemany("INSERT INTO foobar_foobar_files VALUES (?)",
[[os.path.relpath(filename, foobar_input_folder)]
for filename in filenames
if not filename.startswith('tmp')])
There's much freedom of indentation inside the brackets, but these
points are natural.
> and:
Put the long expression in parentheses and you are again free to break
and indent; I tend to have extra spaces inside these parentheses, but
I have no idea about any standards:
if ( os.path.join(root, file)
not in previously_processed_files and
os.path.join(root, file)[:-3]
not in previously_processed_files ):
> In this case, the 80-character mark is actually partway through
> "previously processed files" (the first occurrence)...
Try to find natural breaks, between phrases, and maybe highlight
operators by putting them in the beginning of a line like.
Or even this:
pre = previously_processed_files
if ( os.path.join(root, file) not in pre and
os.path.join(root, file)[:-3] not in pre ):
More information about the Python-list
mailing list