tree-sitter-sql 0.3.8__tar.gz → 0.3.10__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 (25) hide show
  1. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/PKG-INFO +5 -4
  2. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql/binding.c +11 -3
  3. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql.egg-info/PKG-INFO +5 -4
  4. tree_sitter_sql-0.3.10/bindings/python/tree_sitter_sql.egg-info/requires.txt +3 -0
  5. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/pyproject.toml +4 -4
  6. tree_sitter_sql-0.3.10/queries/highlights.scm +445 -0
  7. tree_sitter_sql-0.3.10/queries/indents.scm +27 -0
  8. tree_sitter_sql-0.3.10/setup.py +77 -0
  9. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/src/parser.c +480289 -363990
  10. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/src/scanner.c +1 -2
  11. tree_sitter_sql-0.3.10/src/tree_sitter/alloc.h +54 -0
  12. tree_sitter_sql-0.3.10/src/tree_sitter/array.h +291 -0
  13. tree_sitter_sql-0.3.10/src/tree_sitter/parser.h +286 -0
  14. tree_sitter_sql-0.3.8/bindings/python/tree_sitter_sql.egg-info/requires.txt +0 -3
  15. tree_sitter_sql-0.3.8/setup.py +0 -60
  16. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/LICENSE +0 -0
  17. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/README.md +0 -0
  18. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql/__init__.py +0 -0
  19. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql/__init__.pyi +0 -0
  20. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql/py.typed +0 -0
  21. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql.egg-info/SOURCES.txt +0 -0
  22. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql.egg-info/dependency_links.txt +0 -0
  23. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql.egg-info/not-zip-safe +0 -0
  24. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/bindings/python/tree_sitter_sql.egg-info/top_level.txt +0 -0
  25. {tree_sitter_sql-0.3.8 → tree_sitter_sql-0.3.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: tree-sitter-sql
3
- Version: 0.3.8
3
+ Version: 0.3.10
4
4
  Summary: Tree-sitter Grammar for SQL
5
5
  Author: derek stride
6
6
  License: MIT
@@ -11,11 +11,12 @@ Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Topic :: Software Development :: Compilers
12
12
  Classifier: Topic :: Text Processing :: Linguistic
13
13
  Classifier: Typing :: Typed
14
- Requires-Python: >=3.9
14
+ Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Provides-Extra: core
18
- Requires-Dist: tree-sitter~=0.22; extra == "core"
18
+ Requires-Dist: tree-sitter~=0.24; extra == "core"
19
+ Dynamic: license-file
19
20
 
20
21
  # tree-sitter-sql
21
22
 
@@ -8,6 +8,13 @@ static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSE
8
8
  return PyCapsule_New(tree_sitter_sql(), "tree_sitter.Language", NULL);
9
9
  }
10
10
 
