Skip to content

debug reports indentation error inside of if-else blocks within __init__ #85

Closed
@awray3

Description

@awray3

I noticed this strange behavior when using debug to debug some if-else blocks in my code. Here is a small script to recreate the bug.

# script.py
from devtools import debug

class Test:
    def __init__(self, flag: bool):
        if flag:
            debug('Flag was true')
        else:
            debug('Flag was false')

# instantiate this class with True flag
test = Test(flag=True)

Output of python script.py:

script.py:7 __init__ (error parsing code, IndentationError: unindent does not match any outer indentation level (script.py, line 3))
    'Flag was true' (str) len=13

There is no indentation error in the code, and furthermore, I notice that adding something benign after the debug statement makes this go away. For example, if instead script.py looks like this, there is no issue:

# script2.py
from devtools import debug


class Test:
    def __init__(self, flag):
        if flag:
            debug('Flag was true')
            print('This helps debug out for some reason.')
        else:
            debug('Flag was false')

test = Test(True)

Output of python script2.py (which I expect to happen normally):

script2.py:7 __init__
    'Flag was true' (str) len=13
This helps debug out for some reason.

Environment info: I tested this by creating a new conda environment with python 3.7.

$ conda --version
conda 4.10.1

$ python --version
python 3.7.10

$ pip list
Package    Version
---------- -------------------
certifi    2021.5.30
devtools   0.6.1
pip        21.1.3
setuptools 52.0.0.post20210125
wheel      0.36.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions