Skip to content

Commit 89d4503

Browse files
committed
fix rebase
1 parent 96da309 commit 89d4503

File tree

2 files changed

+12
-37
lines changed

2 files changed

+12
-37
lines changed

sdv/single_table/_dayz_utils.py

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def _detect_datetime_column_parameters(series, column_metadata):
8282
return params
8383

8484

85-
def _detect_categorical_or_boolean_column_parameters(series):
85+
def _detect_categorical_column_parameters(series):
8686
"""Detect categorical/boolean parameters."""
8787
categorical_values = series.dropna().unique()
8888
if len(categorical_values) == 0:
@@ -113,37 +113,14 @@ def detect_column_parameters(data, metadata, table_name):
113113
sdtype = column_metadata['sdtype']
114114
params = {}
115115
if sdtype == 'numerical':
116-
column_parameters[column_name] = {
117-
'num_decimal_digits': learn_rounding_digits(data[column_name]),
118-
'min_value': data[column_name].min(),
119-
'max_value': data[column_name].max(),
120-
}
116+
params.update(_detect_numerical_column_parameters(data[column_name]))
121117
elif sdtype == 'datetime':
122-
datetime_format = column_metadata.get('datetime_format', None)
123-
if datetime_format:
124-
datetime_column = pd.to_datetime(
125-
data[column_name], format=datetime_format, errors='coerce'
126-
)
127-
start_timestamp = datetime_column.min().strftime(datetime_format)
128-
end_timestamp = datetime_column.max().strftime(datetime_format)
129-
130-
else:
131-
datetime_column = pd.to_datetime(data[column_name], errors='coerce')
132-
start_timestamp = str(datetime_column.min())
133-
end_timestamp = str(datetime_column.max())
134-
135-
column_parameters[column_name] = {
136-
'start_timestamp': start_timestamp,
137-
'end_timestamp': end_timestamp,
138-
}
118+
params.update(_detect_datetime_column_parameters(data[column_name], column_metadata))
139119
elif sdtype == 'categorical':
140-
column_parameters[column_name] = {
141-
'category_values': data[column_name].dropna().unique().tolist()
142-
}
120+
params.update(_detect_categorical_column_parameters(data[column_name]))
143121

144-
column_parameters[column_name]['missing_values_proportion'] = float(
145-
data[column_name].isna().mean()
146-
)
122+
params['missing_values_proportion'] = _compute_missing_values_proportion(data[column_name])
123+
column_parameters[column_name] = params
147124

148125
return {'columns': column_parameters}
149126

tests/unit/single_table/test_dayz.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,6 @@ def test_validate_parameters(
375375
# Assert
376376
mock__validate_parameters.assert_called_once_with(metadata, dayz_parameters)
377377

378-
<<<<<<< HEAD
379378
def test__validate_parameters_errors_with_multi_table_metadata(self):
380379
"""Test that single-table validation errors if multi-table metadata is provided."""
381380
# Setup
@@ -434,11 +433,11 @@ def test__validate_parameters_errors_with_relationships(self):
434433
)
435434
with pytest.raises(SynthesizerProcessingError, match=expected_error_msg):
436435
DayZSynthesizer.validate_parameters(metadata, dayz_parameters)
437-
=======
438-
def test_create_parameters_with_empty_dataframe_returns_valid_defaults(self):
439-
"""create_parameters should not emit invalid values for empty dataframes."""
436+
437+
def test_create_parameters_returns_valid_defaults(self):
438+
"""Test create_parameters returns valid defaults."""
440439
# Setup
441-
data = pd.DataFrame({'col': []})
440+
data = pd.DataFrame({'col': [np.nan]})
442441
metadata = Metadata.detect_from_dataframe(data)
443442

444443
# Run
@@ -449,9 +448,9 @@ def test_create_parameters_with_empty_dataframe_returns_valid_defaults(self):
449448
'tables': {
450449
'table': {
451450
'columns': {
452-
'col': {'missing_values_proportion': 0.0},
451+
'col': {'missing_values_proportion': 1.0},
453452
},
454-
'num_rows': 0,
453+
'num_rows': 1,
455454
},
456455
},
457456
'DAYZ_SPEC_VERSION': 'V1',
@@ -524,4 +523,3 @@ def test_create_parameters_all_null_datetime_column(self):
524523
},
525524
'DAYZ_SPEC_VERSION': 'V1',
526525
}
527-
>>>>>>> eb252ea1 (Implement fallback)

0 commit comments

Comments
 (0)