eric7/DebugClients/Python/coverage/disposition.py

Mon, 07 Feb 2022 22:02:35 +0100

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Mon, 07 Feb 2022 22:02:35 +0100
branch
eric7
changeset 8940
e91951ff3bbd
parent 8929
fcca2fa618bf
child 8991
2fc945191992
permissions
-rw-r--r--

Fixed cascaded imports which could prevent to apply threading patches. Therefore
breakpoints were ignored in such circumstances.

# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt

"""Simple value objects for tracking what to do with files."""


class FileDisposition:
    """A simple value type for recording what to do with a file."""
    pass


# FileDisposition "methods": FileDisposition is a pure value object, so it can
# be implemented in either C or Python.  Acting on them is done with these
# functions.

def disposition_init(cls, original_filename):
    """Construct and initialize a new FileDisposition object."""
    disp = cls()
    disp.original_filename = original_filename
    disp.canonical_filename = original_filename
    disp.source_filename = None
    disp.trace = False
    disp.reason = ""
    disp.file_tracer = None
    disp.has_dynamic_filename = False
    return disp


def disposition_debug_msg(disp):
    """Make a nice debug message of what the FileDisposition is doing."""
    if disp.trace:
        msg = f"Tracing {disp.original_filename!r}"
        if disp.original_filename != disp.source_filename:
            msg += f" as {disp.source_filename!r}"
        if disp.file_tracer:
            msg += f": will be traced by {disp.file_tracer!r}"
    else:
        msg = f"Not tracing {disp.original_filename!r}: {disp.reason}"
    return msg

eric ide

mercurial