Nannyml

Latest version: v0.13.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 7

0.8.2

Not secure
Changed

- Log Ranker usage logging
- Remove some redundant parameters in `plot()` function calls for data reconstruction results, univariate drift results,
CBPE results and DLE results.
- Support "single metric/column" arguments in addition to lists in class creation [(165)](https://github.com/NannyML/nannyml/issues/165)
- Fix incorrect 'None' checks when dealing with defaults in univariate drift calculator
- Multiple updates and corrections to the docs (thanks [nikml](https://github.com/nikml)!), including:
- Updating univariate drift tutorial
- Updating README
- Update PCA: How it works
- Fix incorrect plots
- Fix quickstart [(171)](https://github.com/NannyML/nannyml/issues/171)
- Update chunker docstrings to match parameter names, thanks [mrggementiza](https://github.com/jrggementiza)!
- Make sequence 'None' checks more readable, thanks [mrggementiza](https://github.com/jrggementiza)!
- Ensure error handling in usage logging does not cause errors...
- Start using `OrdinalEncoder` instead of `LabelEncorder` in DLE. This allows us to deal with "unseen" values in the
analysis period.

Added

- Added a Store to provide persistence for objects. Main use case for now is storing fitted calculators to be reused
later without needing to fit on reference again. Current store implementation uses a local or remote filesystem as a
persistence layer. Check out the documentation on [persisting calculators](https://nannyml.readthedocs.io/en/latest/tutorials/persisting_calculators.html).

Fixed

- Fix incorrect interpretation of `y_pred` column as continuous values for the included sample binary classification data.
Converting the column explicitly to "category" data type for now, update of the dataset to follow soon.
[(171)](https://github.com/NannyML/nannyml/issues/171)
- Fix broken image link in README, thanks [mrggementiza](https://github.com/jrggementiza)!
- Fix missing key in the CLI section on raw files output, thanks [CoffiDev](https://github.com/CoffiDev)!
- Fix upper and lower thresholds for data reconstruction being swapped [(179)](https://github.com/NannyML/nannyml/issues/179)
- Fix stacked bar chart plots (missing bars + too many categories shown)

0.8.1

Not secure
Changed

- Thorough refactor of the `nannyml.drift.ranker` module. The abstract base class and factory have been dropped in favor
of a more flexible approach.
- Thorough refactor of our Plotly-based plotting modules. These have been rewritten from scratch to make them more
modular and composable. This will allow us to deliver more powerful and meaningful visualizations faster.

Added

- Added a new univariate drift method. The [`Hellinger distance`](https://nannyml.readthedocs.io/en/v0.8.1/how_it_works/univariate_drift_detection.html#hellinger-distance), used for continuous variables.
- Added an [extensive write-up]() on when to use which univariate drift method.
- Added a new way to rank the results of univariate drift calculation. The `CorrelationRanker` ranks columns based on
the correlation between the drift value and the change in realized or estimated performance. Read all about it in the
[ranking documentation](https://nannyml.readthedocs.io/en/v0.8.1/how_it_works/ranking.html)

Fixed

- Disabled usage logging for or GitHub workflows
- Allow passing a single string to the `metrics` parameter of the `result.filter()` function, as per special request.

0.8.0

Not secure
Changed

- Updated `mypy` to a new version, immediately resulting in some new checks that failed.

Added

- Added new univariate drift methods. The [`Wasserstein distance`](https://nannyml.readthedocs.io/en/latest/how_it_works/univariate_drift_detection.html#wasserstein-distance) for continuous variables,
and the [`L-Infinity distance`](https://nannyml.readthedocs.io/en/main/how_it_works/univariate_drift_detection.html#l-infinity-distance) for categorical variables.
- Added usage logging to our key functions. Check out the [docs](https://nannyml.readthedocs.io/en/latest/usage_logging.html#providing-a-env-file) to find out more on what, why, how, and how to
disable it if you want to.

Fixed

- Fixed and updated various parts of the docs, reported at warp speed! Thanks [NeoKish](https://github.com/NeoKish)!
- Fixed `mypy` issues concerning 'implicit optionals'.

0.7.0

Not secure
Changed

- Updated the handling of "leftover" observations when using the `SizeBasedChunker` and `CountBasedChunker`.
Renamed the parameter for tweaking that behavior to `incomplete`, that can be set to `keep`, `drop` or `append`.
Default behavior for both is now to append leftover observations to the last _full_ chunk.
- Refactored the `nannyml.drift` module. The intermediate structural level (`model_inputs`, `model_outputs`, `targets`)
has been removed and turned into a single unified `UnivariateDriftCalculator`. The old built-in statistics have been
re-implemented as `Methods`, allowing us to add new methods to detect univariate drift.
- Simplified a lot of the codebase (but also complicated some bits) by storing results internally as multilevel-indexed
DataFrames. This means we no longer have to 'convey information' by encoding data column names and method names in
the names of result columns. We've introduced a new paradigm to deal with results. Drill down to the data you really
need by using the `filter` method, which returns a new `Result` instance, with a smaller 'scope'. Then turn this
`Result` into a DataFrame using the `to_df` method.
- Changed the structure of the [pyproject.toml](pyproject.toml) file due to a Poetry upgrade to version 1.2.1.

Added

- Expanded the `nannyml.io` module with new `Writer` implementations: `DatabaseWriter` that exports data into multiple
tables in a relational database and the `PickleFileWriter` which stores the
pickled `Results` on local/remote/cloud disk.
- Added a new univariate drift detection method based on the Jensen-Shannon distance.
Used within the `UnivariateDriftCalculator`.

Fixed

- Added [lightgbm](https://github.com/microsoft/LightGBM) installation instructions to our installation guide.

0.6.3

Not secure
Changed

- `dependencybot` dependency updates
- `stalebot` setup

Fixed

- CBPE now uses uncalibrated `y_pred_proba` values to calculate realized performance. Fixed for both binary and
multiclass use cases [(98)](https://github.com/NannyML/nannyml/issues/98)
- Fix an issue where reference data was rendered incorrectly on joy plots
- Updated the 'California Housing' example docs, thanks for the help [NeoKish](https://github.com/NeoKish)
- Fix lower confidence bounds and thresholds under zero for regression cases. When the lower limit is set to 0,
the lower threshold will not be plotted. [(127)](https://github.com/NannyML/nannyml/issues/127)

0.6.2

Not secure
Changed

- Made the `timestamp_column_name` required by all calculators and estimators optional. The main consequences of this
are plots have a chunk-index based x-axis now when no timestamp column name was given. You can also not chunk by
period when the timestamp column name is not specified.

Fixed

- Added missing `s3fs` dependency
- Fixed outdated plotting kind constants in the runner (used by CLI)
- Fixed some missing images and incorrect version numbers in the README, thanks [NeoKish](https://github.com/NeoKish)!

Added

- Added a lot of additional tests, mainly concerning plotting and the [`Runner`](nannyml/runner.py) class

Page 4 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.