rrcf icon indicating copy to clipboard operation
rrcf copied to clipboard

Wrong use of assert statements

Open sebtrack opened this issue 3 years ago • 0 comments

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

https://github.com/kLabUM/rrcf/blob/34504c14bba233f86a7dcae35d55fc84cc5b7508/rrcf/rrcf.py#L429-L438

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.")

sebtrack avatar May 27 '21 16:05 sebtrack