Changelog#
0.3.2 - 2022-06-23#
Changed#
Moved
IMMUTABLE_TYPES
from utils/testing.py to utils/type_utils to avoid importing nose when accessingIMMUTABLE_TYPES
0.3.1 - 2022-06-23#
Changed#
Fixed
copy_if_mutable
so that it works with containers that can’t be deep-copied.Reverted change from 0.3.0 “Add checks in
ParallelComposition
constructor to only permit L1/L2 over SymmetricDifference or AbsoluteDifference.”Temporarily disabled flaky statistical tests.
0.3.0 - 2022-06-22#
Added#
Added new transformations
DropInfs
andReplaceInfs
for handling infinities in data.Added
IfGroupedBy(X, SymmetricDifference())
input metric.Added support for this metric to
Filter
,Map
,FlatMap
,PublicJoin
,Select
,Rename
,DropNaNs
,DropNulls
,DropInfs
,ReplaceNulls
,ReplaceNaNs
, andReplaceInfs
.
Added new truncation transformations for
IfGroupedBy(X, SymmetricDifference())
:LimitRowsPerGroup
,LimitKeysPerGroup
Added
AddUniqueColumn
for switching fromSymmetricDifference
toIfGroupedBy(X, SymmetricDifference())
.Added a topic guide around NaNs, nulls and infinities.
Changed#
Moved truncation transformations used by
PrivateJoin
to be functions (now inutils/truncation.py
).Change
GroupBy
andPartitionByKeys
to have anuse_l2
argument instead ofoutput_metric
.Fixed bug in
AddUniqueColumn
.Operations that group on null values are now supported.
Modify
CountDistinctGrouped
andCountDistinct
so they work as expected with null values.Changed
ReplaceNulls
,ReplaceNaNs
, andReplaceInfs
to only support specificIfGroupedBy
metrics.Fixed bug in
ReplaceNulls
to not allow replacing values for grouping column inIfGroupedBy
.PrivateJoin
has a new parameter for__init__
:join_on_nulls
. Whenjoin_on_nulls
isTrue
, thePrivateJoin
can join null values between both dataframes.Changed transformations and measurements to make a copy of mutable constructor arguments.
Add checks in
ParallelComposition
constructor to only permit L1/L2 over SymmetricDifference or AbsoluteDifference.
Removed#
Removed old examples from
examples/
. Future examples will be added directly to the documentation.
0.2.0 - 2022-04-12 (internal release)#
Added#
Added
SparkDateColumnDescriptor
andSparkTimestampColumnDescriptor
, enabling support for Spark dates and timestamps.Added two exception types,
InsufficientBudgetError
andInactiveAccountantError
, to PrivacyAccountants.Future documentation will include any exceptions defined in this library.
Added
cleanup.remove_all_temp_tables()
function, which will remove all temporary tables created by Core.Added new components
DropNaNs
,DropNulls
,ReplaceNulls
, andReplaceNaNs
.
0.1.1 - 2022-02-24 (internal release)#
Added#
Added new implementations for SequentialComposition and ParallelComposition.
Added new spark transformations: Persist, Unpersist and SparkAction.
Added PrivacyAccountant.
Installation on Python 3.7.1 through 3.7.3 is now allowed.
Added
DecorateQueryable
,DecoratedQueryable
andcreate_adaptive_composition
components.
Changed#
Fixed a bug where
create_quantile_measurement
would always be created with PureDP as the output measure.PySparkTest
now runstmlt.core.utils.cleanup.cleanup()
duringtearDownClass
.Refactored noise distribution tests.
Remove sorting from
GroupedDataFrame.apply_in_pandas
andGroupedDataFrame.agg
.Repartition DataFrames output by
SparkMeasurement
to prevent privacy violation.Updated repartitioning in
SparkMeasurement
to use a random column.Changed quantile implementation to use arblib.
Changed Laplace implementation to use arblib.
Removed#
Removed
ExponentialMechanism
andPermuteAndFlip
components.Removed
AddNoise
,AddLaplaceNoise
,AddGeometricNoise
, andAddDiscreteGaussianNoise
fromtmlt.core.measurements.pandas.series
.Removed
SequentialComposition
,ParallelComposition
and corresponding Queryables fromtmlt.core.measurements.composition
.Removed
tmlt.core.transformations.cache
.
0.1.0 - 2022-02-14 (internal release)#
Added#
Initial release.