11
+ static struct PyModuleDef_Slot slots[] = {
12
+ #ifdef Py_GIL_DISABLED
13
+ {Py_mod_gil, Py_MOD_GIL_NOT_USED},
14
+ #endif
15
+ {0, NULL}
16
+ };
17
+
11
18
  static PyMethodDef methods[] = {
12
19
  {"language", _binding_language, METH_NOARGS,
13
20
  "Get the tree-sitter language for this grammar."},
@@ -18,10 +25,11 @@ static struct PyModuleDef module = {
18
25
  .m_base = PyModuleDef_HEAD_INIT,
19
26
  .m_name = "_binding",
20
27
  .m_doc = NULL,
21
- .m_size = -1,
22
- .m_methods = methods
28
+ .m_size = 0,
29
+ .m_methods = methods,
30
+ .m_slots = slots,
23
31
  };
24
32
 
25
33
  PyMODINIT_FUNC PyInit__binding(void) {
26
- return PyModule_Create(&module);
34
+ return PyModuleDef_Init(&module);
27
35
  }
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: tree-sitter-sql
3
- Version: 0.3.8
3
+ Version: 0.3.10
4
4
  Summary: Tree-sitter Grammar for SQL
5
5
  Author: derek stride
6
6
  License: MIT
@@ -11,11 +11,12 @@ Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Topic :: Software Development :: Compilers
12
12
  Classifier: Topic :: Text Processing :: Linguistic
13
13
  Classifier: Typing :: Typed
14
- Requires-Python: >=3.9
14
+ Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
17
  Provides-Extra: core
18
- Requires-Dist: tree-sitter~=0.22; extra == "core"
18
+ Requires-Dist: tree-sitter~=0.24; extra == "core"
19
+ Dynamic: license-file
19
20
 
20
21
  # tree-sitter-sql
21
22
 
@@ -0,0 +1,3 @@
1
+
2
+ [core]
3
+ tree-sitter~=0.24
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "tree-sitter-sql"
7
7
  description = "Tree-sitter Grammar for SQL"
8
- version = "0.3.8"
8
+ version = "0.3.10"
9
9
  keywords = ["incremental", "parsing", "tree-sitter", "sql"]
10
10
  classifiers = [
11
11
  "Intended Audience :: Developers",
@@ -15,7 +15,7 @@ classifiers = [
15
15
  "Typing :: Typed",
16
16
  ]
17
17
  authors = [{ name = "derek stride" }]
18
- requires-python = ">=3.9"
18
+ requires-python = ">=3.10"
19
19
  license.text = "MIT"
20
20
  readme = "README.md"
21
21
 
@@ -23,8 +23,8 @@ readme = "README.md"
23
23
  Homepage = "https://github.com/derekstride/tree-sitter-sql.git"
24
24
 
25
25
  [project.optional-dependencies]
26
- core = ["tree-sitter~=0.22"]
26
+ core = ["tree-sitter~=0.24"]
27
27
 
28
28
  [tool.cibuildwheel]
29
- build = "cp39-*"
29
+ build = "cp310-*"
30
30
  build-frontend = "build"
@@ -0,0 +1,445 @@
1
+ (object_reference
2
+ name: (identifier) @type)
3
+
4
+ (invocation
5
+ (object_reference
6
+ name: (identifier) @function.call))
7
+
8
+ [
9
+ (keyword_gist)
10
+ (keyword_btree)
11
+ (keyword_hash)
12
+ (keyword_spgist)
13
+ (keyword_gin)
14
+ (keyword_brin)
15
+ (keyword_array)
16
+ (keyword_object_id)
17
+ ] @function.call
18
+
19
+ (relation
20
+ alias: (identifier) @variable)
21
+
22
+ (field
23
+ name: (identifier) @field)
24
+
25
+ (term
26
+ alias: (identifier) @variable)
27
+
28
+ ((term
29
+ value: (cast
30
+ name: (keyword_cast) @function.call
31
+ parameter: [(literal)]?)))
32
+
33
+ (literal) @string
34
+ (comment) @comment @spell
35
+ (marginalia) @comment
36
+
37
+ ((literal) @number
38
+ (#match? @number "^[-+]?%d+$"))
39
+
40
+ ((literal) @float
41
+ (#match? @float "^[-+]?%d*\.%d*$"))
42
+
43
+ (parameter) @parameter
44
+
45
+ [
46
+ (keyword_true)
47
+ (keyword_false)
48
+ ] @boolean
49
+
50
+ [
51
+ (keyword_asc)
52
+ (keyword_desc)
53
+ (keyword_terminated)
54
+ (keyword_escaped)
55
+ (keyword_unsigned)
56
+ (keyword_nulls)
57
+ (keyword_last)
58
+ (keyword_delimited)
59
+ (keyword_replication)
60
+ (keyword_auto_increment)
61
+ (keyword_default)
62
+ (keyword_collate)
63
+ (keyword_concurrently)
64
+ (keyword_engine)
65
+ (keyword_always)
66
+ (keyword_generated)
67
+ (keyword_preceding)
68
+ (keyword_following)
69
+ (keyword_first)
70
+ (keyword_current_timestamp)
71
+ (keyword_immutable)
72
+ (keyword_atomic)
73
+ (keyword_parallel)
74
+ (keyword_leakproof)
75
+ (keyword_safe)
76
+ (keyword_cost)
77
+ (keyword_strict)
78
+ ] @attribute
79
+
80
+ [
81
+ (keyword_materialized)
82
+ (keyword_recursive)
83
+ (keyword_temp)
84
+ (keyword_temporary)
85
+ (keyword_unlogged)
86
+ (keyword_external)
87
+ (keyword_parquet)
88
+ (keyword_csv)
89
+ (keyword_rcfile)
90
+ (keyword_textfile)
91
+ (keyword_orc)
92
+ (keyword_avro)
93
+ (keyword_jsonfile)
94
+ (keyword_sequencefile)
95
+ (keyword_volatile)
96
+ ] @storageclass
97
+
98
+ [
99
+ (keyword_case)
100
+ (keyword_when)
101
+ (keyword_then)
102
+ (keyword_else)
103
+ ] @conditional
104
+
105
+ [
106
+ (keyword_select)
107
+ (keyword_from)
108
+ (keyword_where)
109
+ (keyword_index)
110
+ (keyword_join)
111
+ (keyword_primary)
112
+ (keyword_delete)
113
+ (keyword_create)
114
+ (keyword_show)
115
+ (keyword_unload)
116
+ (keyword_insert)
117
+ (keyword_merge)
118
+ (keyword_distinct)
119
+ (keyword_replace)
120
+ (keyword_update)
121
+ (keyword_into)
122
+ (keyword_overwrite)
123
+ (keyword_matched)
124
+ (keyword_values)
125
+ (keyword_value)
126
+ (keyword_attribute)
127
+ (keyword_set)
128
+ (keyword_left)
129
+ (keyword_right)
130
+ (keyword_outer)
131
+ (keyword_inner)
132
+ (keyword_full)
133
+ (keyword_order)
134
+ (keyword_partition)
135
+ (keyword_group)
136
+ (keyword_with)
137
+ (keyword_without)
138
+ (keyword_as)
139
+ (keyword_having)
140
+ (keyword_limit)
141
+ (keyword_offset)
142
+ (keyword_table)
143
+ (keyword_tables)
144
+ (keyword_key)
145
+ (keyword_references)
146
+ (keyword_foreign)
147
+ (keyword_constraint)
148
+ (keyword_force)
149
+ (keyword_use)
150
+ (keyword_for)
151
+ (keyword_if)
152
+ (keyword_exists)
153
+ (keyword_column)
154
+ (keyword_columns)
155
+ (keyword_cross)
156
+ (keyword_lateral)
157
+ (keyword_natural)
158
+ (keyword_alter)
159
+ (keyword_drop)
160
+ (keyword_add)
161
+ (keyword_view)
162
+ (keyword_end)
163
+ (keyword_is)
164
+ (keyword_using)
165
+ (keyword_between)
166
+ (keyword_window)
167
+ (keyword_no)
168
+ (keyword_data)
169
+ (keyword_type)
170
+ (keyword_rename)
171
+ (keyword_to)
172
+ (keyword_schema)
173
+ (keyword_owner)
174
+ (keyword_authorization)
175
+ (keyword_all)
176
+ (keyword_any)
177
+ (keyword_some)
178
+ (keyword_returning)
179
+ (keyword_begin)
180
+ (keyword_commit)
181
+ (keyword_rollback)
182
+ (keyword_transaction)
183
+ (keyword_only)
184
+ (keyword_like)
185
+ (keyword_similar)
186
+ (keyword_over)
187
+ (keyword_change)
188
+ (keyword_modify)
189
+ (keyword_after)
190
+ (keyword_before)
191
+ (keyword_range)
192
+ (keyword_rows)
193
+ (keyword_groups)
194
+ (keyword_exclude)
195
+ (keyword_current)
196
+ (keyword_ties)
197
+ (keyword_others)
198
+ (keyword_zerofill)
199
+ (keyword_format)
200
+ (keyword_fields)
201
+ (keyword_row)
202
+ (keyword_sort)
203
+ (keyword_compute)
204
+ (keyword_comment)
205
+ (keyword_location)
206
+ (keyword_cached)
207
+ (keyword_uncached)
208
+ (keyword_lines)
209
+ (keyword_stored)
210
+ (keyword_virtual)
211
+ (keyword_partitioned)
212
+ (keyword_analyze)
213
+ (keyword_explain)
214
+ (keyword_verbose)
215
+ (keyword_truncate)
216
+ (keyword_rewrite)
217
+ (keyword_optimize)
218
+ (keyword_vacuum)
219
+ (keyword_cache)
220
+ (keyword_language)
221
+ (keyword_called)
222
+ (keyword_conflict)
223
+ (keyword_declare)
224
+ (keyword_filter)
225
+ (keyword_function)
226
+ (keyword_input)
227
+ (keyword_name)
228
+ (keyword_oid)
229
+ (keyword_oids)
230
+ (keyword_precision)
231
+ (keyword_regclass)
232
+ (keyword_regnamespace)
233
+ (keyword_regproc)
234
+ (keyword_regtype)
235
+ (keyword_restricted)
236
+ (keyword_return)
237
+ (keyword_returns)
238
+ (keyword_separator)
239
+ (keyword_setof)
240
+ (keyword_stable)
241
+ (keyword_support)
242
+ (keyword_tblproperties)
243
+ (keyword_trigger)
244
+ (keyword_unsafe)
245
+ (keyword_admin)
246
+ (keyword_connection)
247
+ (keyword_cycle)
248
+ (keyword_database)
249
+ (keyword_encrypted)
250
+ (keyword_increment)
251
+ (keyword_logged)
252
+ (keyword_none)
253
+ (keyword_owned)
254
+ (keyword_password)
255
+ (keyword_reset)
256
+ (keyword_role)
257
+ (keyword_sequence)
258
+ (keyword_start)
259
+ (keyword_restart)
260
+ (keyword_tablespace)
261
+ (keyword_until)
262
+ (keyword_user)
263
+ (keyword_valid)
264
+ (keyword_action)
265
+ (keyword_definer)
266
+ (keyword_invoker)
267
+ (keyword_security)
268
+ (keyword_extension)
269
+ (keyword_version)
270
+ (keyword_out)
271
+ (keyword_inout)
272
+ (keyword_variadic)
273
+ (keyword_ordinality)
274
+ (keyword_session)
275
+ (keyword_isolation)
276
+ (keyword_level)
277
+ (keyword_serializable)
278
+ (keyword_repeatable)
279
+ (keyword_read)
280
+ (keyword_write)
281
+ (keyword_committed)
282
+ (keyword_uncommitted)
283
+ (keyword_deferrable)
284
+ (keyword_names)
285
+ (keyword_zone)
286
+ (keyword_immediate)
287
+ (keyword_deferred)
288
+ (keyword_constraints)
289
+ (keyword_snapshot)
290
+ (keyword_characteristics)
291
+ (keyword_off)
292
+ (keyword_follows)
293
+ (keyword_precedes)
294
+ (keyword_each)
295
+ (keyword_instead)
296
+ (keyword_of)
297
+ (keyword_initially)
298
+ (keyword_old)
299
+ (keyword_new)
300
+ (keyword_referencing)
301
+ (keyword_statement)
302
+ (keyword_execute)
303
+ (keyword_procedure)
304
+ (keyword_copy)
305
+ (keyword_delimiter)
306
+ (keyword_encoding)
307
+ (keyword_escape)
308
+ (keyword_force_not_null)
309
+ (keyword_force_null)
310
+ (keyword_force_quote)
311
+ (keyword_freeze)
312
+ (keyword_header)
313
+ (keyword_match)
314
+ (keyword_program)
315
+ (keyword_quote)
316
+ (keyword_stdin)
317
+ (keyword_extended)
318
+ (keyword_main)
319
+ (keyword_plain)
320
+ (keyword_storage)
321
+ (keyword_compression)
322
+ (keyword_duplicate)
323
+ ] @keyword
324
+
325
+ [
326
+ (keyword_restrict)
327
+ (keyword_unbounded)
328
+ (keyword_unique)
329
+ (keyword_cascade)
330
+ (keyword_delayed)
331
+ (keyword_high_priority)
332
+ (keyword_low_priority)
333
+ (keyword_ignore)
334
+ (keyword_nothing)
335
+ (keyword_check)
336
+ (keyword_option)
337
+ (keyword_local)
338
+ (keyword_cascaded)
339
+ (keyword_wait)
340
+ (keyword_nowait)
341
+ (keyword_metadata)
342
+ (keyword_incremental)
343
+ (keyword_bin_pack)
344
+ (keyword_noscan)
345
+ (keyword_stats)
346
+ (keyword_statistics)
347
+ (keyword_maxvalue)
348
+ (keyword_minvalue)
349
+ ] @type.qualifier
350
+
351
+ [
352
+ (keyword_int)
353
+ (keyword_null)
354
+ (keyword_boolean)
355
+ (keyword_binary)
356
+ (keyword_varbinary)
357
+ (keyword_image)
358
+ (keyword_bit)
359
+ (keyword_inet)
360
+ (keyword_character)
361
+ (keyword_smallserial)
362
+ (keyword_serial)
363
+ (keyword_bigserial)
364
+ (keyword_smallint)
365
+ (keyword_mediumint)
366
+ (keyword_bigint)
367
+ (keyword_tinyint)
368
+ (keyword_decimal)
369
+ (keyword_float)
370
+ (keyword_double)
371
+ (keyword_numeric)
372
+ (keyword_real)
373
+ (double)
374
+ (keyword_money)
375
+ (keyword_smallmoney)
376
+ (keyword_char)
377
+ (keyword_nchar)
378
+ (keyword_varchar)
379
+ (keyword_nvarchar)
380
+ (keyword_varying)
381
+ (keyword_text)
382
+ (keyword_string)
383
+ (keyword_uuid)
384
+ (keyword_json)
385
+ (keyword_jsonb)
386
+ (keyword_xml)
387
+ (keyword_bytea)
388
+ (keyword_enum)
389
+ (keyword_date)
390
+ (keyword_datetime)
391
+ (keyword_time)
392
+ (keyword_datetime2)
393
+ (keyword_datetimeoffset)
394
+ (keyword_smalldatetime)
395
+ (keyword_timestamp)
396
+ (keyword_timestamptz)
397
+ (keyword_geometry)
398
+ (keyword_geography)
399
+ (keyword_box2d)
400
+ (keyword_box3d)
401
+ (keyword_interval)
402
+ ] @type.builtin
403
+
404
+ [
405
+ (keyword_in)
406
+ (keyword_and)
407
+ (keyword_or)
408
+ (keyword_not)
409
+ (keyword_by)
410
+ (keyword_on)
411
+ (keyword_do)
412
+ (keyword_union)
413
+ (keyword_except)
414
+ (keyword_intersect)
415
+ ] @keyword.operator
416
+
417
+ [
418
+ "+"
419
+ "-"
420
+ "*"
421
+ "/"
422
+ "%"
423
+ "^"
424
+ ":="
425
+ "="
426
+ "<"
427
+ "<="
428
+ "!="
429
+ ">="
430
+ ">"
431
+ "<>"
432
+ (op_other)
433
+ (op_unary_other)
434
+ ] @operator
435
+
436
+ [
437
+ "("
438
+ ")"
439
+ ] @punctuation.bracket
440
+
441
+ [
442
+ ";"
443
+ ","
444
+ "."
445
+ ] @punctuation.delimiter
@@ -0,0 +1,27 @@
1
+ [
2
+ (select)
3
+ (cte)
4
+ (column_definitions)
5
+ (case)
6
+ (subquery)
7
+ (insert)
8
+ ] @indent.begin
9
+
10
+
11
+ (block
12
+ (keyword_begin)
13
+ ) @indent.begin
14
+
15
+ (column_definitions ")" @indent.branch)
16
+
17
+ (subquery ")" @indent.branch)
18
+
19
+ (cte ")" @indent.branch)
20
+
21
+ [
22
+ (keyword_end)
23
+ (keyword_values)
24
+ (keyword_into)
25
+ ] @indent.branch
26
+
27
+ (keyword_end) @indent.end
@@ -0,0 +1,77 @@
1
+ from os import path
2
+ from platform import system
3
+ from sysconfig import get_config_var
4
+
5
+ from setuptools import Extension, find_packages, setup
6
+ from setuptools.command.build import build
7
+ from setuptools.command.egg_info import egg_info
8
+ from wheel.bdist_wheel import bdist_wheel
9
+
10
+ sources = [
11
+ "bindings/python/tree_sitter_sql/binding.c",
12
+ "src/parser.c",
13
+ ]
14
+ if path.exists("src/scanner.c"):
15
+ sources.append("src/scanner.c")
16
+
17
+ macros: list[tuple[str, str | None]] = [
18
+ ("PY_SSIZE_T_CLEAN", None),
19
+ ("TREE_SITTER_HIDE_SYMBOLS", None),
20
+ ]
21
+ if limited_api := not get_config_var("Py_GIL_DISABLED"):
22
+ macros.append(("Py_LIMITED_API", "0x030A0000"))
23
+
24
+ if system() != "Windows":
25
+ cflags = ["-std=c11", "-fvisibility=hidden"]
26
+ else:
27
+ cflags = ["/std:c11", "/utf-8"]
28
+
29
+
30
+ class Build(build):
31
+ def run(self):
32
+ if path.isdir("queries"):
33
+ dest = path.join(self.build_lib, "tree_sitter_sql", "queries")
34
+ self.copy_tree("queries", dest)
35
+ super().run()
36
+
37
+
38
+ class BdistWheel(bdist_wheel):
39
+ def get_tag(self):
40
+ python, abi, platform = super().get_tag()
41
+ if python.startswith("cp"):
42
+ python, abi = "cp310", "abi3"
43
+ return python, abi, platform
44
+
45
+
46
+ class EggInfo(egg_info):
47
+ def find_sources(self):
48
+ super().find_sources()
49
+ self.filelist.recursive_include("queries", "*.scm")
50
+ self.filelist.include("src/tree_sitter/*.h")
51
+
52
+
53
+ setup(
54
+ packages=find_packages("bindings/python"),
55
+ package_dir={"": "bindings/python"},
56
+ package_data={
57
+ "tree_sitter_sql": ["*.pyi", "py.typed"],
58
+ "tree_sitter_sql.queries": ["*.scm"],
59
+ },
60
+ ext_package="tree_sitter_sql",
61
+ ext_modules=[
62
+ Extension(
63
+ name="_binding",
64
+ sources=sources,
65
+ extra_compile_args=cflags,
66
+ define_macros=macros,
67
+ include_dirs=["src"],
68
+ py_limited_api=limited_api,
69
+ )
70
+ ],
71
+ cmdclass={
72
+ "build": Build,
73
+ "bdist_wheel": BdistWheel,
74
+ "egg_info": EggInfo,
75
+ },
76
+ zip_safe=False
77
+ )