sdgym 0.7.0.dev0__tar.gz → 0.8.0.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 (58) hide show
  1. sdgym-0.8.0.dev0/PKG-INFO +237 -0
  2. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/README.md +3 -3
  3. sdgym-0.8.0.dev0/pyproject.toml +219 -0
  4. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/__init__.py +2 -2
  5. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/benchmark.py +264 -48
  6. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/cli/__main__.py +64 -154
  7. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/cli/collect.py +1 -0
  8. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/cli/summary.py +42 -35
  9. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/cli/utils.py +3 -3
  10. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/datasets.py +25 -15
  11. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/s3.py +2 -5
  12. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/__init__.py +16 -6
  13. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/base.py +5 -2
  14. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/generate.py +18 -14
  15. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/identity.py +1 -0
  16. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/independent.py +2 -2
  17. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/sdv.py +1 -16
  18. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/synthesizers/uniform.py +23 -3
  19. sdgym-0.8.0.dev0/sdgym.egg-info/PKG-INFO +237 -0
  20. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym.egg-info/SOURCES.txt +2 -22
  21. sdgym-0.8.0.dev0/sdgym.egg-info/entry_points.txt +2 -0
  22. sdgym-0.8.0.dev0/sdgym.egg-info/requires.txt +68 -0
  23. sdgym-0.8.0.dev0/setup.cfg +4 -0
  24. sdgym-0.8.0.dev0/tests/test_tasks.py +39 -0
  25. sdgym-0.7.0.dev0/AUTHORS.rst +0 -1
  26. sdgym-0.7.0.dev0/HISTORY.md +0 -164
  27. sdgym-0.7.0.dev0/MANIFEST.in +0 -11
  28. sdgym-0.7.0.dev0/PKG-INFO +0 -352
  29. sdgym-0.7.0.dev0/docs/images/SDGym_Results.png +0 -0
  30. sdgym-0.7.0.dev0/sdgym.egg-info/PKG-INFO +0 -352
  31. sdgym-0.7.0.dev0/sdgym.egg-info/entry_points.txt +0 -2
  32. sdgym-0.7.0.dev0/sdgym.egg-info/not-zip-safe +0 -1
  33. sdgym-0.7.0.dev0/sdgym.egg-info/requires.txt +0 -118
  34. sdgym-0.7.0.dev0/setup.cfg +0 -56
  35. sdgym-0.7.0.dev0/setup.py +0 -147
  36. sdgym-0.7.0.dev0/tests/__init__.py +0 -1
  37. sdgym-0.7.0.dev0/tests/integration/__init__.py +0 -1
  38. sdgym-0.7.0.dev0/tests/integration/synthesizers/__init__.py +0 -1
  39. sdgym-0.7.0.dev0/tests/integration/synthesizers/test_independent.py +0 -39
  40. sdgym-0.7.0.dev0/tests/integration/synthesizers/test_uniform.py +0 -70
  41. sdgym-0.7.0.dev0/tests/integration/test_benchmark.py +0 -470
  42. sdgym-0.7.0.dev0/tests/unit/__init__.py +0 -1
  43. sdgym-0.7.0.dev0/tests/unit/synthesizers/__init__.py +0 -1
  44. sdgym-0.7.0.dev0/tests/unit/synthesizers/test_generate.py +0 -122
  45. sdgym-0.7.0.dev0/tests/unit/synthesizers/test_independent.py +0 -22
  46. sdgym-0.7.0.dev0/tests/unit/test_benchmark.py +0 -83
  47. sdgym-0.7.0.dev0/tests/unit/test_datasets.py +0 -304
  48. sdgym-0.7.0.dev0/tests/unit/test_s3.py +0 -214
  49. sdgym-0.7.0.dev0/tests/unit/test_summary.py +0 -156
  50. sdgym-0.7.0.dev0/tests/unit/test_utils.py +0 -40
  51. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/LICENSE +0 -0
  52. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/cli/__init__.py +0 -0
  53. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/errors.py +0 -0
  54. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/metrics.py +0 -0
  55. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/progress.py +0 -0
  56. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym/utils.py +0 -0
  57. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym.egg-info/dependency_links.txt +0 -0
  58. {sdgym-0.7.0.dev0 → sdgym-0.8.0.dev0}/sdgym.egg-info/top_level.txt +0 -0
