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.
Files changed (88) hide show
  1. {rdt-1.6.0 → rdt-1.6.1.dev0}/PKG-INFO +1 -1
  2. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/__init__.py +1 -1
  3. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/hyper_transformer.py +1 -8
  4. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/__init__.py +4 -2
  5. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/categorical.py +6 -1
  6. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/PKG-INFO +1 -1
  7. {rdt-1.6.0 → rdt-1.6.1.dev0}/setup.cfg +1 -1
  8. {rdt-1.6.0 → rdt-1.6.1.dev0}/setup.py +1 -1
  9. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/test_hyper_transformer.py +31 -13
  10. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/test_hyper_transformer.py +25 -15
  11. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test___init__.py +25 -1
  12. {rdt-1.6.0 → rdt-1.6.1.dev0}/AUTHORS.rst +0 -0
  13. {rdt-1.6.0 → rdt-1.6.1.dev0}/CONTRIBUTING.rst +0 -0
  14. {rdt-1.6.0 → rdt-1.6.1.dev0}/HISTORY.md +0 -0
  15. {rdt-1.6.0 → rdt-1.6.1.dev0}/LICENSE +0 -0
  16. {rdt-1.6.0 → rdt-1.6.1.dev0}/MANIFEST.in +0 -0
  17. {rdt-1.6.0 → rdt-1.6.1.dev0}/README.md +0 -0
  18. {rdt-1.6.0 → rdt-1.6.1.dev0}/RELEASE.md +0 -0
  19. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/errors.py +0 -0
  20. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/__init__.py +0 -0
  21. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/__init__.py +0 -0
  22. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/base.py +0 -0
  23. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/boolean.py +0 -0
  24. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/categorical.py +0 -0
  25. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/datetime.py +0 -0
  26. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/numerical.py +0 -0
  27. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/pii.py +0 -0
  28. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/text.py +0 -0
  29. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/datasets/utils.py +0 -0
  30. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/performance.py +0 -0
  31. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/performance/profiling.py +0 -0
  32. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/addons/addons_setup.py +0 -0
  33. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/base.py +0 -0
  34. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/boolean.py +0 -0
  35. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/datetime.py +0 -0
  36. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/null.py +0 -0
  37. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/numerical.py +0 -0
  38. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/__init__.py +0 -0
  39. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/anonymizer.py +0 -0
  40. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/pii/utils.py +0 -0
  41. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/text.py +0 -0
  42. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt/transformers/utils.py +0 -0
  43. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/SOURCES.txt +0 -0
  44. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/dependency_links.txt +0 -0
  45. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/not-zip-safe +0 -0
  46. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/requires.txt +0 -0
  47. {rdt-1.6.0 → rdt-1.6.1.dev0}/rdt.egg-info/top_level.txt +0 -0
  48. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/__init__.py +0 -0
  49. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/code_style.py +0 -0
  50. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/contributing.py +0 -0
  51. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_boolean.py +0 -0
  52. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_categorical.py +0 -0
  53. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_datetime.py +0 -0
  54. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_numerical.py +0 -0
  55. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/datasets/tests/test_utils.py +0 -0
  56. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/__init__.py +0 -0
  57. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/test_transformers.py +0 -0
  58. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/__init__.py +0 -0
  59. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/pii/__init__.py +0 -0
  60. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/pii/test_anonymizer.py +0 -0
  61. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_base.py +0 -0
  62. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_boolean.py +0 -0
  63. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_categorical.py +0 -0
  64. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_datetime.py +0 -0
  65. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_numerical.py +0 -0
  66. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/integration/transformers/test_text.py +0 -0
  67. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/README.md +0 -0
  68. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/__init__.py +0 -0
  69. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/test_performance.py +0 -0
  70. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/tests/__init__.py +0 -0
  71. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/performance/tests/test_profiling.py +0 -0
  72. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/__init__.py +0 -0
  73. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/test___init__.py +0 -0
  74. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/__init__.py +0 -0
  75. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/__init__.py +0 -0
  76. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/identity/__init__.py +0 -0
  77. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/addons/identity/test_identity.py +0 -0
  78. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/__init__.py +0 -0
  79. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/test_anonymizer.py +0 -0
  80. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/pii/test_utils.py +0 -0
  81. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_base.py +0 -0
  82. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_boolean.py +0 -0
  83. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_categorical.py +0 -0
  84. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_datetime.py +0 -0
  85. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_null.py +0 -0
  86. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_numerical.py +0 -0
  87. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_text.py +0 -0
  88. {rdt-1.6.0 → rdt-1.6.1.dev0}/tests/unit/transformers/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rdt
