All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
rust-0.8.0 - 2024-04-10
- Added ability Pitman-Yor prior process
- Users now specify the prior process (and its prior) in the codebook
lace_stats::prior_process::Builder
- Offloaded a lot of
Assignment
functionality toPriorProcess
StateAlpha
andViewAlpha
transitions are nowStatePriorProcessParams
andViewPriorProcessParams
- Changed
SerializedType
default toBincode
- moved
Assignment
fromlace_cc
tolace_stats
python-0.8.0 - 2024-04-10
- Added ability Pitman-Yor prior process.
- Added
remove_rows
toEngine
. - Added
with_index
toCodeBook
.
StateAlpha
andViewAlpha
transitions are nowStatePriorProcessParams
andViewPriorProcessParams
- Updated Pyo3 version to 0.21
python-0.7.1 - 2024-02-27
- Added support for pickling
lace.Engine
- Improved error reports for certain methods
- Updated dependencies for pylace:
pandas
: 1.3 -> 2.2pyarrow
: 14.0 -> 15.0
- Fixed
__version__
property
python-0.7.0 - 2024-02-07
Engine.update
usestqdm.auto
for progress bar reporting, to support progress bars in notebooks- Added
flat_columns
option toEngine
constructor to enable creating engines with one view - Added
variability
method toEngine
- Improved errors in type conversions.
- Rearranged test execution
- Default transition sets now hit all required transitions
- Fixed typo in internal
Dimension
class
rust-0.7.0 - 2024-02-07
DataParseError::CodebookAndDataRowsMismatch
variant for when the number of rows in the codebook and the number of rows in the data do not match.DataParseError::DataFrameMissingColumn
variant for when a column is in the codebook but not in the initial dataframe.- Added
variability
method toOraceT
trait
- Added parallelism to
Slice
row reassignment kernel. Run time is ~6x faster.
- Initializing an engine with a codebook that has a different number of rows than the data will result in an error instead of printing a bunch of nonsense.
python-0.6.0 - 2024-01-23
- Added support for Python 3.12
- Added
plot.state
function to render PCC states - Added
analysis.explain_prediction
to explain predictions - Added
plot.prediction_explanation
to render prediction explanations - Added
analysis.held_out_uncertainty
- Added
analysis.attributable_[neglogp | inconsistrncy | uncertainty]
to quantify the amount of surprisal (neglogp), inconsistency, and uncertainty attributable to other features - Added
utils.predict_xs
- Updated all packages to have the correct SPDX for the Business Source License
- Changed to using total variation distance for uncertainty prediction (see docs)
- Updated dependencies:
numpy
: 1.21 -> 1.26polars
: 0.16.14 -> 0.20.5scipy
: 1.7 -> 1.11plotly
: 5.14 -> 5.18pyarrow
: 11 -> 14
- Added new dependencies:
seaborn
,matplotlib
- Fixed issue that would cause random row order when indexing pylace Engines by a single (column) index, e.g., engine['column'] would return the columns in a different order every time the engine was loaded
- Fixed bug in appending data with a boolean column
rust-0.6.0 - 2024-01-23
- Updated all packages to have the correct SPDX for the Business Source License
- Removed internal implimentation of
logsumexp
in favor ofrv::misc::logsumexp
- Changed to using total variation distance for uncertainty prediction (see docs)
- Bump min rust version to
1.62
to supportf64::total_cmp
- Update to rv 0.16.2
- Update to Polars 0.36
- Fixed bug in appending data with a boolean column
python-0.5.0 - 2023-11-20
- Codebook.value_map fn and iterator
- Added common transitions sets by name to
Engine.update
transition argument.
rust-0.5.0 - 2023-11-20
- Lace can now be compiled to Wasm
- Moved CLI into its own crate
- Moved
DataSource
variants for Parquet, IPC (Arrow), and JSON data types into theformats
feature flag. - Moved the
CtrlC
UpdateHandler
intoctrlc_handler
feature flag - Moved
Bencher
into thebencher
feature flag - Moved
Example
code into theexamples
feature flag (on by default) - Replaced instances of
once_cell::sync::OnceCell
withsyd::sync::OnceLock
- Renamed all files/methods with the name
feather
toarrow
- Renamed
Builder
toEngineBuilder
- Fixed typo
UpdateHandler::finialize
is nowUpdateHandler::finalize
python-0.4.1 - 2023-10-19
- Fixed issues when indexing
Engine
with slices.
rust-0.4.1 - 2023-10-16
- Fixed stuck iterator from
ValueMap.iter
.
python-0.4.0 - 2023-09-27
- Component params now available from
pylace
Engine
s inpylace
now implement deepcopy
- Fixed
pylace
's__getitem__
index name to match other accessors - Fixed
pylace
'sappend_column_metadata
to refer to the correct internal function. pylace
will try to use Python's internal conversion for floats invalue_to_datum
conversion.
- Updated rust
polars
to version0.33
- Updated rust
arrow2
to0.18
rust-0.4.0 - 2023-09-27
- Upgraded
polars
version to version0.33
(fixes builds failing due to nocmake
installed)
python-0.3.1 - 2023-08-28
- Automatic conversion from
np.int*
types to Categorical. - Updated lace version to 0.3.1
rust-0.3.1 - 2023-08-28
- Locked to a specific version of
polars 0.32
to produce reproducible builds on Rust 1.72
python-0.3.0 - 2023-07-25
- Updated lace version to 0.3.0
- Updated polars to version ^0.31
rust-0.3.0 - 2023-07-25
- Updated breaking dependencies
python-0.2.0 - 2023-07-14
lace.Engine.__init__
now takes a Pandas' or Polars' dataframe to initialize anEngine
Engine.load
supports loading metadata from disk- New
Codebook
class in thelace.codebook
module lace.CodebookBuilder
supports loading a codebook from disk or using parameterized inference for creating a newEngine
- Can append new columns to an
Engine.append_columns
- Specify the types of new columns with
ColumnMetadata
- Specify the types of new columns with
- Can delete columns using
Engine.del_column
- New plot:
lace.plot.prediction_uncertainty
rust-0.2.0 - 2023-07-14
FTypeCompat
class now hasDebug
implementedColMetaDataList
now has&str
indexing (i.e., traitsIndex<&str>
andIndexMut<&str>
are implemented)Engine::insert_data
no longer takessuppl_metadata
paraemterSupportExtension
class now holds aValueMapExtension
rather than thek_orig
andk_ext
fields- Certain variants of the
lace::interface::engine::error::InsertDataError
enum had typos fixed
- The
NoOp
update handler is gone in favor of()
DataSource::Polars
to support direct loading of Polars' DataFrameEngine::del_column
to delete columnsCodebook::from_df
to create a codebook from a polars DataFrame()
now implementsUpdateHandler
(replacesNoOp
)- Exposed
ExamplePaths
to public API - New method:
lace::codebook::data::series_to_colmd
- New method:
CategoryMap::add
- New method:
ValueMap::extend
- New public types in
codebook::valuemap
:ValueMapExtension
,ValueMapExtensionError
- Clippy Lint in
lace-stats
- Fixed bug in
StateTimeout
update handler
python-0.1.2 - 2023-06-09
Engine.append_rows
would incorrectly raise an exception stating that duplicate indices were found in polars DataFrame
python-0.1.1 - 2023-06-07
- Allow index column name to be a case-insensitive variant of
ID
orIndex
acrossEngine
methods
rust-0.1.2 - 2023-06-07
- Allow index column name to be a case-insensitive variant of
ID
orIndex
rust-0.1.1 - 2023-05-31
- Documentation fixes
- Benchmark tests now work properly
python-0.1.0 - 2023-04-24
Initial release on PyPi
rust-0.1.0 - 2023-04-20
Initial release on crates.io