v6.21.0
🐛 Fixes
- Bug fix for query builder filtering with ISIN filters over sets with duplicate str representations (#3201)
- Fix macOS 15
ImportError: Symbol not found: __hash_memoryon mac back-deployed wheels (#3243) - Correctly filter against
NaTas a timestamp rather than anint64with the query builder, soq["col"] > pd.NaTwill now return nothing (like Pandas). This is because we are now tracking thatpd.NaTis a time type, whereas before we treated it asint64. (#3266)
🏎️ Performance
- Merge filter clauses in to one expression during query builder evaluation (#3204).
This improves performance and memory use for query builders with long chains of filters like:
q = QueryBuilder()
q = q[q["v3"] > 0.0] # keeps ~all rows
q = q[q["v3"] < 99.0] # keeps ~99%
q = q[q["v2"] > 1] # keeps ~93%
q = q[q["v2"] < 15] # keeps ~93%
q = q[q["v1"] > 1] # keeps ~80%
q = q[q["v1"] < 5] # keeps ~80%
q = q[q["v3"] < 50.0] # narrows to ~50%
The wheels are on PyPI. Below are for debugging: