fix: update mkdocs-deploy action version to use specific mkdocs tag
feat(goodness_of_fit): introduce GoodnessOfFitResult for KS and Chi-square tests
feat(goodness_of_fit): introduce GoodnessOfFitResult for KS and Chi-square tests
feat(time_series): add TimeSeries subpackage with 53 analysis methods (#99)
Introduce a pandas.DataFrame subclass composed from 12 mixins providing
descriptive statistics, visualization, missing-data handling,
autocorrelation, stationarity, trend detection, change-point analysis,
distribution fitting, decomposition, seasonal, hydrological, and
comparison / anomaly methods. Refactor distribution goodness-of-fit to
return a structured result type, and wire a content-hashed notebook
cache into the mkdocs CI pipeline so executed outputs are no longer
committed to git.
Move StatTestResult -> GoodnessOfFitResult into distributions subpackage
and wire it through AbstractDistribution.ks and .chisquare; preserve
tuple unpacking, len, and index access for backward compatibility
Delete unused TrendTestResult and ChangePointResult dataclasses
Add scripts/strip_notebook_outputs.py and scripts/prep_notebooks.py
plus nbstripout pre-commit hook; remove committed outputs from the
12 tutorial notebooks
Add content-hashed jupyter-cache step to mkdocs deploy workflow keyed
on notebooks + source + pyproject; restore .jupyter_cache/ gitignore
Add .gitattributes to normalize LF line endings across platforms
Fix ADF/KPSS constant-series conclusion to trivially stationary
Add 12 tutorial notebooks and 12 mkdocs reference pages with mermaid
diagrams; drop stale docs/reference/time_series/ tree
Add frozen Parameters dataclass with loc, scale,
optional shape fields and scale validation
Add StatistaError/ParameterError custom exception
hierarchy in exceptions.py
Migrate all 42 method signatures across 6 distribution
modules from dict[str, float] to Parameters
Replace all .get("loc")/["scale"] access with
attribute access (.loc, .scale, .shape)
Add dict-to-Parameters auto-conversion at 17 entry
points with deprecation warnings for dict-style access
Rename fit_all() to fit() in Distributions facade
Remove fit_results parameter from best_fit()
Split monolithic test_parameters.py into 12
per-distribution files under tests/parameters/
Add 52 dedicated tests for Parameters dataclass
BREAKING CHANGE: fit_all() renamed to fit() and
best_fit() no longer accepts fit_results parameter.
Distribution methods now return Parameters instances
instead of dicts.
ref: #159, #87, # 152
feat(distributions): add multi-distribution fitting and best-fit selection (#151)
Add fit_all and best_fit methods to the Distributions facade class,
enabling users to fit all available distributions to a dataset and
select the best one by goodness-of-fit criterion (KS or Chi-square).
Support dual-mode initialization: single-distribution wrapping
(existing) and multi-distribution comparison (distribution=None)
fit_all fits selected or all distributions with KS and Chi-square
goodness-of-fit tests
best_fit selects the distribution with the highest p-value, calling
fit_all internally if needed
Add input validation for method, distribution names, and empty lists
Eliminate redundant data storage via _data property delegation
Add comprehensive test suite (51 tests, 100% facade coverage)
Restrict CI test workflow to main branch pushes and pull requests
ref: #156
ci(workflows): chain release pipelines and fix commit message template (#149)
Add workflow_run trigger to docs deployment after github-release
Guard PyPI publish job to skip on failed upstream workflow
Fix lockfile commit message to use inputs.increment instead of
inputs.package
Closes #150
ci(release): harden github-release workflow with admin check and lockfile sync (#146)
ci(release): harden github-release workflow with admin check and lockfile sync
Rename release.yml to github-release.yml
Add admin permission check before creating release
Split parameters.py into submodules:
lmoments, extreme_value, normal_family, other
Fix any(cdf) returning bool instead of element-wise check
in all inverse_cdf methods
Fix Normal._cdf_eq rejecting valid loc<=0 values
Fix duplicate return period (50 appeared twice) in eva.py
Fix assert ValueError() never raising in sensitivity.sobol()
Fix in-place sort mutating caller data in Plot.details()
and Plot.confidence_level()
Fix confidence_interval.py scale parameter index typo
Fix save_to silently defaulting to cwd in eva.py
(now raises ValueError when save_plots=True without save_to)
Unify return_period() API: keyword-only args across
Gumbel and GEV
Modernize typing: PEP 604 unions, from future import
annotations, full mypy compliance across all modules
Correct Normal distribution PDF/CDF docstring equations
(were copy-pasted from Exponential)
Convert all docstring math from RST to MathJax-compatible
Markdown ($\(...\)$ and \(...\))
Add pymdownx.arithmatex for rendered equations in docs
Add mypy pre-commit hook and docs guide
Add comprehensive test suites for descriptors, sensitivity,
plot, and individual distribution modules (213+ new tests)
Rename tests_utils.py to test_utils.py for pytest discovery
Update pypi-release workflow to use composite action
Set MPLBACKEND=Agg via pytest-env for stable doctest runs
BREAKING CHANGE: statista.distributions is now a package
(directory) instead of a single module. Direct imports like
from statista.distributions import GEV still work via
init.py re-exports, but import statista.distributions
as a module object has changed.
move the cdf and parameters for all the methods to be optional parameters.
rename theoretical_estimate method to inverse_cdf.
All distributions can be instantiated with the parameters and/or data.
rename the probability_plot method to plot.
move the confidence_interval plot from the probability_plot/plot to the method confidence_interval and can be
called by activating the plot_figure=True.