rdt 1.6.0__tar.gz → 1.6.1.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rdt-1.6.0 → rdt-1.6.1.dev0}/PKG-INFO +1 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/__init__.py +1 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/hyper_transformer.py +1 -8
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/__init__.py +4 -2
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/categorical.py +6 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/PKG-INFO +1 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/setup.cfg +1 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/setup.py +1 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/test_hyper_transformer.py +31 -13
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/test_hyper_transformer.py +25 -15
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test___init__.py +25 -1
- {rdt-1.6.0 → rdt-1.6.1.dev0}/AUTHORS.rst +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/CONTRIBUTING.rst +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/HISTORY.md +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/LICENSE +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/MANIFEST.in +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/README.md +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/RELEASE.md +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/errors.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/base.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/boolean.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/categorical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/datetime.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/numerical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/pii.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/text.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/utils.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/performance.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/profiling.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/addons/addons_setup.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/base.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/boolean.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/datetime.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/null.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/numerical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/anonymizer.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/utils.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/text.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/utils.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/SOURCES.txt +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/dependency_links.txt +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/not-zip-safe +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/requires.txt +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/top_level.txt +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/code_style.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/contributing.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_boolean.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_categorical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_datetime.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_numerical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_utils.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/test_transformers.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/pii/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/pii/test_anonymizer.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_base.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_boolean.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_categorical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_datetime.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_numerical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_text.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/README.md +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/test_performance.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/tests/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/tests/test_profiling.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/test___init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/identity/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/identity/test_identity.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/__init__.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/test_anonymizer.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/test_utils.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_base.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_boolean.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_categorical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_datetime.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_null.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_numerical.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_text.py +0 -0
- {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_utils.py +0 -0
|
@@ -110,10 +110,8 @@ class HyperTransformer:
|
|
|
110
110
|
self._add_field_to_set(field, self._specified_fields)
|
|
111
111
|
|
|
112
112
|
def __init__(self):
|
|
113
|
-
self._default_sdtype_transformers = {}
|
|
114
113
|
self.field_sdtypes = {}
|
|
115
114
|
self.field_transformers = {}
|
|
116
|
-
|
|
117
115
|
self._specified_fields = set()
|
|
118
116
|
self._validate_field_transformers()
|
|
119
117
|
self._valid_output_sdtypes = self._DEFAULT_OUTPUT_SDTYPES
|
|
@@ -489,11 +487,7 @@ class HyperTransformer:
|
|
|
489
487
|
self._set_field_sdtype(data, field)
|
|
490
488
|
if field not in self.field_transformers:
|
|
491
489
|
sdtype = self.field_sdtypes[field]
|
|
492
|
-
|
|
493
|
-
self.field_transformers[field] = deepcopy(
|
|
494
|
-
self._default_sdtype_transformers[sdtype])
|
|
495
|
-
else:
|
|
496
|
-
self.field_transformers[field] = deepcopy(get_default_transformer(sdtype))
|
|
490
|
+
self.field_transformers[field] = deepcopy(get_default_transformer(sdtype))
|
|
497
491
|
|
|
498
492
|
def detect_initial_config(self, data):
|
|
499
493
|
"""Print the configuration of the data.
|
|
@@ -508,7 +502,6 @@ class HyperTransformer:
|
|
|
508
502
|
Data which will have its configuration detected.
|
|
509
503
|
"""
|
|
510
504
|
# Reset the state of the HyperTransformer
|
|
511
|
-
self._default_sdtype_transformers = {}
|
|
512
505
|
self.field_sdtypes = {}
|
|
513
506
|
self.field_transformers = {}
|
|
514
507
|
|
|
@@ -88,9 +88,11 @@ TRANSFORMERS = {
|
|
|
88
88
|
|
|
89
89
|
DEFAULT_TRANSFORMERS = {
|
|
90
90
|
'numerical': FloatFormatter(),
|
|
91
|
-
'categorical':
|
|
92
|
-
'boolean':
|
|
91
|
+
'categorical': LabelEncoder(add_noise=True),
|
|
92
|
+
'boolean': LabelEncoder(add_noise=True),
|
|
93
93
|
'datetime': UnixTimestampEncoder(),
|
|
94
|
+
'text': RegexGenerator(),
|
|
95
|
+
'pii': AnonymizedFaker(),
|
|
94
96
|
}
|
|
95
97
|
|
|
96
98
|
|
|
@@ -439,6 +439,7 @@ class LabelEncoder(BaseTransformer):
|
|
|
439
439
|
SUPPORTED_SDTYPES = ['categorical', 'boolean']
|
|
440
440
|
values_to_categories = None
|
|
441
441
|
categories_to_values = None
|
|
442
|
+
dtype = 'O'
|
|
442
443
|
|
|
443
444
|
def __init__(self, add_noise=False, order_by=None):
|
|
444
445
|
super().__init__()
|
|
@@ -483,6 +484,7 @@ class LabelEncoder(BaseTransformer):
|
|
|
483
484
|
data (pandas.Series):
|
|
484
485
|
Data to fit the transformer to.
|
|
485
486
|
"""
|
|
487
|
+
self.dtype = data.dtype
|
|
486
488
|
unique_data = pd.unique(data.fillna(np.nan))
|
|
487
489
|
unique_data = self._order_categories(unique_data)
|
|
488
490
|
self.values_to_categories = dict(enumerate(unique_data))
|
|
@@ -524,6 +526,7 @@ class LabelEncoder(BaseTransformer):
|
|
|
524
526
|
)
|
|
525
527
|
|
|
526
528
|
if self.add_noise:
|
|
529
|
+
mapped = mapped.astype(float)
|
|
527
530
|
mapped = np.random.uniform(mapped, mapped + 1)
|
|
528
531
|
|
|
529
532
|
return mapped
|
|
@@ -542,7 +545,9 @@ class LabelEncoder(BaseTransformer):
|
|
|
542
545
|
data = np.floor(data)
|
|
543
546
|
|
|
544
547
|
data = data.clip(min(self.values_to_categories), max(self.values_to_categories))
|
|
545
|
-
|
|
548
|
+
data = data.round().map(self.values_to_categories)
|
|
549
|
+
|
|
550
|
+
return data.astype(self.dtype)
|
|
546
551
|
|
|
547
552
|
|
|
548
553
|
class OrderedLabelEncoder(LabelEncoder):
|
|
@@ -92,16 +92,25 @@ def get_transformed_data():
|
|
|
92
92
|
return pd.DataFrame({
|
|
93
93
|
'integer': [1., 2., 1., 3., 1., 4., 2., 3.],
|
|
94
94
|
'float': [0.1, 0.2, 0.1, 0.2, 0.1, 0.4, 0.2, 0.3],
|
|
95
|
-
'categorical': [
|
|
96
|
-
|
|
95
|
+
'categorical': [
|
|
96
|
+
0.9690758764963199, 0.8816575994729887, 1.1326495454234662, 1.7988488918189502,
|
|
97
|
+
0.9265972159030215, 1.885454600378942, 0.9280858691537548, 0.5093227924068265
|
|
98
|
+
],
|
|
99
|
+
'bool': [
|
|
100
|
+
0.26161253184788935, 0.5735484647493089, 0.026673806296574787, 1.197229599974477,
|
|
101
|
+
0.8860641570557322, 0.33432787358513416, 1.1089412122841389, 0.6182653878449814
|
|
102
|
+
],
|
|
97
103
|
'datetime': datetimes,
|
|
98
|
-
'names': [
|
|
104
|
+
'names': [
|
|
105
|
+
0.24180193241041126, 1.9297787196579723, 1.5617500744772101, 0.6811042561384157,
|
|
106
|
+
0.48017218468846856, 2.2867787591284823, 0.25476586891248476, 0.620052082101593
|
|
107
|
+
]
|
|
99
108
|
}, index=TEST_DATA_INDEX)
|
|
100
109
|
|
|
101
110
|
|
|
102
111
|
def get_reversed_data():
|
|
103
112
|
data = get_input_data()
|
|
104
|
-
|
|
113
|
+
|
|
105
114
|
return data
|
|
106
115
|
|
|
107
116
|
|
|
@@ -161,10 +170,19 @@ def test_hypertransformer_default_inputs():
|
|
|
161
170
|
expected_transformed = pd.DataFrame({
|
|
162
171
|
'integer': [1., 2., 1., 3., 1., 4., 2., 3.],
|
|
163
172
|
'float': [0.1, 0.2, 0.1, 0.2, 0.1, 0.4, 0.2, 0.3],
|
|
164
|
-
'categorical': [
|
|
165
|
-
|
|
173
|
+
'categorical': [
|
|
174
|
+
0.9690758764963199, 0.8816575994729887, 1.1326495454234662, 2.7988488918189502,
|
|
175
|
+
0.9265972159030215, 2.8854546003789423, 0.9280858691537548, 0.5093227924068265
|
|
176
|
+
],
|
|
177
|
+
'bool': [
|
|
178
|
+
0.26161253184788935, 1.573548464749309, 0.026673806296574787, 2.1972295999744773,
|
|
179
|
+
0.8860641570557322, 1.334327873585134, 2.108941212284139, 0.6182653878449814
|
|
180
|
+
],
|
|
166
181
|
'datetime': expected_datetimes,
|
|
167
|
-
'names': [
|
|
182
|
+
'names': [
|
|
183
|
+
0.24180193241041126, 1.9297787196579723, 1.5617500744772101, 0.6811042561384157,
|
|
184
|
+
0.48017218468846856, 2.2867787591284823, 0.25476586891248476, 0.620052082101593
|
|
185
|
+
]
|
|
168
186
|
}, index=TEST_DATA_INDEX)
|
|
169
187
|
pd.testing.assert_frame_equal(transformed, expected_transformed)
|
|
170
188
|
|
|
@@ -194,10 +212,10 @@ def test_hypertransformer_default_inputs():
|
|
|
194
212
|
|
|
195
213
|
assert isinstance(ht.field_transformers['integer'], FloatFormatter)
|
|
196
214
|
assert isinstance(ht.field_transformers['float'], FloatFormatter)
|
|
197
|
-
assert isinstance(ht.field_transformers['categorical'],
|
|
198
|
-
assert isinstance(ht.field_transformers['bool'],
|
|
215
|
+
assert isinstance(ht.field_transformers['categorical'], LabelEncoder)
|
|
216
|
+
assert isinstance(ht.field_transformers['bool'], LabelEncoder)
|
|
199
217
|
assert isinstance(ht.field_transformers['datetime'], UnixTimestampEncoder)
|
|
200
|
-
assert isinstance(ht.field_transformers['names'],
|
|
218
|
+
assert isinstance(ht.field_transformers['names'], LabelEncoder)
|
|
201
219
|
|
|
202
220
|
get_default_transformers.cache_clear()
|
|
203
221
|
get_default_transformer.cache_clear()
|
|
@@ -236,10 +254,10 @@ def test_hypertransformer_field_transformers():
|
|
|
236
254
|
'transformers': {
|
|
237
255
|
'integer': FloatFormatter(missing_value_replacement='mean'),
|
|
238
256
|
'float': FloatFormatter(missing_value_replacement='mean'),
|
|
239
|
-
'categorical':
|
|
240
|
-
'bool':
|
|
257
|
+
'categorical': LabelEncoder(add_noise=True),
|
|
258
|
+
'bool': LabelEncoder(add_noise=True),
|
|
241
259
|
'datetime': DummyTransformerNotMLReady(),
|
|
242
|
-
'names':
|
|
260
|
+
'names': LabelEncoder(add_noise=True)
|
|
243
261
|
}
|
|
244
262
|
}
|
|
245
263
|
|
|
@@ -108,7 +108,6 @@ class TestHyperTransformer(TestCase):
|
|
|
108
108
|
|
|
109
109
|
# Asserts
|
|
110
110
|
assert ht.field_sdtypes == {}
|
|
111
|
-
assert ht._default_sdtype_transformers == {}
|
|
112
111
|
assert ht.field_transformers == {}
|
|
113
112
|
assert ht._specified_fields == set()
|
|
114
113
|
assert ht._valid_output_sdtypes == ht._DEFAULT_OUTPUT_SDTYPES
|
|
@@ -217,19 +216,26 @@ class TestHyperTransformer(TestCase):
|
|
|
217
216
|
"""
|
|
218
217
|
# Setup
|
|
219
218
|
data = self.get_data()
|
|
219
|
+
data['pii'] = ['a', 'b', 'c', 'd']
|
|
220
|
+
data['text'] = ['e', 'f', 'g', 'h']
|
|
220
221
|
field_transformers = {
|
|
221
222
|
'integer': FloatFormatter(),
|
|
222
223
|
'float': ClusterBasedNormalizer(),
|
|
223
224
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
get_default_transformer_mock.side_effect = [
|
|
226
|
+
LabelEncoder(),
|
|
227
|
+
LabelEncoder(),
|
|
228
|
+
UnixTimestampEncoder(),
|
|
229
|
+
AnonymizedFaker(),
|
|
230
|
+
RegexGenerator(),
|
|
231
|
+
]
|
|
229
232
|
ht = HyperTransformer()
|
|
230
233
|
ht.field_transformers = field_transformers
|
|
231
|
-
ht.field_sdtypes = {
|
|
232
|
-
|
|
234
|
+
ht.field_sdtypes = {
|
|
235
|
+
'datetime': 'datetime',
|
|
236
|
+
'pii': 'pii',
|
|
237
|
+
'text': 'text'
|
|
238
|
+
}
|
|
233
239
|
ht._unfit = Mock()
|
|
234
240
|
|
|
235
241
|
# Run
|
|
@@ -241,14 +247,18 @@ class TestHyperTransformer(TestCase):
|
|
|
241
247
|
'float': 'numerical',
|
|
242
248
|
'bool': 'boolean',
|
|
243
249
|
'categorical': 'categorical',
|
|
244
|
-
'datetime': 'datetime'
|
|
250
|
+
'datetime': 'datetime',
|
|
251
|
+
'pii': 'pii',
|
|
252
|
+
'text': 'text',
|
|
245
253
|
}
|
|
246
254
|
|
|
247
255
|
assert isinstance(ht.field_transformers['integer'], FloatFormatter)
|
|
248
256
|
assert isinstance(ht.field_transformers['float'], ClusterBasedNormalizer)
|
|
249
|
-
assert isinstance(ht.field_transformers['categorical'],
|
|
250
|
-
assert isinstance(ht.field_transformers['bool'],
|
|
257
|
+
assert isinstance(ht.field_transformers['categorical'], LabelEncoder)
|
|
258
|
+
assert isinstance(ht.field_transformers['bool'], LabelEncoder)
|
|
251
259
|
assert isinstance(ht.field_transformers['datetime'], UnixTimestampEncoder)
|
|
260
|
+
assert isinstance(ht.field_transformers['pii'], AnonymizedFaker)
|
|
261
|
+
assert isinstance(ht.field_transformers['text'], RegexGenerator)
|
|
252
262
|
ht._unfit.assert_called_once()
|
|
253
263
|
|
|
254
264
|
@patch('rdt.hyper_transformer.LOGGER')
|
|
@@ -286,8 +296,8 @@ class TestHyperTransformer(TestCase):
|
|
|
286
296
|
field_transformers = {k: repr(v) for (k, v) in ht.field_transformers.items()}
|
|
287
297
|
assert field_transformers == {
|
|
288
298
|
'col1': 'FloatFormatter()',
|
|
289
|
-
'col2': '
|
|
290
|
-
'col3': '
|
|
299
|
+
'col2': 'LabelEncoder(add_noise=True)',
|
|
300
|
+
'col3': 'LabelEncoder(add_noise=True)',
|
|
291
301
|
'col4': 'UnixTimestampEncoder()',
|
|
292
302
|
'col5': 'FloatFormatter()'
|
|
293
303
|
}
|
|
@@ -303,8 +313,8 @@ class TestHyperTransformer(TestCase):
|
|
|
303
313
|
' },',
|
|
304
314
|
' "transformers": {',
|
|
305
315
|
' "col1": FloatFormatter(),',
|
|
306
|
-
' "col2":
|
|
307
|
-
' "col3":
|
|
316
|
+
' "col2": LabelEncoder(add_noise=True),',
|
|
317
|
+
' "col3": LabelEncoder(add_noise=True),',
|
|
308
318
|
' "col4": UnixTimestampEncoder(),',
|
|
309
319
|
' "col5": FloatFormatter()',
|
|
310
320
|
' }',
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from rdt.transformers import
|
|
3
|
+
from rdt.transformers import (
|
|
4
|
+
AnonymizedFaker, BinaryEncoder, FloatFormatter, LabelEncoder, RegexGenerator,
|
|
5
|
+
UnixTimestampEncoder, get_default_transformers, get_transformer_class, get_transformer_name)
|
|
4
6
|
from rdt.transformers.addons.identity.identity import IdentityTransformer
|
|
5
7
|
|
|
6
8
|
|
|
@@ -94,3 +96,25 @@ def test_get_transformer_class_transformer_path_addon():
|
|
|
94
96
|
|
|
95
97
|
# Assert
|
|
96
98
|
assert returned == IdentityTransformer
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def test_get_default_transformers():
|
|
102
|
+
"""Test the ``get_default_transformers`` method.
|
|
103
|
+
|
|
104
|
+
Check that the right default transformer is returned for each type.
|
|
105
|
+
"""
|
|
106
|
+
# Run
|
|
107
|
+
default_transformer_dict = get_default_transformers()
|
|
108
|
+
|
|
109
|
+
# Assert
|
|
110
|
+
expected_dict = {
|
|
111
|
+
'numerical': FloatFormatter,
|
|
112
|
+
'categorical': LabelEncoder,
|
|
113
|
+
'boolean': LabelEncoder,
|
|
114
|
+
'datetime': UnixTimestampEncoder,
|
|
115
|
+
'text': RegexGenerator,
|
|
116
|
+
'pii': AnonymizedFaker,
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
for sdtype, transformer in expected_dict.items():
|
|
120
|
+
assert isinstance(default_transformer_dict[sdtype], transformer)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|