@@ -0,0 +1,237 @@
1
+ Metadata-Version: 2.1
2
+ Name: sdgym
3
+ Version: 0.8.0.dev0
4
+ Summary: Benchmark tabular synthetic data generators using a variety of datasets
5
+ Author-email: "DataCebo, Inc." <info@sdv.dev>
6
+ License: BSL-1.1
7
+ Project-URL: Source Code, https://github.com/sdv-dev/SDGym/
8
+ Project-URL: Issue Tracker, https://github.com/sdv-dev/SDGym/issues
9
+ Project-URL: Changes, https://github.com/sdv-dev/SDGym/blob/main/HISTORY.md
10
+ Project-URL: Twitter, https://twitter.com/sdv_dev
11
+ Project-URL: Chat, https://bit.ly/sdv-slack-invite
12
+ Keywords: machine learning,synthetic data generation,benchmark,generative models
13
+ Classifier: Development Status :: 2 - Pre-Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: Free for non-commercial use
16
+ Classifier: Natural Language :: English
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
+ Requires-Python: <3.13,>=3.8
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: appdirs>=1.3
28
+ Requires-Dist: boto3<2,>=1.28
29
+ Requires-Dist: botocore<2,>=1.31
30
+ Requires-Dist: compress-pickle>=1.2.0
31
+ Requires-Dist: humanfriendly>=8.2
32
+ Requires-Dist: numpy>=1.21.0; python_version < "3.10"
33
+ Requires-Dist: numpy<2,>=1.23.3; python_version >= "3.10" and python_version < "3.12"
34
+ Requires-Dist: numpy<2,>=1.26.0; python_version >= "3.12"
35
+ Requires-Dist: pandas>=1.4.0; python_version < "3.11"
36
+ Requires-Dist: pandas>=1.5.0; python_version >= "3.11" and python_version < "3.12"
37
+ Requires-Dist: pandas>=2.1.1; python_version >= "3.12"
38
+ Requires-Dist: psutil>=5.7
39
+ Requires-Dist: scikit-learn>=1.0.2; python_version < "3.10"
40
+ Requires-Dist: scikit-learn>=1.1.0; python_version >= "3.10" and python_version < "3.11"
41
+ Requires-Dist: scikit-learn>=1.1.3; python_version >= "3.11" and python_version < "3.12"
42
+ Requires-Dist: scikit-learn>=1.3.1; python_version >= "3.12"
43
+ Requires-Dist: scipy>=1.7.3; python_version < "3.10"
44
+ Requires-Dist: scipy>=1.9.2; python_version >= "3.10" and python_version < "3.12"
45
+ Requires-Dist: scipy>=1.12.0; python_version >= "3.12"
46
+ Requires-Dist: tabulate<0.9,>=0.8.3
47
+ Requires-Dist: torch>=1.9.0; python_version < "3.10"
48
+ Requires-Dist: torch>=2.0.0; python_version >= "3.10" and python_version < "3.12"
49
+ Requires-Dist: torch>=2.2.0; python_version >= "3.12"
50
+ Requires-Dist: tqdm>=4.29
51
+ Requires-Dist: XlsxWriter>=1.2.8
52
+ Requires-Dist: rdt>=1.12.1
53
+ Requires-Dist: sdmetrics>=0.14.1
54
+ Requires-Dist: sdv>=1.13.1
55
+ Provides-Extra: dask
56
+ Requires-Dist: dask; extra == "dask"
57
+ Requires-Dist: distributed; extra == "dask"
58
+ Provides-Extra: test
59
+ Requires-Dist: pytest>=6.2.5; extra == "test"
60
+ Requires-Dist: pytest-cov>=2.6.0; extra == "test"
61
+ Requires-Dist: jupyter<2,>=1.0.0; extra == "test"
62
+ Requires-Dist: rundoc<0.5,>=0.4.3; extra == "test"
63
+ Requires-Dist: tomli<3,>=2.0.0; extra == "test"
64
+ Provides-Extra: dev
65
+ Requires-Dist: sdgym[dask,test]; extra == "dev"
66
+ Requires-Dist: build<2,>=1.0.0; extra == "dev"
67
+ Requires-Dist: bump-my-version<1,>=0.18.3; extra == "dev"
68
+ Requires-Dist: pip>=9.0.1; extra == "dev"
69
+ Requires-Dist: watchdog<5,>=1.0.1; extra == "dev"
70
+ Requires-Dist: ruff<1,>=0.4.5; extra == "dev"
71
+ Requires-Dist: twine<6,>=1.10.0; extra == "dev"
72
+ Requires-Dist: wheel>=0.30.0; extra == "dev"
73
+ Requires-Dist: coverage<8,>=4.5.12; extra == "dev"
74
+ Requires-Dist: tox<5,>=2.9.1; extra == "dev"
75
+ Requires-Dist: importlib-metadata>=3.6; extra == "dev"
76
+ Requires-Dist: invoke; extra == "dev"
77
+ Provides-Extra: all
78
+ Requires-Dist: sdgym[dask,dev,test]; extra == "all"
79
+
80
+ <div align="center">
81
+ <br/>
82
+ <p align="center">
83
+ <i>This repository is part of <a href="https://sdv.dev">The Synthetic Data Vault Project</a>, a project from <a href="https://datacebo.com">DataCebo</a>.</i>
84
+ </p>
85
+
86
+ [![Development Status](https://img.shields.io/badge/Development%20Status-2%20--%20Pre--Alpha-yellow)](https://pypi.org/search/?c=Development+Status+%3A%3A+2+-+Pre-Alpha)
87
+ [![Travis](https://travis-ci.org/sdv-dev/SDGym.svg?branch=main)](https://travis-ci.org/sdv-dev/SDGym)
88
+ [![PyPi Shield](https://img.shields.io/pypi/v/sdgym.svg)](https://pypi.python.org/pypi/sdgym)
89
+ [![Downloads](https://pepy.tech/badge/sdgym)](https://pepy.tech/project/sdgym)
90
+ [![Slack](https://img.shields.io/badge/Community-Slack-blue?style=plastic&logo=slack)](https://bit.ly/sdv-slack-invite)
91
+
92
+ <div align="left">
93
+ <br/>
94
+ <p align="center">
95
+ <a href="https://github.com/sdv-dev/SDGym">
96
+ <img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/stable/docs/images/SDGym-DataCebo.png"></img>
97
+ </a>
98
+ </p>
99
+ </div>
100
+
101
+ </div>
102
+
103
+ # Overview
104
+
105
+ The Synthetic Data Gym (SDGym) is a benchmarking framework for modeling and generating
106
+ synthetic data. Measure performance and memory usage across different synthetic data modeling
107
+ techniques – classical statistics, deep learning and more!
108
+
109
+ <img align="center" src="docs/images/SDGym_Results.png"></img>
110
+
111
+ The SDGym library integrates with the Synthetic Data Vault ecosystem. You can use any of its
112
+ synthesizers, datasets or metrics for benchmarking. You can also customize the process to include
113
+ your own work.
114
+
115
+ * **Datasets**: Select any of the publicly available datasets from the SDV project, or input your own data.
116
+ * **Synthesizers**: Choose from any of the SDV synthesizers and baselines. Or write your own custom
117
+ machine learning model.
118
+ * **Evaluation**: In addition to performance and memory usage, you can also measure synthetic data
119
+ quality and privacy through a variety of metrics.
120
+
121
+ # Install
122
+
123
+ Install SDGym using pip or conda. We recommend using a virtual environment to avoid conflicts with other software on your device.
124
+
125
+ ```bash
126
+ pip install sdgym
127
+ ```
128
+
129
+ ```bash
130
+ conda install -c pytorch -c conda-forge sdgym
131
+ ```
132
+
133
+ For more information about using SDGym, visit the [SDGym Documentation](https://docs.sdv.dev/sdgym).
134
+
135
+ # Usage
136
+
137
+ Let's benchmark synthetic data generation for single tables. First, let's define which modeling
138
+ techniques we want to use. Let's choose a few synthesizers from the SDV library and a few others
139
+ to use as baselines.
140
+
141
+ ```python
142
+ # these synthesizers come from the SDV library
143
+ # each one uses different modeling techniques
144
+ sdv_synthesizers = ['GaussianCopulaSynthesizer', 'CTGANSynthesizer']
145
+
146
+ # these basic synthesizers are available in SDGym
147
+ # as baselines
148
+ baseline_synthesizers = ['UniformSynthesizer']
149
+ ```
150
+
151
+ Now, we can benchmark the different techniques:
152
+ ```python
153
+ import sdgym
154
+
155
+ sdgym.benchmark_single_table(
156
+ synthesizers=(sdv_synthesizers + baseline_synthesizers)
157
+ )
158
+ ```
159
+
160
+ The result is a detailed performance, memory and quality evaluation across the synthesizers
161
+ on a variety of publicly available datasets.
162
+
163
+ ## Supplying a custom synthesizer
164
+
165
+ Benchmark your own synthetic data generation techniques. Define your synthesizer by
166
+ specifying the training logic (using machine learning) and the sampling logic.
167
+
168
+ ```python
169
+ def my_training_logic(data, metadata):
170
+ # create an object to represent your synthesizer
171
+ # train it using the data
172
+ return synthesizer
173
+
174
+ def my_sampling_logic(trained_synthesizer, num_rows):
175
+ # use the trained synthesizer to create
176
+ # num_rows of synthetic data
177
+ return synthetic_data
178
+ ```
179
+
180
+ Learn more in the [Custom Synthesizers Guide](https://docs.sdv.dev/sdgym/customization/synthesizers/custom-synthesizers).
181
+
182
+ ## Customizing your datasets
183
+
184
+ The SDGym library includes many publicly available datasets that you can include right away.
185
+ List these using the ``get_available_datasets`` feature.
186
+
187
+ ```python
188
+ sdgym.get_available_datasets()
189
+ ```
190
+
191
+ ```
192
+ dataset_name size_MB num_tables
193
+ KRK_v1 0.072128 1
194
+ adult 3.907448 1
195
+ alarm 4.520128 1
196
+ asia 1.280128 1
197
+ ...
198
+ ```
199
+
200
+ You can also include any custom, private datasets that are stored on your computer on an
201
+ Amazon S3 bucket.
202
+
203
+ ```
204
+ my_datasets_folder = 's3://my-datasets-bucket'
205
+ ```
206
+
207
+ For more information, see the docs for [Customized Datasets](https://docs.sdv.dev/sdgym/customization/datasets).
208
+
209
+ # What's next?
210
+
211
+ Visit the [SDGym Documentation](https://docs.sdv.dev/sdgym) to learn more!
212
+
213
+ ---
214
+
215
+
216
+ <div align="center">
217
+ <a href="https://datacebo.com"><img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/stable/docs/images/DataCebo.png"></img></a>
218
+ </div>
219
+ <br/>
220
+ <br/>
221
+
222
+ [The Synthetic Data Vault Project](https://sdv.dev) was first created at MIT's [Data to AI Lab](
223
+ https://dai.lids.mit.edu/) in 2016. After 4 years of research and traction with enterprise, we
224
+ created [DataCebo](https://datacebo.com) in 2020 with the goal of growing the project.
225
+ Today, DataCebo is the proud developer of SDV, the largest ecosystem for
226
+ synthetic data generation & evaluation. It is home to multiple libraries that support synthetic
227
+ data, including:
228
+
229
+ * 🔄 Data discovery & transformation. Reverse the transforms to reproduce realistic data.
230
+ * 🧠 Multiple machine learning models -- ranging from Copulas to Deep Learning -- to create tabular,
231
+ multi table and time series data.
232
+ * 📊 Measuring quality and privacy of synthetic data, and comparing different synthetic data
233
+ generation models.
234
+
235
+ [Get started using the SDV package](https://sdv.dev/SDV/getting_started/install.html) -- a fully
236
+ integrated solution and your one-stop shop for synthetic data. Or, use the standalone libraries
237
+ for specific needs.
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
  [![Development Status](https://img.shields.io/badge/Development%20Status-2%20--%20Pre--Alpha-yellow)](https://pypi.org/search/?c=Development+Status+%3A%3A+2+-+Pre-Alpha)
8
- [![Travis](https://travis-ci.org/sdv-dev/SDGym.svg?branch=master)](https://travis-ci.org/sdv-dev/SDGym)
8
+ [![Travis](https://travis-ci.org/sdv-dev/SDGym.svg?branch=main)](https://travis-ci.org/sdv-dev/SDGym)
9
9
  [![PyPi Shield](https://img.shields.io/pypi/v/sdgym.svg)](https://pypi.python.org/pypi/sdgym)
10
10
  [![Downloads](https://pepy.tech/badge/sdgym)](https://pepy.tech/project/sdgym)
11
11
  [![Slack](https://img.shields.io/badge/Community-Slack-blue?style=plastic&logo=slack)](https://bit.ly/sdv-slack-invite)
@@ -14,7 +14,7 @@
14
14
  <br/>
15
15
  <p align="center">
16
16
  <a href="https://github.com/sdv-dev/SDGym">
17
- <img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/master/docs/images/SDGym-DataCebo.png"></img>
17
+ <img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/stable/docs/images/SDGym-DataCebo.png"></img>
18
18
  </a>
19
19
  </p>
20
20
  </div>
@@ -135,7 +135,7 @@ Visit the [SDGym Documentation](https://docs.sdv.dev/sdgym) to learn more!
135
135
 
136
136
 
137
137
  <div align="center">
138
- <a href="https://datacebo.com"><img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/master/docs/images/DataCebo.png"></img></a>
138
+ <a href="https://datacebo.com"><img align="center" width=40% src="https://github.com/sdv-dev/SDV/blob/stable/docs/images/DataCebo.png"></img></a>
139
139
  </div>
140
140
  <br/>
141
141
  <br/>
@@ -0,0 +1,219 @@
1
+ [project]
2
+ name = 'sdgym'
3
+ description = 'Benchmark tabular synthetic data generators using a variety of datasets'
4
+ authors = [{ name = 'DataCebo, Inc.', email = 'info@sdv.dev' }]
5
+ classifiers = [
6
+ 'Development Status :: 2 - Pre-Alpha',
7
+ 'Intended Audience :: Developers',
8
+ 'License :: Free for non-commercial use',
9
+ 'Natural Language :: English',
10
+ 'Programming Language :: Python :: 3',
11
+ 'Programming Language :: Python :: 3.8',
12
+ 'Programming Language :: Python :: 3.9',
13
+ 'Programming Language :: Python :: 3.10',
14
+ 'Programming Language :: Python :: 3.11',
15
+ 'Programming Language :: Python :: 3.12',
16
+ 'Topic :: Scientific/Engineering :: Artificial Intelligence',
17
+ ]
18
+ keywords = ['machine learning', 'synthetic data generation', 'benchmark', 'generative models']
19
+ dynamic = ['version']
20
+ license = { text = 'BSL-1.1' }
21
+ requires-python = '>=3.8,<3.13'
22
+ readme = 'README.md'
23
+ dependencies = [
24
+ 'appdirs>=1.3',
25
+ 'boto3>=1.28,<2',
26
+ 'botocore>=1.31,<2',
27
+ 'compress-pickle>=1.2.0',
28
+ 'humanfriendly>=8.2',
29
+ "numpy>=1.21.0;python_version<'3.10'",
30
+ "numpy>=1.23.3,<2;python_version>='3.10' and python_version<'3.12'",
31
+ "numpy>=1.26.0,<2;python_version>='3.12'",
32
+ "pandas>=1.4.0;python_version<'3.11'",
33
+ "pandas>=1.5.0;python_version>='3.11' and python_version<'3.12'",
34
+ "pandas>=2.1.1;python_version>='3.12'",
35
+ 'psutil>=5.7',
36
+ "scikit-learn>=1.0.2;python_version<'3.10'",
37
+ "scikit-learn>=1.1.0;python_version>='3.10' and python_version<'3.11'",
38
+ "scikit-learn>=1.1.3;python_version>='3.11' and python_version<'3.12'",
39
+ "scikit-learn>=1.3.1;python_version>='3.12'",
40
+ "scipy>=1.7.3;python_version<'3.10'",
41
+ "scipy>=1.9.2;python_version>='3.10' and python_version<'3.12'",
42
+ "scipy>=1.12.0;python_version>='3.12'",
43
+ 'tabulate>=0.8.3,<0.9',
44
+ "torch>=1.9.0;python_version<'3.10'",
45
+ "torch>=2.0.0;python_version>='3.10' and python_version<'3.12'",
46
+ "torch>=2.2.0;python_version>='3.12'",
47
+ 'tqdm>=4.29',
48
+ 'XlsxWriter>=1.2.8',
49
+ 'rdt>=1.12.1',
50
+ 'sdmetrics>=0.14.1',
51
+ 'sdv>=1.13.1',
52
+ ]
53
+
54
+ [project.urls]
55
+ "Source Code"= "https://github.com/sdv-dev/SDGym/"
56
+ "Issue Tracker" = "https://github.com/sdv-dev/SDGym/issues"
57
+ "Changes" = "https://github.com/sdv-dev/SDGym/blob/main/HISTORY.md"
58
+ "Twitter" = "https://twitter.com/sdv_dev"
59
+ "Chat" = "https://bit.ly/sdv-slack-invite"
60
+
61
+ [project.entry-points]
62
+ sdgym = { main = 'sdgym.cli.__main__:main' }
63
+
64
+ [project.optional-dependencies]
65
+ dask = ['dask', 'distributed']
66
+ test = [
67
+ 'pytest>=6.2.5',
68
+ 'pytest-cov>=2.6.0',
69
+ 'jupyter>=1.0.0,<2',
70
+ 'rundoc>=0.4.3,<0.5',
71
+ 'tomli>=2.0.0,<3',
72
+ ]
73
+ dev = [
74
+ 'sdgym[dask, test]',
75
+
76
+ # general
77
+ 'build>=1.0.0,<2',
78
+ 'bump-my-version>=0.18.3,<1',
79
+ 'pip>=9.0.1',
80
+ 'watchdog>=1.0.1,<5',
81
+
82
+ # style check
83
+ 'ruff>=0.4.5,<1',
84
+
85
+ # distribute on PyPI
86
+ 'twine>=1.10.0,<6',
87
+ 'wheel>=0.30.0',
88
+
89
+ # Advanced testing
90
+ 'coverage>=4.5.12,<8',
91
+ 'tox>=2.9.1,<5',
92
+ 'importlib-metadata>=3.6',
93
+
94
+ # Invoke
95
+ 'invoke',
96
+ ]
97
+ all = [
98
+ 'sdgym[dask, test, dev]',
99
+ ]
100
+
101
+ [tool.setuptools]
102
+ include-package-data = true
103
+ license-files = ['LICENSE']
104
+
105
+ [tool.setuptools.packages.find]
106
+ include = ['sdgym', 'sdgym.*']
107
+ namespaces = false
108
+
109
+ [tool.setuptools.package-data]
110
+ '*' = [
111
+ 'AUTHORS.rst',
112
+ 'HISTORY.md',
113
+ 'README.md',
114
+ '*.md',
115
+ '*.rst',
116
+ 'conf.py',
117
+ 'Makefile',
118
+ 'make.bat',
119
+ '*.jpg',
120
+ '*.png',
121
+ '*.gif'
122
+ ]
123
+ 'sdgym' = ['leaderboard.csv']
124
+
125
+ [tool.setuptools.exclude-package-data]
126
+ '*' = [
127
+ '* __pycache__',
128
+ '*.py[co]',
129
+ 'static_code_analysis.txt',
130
+ ]
131
+
132
+ [tool.setuptools.dynamic]
133
+ version = {attr = 'sdgym.__version__'}
134
+
135
+ [tool.bumpversion]
136
+ current_version = "0.8.0.dev0"
137
+ parse = '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\.(?P<release>[a-z]+)(?P<candidate>\d+))?'
138
+ serialize = [
139
+ '{major}.{minor}.{patch}.{release}{candidate}',
140
+ '{major}.{minor}.{patch}'
141
+ ]
142
+ search = '{current_version}'
143
+ replace = '{new_version}'
144
+ regex = false
145
+ ignore_missing_version = false
146
+ tag = true
147
+ sign_tags = false
148
+ tag_name = 'v{new_version}'
149
+ tag_message = 'Bump version: {current_version} → {new_version}'
150
+ allow_dirty = false
151
+ commit = true
152
+ message = 'Bump version: {current_version} → {new_version}'
153
+ commit_args = ''
154
+
155
+ [tool.bumpversion.parts.release]
156
+ first_value = 'dev'
157
+ optional_value = 'release'
158
+ values = [
159
+ 'dev',
160
+ 'release'
161
+ ]
162
+
163
+ [[tool.bumpversion.files]]
164
+ filename = "sdgym/__init__.py"
165
+ search = "__version__ = '{current_version}'"
166
+ replace = "__version__ = '{new_version}'"
167
+
168
+ [build-system]
169
+ requires = ['setuptools', 'wheel']
170
+ build-backend = 'setuptools.build_meta'
171
+
172
+ [tool.ruff]
173
+ preview = true
174
+ line-length = 100
175
+ indent-width = 4
176
+ src = ["sdgym"]
177
+ exclude = [
178
+ "docs",
179
+ ".tox",
180
+ ".git",
181
+ "__pycache__",
182
+ ".ipynb_checkpoints"
183
+ ]
184
+
185
+ [tool.ruff.lint]
186
+ select = [
187
+ # Pyflakes
188
+ "F",
189
+ # Pycodestyle
190
+ "E",
191
+ "W",
192
+ "D200",
193
+ # isort
194
+ "I001",
195
+ ]
196
+ ignore = [
197
+ "E501",
198
+ "D107", # Missing docstring in __init__
199
+ "D417", # Missing argument descriptions in the docstring, this is a bug from pydocstyle: https://github.com/PyCQA/pydocstyle/issues/449
200
+ ]
201
+
202
+ [tool.ruff.format]
203
+ quote-style = "single"
204
+ indent-style = "space"
205
+ preview = true
206
+ docstring-code-format = true
207
+ docstring-code-line-length = "dynamic"
208
+
209
+ [tool.ruff.lint.pep8-naming]
210
+ extend-ignore-names = ["X", "C", "X_padded", "Y", "Y_padded"]
211
+
212
+ [tool.ruff.lint.isort]
213
+ known-first-party = ["sdgym"]
214
+
215
+ [tool.ruff.lint.per-file-ignores]
216
+ "__init__.py" = ["F401", "E402", "F403", "F405", "E501", "I001"]
217
+
218
+ [tool.ruff.lint.pydocstyle]
219
+ convention = "google"
@@ -8,7 +8,7 @@ __author__ = 'DataCebo, Inc.'
8
8
  __copyright__ = 'Copyright (c) 2022 DataCebo, Inc.'
9
9
  __email__ = 'info@sdv.dev'
10
10
  __license__ = 'BSL-1.1'
11
- __version__ = '0.7.0.dev0'
11
+ __version__ = '0.8.0.dev0'
12
12
 
13
13
  import logging
14
14
 
@@ -29,5 +29,5 @@ __all__ = [
29
29
  'benchmark_single_table',
30
30
  'get_available_datasets',
31
31
  'create_sdv_synthesizer_variant',
32
- 'create_single_table_synthesizer'
32
+ 'create_single_table_synthesizer',
33
33
  ]