Skip to content
Commit b1be1516 authored by Matt Wala's avatar Matt Wala
Browse files

Improve PersistentDict warnings.

* Add a CacheCollision warning subclass.
* Track stack level so that warnings show user code line numbers.

Example:

Modifying line 287 of test_persistent_dict.py so that the warning
isn't captured by the test, we get this:

```
test_persistent_dict.py:287: CollisionWarning: pytools-test: key collision in cache at '/tmp/tmpq9p3i0b9' -- these are sufficiently unlikely that they're often indicative of a broken implementation of equality comparison
  pdict[key2]  # user code
```

The old behavior was:

```
/home/matt/src/pytools/pytools/persistent_dict.py:466: UserWarning: pytools-test: key collision in cache at '/tmp/tmpuk8js9jw' -- these are sufficiently unlikely that they're often indicative of a broken implementation of equality comparison
  % (self.identifier, self.container_dir))
```
parent c46aead8
Loading
Loading
Loading
Pipeline #8937 passed with stage
in 26 seconds