cfengine 0.7.1__tar.gz → 0.7.2__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.
- {cfengine-0.7.1 → cfengine-0.7.2}/.github/workflows/pypi-publish.yml +1 -1
- {cfengine-0.7.1 → cfengine-0.7.2}/PKG-INFO +4 -5
- {cfengine-0.7.1 → cfengine-0.7.2}/pyproject.toml +3 -4
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine.egg-info/PKG-INFO +4 -5
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine.egg-info/SOURCES.txt +2 -1
- cfengine-0.7.2/src/cfengine.egg-info/requires.txt +5 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/commands.py +18 -18
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/docs.py +61 -52
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/format.py +27 -27
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/lint.py +32 -5
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/main.py +2 -1
- cfengine-0.7.2/tests/shell/003-format.sh +37 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/uv.lock +43 -222
- cfengine-0.7.1/src/cfengine.egg-info/requires.txt +0 -6
- {cfengine-0.7.1 → cfengine-0.7.2}/.github/dependabot.yml +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/.github/workflows/format.yml +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/.github/workflows/lint.yml +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/.github/workflows/test.yml +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/.gitignore +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/.python-version +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/HACKING.md +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/LICENSE +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/README.md +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/ci/01-install.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/ci/02-safe-tests.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/ci/03-unsafe-tests.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/setup.cfg +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine.egg-info/dependency_links.txt +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine.egg-info/entry_points.txt +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine.egg-info/top_level.txt +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/__init__.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/__main__.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/deptool.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/dev.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/paths.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/shell.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/utils.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/src/cfengine_cli/version.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/__init__.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/001_hello_world.expected.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/001_hello_world.input.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/002_basics.expected.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/002_basics.input.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/003_wrapping.expected.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/003_wrapping.input.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/004_comments.expected.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/format/004_comments.input.cf +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/run-format-tests.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/run-shell-tests.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/shell/001-help.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/shell/002-version.sh +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/test_deps.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/test_paths.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/test_utils.py +0 -0
- {cfengine-0.7.1 → cfengine-0.7.2}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cfengine
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: Human-oriented CLI for interacting with CFEngine tools
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -692,14 +692,13 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
692
692
|
Classifier: Programming Language :: Python :: 3.12
|
|
693
693
|
Classifier: Programming Language :: Python :: 3.13
|
|
694
694
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
695
|
-
Requires-Python: >=3.
|
|
695
|
+
Requires-Python: >=3.10
|
|
696
696
|
Description-Content-Type: text/markdown
|
|
697
697
|
Requires-Dist: cf-remote>=0.6.4
|
|
698
698
|
Requires-Dist: cfbs>=4.4.3
|
|
699
|
-
Requires-Dist: tree-sitter-cfengine>=1.0.
|
|
700
|
-
Requires-Dist: tree-sitter>=0.
|
|
699
|
+
Requires-Dist: tree-sitter-cfengine>=1.0.11
|
|
700
|
+
Requires-Dist: tree-sitter>=0.25
|
|
701
701
|
Requires-Dist: markdown-it-py>=3.0.0
|
|
702
|
-
Requires-Dist: black>=25.1.0
|
|
703
702
|
|
|
704
703
|
# CFEngine command line interface (CLI)
|
|
705
704
|
|
|
@@ -8,14 +8,13 @@ dynamic = ["version"]
|
|
|
8
8
|
description = "Human-oriented CLI for interacting with CFEngine tools"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {file = "LICENSE"}
|
|
11
|
-
requires-python = ">=3.
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
12
|
dependencies = [
|
|
13
13
|
"cf-remote>=0.6.4",
|
|
14
14
|
"cfbs>=4.4.3",
|
|
15
|
-
"tree-sitter-cfengine>=1.0.
|
|
16
|
-
"tree-sitter>=0.
|
|
15
|
+
"tree-sitter-cfengine>=1.0.11",
|
|
16
|
+
"tree-sitter>=0.25",
|
|
17
17
|
"markdown-it-py>=3.0.0",
|
|
18
|
-
"black>=25.1.0",
|
|
19
18
|
]
|
|
20
19
|
classifiers = [
|
|
21
20
|
"Development Status :: 3 - Alpha",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cfengine
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: Human-oriented CLI for interacting with CFEngine tools
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -692,14 +692,13 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
692
692
|
Classifier: Programming Language :: Python :: 3.12
|
|
693
693
|
Classifier: Programming Language :: Python :: 3.13
|
|
694
694
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
695
|
-
Requires-Python: >=3.
|
|
695
|
+
Requires-Python: >=3.10
|
|
696
696
|
Description-Content-Type: text/markdown
|
|
697
697
|
Requires-Dist: cf-remote>=0.6.4
|
|
698
698
|
Requires-Dist: cfbs>=4.4.3
|
|
699
|
-
Requires-Dist: tree-sitter-cfengine>=1.0.
|
|
700
|
-
Requires-Dist: tree-sitter>=0.
|
|
699
|
+
Requires-Dist: tree-sitter-cfengine>=1.0.11
|
|
700
|
+
Requires-Dist: tree-sitter>=0.25
|
|
701
701
|
Requires-Dist: markdown-it-py>=3.0.0
|
|
702
|
-
Requires-Dist: black>=25.1.0
|
|
703
702
|
|
|
704
703
|
# CFEngine command line interface (CLI)
|
|
705
704
|
|
|
@@ -47,46 +47,46 @@ def deploy() -> int:
|
|
|
47
47
|
return r
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
def _format_filename(filename):
|
|
50
|
+
def _format_filename(filename, line_length):
|
|
51
51
|
if filename.startswith("./."):
|
|
52
52
|
return
|
|
53
53
|
if filename.endswith(".json"):
|
|
54
54
|
format_json_file(filename)
|
|
55
55
|
return
|
|
56
56
|
if filename.endswith(".cf"):
|
|
57
|
-
format_policy_file(filename)
|
|
57
|
+
format_policy_file(filename, line_length)
|
|
58
58
|
return
|
|
59
59
|
raise UserError(f"Unrecognized file format: {filename}")
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
def _format_dirname(directory):
|
|
62
|
+
def _format_dirname(directory, line_length):
|
|
63
63
|
for filename in find(directory, extension=".json"):
|
|
64
|
-
_format_filename(filename)
|
|
64
|
+
_format_filename(filename, line_length)
|
|
65
65
|
for filename in find(directory, extension=".cf"):
|
|
66
|
-
_format_filename(filename)
|
|
66
|
+
_format_filename(filename, line_length)
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
def format(
|
|
70
|
-
if not
|
|
71
|
-
_format_dirname(".")
|
|
69
|
+
def format(names, line_length) -> int:
|
|
70
|
+
if not names:
|
|
71
|
+
_format_dirname(".", line_length)
|
|
72
72
|
return 0
|
|
73
|
-
if len(
|
|
73
|
+
if len(names) == 1 and names[0] == "-":
|
|
74
74
|
# Special case, format policy file from stdin to stdout
|
|
75
|
-
format_policy_fin_fout(sys.stdin, sys.stdout)
|
|
75
|
+
format_policy_fin_fout(sys.stdin, sys.stdout, line_length)
|
|
76
76
|
return 0
|
|
77
77
|
|
|
78
|
-
for
|
|
79
|
-
if
|
|
78
|
+
for name in names:
|
|
79
|
+
if name == "-":
|
|
80
80
|
raise UserError(
|
|
81
81
|
"The - argument has a special meaning and cannot be combined with other paths"
|
|
82
82
|
)
|
|
83
|
-
if not os.path.exists(
|
|
84
|
-
raise UserError(f"{
|
|
85
|
-
if os.path.isfile(
|
|
86
|
-
_format_filename(
|
|
83
|
+
if not os.path.exists(name):
|
|
84
|
+
raise UserError(f"{name} does not exist")
|
|
85
|
+
if os.path.isfile(name):
|
|
86
|
+
_format_filename(name, line_length)
|
|
87
87
|
continue
|
|
88
|
-
if os.path.isdir(
|
|
89
|
-
_format_dirname(
|
|
88
|
+
if os.path.isdir(name):
|
|
89
|
+
_format_dirname(name, line_length)
|
|
90
90
|
continue
|
|
91
91
|
return 0
|
|
92
92
|
|
|
@@ -10,12 +10,12 @@ TODO: This code needs several adjustments to better fit into
|
|
|
10
10
|
|
|
11
11
|
import os
|
|
12
12
|
import json
|
|
13
|
-
from shutil import which
|
|
14
13
|
import subprocess
|
|
15
14
|
|
|
16
15
|
import markdown_it
|
|
17
16
|
from cfbs.pretty import pretty_file
|
|
18
17
|
|
|
18
|
+
from cfengine_cli.lint import lint_policy_file
|
|
19
19
|
from cfengine_cli.utils import UserError
|
|
20
20
|
|
|
21
21
|
|
|
@@ -109,7 +109,9 @@ def fn_extract(origin_path, snippet_path, _language, first_line, last_line):
|
|
|
109
109
|
raise UserError(f"Couldn't open '{origin_path}' or '{snippet_path}'")
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
def fn_check_syntax(
|
|
112
|
+
def fn_check_syntax(
|
|
113
|
+
origin_path, snippet_path, language, first_line, _last_line, snippet_number
|
|
114
|
+
):
|
|
113
115
|
snippet_abs_path = os.path.abspath(snippet_path)
|
|
114
116
|
|
|
115
117
|
if not os.path.exists(snippet_path):
|
|
@@ -119,25 +121,11 @@ def fn_check_syntax(origin_path, snippet_path, language, first_line, _last_line)
|
|
|
119
121
|
|
|
120
122
|
match language:
|
|
121
123
|
case "cf":
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
)
|
|
128
|
-
err = p.stderr
|
|
129
|
-
|
|
130
|
-
if err:
|
|
131
|
-
err = err.replace(snippet_abs_path, f"{origin_path}:{first_line}")
|
|
132
|
-
print(err)
|
|
133
|
-
except OSError:
|
|
134
|
-
raise UserError(f"'{snippet_abs_path}' doesn't exist")
|
|
135
|
-
except ValueError:
|
|
136
|
-
raise UserError("Invalid subprocess arguments")
|
|
137
|
-
except subprocess.CalledProcessError:
|
|
138
|
-
raise UserError(f"Couldn't run cf-promises on '{snippet_abs_path}'")
|
|
139
|
-
except subprocess.TimeoutExpired:
|
|
140
|
-
raise UserError("Timed out")
|
|
124
|
+
r = lint_policy_file(
|
|
125
|
+
snippet_abs_path, origin_path, first_line + 1, snippet_number
|
|
126
|
+
)
|
|
127
|
+
if r != 0:
|
|
128
|
+
raise UserError(f"Error when checking '{origin_path}'")
|
|
141
129
|
case "json":
|
|
142
130
|
try:
|
|
143
131
|
with open(snippet_abs_path, "r") as f:
|
|
@@ -199,25 +187,35 @@ def fn_autoformat(_origin_path, snippet_path, language, _first_line, _last_line)
|
|
|
199
187
|
raise UserError(f"Invalid json in '{snippet_path}'")
|
|
200
188
|
|
|
201
189
|
|
|
202
|
-
def
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
190
|
+
def _translate_language(x):
|
|
191
|
+
if x == "cf3" or x == "cfengine3":
|
|
192
|
+
return "cf"
|
|
193
|
+
if x == "yaml":
|
|
194
|
+
return "yml"
|
|
195
|
+
return x
|
|
206
196
|
|
|
197
|
+
|
|
198
|
+
SUPPORTED_LANGUAGES = ["cf", "cfengine3", "cf3", "json", "yml", "yaml"]
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def _process_markdown_code_blocks(
|
|
202
|
+
path, languages, extract, syntax_check, output_check, autoformat, replace, cleanup
|
|
203
|
+
):
|
|
207
204
|
if not os.path.exists(path):
|
|
208
205
|
raise UserError("This path doesn't exist")
|
|
209
206
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
207
|
+
languages = set(languages)
|
|
208
|
+
if "cf3" in languages or "cf" in languages or "cfengine3" in languages:
|
|
209
|
+
languages.add("cf3")
|
|
210
|
+
languages.add("cfengine3")
|
|
211
|
+
languages.add("cf")
|
|
212
|
+
if "yaml" in languages or "yml" in languages:
|
|
213
|
+
languages.add("yml")
|
|
214
|
+
languages.add("yaml")
|
|
217
215
|
for language in languages:
|
|
218
|
-
if language not in
|
|
216
|
+
if language not in SUPPORTED_LANGUAGES:
|
|
219
217
|
raise UserError(
|
|
220
|
-
f"Unsupported language '{language}'. The supported languages are: {", ".join(
|
|
218
|
+
f"Unsupported language '{language}'. The supported languages are: {", ".join(SUPPORTED_LANGUAGES)}"
|
|
221
219
|
)
|
|
222
220
|
|
|
223
221
|
parsed_markdowns = get_markdown_files(path, languages)
|
|
@@ -233,8 +231,9 @@ def _markdown_code_checker(
|
|
|
233
231
|
cb["first_line"] += offset
|
|
234
232
|
cb["last_line"] += offset
|
|
235
233
|
|
|
236
|
-
language =
|
|
237
|
-
|
|
234
|
+
language = _translate_language(code_block["language"])
|
|
235
|
+
snippet_number = i + 1
|
|
236
|
+
snippet_path = f"{origin_path}.snippet-{snippet_number}.{language}"
|
|
238
237
|
|
|
239
238
|
flags = code_block["flags"]
|
|
240
239
|
if "noextract" in flags or "skip" in flags:
|
|
@@ -257,12 +256,16 @@ def _markdown_code_checker(
|
|
|
257
256
|
language,
|
|
258
257
|
code_block["first_line"],
|
|
259
258
|
code_block["last_line"],
|
|
259
|
+
snippet_number,
|
|
260
260
|
)
|
|
261
261
|
except Exception as e:
|
|
262
262
|
if cleanup:
|
|
263
263
|
os.remove(snippet_path)
|
|
264
264
|
raise e
|
|
265
265
|
|
|
266
|
+
if output_check and "noexecute" not in code_block["flags"]:
|
|
267
|
+
fn_check_output()
|
|
268
|
+
|
|
266
269
|
if autoformat and "noautoformat" not in code_block["flags"]:
|
|
267
270
|
fn_autoformat(
|
|
268
271
|
origin_path,
|
|
@@ -272,9 +275,6 @@ def _markdown_code_checker(
|
|
|
272
275
|
code_block["last_line"],
|
|
273
276
|
)
|
|
274
277
|
|
|
275
|
-
if output_check and "noexecute" not in code_block["flags"]:
|
|
276
|
-
fn_check_output()
|
|
277
|
-
|
|
278
278
|
if replace and "noreplace" not in code_block["flags"]:
|
|
279
279
|
offset = fn_replace(
|
|
280
280
|
origin_path,
|
|
@@ -287,6 +287,7 @@ def _markdown_code_checker(
|
|
|
287
287
|
if cleanup:
|
|
288
288
|
os.remove(snippet_path)
|
|
289
289
|
|
|
290
|
+
|
|
290
291
|
def _run_black():
|
|
291
292
|
path = "."
|
|
292
293
|
assert os.path.isdir(path)
|
|
@@ -299,7 +300,9 @@ def _run_black():
|
|
|
299
300
|
cwd=path,
|
|
300
301
|
)
|
|
301
302
|
except:
|
|
302
|
-
raise UserError(
|
|
303
|
+
raise UserError(
|
|
304
|
+
"Encountered an error running black\nInstall: pipx install black"
|
|
305
|
+
)
|
|
303
306
|
|
|
304
307
|
|
|
305
308
|
def _run_prettier():
|
|
@@ -314,7 +317,10 @@ def _run_prettier():
|
|
|
314
317
|
cwd=path,
|
|
315
318
|
)
|
|
316
319
|
except:
|
|
317
|
-
raise UserError(
|
|
320
|
+
raise UserError(
|
|
321
|
+
"Encountered an error running prettier\nInstall: npm install --global prettier"
|
|
322
|
+
)
|
|
323
|
+
|
|
318
324
|
|
|
319
325
|
def update_docs() -> int:
|
|
320
326
|
"""
|
|
@@ -327,16 +333,19 @@ def update_docs() -> int:
|
|
|
327
333
|
Run by the command:
|
|
328
334
|
cfengine dev docs-format
|
|
329
335
|
"""
|
|
336
|
+
print("Formatting python files with black...")
|
|
330
337
|
_run_black()
|
|
338
|
+
print("Formatting markdown files with prettier...")
|
|
331
339
|
_run_prettier()
|
|
332
|
-
|
|
340
|
+
print("Formatting markdown code blocks according to our rules...")
|
|
341
|
+
_process_markdown_code_blocks(
|
|
333
342
|
path=".",
|
|
334
|
-
|
|
343
|
+
languages=["json"], # TODO: Add cfengine3 here
|
|
335
344
|
extract=True,
|
|
336
|
-
|
|
337
|
-
autoformat=True,
|
|
338
|
-
languages=["json"],
|
|
345
|
+
syntax_check=False,
|
|
339
346
|
output_check=False,
|
|
347
|
+
autoformat=True,
|
|
348
|
+
replace=True,
|
|
340
349
|
cleanup=True,
|
|
341
350
|
)
|
|
342
351
|
return 0
|
|
@@ -348,15 +357,15 @@ def check_docs() -> int:
|
|
|
348
357
|
Currently only JSON syntax checking.
|
|
349
358
|
|
|
350
359
|
Run by the command:
|
|
351
|
-
cfengine dev docs-
|
|
352
|
-
|
|
360
|
+
cfengine dev docs-check"""
|
|
361
|
+
_process_markdown_code_blocks(
|
|
353
362
|
path=".",
|
|
354
|
-
|
|
363
|
+
languages=["json", "cf3"],
|
|
355
364
|
extract=True,
|
|
356
|
-
|
|
357
|
-
autoformat=False,
|
|
358
|
-
languages=["json"],
|
|
365
|
+
syntax_check=True,
|
|
359
366
|
output_check=False,
|
|
367
|
+
autoformat=False,
|
|
368
|
+
replace=False,
|
|
360
369
|
cleanup=True,
|
|
361
370
|
)
|
|
362
371
|
return 0
|
|
@@ -80,14 +80,14 @@ def split_generic_value(node, indent):
|
|
|
80
80
|
return [stringify_single_line(node)]
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
def split_generic_list(middle, indent):
|
|
83
|
+
def split_generic_list(middle, indent, line_length):
|
|
84
84
|
elements = []
|
|
85
85
|
for element in middle:
|
|
86
86
|
if elements and element.type == ",":
|
|
87
87
|
elements[-1] = elements[-1] + ","
|
|
88
88
|
continue
|
|
89
89
|
line = " " * indent + stringify_single_line(element)
|
|
90
|
-
if len(line) <
|
|
90
|
+
if len(line) < line_length:
|
|
91
91
|
elements.append(line)
|
|
92
92
|
else:
|
|
93
93
|
lines = split_generic_value(element, indent)
|
|
@@ -96,50 +96,50 @@ def split_generic_list(middle, indent):
|
|
|
96
96
|
return elements
|
|
97
97
|
|
|
98
98
|
|
|
99
|
-
def maybe_split_generic_list(nodes, indent):
|
|
99
|
+
def maybe_split_generic_list(nodes, indent, line_length):
|
|
100
100
|
string = " " * indent + stringify_children(nodes)
|
|
101
|
-
if len(string) <
|
|
101
|
+
if len(string) < line_length:
|
|
102
102
|
return [string]
|
|
103
|
-
return split_generic_list(nodes, indent)
|
|
103
|
+
return split_generic_list(nodes, indent, line_length)
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
def split_rval_list(node, indent):
|
|
106
|
+
def split_rval_list(node, indent, line_length):
|
|
107
107
|
assert node.type == "list"
|
|
108
108
|
assert node.children[0].type == "{"
|
|
109
109
|
first = text(node.children[0])
|
|
110
110
|
last = " " * indent + text(node.children[-1])
|
|
111
111
|
middle = node.children[1:-1]
|
|
112
|
-
elements = maybe_split_generic_list(middle, indent + 2)
|
|
112
|
+
elements = maybe_split_generic_list(middle, indent + 2, line_length)
|
|
113
113
|
return [first, *elements, last]
|
|
114
114
|
|
|
115
115
|
|
|
116
|
-
def split_rval_call(node, indent):
|
|
116
|
+
def split_rval_call(node, indent, line_length):
|
|
117
117
|
assert node.type == "call"
|
|
118
118
|
assert node.children[0].type == "calling_identifier"
|
|
119
119
|
assert node.children[1].type == "("
|
|
120
120
|
first = text(node.children[0]) + "("
|
|
121
121
|
last = " " * indent + text(node.children[-1])
|
|
122
122
|
middle = node.children[2:-1]
|
|
123
|
-
elements = maybe_split_generic_list(middle, indent + 2)
|
|
123
|
+
elements = maybe_split_generic_list(middle, indent + 2, line_length)
|
|
124
124
|
return [first, *elements, last]
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
def split_rval(node, indent):
|
|
127
|
+
def split_rval(node, indent, line_length):
|
|
128
128
|
if node.type == "list":
|
|
129
|
-
return split_rval_list(node, indent)
|
|
129
|
+
return split_rval_list(node, indent, line_length)
|
|
130
130
|
if node.type == "call":
|
|
131
|
-
return split_rval_call(node, indent)
|
|
131
|
+
return split_rval_call(node, indent, line_length)
|
|
132
132
|
return [stringify_single_line(node)]
|
|
133
133
|
|
|
134
134
|
|
|
135
|
-
def maybe_split_rval(node, indent, offset):
|
|
135
|
+
def maybe_split_rval(node, indent, offset, line_length):
|
|
136
136
|
line = stringify_single_line(node)
|
|
137
|
-
if len(line) + offset <
|
|
137
|
+
if len(line) + offset < line_length:
|
|
138
138
|
return [line]
|
|
139
|
-
return split_rval(node, indent)
|
|
139
|
+
return split_rval(node, indent, line_length)
|
|
140
140
|
|
|
141
141
|
|
|
142
|
-
def attempt_split_attribute(node, indent):
|
|
142
|
+
def attempt_split_attribute(node, indent, line_length):
|
|
143
143
|
assert len(node.children) == 3
|
|
144
144
|
lval = node.children[0]
|
|
145
145
|
arrow = node.children[1]
|
|
@@ -148,22 +148,22 @@ def attempt_split_attribute(node, indent):
|
|
|
148
148
|
if rval.type == "list" or rval.type == "call":
|
|
149
149
|
prefix = " " * indent + text(lval) + " " + text(arrow) + " "
|
|
150
150
|
offset = len(prefix)
|
|
151
|
-
lines = maybe_split_rval(rval, indent, offset)
|
|
151
|
+
lines = maybe_split_rval(rval, indent, offset, line_length)
|
|
152
152
|
lines[0] = prefix + lines[0]
|
|
153
153
|
return lines
|
|
154
154
|
return [stringify_single_line(node)]
|
|
155
155
|
|
|
156
156
|
|
|
157
|
-
def stringify(node, indent):
|
|
157
|
+
def stringify(node, indent, line_length):
|
|
158
158
|
single_line = " " * indent + stringify_single_line(node)
|
|
159
|
-
if len(single_line) <
|
|
159
|
+
if len(single_line) < line_length:
|
|
160
160
|
return [single_line]
|
|
161
161
|
if node.type == "attribute":
|
|
162
|
-
return attempt_split_attribute(node, indent)
|
|
162
|
+
return attempt_split_attribute(node, indent, line_length)
|
|
163
163
|
return [single_line]
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
def autoformat(node, fmt, macro_indent, indent=0):
|
|
166
|
+
def autoformat(node, fmt, line_length, macro_indent, indent=0):
|
|
167
167
|
previous = fmt.update_previous(node)
|
|
168
168
|
if previous and previous.type == "macro" and text(previous).startswith("@else"):
|
|
169
169
|
indent = macro_indent
|
|
@@ -190,12 +190,12 @@ def autoformat(node, fmt, macro_indent, indent=0):
|
|
|
190
190
|
]:
|
|
191
191
|
indent += 2
|
|
192
192
|
if node.type == "attribute":
|
|
193
|
-
lines = stringify(node, indent)
|
|
193
|
+
lines = stringify(node, indent, line_length)
|
|
194
194
|
fmt.print_lines(lines, indent=0)
|
|
195
195
|
return
|
|
196
196
|
if children:
|
|
197
197
|
for child in children:
|
|
198
|
-
autoformat(child, fmt, macro_indent, indent)
|
|
198
|
+
autoformat(child, fmt, line_length, macro_indent, indent)
|
|
199
199
|
return
|
|
200
200
|
if node.type in [",", ";"]:
|
|
201
201
|
fmt.print_same_line(node)
|
|
@@ -203,7 +203,7 @@ def autoformat(node, fmt, macro_indent, indent=0):
|
|
|
203
203
|
fmt.print(node, indent)
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
def format_policy_file(filename):
|
|
206
|
+
def format_policy_file(filename, line_length):
|
|
207
207
|
assert filename.endswith(".cf")
|
|
208
208
|
PY_LANGUAGE = Language(tscfengine.language())
|
|
209
209
|
parser = Parser(PY_LANGUAGE)
|
|
@@ -216,7 +216,7 @@ def format_policy_file(filename):
|
|
|
216
216
|
|
|
217
217
|
root_node = tree.root_node
|
|
218
218
|
assert root_node.type == "source_file"
|
|
219
|
-
autoformat(root_node, fmt, macro_indent)
|
|
219
|
+
autoformat(root_node, fmt, line_length, macro_indent)
|
|
220
220
|
|
|
221
221
|
new_data = fmt.buffer + "\n"
|
|
222
222
|
if new_data != original_data.decode("utf-8"):
|
|
@@ -225,7 +225,7 @@ def format_policy_file(filename):
|
|
|
225
225
|
print(f"Policy file '{filename}' was reformatted")
|
|
226
226
|
|
|
227
227
|
|
|
228
|
-
def format_policy_fin_fout(fin, fout):
|
|
228
|
+
def format_policy_fin_fout(fin, fout, line_length):
|
|
229
229
|
PY_LANGUAGE = Language(tscfengine.language())
|
|
230
230
|
parser = Parser(PY_LANGUAGE)
|
|
231
231
|
|
|
@@ -236,7 +236,7 @@ def format_policy_fin_fout(fin, fout):
|
|
|
236
236
|
|
|
237
237
|
root_node = tree.root_node
|
|
238
238
|
assert root_node.type == "source_file"
|
|
239
|
-
autoformat(root_node, fmt, macro_indent)
|
|
239
|
+
autoformat(root_node, fmt, line_length, macro_indent)
|
|
240
240
|
|
|
241
241
|
new_data = fmt.buffer + "\n"
|
|
242
242
|
fout.write(new_data)
|
|
@@ -97,9 +97,22 @@ def _walk(filename, lines, node) -> int:
|
|
|
97
97
|
return errors
|
|
98
98
|
|
|
99
99
|
|
|
100
|
-
def lint_policy_file(
|
|
100
|
+
def lint_policy_file(
|
|
101
|
+
filename, original_filename=None, original_line=None, snippet=None
|
|
102
|
+
):
|
|
103
|
+
assert original_filename is None or type(original_filename) is str
|
|
104
|
+
assert original_line is None or type(original_line) is int
|
|
105
|
+
assert snippet is None or type(snippet) is int
|
|
106
|
+
if (
|
|
107
|
+
original_filename is not None
|
|
108
|
+
or original_line is not None
|
|
109
|
+
or snippet is not None
|
|
110
|
+
):
|
|
111
|
+
assert original_filename and os.path.isfile(original_filename)
|
|
112
|
+
assert original_line and original_line > 0
|
|
113
|
+
assert snippet and snippet > 0
|
|
101
114
|
assert os.path.isfile(filename)
|
|
102
|
-
assert filename.endswith(".cf")
|
|
115
|
+
assert filename.endswith((".cf", ".cfengine3", ".cf3", ".cf.sub"))
|
|
103
116
|
PY_LANGUAGE = Language(tscfengine.language())
|
|
104
117
|
parser = Parser(PY_LANGUAGE)
|
|
105
118
|
|
|
@@ -112,12 +125,26 @@ def lint_policy_file(filename):
|
|
|
112
125
|
assert root_node.type == "source_file"
|
|
113
126
|
errors = 0
|
|
114
127
|
if not root_node.children:
|
|
115
|
-
|
|
128
|
+
if snippet:
|
|
129
|
+
assert original_filename and original_line
|
|
130
|
+
print(
|
|
131
|
+
f"Error: Empty policy snippet {snippet} at '{original_filename}:{original_line}'"
|
|
132
|
+
)
|
|
133
|
+
else:
|
|
134
|
+
print(f"Error: Empty policy file '{filename}'")
|
|
116
135
|
errors += 1
|
|
117
136
|
errors += _walk(filename, lines, root_node)
|
|
118
137
|
if errors == 0:
|
|
119
|
-
|
|
138
|
+
if snippet:
|
|
139
|
+
assert original_filename and original_line
|
|
140
|
+
print(f"PASS: Snippet {snippet} at '{original_filename}:{original_line}'")
|
|
141
|
+
else:
|
|
142
|
+
print(f"PASS: {filename}")
|
|
120
143
|
return 0
|
|
121
144
|
|
|
122
|
-
|
|
145
|
+
if snippet:
|
|
146
|
+
assert original_filename and original_line
|
|
147
|
+
print(f"FAIL: Snippet {snippet} at '{original_filename}:{original_line}'")
|
|
148
|
+
else:
|
|
149
|
+
print(f"FAIL: {filename} ({errors} error{'s' if errors > 0 else ''})")
|
|
123
150
|
return errors
|
|
@@ -43,6 +43,7 @@ def _get_arg_parser():
|
|
|
43
43
|
subp.add_parser("deploy", help="Deploy a built policy set")
|
|
44
44
|
fmt = subp.add_parser("format", help="Autoformat .json and .cf files")
|
|
45
45
|
fmt.add_argument("files", nargs="*", help="Files to format")
|
|
46
|
+
fmt.add_argument("--line-length", default=80, type=int, help="Maximum line length")
|
|
46
47
|
subp.add_parser(
|
|
47
48
|
"lint",
|
|
48
49
|
help="Look for syntax errors and other simple mistakes",
|
|
@@ -86,7 +87,7 @@ def run_command_with_args(args) -> int:
|
|
|
86
87
|
if args.command == "deploy":
|
|
87
88
|
return commands.deploy()
|
|
88
89
|
if args.command == "format":
|
|
89
|
-
return commands.format(args.files)
|
|
90
|
+
return commands.format(args.files, args.line_length)
|
|
90
91
|
if args.command == "lint":
|
|
91
92
|
return commands.lint()
|
|
92
93
|
if args.command == "report":
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
set -x
|
|
5
|
+
|
|
6
|
+
# Verify that the line length parameter shows up in help
|
|
7
|
+
cfengine format -h | grep -- "--line-length"
|
|
8
|
+
|
|
9
|
+
# Test three common line length
|
|
10
|
+
for ll in 80 100 120; do
|
|
11
|
+
# Format the following HEREDOC and let wc count the longest line
|
|
12
|
+
l=$(cfengine format --line-length $ll - <<-EOF |
|
|
13
|
+
bundle agent slists
|
|
14
|
+
{
|
|
15
|
+
vars:
|
|
16
|
+
"variable_name"
|
|
17
|
+
slist => { "one", "two", "three", "four", "five", "six" };
|
|
18
|
+
"variable_name"
|
|
19
|
+
slist => { "one", "two", "three", "four", "five", "six", "seven" };
|
|
20
|
+
"variable_name"
|
|
21
|
+
slist => {
|
|
22
|
+
"one", "two", "three", "four", "five", "six", "seven", "eight"
|
|
23
|
+
};
|
|
24
|
+
"variable_name"
|
|
25
|
+
slist => {
|
|
26
|
+
"one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen",
|
|
27
|
+
};
|
|
28
|
+
"variable_name"
|
|
29
|
+
slist => {
|
|
30
|
+
"one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
EOF
|
|
34
|
+
wc -L)
|
|
35
|
+
# Verify that the actual longest line has less or equal characters
|
|
36
|
+
[[ $l -le $ll ]]
|
|
37
|
+
done
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
version = 1
|
|
2
2
|
revision = 1
|
|
3
|
-
requires-python = ">=3.
|
|
4
|
-
resolution-markers = [
|
|
5
|
-
"python_full_version >= '3.10'",
|
|
6
|
-
"python_full_version < '3.10'",
|
|
7
|
-
]
|
|
3
|
+
requires-python = ">=3.10"
|
|
8
4
|
|
|
9
5
|
[[package]]
|
|
10
6
|
name = "apache-libcloud"
|
|
@@ -18,45 +14,6 @@ wheels = [
|
|
|
18
14
|
{ url = "https://files.pythonhosted.org/packages/45/fe/f450315f92d9f089fa25d8acbdd056bb780c83ffa0e275b519a04954bff1/apache_libcloud-3.8.0-py2.py3-none-any.whl", hash = "sha256:de65a8bd946f6532830f20a83f2eae2fa056f05a674fad30afe877cb78df6050", size = 3659280 },
|
|
19
15
|
]
|
|
20
16
|
|
|
21
|
-
[[package]]
|
|
22
|
-
name = "black"
|
|
23
|
-
version = "25.1.0"
|
|
24
|
-
source = { registry = "https://pypi.org/simple" }
|
|
25
|
-
dependencies = [
|
|
26
|
-
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
|
|
27
|
-
{ name = "click", version = "8.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
28
|
-
{ name = "mypy-extensions" },
|
|
29
|
-
{ name = "packaging" },
|
|
30
|
-
{ name = "pathspec" },
|
|
31
|
-
{ name = "platformdirs" },
|
|
32
|
-
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
33
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
|
34
|
-
]
|
|
35
|
-
sdist = { url = "https://files.pythonhosted.org/packages/94/49/26a7b0f3f35da4b5a65f081943b7bcd22d7002f5f0fb8098ec1ff21cb6ef/black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666", size = 649449 }
|
|
36
|
-
wheels = [
|
|
37
|
-
{ url = "https://files.pythonhosted.org/packages/4d/3b/4ba3f93ac8d90410423fdd31d7541ada9bcee1df32fb90d26de41ed40e1d/black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32", size = 1629419 },
|
|
38
|
-
{ url = "https://files.pythonhosted.org/packages/b4/02/0bde0485146a8a5e694daed47561785e8b77a0466ccc1f3e485d5ef2925e/black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da", size = 1461080 },
|
|
39
|
-
{ url = "https://files.pythonhosted.org/packages/52/0e/abdf75183c830eaca7589144ff96d49bce73d7ec6ad12ef62185cc0f79a2/black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7", size = 1766886 },
|
|
40
|
-
{ url = "https://files.pythonhosted.org/packages/dc/a6/97d8bb65b1d8a41f8a6736222ba0a334db7b7b77b8023ab4568288f23973/black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9", size = 1419404 },
|
|
41
|
-
{ url = "https://files.pythonhosted.org/packages/7e/4f/87f596aca05c3ce5b94b8663dbfe242a12843caaa82dd3f85f1ffdc3f177/black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0", size = 1614372 },
|
|
42
|
-
{ url = "https://files.pythonhosted.org/packages/e7/d0/2c34c36190b741c59c901e56ab7f6e54dad8df05a6272a9747ecef7c6036/black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299", size = 1442865 },
|
|
43
|
-
{ url = "https://files.pythonhosted.org/packages/21/d4/7518c72262468430ead45cf22bd86c883a6448b9eb43672765d69a8f1248/black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096", size = 1749699 },
|
|
44
|
-
{ url = "https://files.pythonhosted.org/packages/58/db/4f5beb989b547f79096e035c4981ceb36ac2b552d0ac5f2620e941501c99/black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2", size = 1428028 },
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/83/71/3fe4741df7adf015ad8dfa082dd36c94ca86bb21f25608eb247b4afb15b2/black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b", size = 1650988 },
|
|
46
|
-
{ url = "https://files.pythonhosted.org/packages/13/f3/89aac8a83d73937ccd39bbe8fc6ac8860c11cfa0af5b1c96d081facac844/black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc", size = 1453985 },
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/6f/22/b99efca33f1f3a1d2552c714b1e1b5ae92efac6c43e790ad539a163d1754/black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f", size = 1783816 },
|
|
48
|
-
{ url = "https://files.pythonhosted.org/packages/18/7e/a27c3ad3822b6f2e0e00d63d58ff6299a99a5b3aee69fa77cd4b0076b261/black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba", size = 1440860 },
|
|
49
|
-
{ url = "https://files.pythonhosted.org/packages/98/87/0edf98916640efa5d0696e1abb0a8357b52e69e82322628f25bf14d263d1/black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f", size = 1650673 },
|
|
50
|
-
{ url = "https://files.pythonhosted.org/packages/52/e5/f7bf17207cf87fa6e9b676576749c6b6ed0d70f179a3d812c997870291c3/black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3", size = 1453190 },
|
|
51
|
-
{ url = "https://files.pythonhosted.org/packages/e3/ee/adda3d46d4a9120772fae6de454c8495603c37c4c3b9c60f25b1ab6401fe/black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171", size = 1782926 },
|
|
52
|
-
{ url = "https://files.pythonhosted.org/packages/cc/64/94eb5f45dcb997d2082f097a3944cfc7fe87e071907f677e80788a2d7b7a/black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18", size = 1442613 },
|
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/d3/b6/ae7507470a4830dbbfe875c701e84a4a5fb9183d1497834871a715716a92/black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0", size = 1628593 },
|
|
54
|
-
{ url = "https://files.pythonhosted.org/packages/24/c1/ae36fa59a59f9363017ed397750a0cd79a470490860bc7713967d89cdd31/black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f", size = 1460000 },
|
|
55
|
-
{ url = "https://files.pythonhosted.org/packages/ac/b6/98f832e7a6c49aa3a464760c67c7856363aa644f2f3c74cf7d624168607e/black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e", size = 1765963 },
|
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/ce/e9/2cb0a017eb7024f70e0d2e9bdb8c5a5b078c5740c7f8816065d06f04c557/black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355", size = 1419419 },
|
|
57
|
-
{ url = "https://files.pythonhosted.org/packages/09/71/54e999902aed72baf26bca0d50781b01838251a462612966e9fc4891eadd/black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717", size = 207646 },
|
|
58
|
-
]
|
|
59
|
-
|
|
60
17
|
[[package]]
|
|
61
18
|
name = "certifi"
|
|
62
19
|
version = "2025.1.31"
|
|
@@ -91,12 +48,10 @@ wheels = [
|
|
|
91
48
|
name = "cfengine"
|
|
92
49
|
source = { editable = "." }
|
|
93
50
|
dependencies = [
|
|
94
|
-
{ name = "black" },
|
|
95
51
|
{ name = "cf-remote" },
|
|
96
52
|
{ name = "cfbs" },
|
|
97
53
|
{ name = "markdown-it-py" },
|
|
98
|
-
{ name = "tree-sitter"
|
|
99
|
-
{ name = "tree-sitter", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
54
|
+
{ name = "tree-sitter" },
|
|
100
55
|
{ name = "tree-sitter-cfengine" },
|
|
101
56
|
]
|
|
102
57
|
|
|
@@ -108,12 +63,11 @@ dev = [
|
|
|
108
63
|
|
|
109
64
|
[package.metadata]
|
|
110
65
|
requires-dist = [
|
|
111
|
-
{ name = "black", specifier = ">=25.1.0" },
|
|
112
66
|
{ name = "cf-remote", specifier = ">=0.6.4" },
|
|
113
67
|
{ name = "cfbs", specifier = ">=4.4.3" },
|
|
114
68
|
{ name = "markdown-it-py", specifier = ">=3.0.0" },
|
|
115
|
-
{ name = "tree-sitter", specifier = ">=0.
|
|
116
|
-
{ name = "tree-sitter-cfengine", specifier = ">=1.0.
|
|
69
|
+
{ name = "tree-sitter", specifier = ">=0.25" },
|
|
70
|
+
{ name = "tree-sitter-cfengine", specifier = ">=1.0.11" },
|
|
117
71
|
]
|
|
118
72
|
|
|
119
73
|
[package.metadata.requires-dev]
|
|
@@ -180,52 +134,9 @@ wheels = [
|
|
|
180
134
|
{ url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 },
|
|
181
135
|
{ url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 },
|
|
182
136
|
{ url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 },
|
|
183
|
-
{ url = "https://files.pythonhosted.org/packages/7f/c0/b913f8f02836ed9ab32ea643c6fe4d3325c3d8627cf6e78098671cafff86/charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41", size = 197867 },
|
|
184
|
-
{ url = "https://files.pythonhosted.org/packages/0f/6c/2bee440303d705b6fb1e2ec789543edec83d32d258299b16eed28aad48e0/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f", size = 141385 },
|
|
185
|
-
{ url = "https://files.pythonhosted.org/packages/3d/04/cb42585f07f6f9fd3219ffb6f37d5a39b4fd2db2355b23683060029c35f7/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2", size = 151367 },
|
|
186
|
-
{ url = "https://files.pythonhosted.org/packages/54/54/2412a5b093acb17f0222de007cc129ec0e0df198b5ad2ce5699355269dfe/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770", size = 143928 },
|
|
187
|
-
{ url = "https://files.pythonhosted.org/packages/5a/6d/e2773862b043dcf8a221342954f375392bb2ce6487bcd9f2c1b34e1d6781/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4", size = 146203 },
|
|
188
|
-
{ url = "https://files.pythonhosted.org/packages/b9/f8/ca440ef60d8f8916022859885f231abb07ada3c347c03d63f283bec32ef5/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537", size = 148082 },
|
|
189
|
-
{ url = "https://files.pythonhosted.org/packages/04/d2/42fd330901aaa4b805a1097856c2edf5095e260a597f65def493f4b8c833/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496", size = 142053 },
|
|
190
|
-
{ url = "https://files.pythonhosted.org/packages/9e/af/3a97a4fa3c53586f1910dadfc916e9c4f35eeada36de4108f5096cb7215f/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78", size = 150625 },
|
|
191
|
-
{ url = "https://files.pythonhosted.org/packages/26/ae/23d6041322a3556e4da139663d02fb1b3c59a23ab2e2b56432bd2ad63ded/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7", size = 153549 },
|
|
192
|
-
{ url = "https://files.pythonhosted.org/packages/94/22/b8f2081c6a77cb20d97e57e0b385b481887aa08019d2459dc2858ed64871/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6", size = 150945 },
|
|
193
|
-
{ url = "https://files.pythonhosted.org/packages/c7/0b/c5ec5092747f801b8b093cdf5610e732b809d6cb11f4c51e35fc28d1d389/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294", size = 146595 },
|
|
194
|
-
{ url = "https://files.pythonhosted.org/packages/0c/5a/0b59704c38470df6768aa154cc87b1ac7c9bb687990a1559dc8765e8627e/charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5", size = 95453 },
|
|
195
|
-
{ url = "https://files.pythonhosted.org/packages/85/2d/a9790237cb4d01a6d57afadc8573c8b73c609ade20b80f4cda30802009ee/charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765", size = 102811 },
|
|
196
137
|
{ url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 },
|
|
197
138
|
]
|
|
198
139
|
|
|
199
|
-
[[package]]
|
|
200
|
-
name = "click"
|
|
201
|
-
version = "8.1.8"
|
|
202
|
-
source = { registry = "https://pypi.org/simple" }
|
|
203
|
-
resolution-markers = [
|
|
204
|
-
"python_full_version < '3.10'",
|
|
205
|
-
]
|
|
206
|
-
dependencies = [
|
|
207
|
-
{ name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" },
|
|
208
|
-
]
|
|
209
|
-
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
|
|
210
|
-
wheels = [
|
|
211
|
-
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
|
212
|
-
]
|
|
213
|
-
|
|
214
|
-
[[package]]
|
|
215
|
-
name = "click"
|
|
216
|
-
version = "8.2.1"
|
|
217
|
-
source = { registry = "https://pypi.org/simple" }
|
|
218
|
-
resolution-markers = [
|
|
219
|
-
"python_full_version >= '3.10'",
|
|
220
|
-
]
|
|
221
|
-
dependencies = [
|
|
222
|
-
{ name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" },
|
|
223
|
-
]
|
|
224
|
-
sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 }
|
|
225
|
-
wheels = [
|
|
226
|
-
{ url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 },
|
|
227
|
-
]
|
|
228
|
-
|
|
229
140
|
[[package]]
|
|
230
141
|
name = "colorama"
|
|
231
142
|
version = "0.4.6"
|
|
@@ -306,15 +217,6 @@ wheels = [
|
|
|
306
217
|
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
|
|
307
218
|
]
|
|
308
219
|
|
|
309
|
-
[[package]]
|
|
310
|
-
name = "mypy-extensions"
|
|
311
|
-
version = "1.1.0"
|
|
312
|
-
source = { registry = "https://pypi.org/simple" }
|
|
313
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343 }
|
|
314
|
-
wheels = [
|
|
315
|
-
{ url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963 },
|
|
316
|
-
]
|
|
317
|
-
|
|
318
220
|
[[package]]
|
|
319
221
|
name = "packaging"
|
|
320
222
|
version = "24.2"
|
|
@@ -324,24 +226,6 @@ wheels = [
|
|
|
324
226
|
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
|
|
325
227
|
]
|
|
326
228
|
|
|
327
|
-
[[package]]
|
|
328
|
-
name = "pathspec"
|
|
329
|
-
version = "0.12.1"
|
|
330
|
-
source = { registry = "https://pypi.org/simple" }
|
|
331
|
-
sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043 }
|
|
332
|
-
wheels = [
|
|
333
|
-
{ url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191 },
|
|
334
|
-
]
|
|
335
|
-
|
|
336
|
-
[[package]]
|
|
337
|
-
name = "platformdirs"
|
|
338
|
-
version = "4.3.8"
|
|
339
|
-
source = { registry = "https://pypi.org/simple" }
|
|
340
|
-
sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362 }
|
|
341
|
-
wheels = [
|
|
342
|
-
{ url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567 },
|
|
343
|
-
]
|
|
344
|
-
|
|
345
229
|
[[package]]
|
|
346
230
|
name = "pluggy"
|
|
347
231
|
version = "1.5.0"
|
|
@@ -442,116 +326,53 @@ wheels = [
|
|
|
442
326
|
|
|
443
327
|
[[package]]
|
|
444
328
|
name = "tree-sitter"
|
|
445
|
-
version = "0.
|
|
329
|
+
version = "0.25.0"
|
|
446
330
|
source = { registry = "https://pypi.org/simple" }
|
|
447
|
-
|
|
448
|
-
"python_full_version < '3.10'",
|
|
449
|
-
]
|
|
450
|
-
sdist = { url = "https://files.pythonhosted.org/packages/0f/50/fd5fafa42b884f741b28d9e6fd366c3f34e15d2ed3aa9633b34e388379e2/tree-sitter-0.23.2.tar.gz", hash = "sha256:66bae8dd47f1fed7bdef816115146d3a41c39b5c482d7bad36d9ba1def088450", size = 166800 }
|
|
331
|
+
sdist = { url = "https://files.pythonhosted.org/packages/98/21/e952c3180f0fd83d09cee9e0bc29f67827c659cee45077ae06eb7d813cfc/tree-sitter-0.25.0.tar.gz", hash = "sha256:15c88775cf24db06677bafe62df058a6457d8a6dde67baa48dd3723b905e79a6", size = 177740 }
|
|
451
332
|
wheels = [
|
|
452
|
-
{ url = "https://files.pythonhosted.org/packages/91/
|
|
453
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
454
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
455
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
456
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
457
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
458
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
459
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
460
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
461
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
462
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
463
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
464
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
465
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
466
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
467
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
468
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
469
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
470
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
471
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
472
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
473
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
474
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
475
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
476
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
477
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
478
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
479
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
480
|
-
{ url = "https://files.pythonhosted.org/packages/b8/86/bbda5ad09b88051ff7bf3275622a2f79bc4f728b4c283ff8b93b8fcdf36d/tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:878580b2ad5054c410ba3418edca4d34c81cc26706114d8f5b5541688bc2d785", size = 562343 },
|
|
481
|
-
{ url = "https://files.pythonhosted.org/packages/ca/55/b404fa49cb5c2926ad6fe1cac033dd486ef69f1afeb7828452d21e1e05c1/tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:29224bdc2a3b9af535b7725e249d3ee291b2e90708e82832e73acc175e40dc48", size = 574407 },
|
|
482
|
-
{ url = "https://files.pythonhosted.org/packages/c2/c8/eea2104443ab973091107ef3e730683bd8e6cb51dd025cef853d3fff9dae/tree_sitter-0.23.2-cp313-cp313-win_amd64.whl", hash = "sha256:c58d89348162fbc3aea1fe6511a66ee189fc0e4e4bbe937026f29e4ecef17763", size = 117854 },
|
|
483
|
-
{ url = "https://files.pythonhosted.org/packages/89/4d/1728d9ce32a1d851081911b7e47830f5e740431f2bb920f54bb8c26175bc/tree_sitter-0.23.2-cp313-cp313-win_arm64.whl", hash = "sha256:0ff2037be5edab7801de3f6a721b9cf010853f612e2008ee454e0e0badb225a6", size = 102492 },
|
|
484
|
-
{ url = "https://files.pythonhosted.org/packages/cb/ab/b39173a47d498cc6276e303c865f4a222134ceae890bd3c1b29427489805/tree_sitter-0.23.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a5db8e585205faef8bf219da77d8993e2ef04d08eda2e3c8ad7e4df8297ee344", size = 139550 },
|
|
485
|
-
{ url = "https://files.pythonhosted.org/packages/4c/34/fa8f5b862dd7a6014fd5578810178e8f7601830cabb6d65d2aba050c2df1/tree_sitter-0.23.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9dbd110a30cf28be5da734ae4cd0e9031768228dbf6a79f2973962aa51de4ec7", size = 132686 },
|
|
486
|
-
{ url = "https://files.pythonhosted.org/packages/98/b9/ccdddf35705fc23395caa71557f767e0753d38afe4b5bb99efddbf62bb22/tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569514b9a996a0fd458b3a891c46ca125298be0c03cf82f2b6f0c13d5d8f25dc", size = 554958 },
|
|
487
|
-
{ url = "https://files.pythonhosted.org/packages/8d/ba/20ae9079bdfc5cfac28b39d945a6c354c8e1385e73aec8142db6c53b635c/tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a357ed98a74e47787b812df99a74a2c35c0fe11e55c2095cc01d1cad144ef552", size = 568162 },
|
|
488
|
-
{ url = "https://files.pythonhosted.org/packages/40/00/b16bf6cf88c47c1b6c8e1cce1eb9e90badb5db9e5252ae0970d858d02592/tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c2dfb8e8f760f4cc67888d03ef9e2dbd3353245f67f5efba375c2a14d944ac0e", size = 560278 },
|
|
489
|
-
{ url = "https://files.pythonhosted.org/packages/7a/8f/27ab9b96cc0261af78b080ec8a9846a38e216360ec38774ea27eba35bd3c/tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3ead958df87a21d706903987e665e9e0e5df7b2c5021ff69ea349826840adc6a", size = 571255 },
|
|
490
|
-
{ url = "https://files.pythonhosted.org/packages/44/e0/95a3d66a7e5bb229574484ab10c6dc99d1c7a32972b890d194076e30dc4f/tree_sitter-0.23.2-cp39-cp39-win_amd64.whl", hash = "sha256:611cae16be332213c0e6ece72c0bfca202e30ff320a8b309b1526c6cb79ee4ba", size = 118232 },
|
|
491
|
-
{ url = "https://files.pythonhosted.org/packages/10/b5/9eaf794fc71490573ab14a366affca415bc1ddbf86a14d78e54583db4254/tree_sitter-0.23.2-cp39-cp39-win_arm64.whl", hash = "sha256:b848e0fdd522fbb8888cdb4f4d93f8fad97ae10d70c122fb922e51363c7febcd", size = 102787 },
|
|
492
|
-
]
|
|
493
|
-
|
|
494
|
-
[[package]]
|
|
495
|
-
name = "tree-sitter"
|
|
496
|
-
version = "0.24.0"
|
|
497
|
-
source = { registry = "https://pypi.org/simple" }
|
|
498
|
-
resolution-markers = [
|
|
499
|
-
"python_full_version >= '3.10'",
|
|
500
|
-
]
|
|
501
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a7/a2/698b9d31d08ad5558f8bfbfe3a0781bd4b1f284e89bde3ad18e05101a892/tree-sitter-0.24.0.tar.gz", hash = "sha256:abd95af65ca2f4f7eca356343391ed669e764f37748b5352946f00f7fc78e734", size = 168304 }
|
|
502
|
-
wheels = [
|
|
503
|
-
{ url = "https://files.pythonhosted.org/packages/08/9a/bd627a02e41671af73222316e1fcf87772c7804dc2fba99405275eb1f3eb/tree_sitter-0.24.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f3f00feff1fc47a8e4863561b8da8f5e023d382dd31ed3e43cd11d4cae445445", size = 140890 },
|
|
504
|
-
{ url = "https://files.pythonhosted.org/packages/5b/9b/b1ccfb187f8be78e2116176a091a2f2abfd043a06d78f80c97c97f315b37/tree_sitter-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f9691be48d98c49ef8f498460278884c666b44129222ed6217477dffad5d4831", size = 134413 },
|
|
505
|
-
{ url = "https://files.pythonhosted.org/packages/01/39/e25b0042a049eb27e991133a7aa7c49bb8e49a8a7b44ca34e7e6353ba7ac/tree_sitter-0.24.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:098a81df9f89cf254d92c1cd0660a838593f85d7505b28249216661d87adde4a", size = 560427 },
|
|
506
|
-
{ url = "https://files.pythonhosted.org/packages/1c/59/4d132f1388da5242151b90acf32cc56af779bfba063923699ab28b276b62/tree_sitter-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b26bf9e958da6eb7e74a081aab9d9c7d05f9baeaa830dbb67481898fd16f1f5", size = 574327 },
|
|
507
|
-
{ url = "https://files.pythonhosted.org/packages/ec/97/3914e45ab9e0ff0f157e493caa91791372508488b97ff0961a0640a37d25/tree_sitter-0.24.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2a84ff87a2f2a008867a1064aba510ab3bd608e3e0cd6e8fef0379efee266c73", size = 577171 },
|
|
508
|
-
{ url = "https://files.pythonhosted.org/packages/c5/b0/266a529c3eef171137b73cde8ad7aa282734354609a8b2f5564428e8f12d/tree_sitter-0.24.0-cp310-cp310-win_amd64.whl", hash = "sha256:c012e4c345c57a95d92ab5a890c637aaa51ab3b7ff25ed7069834b1087361c95", size = 120260 },
|
|
509
|
-
{ url = "https://files.pythonhosted.org/packages/c1/c3/07bfaa345e0037ff75d98b7a643cf940146e4092a1fd54eed0359836be03/tree_sitter-0.24.0-cp310-cp310-win_arm64.whl", hash = "sha256:033506c1bc2ba7bd559b23a6bdbeaf1127cee3c68a094b82396718596dfe98bc", size = 108416 },
|
|
510
|
-
{ url = "https://files.pythonhosted.org/packages/66/08/82aaf7cbea7286ee2a0b43e9b75cb93ac6ac132991b7d3c26ebe5e5235a3/tree_sitter-0.24.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:de0fb7c18c6068cacff46250c0a0473e8fc74d673e3e86555f131c2c1346fb13", size = 140733 },
|
|
511
|
-
{ url = "https://files.pythonhosted.org/packages/8c/bd/1a84574911c40734d80327495e6e218e8f17ef318dd62bb66b55c1e969f5/tree_sitter-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a7c9c89666dea2ce2b2bf98e75f429d2876c569fab966afefdcd71974c6d8538", size = 134243 },
|
|
512
|
-
{ url = "https://files.pythonhosted.org/packages/46/c1/c2037af2c44996d7bde84eb1c9e42308cc84b547dd6da7f8a8bea33007e1/tree_sitter-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ddb113e6b8b3e3b199695b1492a47d87d06c538e63050823d90ef13cac585fd", size = 562030 },
|
|
513
|
-
{ url = "https://files.pythonhosted.org/packages/4c/aa/2fb4d81886df958e6ec7e370895f7106d46d0bbdcc531768326124dc8972/tree_sitter-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ea01a7003b88b92f7f875da6ba9d5d741e0c84bb1bd92c503c0eecd0ee6409", size = 575585 },
|
|
514
|
-
{ url = "https://files.pythonhosted.org/packages/e3/3c/5f997ce34c0d1b744e0f0c0757113bdfc173a2e3dadda92c751685cfcbd1/tree_sitter-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:464fa5b2cac63608915a9de8a6efd67a4da1929e603ea86abaeae2cb1fe89921", size = 578203 },
|
|
515
|
-
{ url = "https://files.pythonhosted.org/packages/d5/1f/f2bc7fa7c3081653ea4f2639e06ff0af4616c47105dbcc0746137da7620d/tree_sitter-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:3b1f3cbd9700e1fba0be2e7d801527e37c49fc02dc140714669144ef6ab58dce", size = 120147 },
|
|
516
|
-
{ url = "https://files.pythonhosted.org/packages/c0/4c/9add771772c4d72a328e656367ca948e389432548696a3819b69cdd6f41e/tree_sitter-0.24.0-cp311-cp311-win_arm64.whl", hash = "sha256:f3f08a2ca9f600b3758792ba2406971665ffbad810847398d180c48cee174ee2", size = 108302 },
|
|
517
|
-
{ url = "https://files.pythonhosted.org/packages/e9/57/3a590f287b5aa60c07d5545953912be3d252481bf5e178f750db75572bff/tree_sitter-0.24.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:14beeff5f11e223c37be7d5d119819880601a80d0399abe8c738ae2288804afc", size = 140788 },
|
|
518
|
-
{ url = "https://files.pythonhosted.org/packages/61/0b/fc289e0cba7dbe77c6655a4dd949cd23c663fd62a8b4d8f02f97e28d7fe5/tree_sitter-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26a5b130f70d5925d67b47db314da209063664585a2fd36fa69e0717738efaf4", size = 133945 },
|
|
519
|
-
{ url = "https://files.pythonhosted.org/packages/86/d7/80767238308a137e0b5b5c947aa243e3c1e3e430e6d0d5ae94b9a9ffd1a2/tree_sitter-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fc5c3c26d83c9d0ecb4fc4304fba35f034b7761d35286b936c1db1217558b4e", size = 564819 },
|
|
520
|
-
{ url = "https://files.pythonhosted.org/packages/bf/b3/6c5574f4b937b836601f5fb556b24804b0a6341f2eb42f40c0e6464339f4/tree_sitter-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:772e1bd8c0931c866b848d0369b32218ac97c24b04790ec4b0e409901945dd8e", size = 579303 },
|
|
521
|
-
{ url = "https://files.pythonhosted.org/packages/0a/f4/bd0ddf9abe242ea67cca18a64810f8af230fc1ea74b28bb702e838ccd874/tree_sitter-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:24a8dd03b0d6b8812425f3b84d2f4763322684e38baf74e5bb766128b5633dc7", size = 581054 },
|
|
522
|
-
{ url = "https://files.pythonhosted.org/packages/8c/1c/ff23fa4931b6ef1bbeac461b904ca7e49eaec7e7e5398584e3eef836ec96/tree_sitter-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:f9e8b1605ab60ed43803100f067eed71b0b0e6c1fb9860a262727dbfbbb74751", size = 120221 },
|
|
523
|
-
{ url = "https://files.pythonhosted.org/packages/b2/2a/9979c626f303177b7612a802237d0533155bf1e425ff6f73cc40f25453e2/tree_sitter-0.24.0-cp312-cp312-win_arm64.whl", hash = "sha256:f733a83d8355fc95561582b66bbea92ffd365c5d7a665bc9ebd25e049c2b2abb", size = 108234 },
|
|
524
|
-
{ url = "https://files.pythonhosted.org/packages/61/cd/2348339c85803330ce38cee1c6cbbfa78a656b34ff58606ebaf5c9e83bd0/tree_sitter-0.24.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d4a6416ed421c4210f0ca405a4834d5ccfbb8ad6692d4d74f7773ef68f92071", size = 140781 },
|
|
525
|
-
{ url = "https://files.pythonhosted.org/packages/8b/a3/1ea9d8b64e8dcfcc0051028a9c84a630301290995cd6e947bf88267ef7b1/tree_sitter-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e0992d483677e71d5c5d37f30dfb2e3afec2f932a9c53eec4fca13869b788c6c", size = 133928 },
|
|
526
|
-
{ url = "https://files.pythonhosted.org/packages/fe/ae/55c1055609c9428a4aedf4b164400ab9adb0b1bf1538b51f4b3748a6c983/tree_sitter-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57277a12fbcefb1c8b206186068d456c600dbfbc3fd6c76968ee22614c5cd5ad", size = 564497 },
|
|
527
|
-
{ url = "https://files.pythonhosted.org/packages/ce/d0/f2ffcd04882c5aa28d205a787353130cbf84b2b8a977fd211bdc3b399ae3/tree_sitter-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25fa22766d63f73716c6fec1a31ee5cf904aa429484256bd5fdf5259051ed74", size = 578917 },
|
|
528
|
-
{ url = "https://files.pythonhosted.org/packages/af/82/aebe78ea23a2b3a79324993d4915f3093ad1af43d7c2208ee90be9273273/tree_sitter-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7d5d9537507e1c8c5fa9935b34f320bfec4114d675e028f3ad94f11cf9db37b9", size = 581148 },
|
|
529
|
-
{ url = "https://files.pythonhosted.org/packages/a1/b4/6b0291a590c2b0417cfdb64ccb8ea242f270a46ed429c641fbc2bfab77e0/tree_sitter-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:f58bb4956917715ec4d5a28681829a8dad5c342cafd4aea269f9132a83ca9b34", size = 120207 },
|
|
530
|
-
{ url = "https://files.pythonhosted.org/packages/a8/18/542fd844b75272630229c9939b03f7db232c71a9d82aadc59c596319ea6a/tree_sitter-0.24.0-cp313-cp313-win_arm64.whl", hash = "sha256:23641bd25dcd4bb0b6fa91b8fb3f46cc9f1c9f475efe4d536d3f1f688d1b84c8", size = 108232 },
|
|
333
|
+
{ url = "https://files.pythonhosted.org/packages/fd/91/b89731ee36f4bd735be67a0170f3ee77c527d0e4e28ec330e73bb5924310/tree_sitter-0.25.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:05fa57c9d9f951e9e806689caff9a809e2a8c4477ee23ff41a5e65122bbeb4c3", size = 146757 },
|
|
334
|
+
{ url = "https://files.pythonhosted.org/packages/5f/c8/de1051e16fd1e06056155a18587a28e82312a8e44a9deb9a95da2600c045/tree_sitter-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cd55cb2c2f311693694c6eee409b163246e9a809ede49371963ace8c93d77ad1", size = 140913 },
|
|
335
|
+
{ url = "https://files.pythonhosted.org/packages/33/63/20ef6709ef6072e46bdc0655cd515e53a110d042c7b4c94fd5e8abd9e20a/tree_sitter-0.25.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5892ecb52b14b00605c6960af42d212c65610a0de3ae986208619fa42b676bad", size = 610872 },
|
|
336
|
+
{ url = "https://files.pythonhosted.org/packages/09/52/80f2faebe7901df9a8aa98b2fe719a63d2ae8ad20e67c64f0cc775c78d51/tree_sitter-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3ec6a4ac2170af965e5b41bb603a5b0406ca8d93dac83d388c2246f0eef606a", size = 627920 },
|
|
337
|
+
{ url = "https://files.pythonhosted.org/packages/0c/b1/10be3b91f38d08c1caa85df3bc39815aa3337feb24b5d7b1a3de5e46301f/tree_sitter-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d34bb4dda0518c07f6ea7880a463da338b2b72ce7c66bf32dc54f2ddcaf8463d", size = 623831 },
|
|
338
|
+
{ url = "https://files.pythonhosted.org/packages/df/54/c69a6ba42f3af92a3bd07ab7954f0f269ed9f59de88121a8d33a30be5bbc/tree_sitter-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:5aad12ceb86745946a74e63a3cf5e111684589acb3d647e5ce40637e89714c48", size = 126870 },
|
|
339
|
+
{ url = "https://files.pythonhosted.org/packages/76/c5/925984b3eb83942ed630bc27dddea31a2b26808fc7a7c8f931d07582a206/tree_sitter-0.25.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ea484eec5e6538fdbabdd3c737d5f5250602e12dc9a33ed3b8e6a400ca115be", size = 113511 },
|
|
340
|
+
{ url = "https://files.pythonhosted.org/packages/c7/bb/072c607766862da41f8b29ab5ed16fbdb7d57e2864a87aa2ea030c5fff19/tree_sitter-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5409a3be1010a483a9a8d5c64fdd20de7ea3e9c0c080e91e492a10a659bcac40", size = 146758 },
|
|
341
|
+
{ url = "https://files.pythonhosted.org/packages/ae/37/7389b571dfea093c65b975893032b9f01917d9187d0d2e93723ec5b5717b/tree_sitter-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa1cd26faff9b3514e456cc0f4f0eb6b11bfdeec9a40ba8d55ee5a75d57566cb", size = 140909 },
|
|
342
|
+
{ url = "https://files.pythonhosted.org/packages/c5/97/70540a0c608015d472b6208e968e670a6e09affaf3859edaab66f5b1b96c/tree_sitter-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ddf745c668df39e4ef9a28fba4be4ecea990522e940b8e5bc656704c689b38ac", size = 615452 },
|
|
343
|
+
{ url = "https://files.pythonhosted.org/packages/d2/00/343e3f95ccdad05cb34c9fa7f52eb6164870059821f88fe5a266c175553b/tree_sitter-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b39e177822dda5b42f2b6235af0a66c92ab6f1674f07d0e7b51be73957193370", size = 632430 },
|
|
344
|
+
{ url = "https://files.pythonhosted.org/packages/96/32/468815a1fe60bca40cec0163bfeedd5aa86fe88a9c2c8cf29cdf3a1c3d33/tree_sitter-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:992cd17f97eae3245786160db4902f7b8106186aa18b9fcb873a86688e4d4dc8", size = 629356 },
|
|
345
|
+
{ url = "https://files.pythonhosted.org/packages/7e/ff/121893bca3dd4bc4bcb7ba186fcb2a10570dc78feaf68d7e849c3f0af078/tree_sitter-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:14a138fe341348e7801c0afb580970597477fc68a0d0f6c780fc0a07eae2770e", size = 126878 },
|
|
346
|
+
{ url = "https://files.pythonhosted.org/packages/ff/86/e3167c360664753b987f46b9bb97f952cb8c282199fc1429369cc99b646b/tree_sitter-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:332e235eba90423edc6e83cc4a5dc60e91c03ace6c1d8729d0f2e0ca09210845", size = 113495 },
|
|
347
|
+
{ url = "https://files.pythonhosted.org/packages/c5/75/36a4726a09aeb0477ca4a45aba4abf9705642b871539005ca91ddd68faa3/tree_sitter-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d9efacce0140ad74f97e027fb4ae693debff05f6246f3e024937f9500a0e874a", size = 147016 },
|
|
348
|
+
{ url = "https://files.pythonhosted.org/packages/ff/5e/a549a21e459de94056cf48ca5e10e3774bc9b0460ffb3aec469a5f6001c0/tree_sitter-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82b4a5535107d2b8feee085edcafa89858faa4e1a98e94cfe1740c0ca8c28d84", size = 140832 },
|
|
349
|
+
{ url = "https://files.pythonhosted.org/packages/d7/ed/7cc29a309e5f5cc209902c93589d29a4faeb656c7eecc1abd86842633b8f/tree_sitter-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c613372545490dfba3b3e7d934fda1156e3d16b27c0335c65a92f2b4fa6af5da", size = 617875 },
|
|
350
|
+
{ url = "https://files.pythonhosted.org/packages/76/fc/43a61a35f021429d905ce272be9a9ea6dad6fe2c849782c53bd083a935cf/tree_sitter-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a90c815a354594d3147012ce470cfc797695ab768e29198815e147ef3c165", size = 635857 },
|
|
351
|
+
{ url = "https://files.pythonhosted.org/packages/9b/28/c9236c505e35b3aedb3c941a359a708c173cbedab8d843fec729bab81ed9/tree_sitter-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f0b01b5068f1888af223021ba461480df28c76f39893c8113aae2154a2b81fd", size = 632649 },
|
|
352
|
+
{ url = "https://files.pythonhosted.org/packages/13/d3/5dff82a02646619545c4e7c9b9ec87bc126f1937760228fcf2e91f5079c7/tree_sitter-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:1807bd1dae1f50721d65b270e6ffa85de84234ae39f98f4da702db56c2627e23", size = 126785 },
|
|
353
|
+
{ url = "https://files.pythonhosted.org/packages/71/61/4fffd405569d9c1551906766825da75a2d8f1c075be8994542d5d7ba7768/tree_sitter-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:7848be6aeab5c1d62d649506d80d0e463727cb1bb55f423e88bf317db0be8d67", size = 113615 },
|
|
354
|
+
{ url = "https://files.pythonhosted.org/packages/7a/fd/7578088dddec9b89b60d8dfea1901f3a5dff61b66d3c637c309b6209c8db/tree_sitter-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:689a19d51103f727a545ec9ba9cd377267445859838c38ec55d159dc57e82e8a", size = 147009 },
|
|
355
|
+
{ url = "https://files.pythonhosted.org/packages/7a/3e/6e3dac18c119acf738174a19ce91d89b34f6ad1ca1c5dd57b245ae15c935/tree_sitter-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:86288b218ef958dcafe40030d6d70c99baffaf808bd81b49de160f9724fc0ba4", size = 140828 },
|
|
356
|
+
{ url = "https://files.pythonhosted.org/packages/fa/21/94d26f5d488d85bf5201280f82ce7de374ce30ed5d5469e57623d64ead9a/tree_sitter-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5241610319177ee2f68b8e719bf1e1b309155e126d9cd567ff84f20878d7e5d0", size = 618600 },
|
|
357
|
+
{ url = "https://files.pythonhosted.org/packages/67/74/e852445871c0a82bfa5e3d16541e0ce6775ef458d3a8f03ab3737c661832/tree_sitter-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ae1553d652a54926f80dc0a42fba07db110bb1a3ebaf47d1c4c64f8d44dd8207", size = 636691 },
|
|
358
|
+
{ url = "https://files.pythonhosted.org/packages/87/67/759afe10e0018aa3ca3269df0257228b2df120e3956171a3667b133f3100/tree_sitter-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ccac581551407a73a519b872553973598b69d3d237ffaf32408fb38ecb775484", size = 632730 },
|
|
359
|
+
{ url = "https://files.pythonhosted.org/packages/8d/42/24a80dafdb32f1f7d16e3236f2ba8a2bc7b0e5c2a19c7b45f874f0980e90/tree_sitter-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:d58e912869514ebb441b15c22a13a9c78f1b69be15f6a42b1d18e3f790e5d6ba", size = 126779 },
|
|
360
|
+
{ url = "https://files.pythonhosted.org/packages/6f/2e/6af369e9d6deab9baaa60e2fa91acf82a68c63d835a2fe4f4265674ecc53/tree_sitter-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:a1b8302161fa8da52cfafcd7575fa7d5806a9608a0b51c7a1fe45bfe70b62d46", size = 113623 },
|
|
531
361
|
]
|
|
532
362
|
|
|
533
363
|
[[package]]
|
|
534
364
|
name = "tree-sitter-cfengine"
|
|
535
|
-
version = "1.0.
|
|
536
|
-
source = { registry = "https://pypi.org/simple" }
|
|
537
|
-
sdist = { url = "https://files.pythonhosted.org/packages/4c/35/4b56377fe5dfd6b2010582134aa5049e1d7d6289eccb000b52fee59772a6/tree_sitter_cfengine-1.0.8.tar.gz", hash = "sha256:ced0f72aba70db975c4f6a92bd50dda3444ee17a83250bdfc14baa6480150ee4", size = 14338 }
|
|
538
|
-
wheels = [
|
|
539
|
-
{ url = "https://files.pythonhosted.org/packages/bf/ee/bb3c884b725d6b82e1439d101e26ab7c7e4f1ce0d685e49040648b50d1d3/tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3b47a91e449d0dd48212081297a7689c3a99352f15bf9a2aa7719d52ded45af9", size = 11303 },
|
|
540
|
-
{ url = "https://files.pythonhosted.org/packages/4e/4e/f1ffdb82fe3ce751169ad821d4045bfc2a6b425c0acd3c74171a7624519f/tree_sitter_cfengine-1.0.8-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:647218fc741b2e4407f35e01d5c08891f7f61b48a6733480ab04cafda940b220", size = 11828 },
|
|
541
|
-
{ url = "https://files.pythonhosted.org/packages/96/87/2df7e8428fbde56cd944b923240ab733488704cb6056d8208c55c9baaa2b/tree_sitter_cfengine-1.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9782b7d51f977ab38e8f9dc2dbc43ecc19a787bbe87b08dbe43b984f16b99393", size = 23703 },
|
|
542
|
-
{ url = "https://files.pythonhosted.org/packages/47/8f/9cb8f9eaa3601f4f8bc53ce28174465a9b4c5e26613955f2989d67d4e482/tree_sitter_cfengine-1.0.8-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d501a9b7371af68e1b39284d9a26a1518201b63e6661a5a80b8bcc79a4363892", size = 23312 },
|
|
543
|
-
{ url = "https://files.pythonhosted.org/packages/0d/a2/24cc97825d56e3cb9150aa97402567d30380862705a91525b804aceb4f6f/tree_sitter_cfengine-1.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:c080e8621a8ff2991c3b8c2d05fcd03e57eb45ff9a7ed83a33382cdf097c95c7", size = 21657 },
|
|
544
|
-
{ url = "https://files.pythonhosted.org/packages/11/6b/12e514de3ccbf54ec33552ad0d93b2e0039df0e47ebd9c3c8f0b72af6512/tree_sitter_cfengine-1.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:3bae17a9b2b6b5c01c606ed6b03b8685bf0e8f1d4dcc87c45c6a89fa0c37920b", size = 14576 },
|
|
545
|
-
{ url = "https://files.pythonhosted.org/packages/13/e4/b719be2c1f1ce48c0a781b242d9d509e92c0041e6e7e581d4fdff92a4456/tree_sitter_cfengine-1.0.8-cp39-abi3-win_arm64.whl", hash = "sha256:41e5ac40a767893d9dd09ddc4ef2886bd008d72376ad14060c11abe6270e80b9", size = 13165 },
|
|
546
|
-
]
|
|
547
|
-
|
|
548
|
-
[[package]]
|
|
549
|
-
name = "typing-extensions"
|
|
550
|
-
version = "4.14.1"
|
|
365
|
+
version = "1.0.11"
|
|
551
366
|
source = { registry = "https://pypi.org/simple" }
|
|
552
|
-
sdist = { url = "https://files.pythonhosted.org/packages/98/
|
|
367
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d1/98/2a8ec55f8f72a1968ff48ada6694e7d99fb34b9bc1022960aad6adcddca9/tree_sitter_cfengine-1.0.11.tar.gz", hash = "sha256:ff4f5b0282aa9c10dd0c3e643a521c82c95f78ae5c4e30b00f91763fa138c93d", size = 15141 }
|
|
553
368
|
wheels = [
|
|
554
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
369
|
+
{ url = "https://files.pythonhosted.org/packages/10/14/9877edb41f4fda07799120e67e6d54bc6ebc3a5b25b0fe7035e3e2d9f7e1/tree_sitter_cfengine-1.0.11-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:32ca7d616a22a86c91b296cf2f38d0ed77e7bf1e48c385212eff154118a0af61", size = 12269 },
|
|
370
|
+
{ url = "https://files.pythonhosted.org/packages/f4/82/330f3d65ae276ef51bc393968a0613d8b53acbbf68f3f6595d485e804410/tree_sitter_cfengine-1.0.11-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:c286571aeafe1752bea44b4ac46b41441b3cad383dd8d6a1eb5e28733b897dd2", size = 12619 },
|
|
371
|
+
{ url = "https://files.pythonhosted.org/packages/12/f8/e4f656d8b45a86665077d0eff9e1120e93e14c1b0748ef4e4f11e2ce4247/tree_sitter_cfengine-1.0.11-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dd2249962095ea10c0cec38bfa7c37f1eb868a5ff83864a271e374706af73aef", size = 23021 },
|
|
372
|
+
{ url = "https://files.pythonhosted.org/packages/a1/0d/eb8d3d2c9a5cf74af03b6a36e55451ef5f8976c1c2c07d662db75e146655/tree_sitter_cfengine-1.0.11-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9fcf1774374c9e42a664ef6e9bbc8161bb1582bc8eede1c39685a4e4d0673847", size = 24552 },
|
|
373
|
+
{ url = "https://files.pythonhosted.org/packages/52/cc/2e4f2fd32799da09dbc87d64e17802686fbc0c6e10d7cc7f6b3ceb8f3d34/tree_sitter_cfengine-1.0.11-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8cd8246670e0430f4175eba653ba67bc1b788be48c2fc2cc02af9148882c38f0", size = 22838 },
|
|
374
|
+
{ url = "https://files.pythonhosted.org/packages/db/c9/eb22d365c7cd2643f748cbb0696b77fccd9cfe7e1bb9cd979f4c75e8347b/tree_sitter_cfengine-1.0.11-cp39-abi3-win_amd64.whl", hash = "sha256:f9b263810a8eb08657eed40c48b1397a14c1caffe50cbeb17f736fba3108d476", size = 15210 },
|
|
375
|
+
{ url = "https://files.pythonhosted.org/packages/8c/7f/29df033275b06d4dea10c70d104ce8866e5cafb65cbd7ab941343a487fd5/tree_sitter_cfengine-1.0.11-cp39-abi3-win_arm64.whl", hash = "sha256:d463c8b1246cd74c51d85130a719e03bc33dc4fafb1fe479a568749c4ba6c0c8", size = 14047 },
|
|
555
376
|
]
|
|
556
377
|
|
|
557
378
|
[[package]]
|
|
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
|
|
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
|
|
File without changes
|