Bug fixes
- Fix a bug in :class:`datajudge.constraints.numeric.NumericPercentile` which could lead to off-by-one errors in retrieving a percentile value.
New features
- Add styling for assertion messages. See :ref:`assertion-message-styling` for more information.
- Add
output_processors
andfilter_func
parameters to :meth:`datajudge.requirements.WithinRequirement.add_uniques_equality_constraint`, :meth:`datajudge.requirements.WithinRequirement.add_uniques_superset_constraint` and :meth:`datajudge.requirements.WithinRequirement.add_uniques_subset_constraint`. - Add
output_processors
,filter_func
andcompare_distinct
parameters to :meth:`datajudge.requirements.BetweenRequirement.add_uniques_equality_constraint`, :meth:`datajudge.requirements.BetweenRequirement.add_uniques_superset_constraint` and :meth:`datajudge.requirements.BetweenRequirement.add_uniques_subset_constraint`. - Add
output_processors
parameter to :meth:`datajudge.requirements.BetweenRequirement.add_functional_dependency_constraint`.
Other changes
- Provide a
py.typed
file. - Remove usage of
pkg_resources
.
New features
Other changes
- Improve error message when a :class:`~datajudge.DataReference` is constructed with a single column name instead of specifying a list of columns.
New features
- Implement :meth:`datajudge.WithinRequirement.add_categorical_bound_constraint`.
- Extended :meth:`datajudge.WithinRequirement.add_column_type_constraint` to support column type specification using string format, backend-specific SQLAlchemy types, and SQLAlchemy's generic types.
- Implement :meth:`datajudge.WithinRequirement.add_numeric_no_gap_constraint`, :meth:`datajudge.WithinRequirement.add_numeric_no_overlap_constraint`,
Other changes
- Ensure compatibility with
sqlalchemy
>= 2.0.
New features
- Implement :meth:`datajudge.BetweenRequirement.add_max_null_fraction_constraint` and :meth:`datajudge.WithinRequirement.add_max_null_fraction_constraint`.
- Implement :meth:`datajudge.BetweenRequirement.add_numeric_percentile_constraint` and :meth:`datajudge.WithinRequirement.add_numeric_percentile_constraint`.
New features
- Add partial and experimental support for db2 as a backend.
New features
- Implement :meth:`~datajudge.BetweenRequirement.add_column_type_constraint`. Previously, only the
WithinRequirement
method existed. - Implemented an option
infer_pk
to automatically retrieve and primary key definition as part of :meth:`datajudge.WithinRequirement.add_uniqueness_constraint`. - Added a
name
parameter to alladd_x_constraint
methods ofWithinRequirement
andBetweenRequirement
. This will give pytest test a custom name. - Added preliminary support for Impala.
Other changes
- Improve assertion error for :meth:`~datajudge.WithinRequirement.add_row_matching_equality_constraint`.
New features
- Implemented specification of number of counterexamples in :meth:`~datajudge.WithinRequirement.add_varchar_regex_constraint`.
- Implemented in-database regex matching for some dialects via
computation_in_db
parameter in :meth:`~datajudge.WithinRequirement.add_varchar_regex_constraint`. - Added support for BigQuery backends.
Bug fix
- Snowflake-sqlalchemy version 1.4.0 introduced an unexpected change in behaviour. This problem is resolved by pinning it to the previous version, 1.3.4.
New: SQL implementation for KS-test
- The Kolgomorov Smirnov test is now implemented in pure SQL, shifting the computation to the database engine, improving performance tremendously.
New feature: Statistical Tests
- Implemented a new constraint :class:`~datajudge.constraints.stats.KolmogorovSmirnov2Sample` for :class:`~datajudge.BetweenRequirement` that performs a Kolmogorov Smirnov Test between two data sources.
Bug fix:
- The method :meth:`is_deprecated` of :class:`~datajudge.Condition` was called despite not existing.