rdt 1.12.2.dev0__tar.gz → 1.12.3.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 (41) hide show
  1. {rdt-1.12.2.dev0/rdt.egg-info → rdt-1.12.3.dev0}/PKG-INFO +1 -1
  2. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/pyproject.toml +1 -1
  3. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/__init__.py +1 -1
  4. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/hyper_transformer.py +1 -0
  5. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/numerical.py +13 -9
  6. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/pii/utils.py +0 -18
  7. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/utils.py +1 -2
  8. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0/rdt.egg-info}/PKG-INFO +1 -1
  9. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/LICENSE +0 -0
  10. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/README.md +0 -0
  11. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/errors.py +0 -0
  12. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/__init__.py +0 -0
  13. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/__init__.py +0 -0
  14. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/base.py +0 -0
  15. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/boolean.py +0 -0
  16. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/categorical.py +0 -0
  17. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/datetime.py +0 -0
  18. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/numerical.py +0 -0
  19. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/pii.py +0 -0
  20. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/text.py +0 -0
  21. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/datasets/utils.py +0 -0
  22. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/performance.py +0 -0
  23. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/performance/profiling.py +0 -0
  24. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/__init__.py +0 -0
  25. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/_validators.py +0 -0
  26. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/base.py +0 -0
  27. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/boolean.py +0 -0
  28. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/categorical.py +0 -0
  29. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/datetime.py +0 -0
  30. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/null.py +0 -0
  31. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/pii/__init__.py +0 -0
  32. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/pii/anonymization.py +0 -0
  33. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/pii/anonymizer.py +0 -0
  34. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt/transformers/text.py +0 -0
  35. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt.egg-info/SOURCES.txt +0 -0
  36. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt.egg-info/dependency_links.txt +0 -0
  37. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt.egg-info/entry_points.txt +0 -0
  38. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt.egg-info/requires.txt +0 -0
  39. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/rdt.egg-info/top_level.txt +0 -0
  40. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/setup.cfg +0 -0
  41. {rdt-1.12.2.dev0 → rdt-1.12.3.dev0}/tests/test_tasks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rdt
3
- Version: 1.12.2.dev0
3
+ Version: 1.12.3.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Author-email: "DataCebo, Inc." <info@sdv.dev>
6
6
  License: BSL-1.1
@@ -137,7 +137,7 @@ collect_ignore = ['pyproject.toml']
137
137
  exclude_lines = ['NotImplementedError()']
138
138
 
139
139
  [tool.bumpversion]
140
- current_version = "1.12.2.dev0"
140
+ current_version = "1.12.3.dev0"
141
141
  parse = '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<candidate>\d+))?'
142
142
  serialize = [
143
143
  '{major}.{minor}.{patch}.{release}{candidate}',
@@ -4,7 +4,7 @@
4
4
 
5
5
  __author__ = 'DataCebo, Inc.'
6
6
  __email__ = 'info@sdv.dev'
7
- __version__ = '1.12.2.dev0'
7
+ __version__ = '1.12.3.dev0'
8
8
 
9
9
 
10
10
  import sys
@@ -62,6 +62,7 @@ class HyperTransformer:
62
62
  # pylint: disable=too-many-instance-attributes
63
63
 
64
64
  _DTYPES_TO_SDTYPES = {
65
+ 'u': 'numerical',
65
66
  'i': 'numerical',
66
67
  'f': 'numerical',
67
68
  'O': 'categorical',
@@ -2,11 +2,11 @@
2
2
 
3
3
  import copy
4
4
  import warnings
5
+ from importlib import import_module
5
6
 
6
7
  import numpy as np
7
8
  import pandas as pd
8
9
  import scipy
9
- from sklearn.mixture import BayesianGaussianMixture
10
10
 
11
11
  from rdt.errors import TransformerInputError
12
12
  from rdt.transformers.base import BaseTransformer
@@ -103,7 +103,7 @@ class FloatFormatter(BaseTransformer):
103
103
  )
104
104
 
105
105
  def _validate_values_within_bounds(self, data):
106
- if self.computer_representation != 'Float':
106
+ if not self.computer_representation.startswith('Float'):
107
107
  fractions = data[~data.isna() & data % 1 != 0]
108
108
  if not fractions.empty:
109
109
  raise ValueError(
@@ -184,20 +184,22 @@ class FloatFormatter(BaseTransformer):
184
184
  data = self.null_transformer.reverse_transform(data)
185
185
  if self.enforce_min_max_values:
186
186
  data = data.clip(self._min_value, self._max_value)
187
- elif self.computer_representation != 'Float':
187
+ elif not self.computer_representation.startswith('Float'):
188
188
  min_bound, max_bound = INTEGER_BOUNDS[self.computer_representation]
189
189
  data = data.clip(min_bound, max_bound)
190
190
 
191
- is_integer = np.dtype(self._dtype).kind == 'i'
191
+ is_integer = pd.api.types.is_integer_dtype(self._dtype)
192
+ np_integer_with_nans = (
193
+ not pd.api.types.is_extension_array_dtype(self._dtype)
194
+ and is_integer
195
+ and pd.isna(data).any()
196
+ )
192
197
  if self.learn_rounding_scheme and self._rounding_digits is not None:
193
198
  data = data.round(self._rounding_digits)
194
199
  elif is_integer:
195
200
  data = data.round(0)
196
201
 
197
- if pd.isna(data).any() and is_integer:
198
- return data
199
-
200
- return data.astype(self._dtype)
202
+ return data.astype(self._dtype if not np_integer_with_nans else 'float64')
201
203
 
202
204
  def _set_fitted_parameters(
203
205
  self,
@@ -523,7 +525,9 @@ class ClusterBasedNormalizer(FloatFormatter):
523
525
  data (pandas.Series):
524
526
  Data to fit to.
525
527
  """
526
- self._bgm_transformer = BayesianGaussianMixture(
528
+ sm = import_module('sklearn.mixture')
529
+
530
+ self._bgm_transformer = sm.BayesianGaussianMixture(
527
531
  n_components=self.max_clusters,
528
532
  weight_concentration_prior_type='dirichlet_process',
529
533
  weight_concentration_prior=0.001,
@@ -5,24 +5,6 @@ import inspect
5
5
  from faker import Faker
6
6
 
7
7
 
8
- def is_faker_function(function_name):
9
- """Return whether or not the function name is a valid Faker function.
10
-
11
- Args:
12
- function_name (str):
13
- String representing a ``faker`` function.
14
-
15
- Returns:
16
- True if the ``function_name`` is know to ``Faker``, otherwise False.
17
- """
18
- try:
19
- getattr(Faker(), function_name)
20
- except AttributeError:
21
- return False
22
-
23
- return True
24
-
25
-
26
8
  def get_provider_name(function_name):
27
9
  """Return the ``faker`` provider name for a given ``function_name``.
28
10
 
@@ -252,8 +252,7 @@ def learn_rounding_digits(data):
252
252
  """
253
253
  # check if data has any decimals
254
254
  name = data.name
255
- data = np.array(data)
256
- roundable_data = data[~(np.isinf(data) | pd.isna(data))]
255
+ roundable_data = data[~(np.isinf(data.astype(float)) | pd.isna(data))]
257
256
 
258
257
  # Doesn't contain numbers
259
258
  if len(roundable_data) == 0:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rdt
3
- Version: 1.12.2.dev0
3
+ Version: 1.12.3.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Author-email: "DataCebo, Inc." <info@sdv.dev>
6
6
  License: BSL-1.1
File without changes
File without changes
File without changes
File without changes
File without changes