rdt 1.19.1.dev0__tar.gz → 1.20.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 (45) hide show
  1. {rdt-1.19.1.dev0/rdt.egg-info → rdt-1.20.1.dev0}/PKG-INFO +4 -5
  2. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/README.md +1 -1
  3. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/pyproject.toml +4 -5
  4. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/__init__.py +1 -1
  5. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/utils.py +37 -26
  6. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0/rdt.egg-info}/PKG-INFO +4 -5
  7. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/LICENSE +0 -0
  8. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/_utils.py +0 -0
  9. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/errors.py +0 -0
  10. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/hyper_transformer.py +0 -0
  11. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/__init__.py +0 -0
  12. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/__init__.py +0 -0
  13. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/base.py +0 -0
  14. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/boolean.py +0 -0
  15. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/categorical.py +0 -0
  16. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/datetime.py +0 -0
  17. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/id.py +0 -0
  18. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/numerical.py +0 -0
  19. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/pii.py +0 -0
  20. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/text.py +0 -0
  21. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/datasets/utils.py +0 -0
  22. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/performance.py +0 -0
  23. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/performance/profiling.py +0 -0
  24. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/__init__.py +4 -4
  25. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/_validators.py +0 -0
  26. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/base.py +0 -0
  27. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/boolean.py +0 -0
  28. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/categorical.py +0 -0
  29. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/datetime.py +0 -0
  30. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/id.py +0 -0
  31. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/null.py +0 -0
  32. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/numerical.py +0 -0
  33. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/pii/__init__.py +0 -0
  34. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/pii/anonymization.py +0 -0
  35. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/pii/anonymizer.py +0 -0
  36. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/pii/utils.py +0 -0
  37. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt/transformers/text.py +0 -0
  38. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt.egg-info/SOURCES.txt +0 -0
  39. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt.egg-info/dependency_links.txt +0 -0
  40. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt.egg-info/entry_points.txt +0 -0
  41. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt.egg-info/requires.txt +0 -0
  42. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/rdt.egg-info/top_level.txt +0 -0
  43. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/setup.cfg +0 -0
  44. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/tests/test_scripts.py +0 -0
  45. {rdt-1.19.1.dev0 → rdt-1.20.1.dev0}/tests/test_tasks.py +0 -0
@@ -1,18 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdt
3
- Version: 1.19.1.dev0
3
+ Version: 1.20.1.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Author-email: "DataCebo, Inc." <info@sdv.dev>
6
- License: BSL-1.1
6
+ License-Expression: BUSL-1.1
7
7
  Project-URL: Source Code, https://github.com/sdv-dev/RDT/
8
8
  Project-URL: Issue Tracker, https://github.com/sdv-dev/RDT/issues
9
9
  Project-URL: Changes, https://github.com/sdv-dev/RDT/blob/main/HISTORY.md
10
10
  Project-URL: Twitter, https://twitter.com/sdv_dev
11
- Project-URL: Chat, https://bit.ly/sdv-slack-invite
11
+ Project-URL: Chat, https://forum.datacebo.com/
12
12
  Keywords: machine learning,synthetic data generation,benchmark,generative models
13
13
  Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: Free for non-commercial use
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Programming Language :: Python :: 3
18
17
  Classifier: Programming Language :: Python :: 3.9
@@ -89,7 +88,7 @@ Dynamic: license-file
89
88
  [![Unit Tests](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml/badge.svg)](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml)
