Add readme_renderer[md] to enable logo display in PyPi
[0.1.11] - 2025-0710
Added UDF registration function to better manage UDF inside string parser
Added cache function for string parser so that it will cache all parsed expression to avoid repeated parsing the same string expression
[0.1.12] - 2025-0717
Bugfix: to_pandas() now works with DataFrame, LazyFrame and Series
Lowered dependency package requirements
[0.1.13] - 2025-07-24
Updated dd to handle columns with missing value
Added case_when to unite select and where function
Replace list[str] with List[str] to be compatible with Python 3.8 or below
Register max_horizontal and min_horizontal from polars
[0.1.14] - 2025-10-02
Bugfix: case_when and clear_all_expr_caches buf fix
Added clear_all_expr_caches to init.py
[0.1.15] - 2025-10-02
Features: Add non-cache mode as an option to disable cache mode and disable cache for variable substituion
[0.1.17] - 2026-10-06
Docs: Comprehensive update of README.md covering all engine and DataFrame features
Docs: Full MkDocs Material documentation site with automated GitHub Pages deployment
CI: Add GitHub Actions workflow for automated PyPI publishing with Trusted Publishing (OIDC)
Fix: Fix package directory discovery in setup.py for src/ layout
Features: Add getitem and len to Series and len to DataFrame
Maintenance: Fix pl.count() deprecation warning in plx_vcnt
[0.1.18] - 2026-10-06
Fix (#1): Fix operator precedence for 'in' and 'not in' when followed by logical connectors (& / |)
[0.1.19] - 2026-10-06
Features: Add native Polars namespace extension (.plx) on DataFrame and LazyFrame
Fix: Fix LazyFrame compatibility in to_list(), max(), and min()
Performance: Vectorize column renaming in plx_rename
Performance: Optimize unique counting in plx_ucnt using native n_unique()
Logging: Clean library logging in plx_size
Typing: Add PEP 561 py.typed marker file
CI: Add automated multi-version Python test workflow (3.9 - 3.12)
CI: Automate wheel attachment to GitHub Releases on publish
[0.1.20] - 2026-10-07
Agents: Bundle AGENTS.md usage guide in the package; add polynx.agent_guide() and python -m polynx
Agents: Add skills/polynx/SKILL.md, llms.txt and ARD manifest (.well-known/ard.json) on the docs site
Metadata: Add keywords and Source/Agent Guide project URLs
[0.1.21] - 2026-10-08
Performance: Template cache for the parser. Literals are stripped from the expression string and the parse tree is compiled once to closures, so loops with changing literals (A > 1, A > 2, ...) no longer re-parse. @var expressions benefit too (variables are re-resolved on every call). About 4x faster parsing.
Performance: chained_comparison builds only the requested operator; wrap() caches its imports
Security: Function calls in expressions no longer use eval(); only a small builtin allow-list, registered UDFs and calling-scope names are callable
Compat: rolling_prod(min_samples=) also works on Polars < 1.21, so the declared polars>=1.8 floor holds
CI: Python 3.13 in the matrix and a job pinned to the minimum Polars
Benchmarks: Add benchmarks/bench.py
[0.1.22] - 2026-10-08
Fix: pplot() is now available on the native .plx namespace (pl.DataFrame(...).plx.pplot(...) and pl.LazyFrame); it previously worked only on the plx.DataFrame wrapper
Fix: pplot() now collects native pl.LazyFrame inputs
Tests: Add a check that every plx_* helper in core is exposed on the .plx namespaces