@@ -57,15 +57,6 @@ def _validate_parameter_structure(dayz_parameters):
5757 _validate_table_parameter_dict_keys (table , table_parameters )
5858
5959
60- def _validate_key_column (column_parameters , column_table_msg ):
61- if 'missing_values_proportion' in column_parameters :
62- msg = (
63- f"Invalid 'missing_values_proportion' parameter for { column_table_msg } . Primary "
64- "and alternate keys can not have the 'missing_values_proportion' parameter set."
65- )
66- raise SynthesizerProcessingError (msg )
67-
68-
6960def _validate_numerical_parameters (column_parameters , column_table_msg ):
7061 for param in ['min_value' , 'max_value' ]:
7162 if param in column_parameters and not _is_numerical (column_parameters [param ]):
@@ -141,7 +132,7 @@ def _validate_categorical_parameters(column_parameters, column_table_msg):
141132 raise SynthesizerProcessingError (msg )
142133
143134
144- def _validate_missing_value_parameters (column_parameters , column_table_msg ):
135+ def _validate_missing_value_parameters (column_parameters , column_table_msg , is_key_column ):
145136 missing_values_proportion = column_parameters ['missing_values_proportion' ]
146137 if not _is_numerical (missing_values_proportion ) or (
147138 missing_values_proportion < 0.0 or missing_values_proportion > 1.0
@@ -151,6 +142,12 @@ def _validate_missing_value_parameters(column_parameters, column_table_msg):
151142 'must be a float between 0.0 and 1.0.'
152143 )
153144 raise SynthesizerProcessingError (msg )
145+ elif is_key_column and missing_values_proportion != 0 :
146+ msg = (
147+ f"Invalid 'missing_values_proportion' parameter for { column_table_msg } . Primary "
148+ "and alternate keys must have 'missing_values_proportion' parameter be zero."
149+ )
150+ raise SynthesizerProcessingError (msg )
154151
155152
156153def _validate_column_parameters (table , column , column_metadata , column_parameters , is_key_column ):
@@ -166,9 +163,6 @@ def _validate_column_parameters(table, column, column_metadata, column_parameter
166163 )
167164 raise SynthesizerProcessingError (msg )
168165
169- if is_key_column :
170- _validate_key_column (column_parameters , column_table_msg )
171-
172166 if sdtype == 'numerical' :
173167 _validate_numerical_parameters (column_parameters , column_table_msg )
174168 elif sdtype == 'datetime' :
@@ -177,7 +171,7 @@ def _validate_column_parameters(table, column, column_metadata, column_parameter
177171 _validate_categorical_parameters (column_parameters , column_table_msg )
178172
179173 if 'missing_values_proportion' in column_parameters :
180- _validate_missing_value_parameters (column_parameters , column_table_msg )
174+ _validate_missing_value_parameters (column_parameters , column_table_msg , is_key_column )
181175
182176
183177def _validate_table_parameters (table , table_metadata , table_parameters ):
0 commit comments