Skip to content

Wrong use of assert statements #89

@sebtrack

Description

@sebtrack

I noticed that there are assert statements that are catched wrongly, if an assert statement fails it throws an AssertionError not ValueError nor KeyError.

rrcf/rrcf/rrcf.py

Lines 429 to 438 in 34504c1

try:
assert (point.size == self.ndim)
except ValueError:
raise ValueError(
"Point must be same dimension as existing points in tree.")
# Check for existing index in leaves dict
try:
assert (index not in self.leaves)
except KeyError:
raise KeyError("Index already exists in leaves dict.")

Also consider removing all assert statements, because they are ignored if __debug__ is not True. This is the case when you run in production (See Docs).

The lines could be rewritten as:

        if not point.size == self.ndim:
            raise ValueError(
                "Point must be same dimension as existing points in tree.")
        # Check for existing index in leaves dict
        try:
            self.leaves[index]
        except KeyError:
            raise KeyError("Index already exists in leaves dict.")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions