Search code examples
pythoncoding-stylepep8

How can I break a line of chained methods in Python?


I have a line of the following code (don't blame for naming conventions, they are not mine):

subkeyword = Session.query(
    Subkeyword.subkeyword_id, Subkeyword.subkeyword_word
).filter_by(
    subkeyword_company_id=self.e_company_id
).filter_by(
    subkeyword_word=subkeyword_word
).filter_by(
    subkeyword_active=True
).one()

I don't like how it looks like (not too readable), but I don't have any better idea to limit lines to 79 characters in this situation. Is there a better way of breaking it (preferably without backslashes)?


Solution

  • You could use additional parentheses:

    subkeyword = (
            Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word)
            .filter_by(subkeyword_company_id=self.e_company_id)
            .filter_by(subkeyword_word=subkeyword_word)
            .filter_by(subkeyword_active=True)
            .one()
        )