90
89
  [![Downloads](https://pepy.tech/badge/rdt)](https://pepy.tech/project/rdt)
91
90
  [![Coverage Status](https://codecov.io/gh/sdv-dev/RDT/branch/main/graph/badge.svg)](https://codecov.io/gh/sdv-dev/RDT)
92
- [![Slack](https://img.shields.io/badge/Community-Slack-blue?style=plastic&logo=slack)](https://bit.ly/sdv-slack-invite)
91
+ [![Forum](https://img.shields.io/badge/Forum-Join%20now!-36C5F0)](https://forum.datacebo.com)
93
92
 
94
93
  <div align="left">
95
94
  <br/>
@@ -9,7 +9,7 @@
9
9
  [![Unit Tests](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml/badge.svg)](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml)
10
10
  [![Downloads](https://pepy.tech/badge/rdt)](https://pepy.tech/project/rdt)
11
11
  [![Coverage Status](https://codecov.io/gh/sdv-dev/RDT/branch/main/graph/badge.svg)](https://codecov.io/gh/sdv-dev/RDT)
12
- [![Slack](https://img.shields.io/badge/Community-Slack-blue?style=plastic&logo=slack)](https://bit.ly/sdv-slack-invite)
12
+ [![Forum](https://img.shields.io/badge/Forum-Join%20now!-36C5F0)](https://forum.datacebo.com)
13
13
 
14
14
  <div align="left">
15
15
  <br/>
@@ -5,7 +5,6 @@ authors = [{ name = 'DataCebo, Inc.', email = 'info@sdv.dev' }]
5
5
  classifiers = [
6
6
  'Development Status :: 5 - Production/Stable',
7
7
  'Intended Audience :: Developers',
8
- 'License :: Free for non-commercial use',
9
8
  'Natural Language :: English',
10
9
  'Programming Language :: Python :: 3',
11
10
  'Programming Language :: Python :: 3.9',
@@ -18,7 +17,8 @@ classifiers = [
18
17
  ]
19
18
  keywords = ['machine learning', 'synthetic data generation', 'benchmark', 'generative models']
20
19
  dynamic = ['version']
21
- license = { text = 'BSL-1.1' }
20
+ license = 'BUSL-1.1'
21
+ license-files = ['LICENSE']
22
22
  requires-python = '>=3.9,<3.15'
23
23
  readme = 'README.md'
24
24
  dependencies = [
@@ -52,7 +52,7 @@ dependencies = [
52
52
  "Issue Tracker" = "https://github.com/sdv-dev/RDT/issues"
53
53
  "Changes" = "https://github.com/sdv-dev/RDT/blob/main/HISTORY.md"
54
54
  "Twitter" = "https://twitter.com/sdv_dev"
55
- "Chat" = "https://bit.ly/sdv-slack-invite"
55
+ "Chat" = "https://forum.datacebo.com/"
56
56
 
57
57
  [project.entry-points]
58
58
  rdt = { main = 'rdt.cli.__main__:main' }
@@ -101,7 +101,6 @@ readme = ['rundoc>=0.4.3,<0.5',]
101
101
 
102
102
  [tool.setuptools]
103
103
  include-package-data = true
104
- license-files = ['LICENSE']
105
104
 
106
105
  [tool.setuptools.packages.find]
107
106
  include = ['rdt', 'rdt.*']
@@ -151,7 +150,7 @@ collect_ignore = ['pyproject.toml']
151
150
  exclude_lines = ['NotImplementedError()']
152
151
 
153
152
  [tool.bumpversion]
154
- current_version = "1.19.1.dev0"
153
+ current_version = "1.20.1.dev0"
155
154
  parse = '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<candidate>\d+))?'
156
155
  serialize = [
157
156
  '{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.19.1.dev0'
7
+ __version__ = '1.20.1.dev0'
8
8
 
9
9
 
10
10
  import sys
@@ -15,7 +15,10 @@ from dateutil import parser
15
15
  from dateutil.parser import ParserError, UnknownTimezoneWarning
16
16
  from dateutil.tz import UTC
17
17
 
18
- import sre_parse # isort:skip
18
+ if sys.version_info >= (3, 11): # isort:skip # pragma: no cover
19
+ from re import _parser
20
+ else: # pragma: no cover
21
+ import sre_parse as _parser
19
22
 
20
23
  LOGGER = logging.getLogger(__name__)
21
24
 
@@ -54,7 +57,7 @@ def _any(options, max_repeat):
54
57
 
55
58
  def _max_repeat(options, max_repeat):
56
59
  min_, max_, options = options
57
- if max_ == sre_parse.MAXREPEAT:
60
+ if max_ == _parser.MAXREPEAT:
58
61
  max_ = max_repeat
59
62
 
60
63
  option, args = options[0]
@@ -80,12 +83,12 @@ def _category_chars(regex):
80
83
 
81
84
 
82
85
  _CATEGORIES = {
83
- sre_parse.CATEGORY_SPACE: _category_chars(re.compile(r'\s')),
84
- sre_parse.CATEGORY_NOT_SPACE: _category_chars(re.compile(r'\S')),
85
- sre_parse.CATEGORY_DIGIT: _category_chars(re.compile(r'\d')),
86
- sre_parse.CATEGORY_NOT_DIGIT: _category_chars(re.compile(r'\D')),
87
- sre_parse.CATEGORY_WORD: _category_chars(re.compile(r'\w')),
88
- sre_parse.CATEGORY_NOT_WORD: _category_chars(re.compile(r'\W')),
86
+ _parser.CATEGORY_SPACE: _category_chars(re.compile(r'\s')),
87
+ _parser.CATEGORY_NOT_SPACE: _category_chars(re.compile(r'\S')),
88
+ _parser.CATEGORY_DIGIT: _category_chars(re.compile(r'\d')),
89
+ _parser.CATEGORY_NOT_DIGIT: _category_chars(re.compile(r'\D')),
90
+ _parser.CATEGORY_WORD: _category_chars(re.compile(r'\w')),
91
+ _parser.CATEGORY_NOT_WORD: _category_chars(re.compile(r'\W')),
89
92
  }
90
93
 
91
94
 
@@ -95,13 +98,31 @@ def _category(category, max_repeat):
95
98
  return iter(characters), len(characters)
96
99
 
97
100
 
101
+ def _parse_pattern(pattern, max_repeat):
102
+ generators = []
103
+ sizes = []
104
+ for option, args in reversed(pattern):
105
+ if option != _parser.AT:
106
+ generator, size = _GENERATORS[option](args, max_repeat)
107
+ generators.append((generator, option, args))
108
+ sizes.append(size)
109
+
110
+ return _from_generators(generators, max_repeat), np.prod(sizes, dtype=np.complex128).real
111
+
112
+
113
+ def _subpattern(args, max_repeat):
114
+ # args is (group_id, add_flags, del_flags, pattern)
115
+ return _parse_pattern(args[3], max_repeat)
116
+
117
+
98
118
  _GENERATORS = {
99
- sre_parse.LITERAL: _literal,
100
- sre_parse.IN: _in,
101
- sre_parse.RANGE: _range,
102
- sre_parse.ANY: _any,
103
- sre_parse.MAX_REPEAT: _max_repeat,
104
- sre_parse.CATEGORY: _category,
119
+ _parser.LITERAL: _literal,
120
+ _parser.IN: _in,
121
+ _parser.RANGE: _range,
122
+ _parser.ANY: _any,
123
+ _parser.MAX_REPEAT: _max_repeat,
124
+ _parser.CATEGORY: _category,
125
+ _parser.SUBPATTERN: _subpattern,
105
126
  }
106
127
 
107
128
 
@@ -149,8 +170,6 @@ def strings_from_regex(regex, max_repeat=16):
149
170
  the indicated regular expressions alongside an integer indicating the
150
171
  total length of the generator.
151
172
 
152
- WARNING: Subpatterns are currently not supported.
153
-
154
173
  Args:
155
174
  regex (str):
156
175
  String representing a valid python regular expression.
@@ -163,16 +182,8 @@ def strings_from_regex(regex, max_repeat=16):
163
182
  * Generator that produces strings that match the given regex.
164
183
  * Total length of the generator.
165
184
  """
166
- parsed = sre_parse.parse(regex, flags=sre_parse.SRE_FLAG_UNICODE)
167
- generators = []
168
- sizes = []
169
- for option, args in reversed(parsed):
170
- if option != sre_parse.AT:
171
- generator, size = _GENERATORS[option](args, max_repeat)
172
- generators.append((generator, option, args))
173
- sizes.append(size)
174
-
175
- return _from_generators(generators, max_repeat), np.prod(sizes, dtype=np.complex128).real
185
+ parsed = _parser.parse(regex, flags=_parser.SRE_FLAG_UNICODE)
186
+ return _parse_pattern(parsed, max_repeat)
176
187
 
177
188
 
178
189
  def _fill_nan_with_none_series(data):
@@ -1,18 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdt
3
- Version: 1.19.1.dev0
3
+ Version: 1.20.1.dev0
4
4
  Summary: Reversible Data Transforms
5
5
  Author-email: "DataCebo, Inc." <info@sdv.dev>
6
- License: BSL-1.1
6
+ License-Expression: BUSL-1.1
7
7
  Project-URL: Source Code, https://github.com/sdv-dev/RDT/
8
8
  Project-URL: Issue Tracker, https://github.com/sdv-dev/RDT/issues
9
9
  Project-URL: Changes, https://github.com/sdv-dev/RDT/blob/main/HISTORY.md
10
10
  Project-URL: Twitter, https://twitter.com/sdv_dev
11
- Project-URL: Chat, https://bit.ly/sdv-slack-invite
11
+ Project-URL: Chat, https://forum.datacebo.com/
12
12
  Keywords: machine learning,synthetic data generation,benchmark,generative models
13
13
  Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: Free for non-commercial use
16
15
  Classifier: Natural Language :: English
17
16
  Classifier: Programming Language :: Python :: 3
18
17
  Classifier: Programming Language :: Python :: 3.9
@@ -89,7 +88,7 @@ Dynamic: license-file
89
88
  [![Unit Tests](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml/badge.svg)](https://github.com/sdv-dev/RDT/actions/workflows/unit.yml)
90
89
  [![Downloads](https://pepy.tech/badge/rdt)](https://pepy.tech/project/rdt)
91
90
  [![Coverage Status](https://codecov.io/gh/sdv-dev/RDT/branch/main/graph/badge.svg)](https://codecov.io/gh/sdv-dev/RDT)
92
- [![Slack](https://img.shields.io/badge/Community-Slack-blue?style=plastic&logo=slack)](https://bit.ly/sdv-slack-invite)
91
+ [![Forum](https://img.shields.io/badge/Forum-Join%20now!-36C5F0)](https://forum.datacebo.com)
93
92
 
94
93
  <div align="left">
95
94
  <br/>
File without changes
File without changes
File without changes
@@ -75,13 +75,13 @@ def get_transformer_name(transformer):
75
75
  transformer:
76
76
  A transformer class.
77
77
 
78
- Raises:
79
- ValueError:
80
- Crashes when the transformer is not passed as a class.
81
-
82
78
  Returns:
83
79
  string:
84
80
  The path of the transformer.
81
+
82
+ Raises:
83
+ ValueError:
84
+ Crashes when the transformer is not passed as a class.
85
85
  """
86
86
  if inspect.isclass(transformer):
87
87
  return transformer.__module__ + '.' + transformer.get_name()
File without changes
File without changes