v0.5.0
data-wrangler 0.5.0
Bug-fix and hardening release. Installable as pip install pydata-wrangler==0.5.0.
Headline fix — robust remote-file caching
get_extension() now strips URL query strings/fragments, so Dropbox/Google-Drive-style links like .../minipedia.npz?dl=1 (including the built-in text corpora) cache under a clean, stable name and reload from cache. Previously they were cached as <hash>.npz?dl=1 and then failed to reload (ValueError: Unknown datatype: npz?dl=1), silently re-downloading each time.
Resolved issues
- #30 — pandas 3.0 support. Type detection no longer relies on pandas' internal
__module__strings (which pandas 3.0 flattened, e.g.pandas.core.frame→pandas).is_dataframe/is_multiindex_dataframe/panda_handlernow useisinstance, anddataframe_likeno longer requires the removedDataFrame.backfill/.pad. Verified across pandas 2.x and 3.0; CI runs the full suite on Python 3.9–3.12 (3.11/3.12 install pandas 3.0). - #29 — version drift.
__version__is now derived from the installed package metadata, so it can never drift fromsetup.pyagain. Also fixed the stale/brokenbumpversionconfig that caused the original drift. - #8 — demo GIF. Added an animated, terminal-style demo GIF to the README (generated from real calls by
scripts/make_demo_gif.py): a 60-million-value Polars sort (~8× faster than pandas), sentence-embedding semantic similarity, the@funneldecorator, and ML imputation. - #5 — comprehensive tutorials. Every supported feature is now demonstrated across the Jupyter tutorials (each datatype in-memory + from file, sklearn vectorization vs. sentence-transformers embedding, built-in and HuggingFace corpora, interpolation/imputation, all decorators, io, util, core/config).
Other correctness fixes
core.configurator.apply_defaultsno longer raisesKeyErrorfor functions/classes absent fromconfig.ini(had broken sklearn TSNE/MDS/Isomap).decorate.apply_stackedno longer crashes onreturn_model=Truewith unstacked input.zoo.is_multiindex_dataframeno longer raisesAttributeErroron Polars frames.- Fixed two missing f-string prefixes in
zoo.texterror messages; removed dead code.
Dependencies, tests, docs
- Declared pyarrow (required by polars↔pandas conversion).
- Full test suite green on Python 3.9–3.12; flake8 clean; warning-free Sphinx docs build.
- Removed two dead duplicate modules (
text_lazy.py,text_original.py).
Full history: see HISTORY.rst. Compare: v0.4.0...v0.5.0