Releases: sdv-dev/SDV
v1.17.1 - 2024-10-10
Bugs Fixed
- Extraneous metadata warning is printed when customizing HMA Synthesizer - Issue #2250 by @pvk-developer
Internal
ValueError
raised when adding columns to a newMetadata
instance - Issue #2252 by @pvk-developer- Enhance Benchmark Report Generation - Issue #2235 by @pvk-developer
Maintenance
- Use PyDrive2 instead of PyDrive - Issue #2238 by @pvk-developer
v1.17.0 - 2024-10-02
This release consolidates the SingleTableMetadata
and MultiTableMetadata
classes into one new class simply called Metadata
. The old classes are now deprecated. The new class has the same structure as the MultiTableMetadata
class, except it will work with single table synthesizers.
New Features
- Add
metadata.validate_table
method for single table usage - Issue #2215 by @R-Palazzo - Improve usage of
detect_from_dataframes
function - Issue #2214 by @amontanez24 - For single-table use cases, make it frictionless to update Metadata - Issue #2213 by @R-Palazzo
- Add a warning if you're loading a SingleTableMetadata object - Issue #2210 by @R-Palazzo
- Move all tests over to use Metadata instead of SingleTableMetadata and MultiTableMetadata - Issue #2151 by @lajohn4747
- Update demos to use new metadata - Issue #2131 by @lajohn4747
- Enable evaluation methods to work with new metadata - Issue #2130 by @pvk-developer
- Enable multi table synthesizers to use new Metadata - Issue #2129 by @lajohn4747
- Enable single table synthesizers to use new Metadata - Issue #2128 by @lajohn4747
- Create unified Metadata class - Issue #2104 by @lajohn4747
- Make "table" default table name - Issue #2245 by @fealho
v1.16.2 - 2024-09-25
v1.16.1 - 2024-08-27
Internal
- [dtypes]
FixedIncrements
Fails with New Numerical Data Types - Issue #2157 by @R-Palazzo
v1.16.0 - 2024-08-22
This release enables the HMASynthesizer
and other utility functions to work with null foreign key values! It also adds an anonymization
method to the metadata classes. Additionally, it patches a bug that lets SDV work with more Pandas data types.
New Features
- Add metadata anonymization to public SDV - Issue #2137 by @R-Palazzo
- Switch drop_missing_values in in drop_unknown_references to support null foreign keys by default - Issue #2076 by @R-Palazzo
- Support nullable foreign keys in HMA - Issue #2063 by @rwedge
- Remove input error from base synthesizer class once nullable foreign keys are supported - Issue #2057 by @rwedge
- Support null foreign keys in get_random_subset - Issue #2056 by @R-Palazzo
- Warn the user if they are trying to save an unfit synthesizer - Issue #1961 by @fealho
Bugs Fixed
- Using FixedCombinations constraint with an integer constraint column causes sampling to fail - Issue #2183 by @R-Palazzo
- Metadata Detection Fails with new Data Type - Issue #2182 by @R-Palazzo
- Unable visualize just the real data (or just the synthetic data) in a multi-table setting - Issue #2160 by @R-Palazzo
- [dtypes] Numerical Formatter Fails to Learn Format of New Data Types - Issue #2156 by @R-Palazzo
- Primary keys may not be unique for variable length regexes - Issue #2116 by @amontanez24
- Confusing warning when using GANs that suggests that CUDA isn't being used - Issue #2052 by @fealho
- PAR DiagnosticReport not 1.0 with float categorical columns - Issue #1910 by @lajohn4747
- In
PARSynthesizer
I cannot pass in datetime context (InvalidDataError
during fitting) - Issue #1485 by @lajohn4747
Internal
- Enabling sdv logging causes tests to fail locally - Issue #2162 by @amontanez24
- Separate primary key detection functionality - Issue #2101 by @amontanez24
Maintenance
- [dtypes] Update the NumericalFormatter to use the
learn_rounding_digits
from RDT - Issue #2164 by @R-Palazzo - Mock every usage of
is_faker_function
to speed up the unit tests - Issue #2163 by @R-Palazzo - Review docs-related dev dependencies - Issue #2148 by @rwedge
- Cap boto and botocore - Issue #2123 by @lajohn4747
v1.15.0 - 2024-07-11
This release adds a new utils function called get_random_sequence_subset
, that allows users to get a subset of sequential data.
New Features
- Add utils to the Top Level Package. - Issue #2119 by @pvk-developer
- Add a utility function
get_random_sequence_subset
- Issue #2085 by @amontanez24
Bugs Fixed
- Context column cannot be a sequence key: Need better error message for this case - Issue #2097 by @gsheni
- Primary key and sequential key cannot be the same - Issue #2096 by @lajohn4747
- Error when applying
FixedCombinations
constraint on a child table with multiple parents inHMASynthesizer
- Issue #2087 by @pvk-developer - PARSynthesizer errors during
fit
if sequence_index is numerical sdtype - Issue #2079 by @lajohn4747 - Cap numpy to less than 2.0.0 until SDV supports - Issue #2075 by @gsheni
- Rename the
file_name
parameter tofilepath
parameter in ExcelHandler - Issue #2065 by @lajohn4747 - HMA sampling crashes when unknown sdtype detected for numerical column - Issue #2064 by @lajohn4747
- HMA Synthesizer's
scale
parameter doesn't work for small values - Issue #2045 by @lajohn4747 - PAR DiagnosticReport not 1.0 with float categorical columns - Issue #1910 by @lajohn4747
- If a parent has 0/1 children, HMASynthesizer may create constant data - Issue #1895 by @gsheni
Internal
- Add timeouts to requests in release notes script - Issue #2067 by @gsheni
- Investigate HMA case where parent is missing num_rows column - Issue #1703 by @gsheni
Maintenance
- Release notes should not include PRs - Issue #2074 by @amontanez24
- Switch to using ruff for Python linting and code formatting - Issue #1803 by @gsheni
v1.14.0 - 2024-06-13
This release provides a number of new features. A big one is that it adds the ability to fit the HMASynthesizer
on disconnected schemas! It also enables the PARSynthesizer
to work with constraints in certain conditions. More specifically, the PARSynthesizer
can now handle constraints as long as the columns involved in the constraints are either exclusively all context columns or exclusively all non-context columns.
Additionally, a verbose
parameter was added to the TVAESynthesizer
to get a more detailed progress bar. Also, a bug was corrected that renamed the file_path
parameter in the ExcelHandler.read()
method to filepath
as specified in the official SDV docs.
Internal
- Add workflow to generate release notes - Issue #2050 by @amontanez24
Bugs Fixed
- PARSynthesizer: Duplicate sequence index values when
sequence_length
is higher than real data - Issue #2031 by @lajohn4747 - PARSynthesizer model won't fit if sequence_index is missing - Issue #1972 by @lajohn4747
DataProcessor
never gets assigned atable_name
. - Issue #1964 by @fealho
New Features
- Rename
file_path
tofilepath
parameter in ExcelHandler - Issue #2055 by @amontanez24 - Enable the ability to run multi table synthesizers on disjointed table schemas - Issue #2047 by @lajohn4747
- Add header to log.csv file - Issue #2046 by @lajohn4747
- If no filepath is provided, do not create a file during
sample
- Issue #2042 by @lajohn4747 - Add verbosity to
TVAESynthesizer
- Issue #1990 by @fealho - Allow constraints in PARSynthesizer (for all context cols, or all non-context columns) - Issue #1936 by @lajohn4747
- Improve error message when sampling on a non-CPU device - Issue #1819 by @fealho
- Better data validation message for
auto_assign_transformers
- Issue #1509 by @lajohn4747
Miscellaneous
v1.13.1 - 2024-05-16
This release fixes the ModuleNotFoundError
error that was causing the 1.13.0 release to fail.
v1.13.0 - 2024-05-15
This release adds a utility function called get_random_subset
that helps users get a subset of their multi-table data so that modeling can be done quicker. Given a dictionary of table names mapped to DataFrames, metadata, a main table and a desired number of rows to use for the main table, it will subsample the data in a way that maintains referential integrity.
This release also adds two new local file handlers: the CSVHandler
and the ExcelHandler
. This enables users to easily load from and save synthetic data to these files types. These handlers return data and metadata in the multi-table format, so we also added the function get_table_metadata
to get a SingleTableMetadata
object from a MultiTableMetadata
object.
Finally, this release fixes some bugs that prevented synthesizers from working with data that had numerical column names.
New Features
- Add
get_random_subset
poc utility function - Issue #1877 by @R-Palazzo - Add usage logging - Issue #1903 by @pvk-developer
- Move function
drop_unknown_references
frompoc
to be directly underutils
- Issue #1947 by @R-Palazzo - Add CSVHandler - Issue #1949 by @pvk-developer
- Add ExcelHandler - Issue #1950 by @pvk-developer
- Add get_table_metadata function - Issue #1951 by @R-Palazzo
- Save usage log file as a csv - Issue #1974 by @frances-h
- Split out metadata creation from data import in the local files handlers - Issue #1975 by @pvk-developer
- Improve error message when trying to sample before fitting (single table) - Issue #1978 by @R-Palazzo
Bugs Fixed
- Metadata detection crashes when the column names are integers (
AttributeError: 'int' object has no attribute 'lower'
) - Issue #1933 by @lajohn4747 - Synthesizers crash when column names are integers (
TypeError: unsupported operand
) - Issue #1935 by @lajohn4747 - Switch parameter order in drop_unknown_references - Issue #1944 by @R-Palazzo
- Unexpected NaN values in sequence_index when dataframe isn't reset - Issue #1973 by @fealho
- Fix pandas DtypeWarning in download_demo - Issue #1980 by @fealho
Maintenance
- Only run unit and integration tests on oldest and latest python versions for macos - Issue #1948 by @frances-h
Internal
- Update code to remove
FutureWarning
related to 'enforce_uniqueness' parameter - Issue #1995 by @pvk-developer
v1.12.1 - 2024-04-19
This release makes a number of changes to how id columns are generated. By default, id columns with a regex will now have their values scrambled in the output. Id columns without a regex that are numeric will be created randomly. If they're not numeric, they will have a random suffix.
Additionally, improvements were made to the visibility of the get_loss_values_plot
.
New Features
- Create unique id for each synthesizer - Issue #1902 by @pvk-developer
- Generator Discriminator Loss Chart Color Change - Issue #1916 by @lajohn4747
- If using regex to generate values, scramble them - Issue #1921 by @amontanez24
- When generating ids without a regex, create them randomly - Issue #1922 by @frances-h
Maintenance
- Cleanup automated PR workflows - Issue #1926 by @R-Palazzo
Internal
- Add add-on modules to sys.modules - Issue #1924 by @amontanez24