Changelog
Version 2.0.4 (2026-10-17)
Added support for Python 3.15
Processing and rendering large sets of data is now up to 2.4x faster
Saving results no longer slows down as more data is added (plot formatting is now looked up directly instead of searching through every saved record)
Plots with lots of lines now draw faster (lines are drawn together in one batch instead of one at a time)
The viewer can now be placed inside an existing FastAPI website (mount it at a path like /viz and show it in an <iframe>)
Slow plots no longer freeze the rest of your site (the viewer's database work now runs on its own background thread)
Optional settings to hide the database path and to let other sites use the viewer (show_db_path, cors_origins)
Bad requests now get a clear error, and the viewer's memory use is capped
Pressing Ctrl+C in the viewer now stops it right away instead of hanging for a minute or more
Fixed console errors when switching plots or tables while one was still loading
Version 2.0.3 (2026-09-14)
Added a changelog
Patched dependency security vulnerabilities (httpx2, httpcore2, tornado)
Removed unused MkDocs-only doc dependencies now that the docs build on Zensical
Version 2.0.0 (2026-07-05)
Core
Now formally supporting Python 3.14
Versioning is now controlled by hatchling-vcs (when a new tag "vX.Y.Z" is pushed to main the test+publish CI/CD automatically fires)
Overhauled the pipeline for running and processing data products (now called records to reduce confusion)
Records are stored in a SQLite database with concurrent write protection for multiprocessing
Records are no longer serialized as JSON in the input directories
Records are no longer sorted and duplicated into a data_products folder
This change cut the storage required (and therefore runtime) more than in half
SQLite database allows for better tag indexing and the reduced file size greatly improves runtime
Format2D now supports a new renderer with options currently Raster (for JPG (default), PNG, etc.) and Vector (SVG)
Logger has been completely redone to use Rich logs and a rolling file backup
This includes a fix for concurrent logs being broken on Windows
The CLI was completely rewritten using typer to allow for better scalability
Asset Generator
Scatter2D was added as another option (Trace2D can also now optionally have no line style)
Histograms can now be plotted with Trace2D, Point2D, and Scatter2D (previously they could only have AxLine)
Table maker now uses polars instead of pandas
Overhauled the previous interactive dashboard tool to use the new DB and also rewrote it to work as a FastAPI app (removing streamlit)
The new dashboard is much more performant, user friendly, and now also include table views for TableEntry records
It also comes with light/dark/system theming and a proper toast/notification system
Misc.
Example data generator was updated to provide more "interesting" data (it is also now part of the trendify CLI namespace)
The documentation site was transitioned to Zensical and branding was updated across the package
User guide was rewritten to summarize how to use trendify and now include examples of the assets it produces
The README/index was updated to match one another
This also updated the CI/CD
Pyright and Ruff are now part of the pre-commit to improve code quality
Improved __init__.py to match PEP 8
Added a bunch of unit tests
Broke
Format2D is now its own tagged Record (no longer an attribute of Trace2D, Point2D, etc.)
This also removed the slow, and seldom used, union step that would be performed on every Format2D for every run
Breaking this greatly reduces the DB size, especially since it usually just stored redundant information
Trace2D.from_xy was removed since Point2D was removed from it (Trace2D now instantiated the same way as all other types)
Trace2D was optimized to remove the ability to set a different style for each Point2D (which actually was never even possible but this includes a schema change)
trendify_make_sample_data CLI exe moved to trendify (see Misc change)
Python 3.11 no longer supported due to old generic typing system
v1.2.11 (2025-09-23)
Added figure_size (width and height) support to Format2D (#30)
v1.2.7 (2025-09-23)
Fixed nested quotes breaking generated histogram files
Fixed the logo and favicon
Added zorder control for Plotly traces/markers/histograms and Matplotlib histograms/legends
Fixed log-scaled plots not displaying correctly in Plotly
v1.2.6 (2025-09-21)
Changed plot title behavior
Added a tooltip selector and improved tooltip button UX
Added opacity/alpha support for traces, markers, and Plotly histogram edges
Fixed tooltip text color not adapting to the line color, making it unreadable in some cases (#25)
Dashboard tag keys are now sorted for easier browsing
v1.2.5 (2025-09-21)
Now requires Python >= 3.11
Fixed dashboard pushbuttons using the full tag name instead of a shorter key (#17)
Fixed trendify make dashboard not treating the given path as a raw string (#18)
Fixed the table builder, which was broken (#19)
v1.2.0 (2025-09-18)
Added a Streamlit dashboard, reusing the existing dashboard CLI argument to launch it
Added pushbutton controls for selecting a chart within nested expanders
Fixed the documentation site build
Adjusted logging levels
v1.1.16 (2025-09-10)
Updated documentation and fixed an indexing bug
v1.1.15 (2025-09-10)
Data products now record their source file in metadata
v1.1.14 (2025-09-10)
Sorting now overwrites existing products for a given source directory instead of duplicating them
v1.1.6 (2025-08-02)
Added a Legend object for customizing legend location and styling
Added log-scale support for the x and y axes
v1.1.1 (2025-07-28)
Added configurable logging with multiple verbosity levels
Grid styling now uses the Pen object instead of one-off custom settings
Added a tuple option for line style
Added noise to the example data generator for more realistic sample output
XYDataPlot can now be plotted together with histograms
Fixed histogram bins with no values still showing their edges, making empty bins look populated
Improved the auto-dashboard tool, including working Plotly support
Added support for multiple tags, plus a product gallery view
Fixed mean and max being swapped in the stats table
Added the ability to specify the data products JSON filename
Back to top