Search code examples
pythonassertpep8

How to format a python assert statement that complies with PEP8?


How does one format a long assert statement that complies with PEP8? Please ignore the contrived nature of my example.

def afunc(some_param_name):
    assert isinstance(some_param_name, SomeClassName), 'some_param_name must be an instance of SomeClassName, silly goose!'

One cannot wrap it in parenthesis, because that changes the behavior of the assert statement since it is a keyword, not a builtin function.


Solution

  • It's important to remember that PEP8 is only a guideline and even states that there are times when the rules should be broken.

    But most importantly: know when to be inconsistent -- sometimes the style guide just doesn't apply.

    With that in mind, I would probably write this with old style line continuation:

    def afunc(some_param_name):
        assert isinstance(some_param_name, SomeClassName), \ 
               'some_param_name must be an instance of SomeClassName, silly goose!'
    

    If that doesn't sit well with you (or your linter), you can always do:

    def afunc(some_param_name):
        assert isinstance(some_param_name, SomeClassName), ( 
               'some_param_name must be an instance of SomeClassName, silly goose!')
    

    or even:

    def afunc(some_param_name):
        assert isinstance(some_param_name, SomeClassName), ( 
               'some_param_name must be an instance of SomeClassName, '
               'silly goose!')