3
- Version: 1.6.0
3
+ Version: 1.6.1.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Home-page: https://github.com/sdv-dev/RDT
6
6
  Author: DataCebo, Inc.
@@ -5,7 +5,7 @@
5
5
 
6
6
  __author__ = 'DataCebo, Inc.'
7
7
  __email__ = 'info@sdv.dev'
8
- __version__ = '1.6.0'
8
+ __version__ = '1.6.1.dev0'
9
9
 
10
10
 
11
11
  import sys
@@ -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
- if sdtype in self._default_sdtype_transformers:
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': FrequencyEncoder(),
92
- 'boolean': BinaryEncoder(),
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
- return data.round().map(self.values_to_categories)
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):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rdt
3
- Version: 1.6.0
3
+ Version: 1.6.1.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Home-page: https://github.com/sdv-dev/RDT
6
6
  Author: DataCebo, Inc.
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.6.0
2
+ current_version = 1.6.1.dev0
3
3
  commit = True
4
4
  tag = True
5
5
  parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<candidate>\d+))?
@@ -139,6 +139,6 @@ setup(
139
139
  test_suite='tests',
140
140
  tests_require=tests_require,
141
141
  url='https://github.com/sdv-dev/RDT',
142
- version='1.6.0',
142
+ version='1.6.1.dev0',
143
143
  zip_safe=False,
144
144
  )
@@ -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': [0.3125, 0.3125, .8125, 0.8125, 0.3125, 0.8125, 0.3125, 0.3125],
96
- 'bool': [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0],
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': [0.3125, 0.75, 0.75, 0.3125, 0.3125, 0.9375, 0.3125, 0.3125]
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
- data['bool'] = data['bool'].astype('object')
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': [0.3125, 0.3125, 0.9375, 0.75, 0.3125, 0.75, 0.3125, 0.3125],
165
- 'bool': [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0],
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': [0.3125, 0.75, 0.75, 0.3125, 0.3125, 0.9375, 0.3125, 0.3125]
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'], FrequencyEncoder)
198
- assert isinstance(ht.field_transformers['bool'], BinaryEncoder)
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'], FrequencyEncoder)
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': FrequencyEncoder(),
240
- 'bool': BinaryEncoder(missing_value_replacement='mode'),
257
+ 'categorical': LabelEncoder(add_noise=True),
258
+ 'bool': LabelEncoder(add_noise=True),
241
259
  'datetime': DummyTransformerNotMLReady(),
242
- 'names': FrequencyEncoder()
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
- default_sdtype_transformers = {
225
- 'boolean': BinaryEncoder(),
226
- 'categorical': FrequencyEncoder()
227
- }
228
- get_default_transformer_mock.return_value = UnixTimestampEncoder()
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 = {'datetime': 'datetime'}
232
- ht._default_sdtype_transformers = default_sdtype_transformers
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'], FrequencyEncoder)
250
- assert isinstance(ht.field_transformers['bool'], BinaryEncoder)
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': 'FrequencyEncoder()',
290
- 'col3': 'BinaryEncoder()',
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": FrequencyEncoder(),',
307
- ' "col3": BinaryEncoder(),',
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 BinaryEncoder, get_transformer_class, get_transformer_name
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