clsync 1.0.1__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.
- clsync-1.0.1/.gitignore +11 -0
- clsync-1.0.1/.gitlab-ci.yml +113 -0
- clsync-1.0.1/.pip-cache/http-v2/0/3/5/9/5/03595f024098ed084eba12d86fd2749d935b061fa35d6b1f18cc0b84 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/0/3/5/9/5/03595f024098ed084eba12d86fd2749d935b061fa35d6b1f18cc0b84.body +139 -0
- clsync-1.0.1/.pip-cache/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a +0 -0
- clsync-1.0.1/.pip-cache/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f +0 -0
- clsync-1.0.1/.pip-cache/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/3/c/e/7/7/3ce770df07ea321ab056bed31a67391a50e82aea9460d349fd057276 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/3/c/e/7/7/3ce770df07ea321ab056bed31a67391a50e82aea9460d349fd057276.body +107 -0
- clsync-1.0.1/.pip-cache/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa +0 -0
- clsync-1.0.1/.pip-cache/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/6/a/0/8/8/6a088fc192b69f4692b96903e0d1df2f92839b402221a47a2ca3b5be +0 -0
- clsync-1.0.1/.pip-cache/http-v2/6/a/0/8/8/6a088fc192b69f4692b96903e0d1df2f92839b402221a47a2ca3b5be.body +82 -0
- clsync-1.0.1/.pip-cache/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75.body +79 -0
- clsync-1.0.1/.pip-cache/http-v2/9/e/a/1/5/9ea15e1a7a7a1cb9950b76e2e3c06da4d07100bc185f905f6e33e283 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/9/e/a/1/5/9ea15e1a7a7a1cb9950b76e2e3c06da4d07100bc185f905f6e33e283.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/d/3/4/4/ad344e8dcc28c72166da85db3d3c34ea7bd39531944f502465cf3a50 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/d/3/4/4/ad344e8dcc28c72166da85db3d3c34ea7bd39531944f502465cf3a50.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/f/0/b/4/af0b4f3ea11a267af8c06f6fa9fa74e1a06b91e221cbd34f379bb11c +0 -0
- clsync-1.0.1/.pip-cache/http-v2/a/f/0/b/4/af0b4f3ea11a267af8c06f6fa9fa74e1a06b91e221cbd34f379bb11c.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4.body +25 -0
- clsync-1.0.1/.pip-cache/http-v2/c/5/2/e/2/c52e2f1dd5b9608ced10cc1a661cb4850330552cdc6801105598d8e4 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/c/5/2/e/2/c52e2f1dd5b9608ced10cc1a661cb4850330552cdc6801105598d8e4.body +356 -0
- clsync-1.0.1/.pip-cache/http-v2/c/6/f/3/1/c6f3192810e6b78a08fee1da61557cd4bdd93a63331b9d474bca9d38 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/c/6/f/3/1/c6f3192810e6b78a08fee1da61557cd4bdd93a63331b9d474bca9d38.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a +0 -0
- clsync-1.0.1/.pip-cache/http-v2/c/d/2/3/6/cd2366d413a2e8e87377cfadece7d8173562ece48b2be25218d5714a.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/f/3/6/d/5/f36d58c71164036f2cff3c9d0bb0c2b4d1d94bd0814c26b9cbe036b2.body +0 -0
- clsync-1.0.1/.pip-cache/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5 +0 -0
- clsync-1.0.1/.pip-cache/http-v2/f/9/9/b/3/f99b3487d2b9c55edcd311aeafa35cbf852ab2cc5c3f5d1a1a08e2b5.body +152 -0
- clsync-1.0.1/.pip-cache/selfcheck/fe300af6f7d708c14827daac3afc81fbb8306b73de8dd6e3f1f8ea3b +1 -0
- clsync-1.0.1/LICENSE +21 -0
- clsync-1.0.1/PKG-INFO +557 -0
- clsync-1.0.1/README.md +521 -0
- clsync-1.0.1/pipeline/models.py +12 -0
- clsync-1.0.1/pipeline/prompts/synthesize_claude_md.txt +18 -0
- clsync-1.0.1/pipeline/prompts/synthesize_critic.txt +23 -0
- clsync-1.0.1/pipeline/requirements.txt +2 -0
- clsync-1.0.1/pipeline/synthesize.py +426 -0
- clsync-1.0.1/project-specification.md +1230 -0
- clsync-1.0.1/pyproject.toml +54 -0
- clsync-1.0.1/src/claude_sync/__init__.py +0 -0
- clsync-1.0.1/src/claude_sync/apply.py +147 -0
- clsync-1.0.1/src/claude_sync/bootstrap.py +250 -0
- clsync-1.0.1/src/claude_sync/ci_provider.py +296 -0
- clsync-1.0.1/src/claude_sync/claude_paths.py +31 -0
- clsync-1.0.1/src/claude_sync/cli.py +767 -0
- clsync-1.0.1/src/claude_sync/config.py +89 -0
- clsync-1.0.1/src/claude_sync/git_ops.py +39 -0
- clsync-1.0.1/src/claude_sync/gitlab_api.py +138 -0
- clsync-1.0.1/src/claude_sync/lock.py +55 -0
- clsync-1.0.1/src/claude_sync/models.py +61 -0
- clsync-1.0.1/src/claude_sync/prompts/bootstrap.txt +23 -0
- clsync-1.0.1/src/claude_sync/scaffold.py +43 -0
- clsync-1.0.1/src/claude_sync/snapshot.py +147 -0
- clsync-1.0.1/src/claude_sync/templates/__init__.py +0 -0
- clsync-1.0.1/src/claude_sync/templates/github-workflow.yml +40 -0
- clsync-1.0.1/src/claude_sync/templates/gitignore +8 -0
- clsync-1.0.1/src/claude_sync/templates/gitlab-ci.yml +60 -0
- clsync-1.0.1/src/claude_sync/templates/pipeline/models.py +12 -0
- clsync-1.0.1/src/claude_sync/templates/pipeline/prompts/synthesize_claude_md.txt +18 -0
- clsync-1.0.1/src/claude_sync/templates/pipeline/prompts/synthesize_critic.txt +23 -0
- clsync-1.0.1/src/claude_sync/templates/pipeline/requirements.txt +2 -0
- clsync-1.0.1/src/claude_sync/templates/pipeline/synthesize.py +426 -0
- clsync-1.0.1/tests/fixtures/machine_a/global/CLAUDE.md +15 -0
- clsync-1.0.1/tests/fixtures/machine_a/projects/my-app/CLAUDE.md +11 -0
- clsync-1.0.1/tests/fixtures/machine_b/global/CLAUDE.md +19 -0
- clsync-1.0.1/tests/test_apply.py +277 -0
- clsync-1.0.1/tests/test_bootstrap.py +174 -0
- clsync-1.0.1/tests/test_claude_paths.py +71 -0
- clsync-1.0.1/tests/test_config.py +90 -0
- clsync-1.0.1/tests/test_git_ops.py +99 -0
- clsync-1.0.1/tests/test_gitlab_api.py +213 -0
- clsync-1.0.1/tests/test_lock.py +121 -0
- clsync-1.0.1/tests/test_scaffold.py +83 -0
- clsync-1.0.1/tests/test_snapshot.py +297 -0
- clsync-1.0.1/tests/test_synthesize.py +431 -0
clsync-1.0.1/.gitignore
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
workflow:
|
|
2
|
+
rules:
|
|
3
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
4
|
+
- if: $CI_PIPELINE_SOURCE == "trigger"
|
|
5
|
+
- if: $CI_PIPELINE_SOURCE == "schedule"
|
|
6
|
+
- if: $CI_PIPELINE_SOURCE == "web"
|
|
7
|
+
|
|
8
|
+
stages:
|
|
9
|
+
- build
|
|
10
|
+
- publish
|
|
11
|
+
- synthesize
|
|
12
|
+
|
|
13
|
+
variables:
|
|
14
|
+
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.pip-cache"
|
|
15
|
+
|
|
16
|
+
build_wheel:
|
|
17
|
+
stage: build
|
|
18
|
+
image: python:3.12-slim
|
|
19
|
+
cache:
|
|
20
|
+
paths:
|
|
21
|
+
- .pip-cache/
|
|
22
|
+
script:
|
|
23
|
+
- pip install build
|
|
24
|
+
- python -m build
|
|
25
|
+
artifacts:
|
|
26
|
+
paths:
|
|
27
|
+
- dist/
|
|
28
|
+
expire_in: 1 week
|
|
29
|
+
rules:
|
|
30
|
+
- if: $CI_COMMIT_TAG
|
|
31
|
+
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"
|
|
32
|
+
|
|
33
|
+
publish_to_gitlab_registry:
|
|
34
|
+
stage: publish
|
|
35
|
+
image: python:3.12-slim
|
|
36
|
+
cache:
|
|
37
|
+
paths:
|
|
38
|
+
- .pip-cache/
|
|
39
|
+
needs:
|
|
40
|
+
- build_wheel
|
|
41
|
+
script:
|
|
42
|
+
- pip install twine
|
|
43
|
+
- >
|
|
44
|
+
TWINE_USERNAME=gitlab-ci-token
|
|
45
|
+
TWINE_PASSWORD=${CI_JOB_TOKEN}
|
|
46
|
+
python -m twine upload
|
|
47
|
+
--repository-url "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi"
|
|
48
|
+
dist/*
|
|
49
|
+
rules:
|
|
50
|
+
- if: $CI_COMMIT_TAG
|
|
51
|
+
|
|
52
|
+
publish_to_pypi:
|
|
53
|
+
stage: publish
|
|
54
|
+
image: python:3.12-slim
|
|
55
|
+
cache:
|
|
56
|
+
paths:
|
|
57
|
+
- .pip-cache/
|
|
58
|
+
needs:
|
|
59
|
+
- build_wheel
|
|
60
|
+
script:
|
|
61
|
+
- pip install twine
|
|
62
|
+
- python -m twine check dist/*
|
|
63
|
+
- TWINE_USERNAME=__token__ TWINE_PASSWORD=${PYPI_API_TOKEN} python -m twine upload --verbose dist/*
|
|
64
|
+
rules:
|
|
65
|
+
- if: $CI_COMMIT_TAG
|
|
66
|
+
|
|
67
|
+
.synthesis_base:
|
|
68
|
+
stage: synthesize
|
|
69
|
+
image: python:3.12-slim
|
|
70
|
+
cache:
|
|
71
|
+
paths:
|
|
72
|
+
- .pip-cache/
|
|
73
|
+
before_script:
|
|
74
|
+
- apt-get update -qq && apt-get install -y -qq git
|
|
75
|
+
- pip install -r pipeline/requirements.txt
|
|
76
|
+
- git config user.email "claude-sync-bot@noreply"
|
|
77
|
+
- git config user.name "Claude Sync Bot"
|
|
78
|
+
- git remote set-url origin "https://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git"
|
|
79
|
+
- git fetch origin main
|
|
80
|
+
- git checkout main
|
|
81
|
+
- git pull origin main
|
|
82
|
+
script:
|
|
83
|
+
- python pipeline/synthesize.py
|
|
84
|
+
- |
|
|
85
|
+
git add consolidated/ meta/
|
|
86
|
+
if git diff --cached --quiet; then
|
|
87
|
+
echo "No changes after synthesis, skipping commit."
|
|
88
|
+
else
|
|
89
|
+
git commit -m "synthesis: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
90
|
+
git push origin main
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
synthesize_scheduled:
|
|
94
|
+
extends: .synthesis_base
|
|
95
|
+
rules:
|
|
96
|
+
- if: $CI_PIPELINE_SOURCE == "schedule"
|
|
97
|
+
|
|
98
|
+
synthesize_manual:
|
|
99
|
+
extends: .synthesis_base
|
|
100
|
+
rules:
|
|
101
|
+
- if: $CI_PIPELINE_SOURCE == "web"
|
|
102
|
+
|
|
103
|
+
synthesize_trigger:
|
|
104
|
+
extends: .synthesis_base
|
|
105
|
+
rules:
|
|
106
|
+
- if: $CI_PIPELINE_SOURCE == "trigger"
|
|
107
|
+
|
|
108
|
+
synthesize_on_push:
|
|
109
|
+
extends: .synthesis_base
|
|
110
|
+
rules:
|
|
111
|
+
- if: $CI_PIPELINE_SOURCE == "push"
|
|
112
|
+
changes:
|
|
113
|
+
- machines/**/*
|
clsync-1.0.1/.pip-cache/http-v2/0/3/5/9/5/03595f024098ed084eba12d86fd2749d935b061fa35d6b1f18cc0b84
ADDED
|
Binary file
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: build
|
|
3
|
+
Version: 1.4.0
|
|
4
|
+
Summary: A simple, correct Python build frontend
|
|
5
|
+
Author-email: Filipe Laíns <lains@riseup.net>, Bernát Gábor <gaborjbernat@gmail.com>, layday <layday@protonmail.com>, Henry Schreiner <henryschreineriii@gmail.com>
|
|
6
|
+
Requires-Python: >= 3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: packaging >= 24.0
|
|
21
|
+
Requires-Dist: pyproject_hooks
|
|
22
|
+
Requires-Dist: colorama; os_name == "nt"
|
|
23
|
+
Requires-Dist: importlib-metadata >= 4.6; python_full_version < "3.10.2"
|
|
24
|
+
Requires-Dist: tomli >= 1.1.0; python_version < "3.11"
|
|
25
|
+
Requires-Dist: uv >= 0.1.18 ; extra == "uv"
|
|
26
|
+
Requires-Dist: virtualenv >= 20.11 ; extra == "virtualenv" and ( python_version < '3.10')
|
|
27
|
+
Requires-Dist: virtualenv >= 20.17 ; extra == "virtualenv" and ( python_version >= '3.10' and python_version < '3.14')
|
|
28
|
+
Requires-Dist: virtualenv >= 20.31 ; extra == "virtualenv" and ( python_version >= '3.14')
|
|
29
|
+
Project-URL: changelog, https://build.pypa.io/en/stable/changelog.html
|
|
30
|
+
Project-URL: homepage, https://build.pypa.io
|
|
31
|
+
Project-URL: issues, https://github.com/pypa/build/issues
|
|
32
|
+
Project-URL: source, https://github.com/pypa/build
|
|
33
|
+
Provides-Extra: uv
|
|
34
|
+
Provides-Extra: virtualenv
|
|
35
|
+
|
|
36
|
+
# build
|
|
37
|
+
|
|
38
|
+
[](https://results.pre-commit.ci/latest/github/pypa/build/main)
|
|
39
|
+
[](https://github.com/pypa/build/actions/workflows/test.yml)
|
|
40
|
+
[](https://codecov.io/gh/pypa/build)
|
|
41
|
+
|
|
42
|
+
[](https://build.pypa.io/en/latest/?badge=latest)
|
|
43
|
+
[](https://pypi.org/project/build/)
|
|
44
|
+
[](https://discord.gg/pypa)
|
|
45
|
+
|
|
46
|
+
A simple, correct Python build frontend.
|
|
47
|
+
|
|
48
|
+
See the [documentation](https://build.pypa.io) for more information.
|
|
49
|
+
|
|
50
|
+
### Installation
|
|
51
|
+
|
|
52
|
+
`build` can be installed via `pip` or an equivalent via:
|
|
53
|
+
|
|
54
|
+
```console
|
|
55
|
+
$ pip install build
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Usage
|
|
59
|
+
|
|
60
|
+
```console
|
|
61
|
+
$ python -m build
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This will build the package in an isolated environment, generating a
|
|
65
|
+
source-distribution and wheel in the directory `dist/`. See the
|
|
66
|
+
[documentation](https://build.pypa.io) for full information. Build is also
|
|
67
|
+
available via the command line as `pyproject-build` once installed.
|
|
68
|
+
|
|
69
|
+
### Common arguments
|
|
70
|
+
|
|
71
|
+
- `--sdist` (`-s`): Produce just an SDist
|
|
72
|
+
- `--wheel` (`-w`): Produce just a wheel
|
|
73
|
+
- `--metadata`: Produce just the metadata as JSON. Cannot be used with `--sdist`/`--wheel`.
|
|
74
|
+
- `-C<option>=<value>`: A Config-setting, the PEP 517 way of passing options to a backend. Can be passed multiple times. Matching options will make a list. Note that setuptools has very limited support.
|
|
75
|
+
- `--config-json=<value>`: An alternative way to pass in complex config settings as JSON strings. Can't be used with `-C`.
|
|
76
|
+
- `--installer`: Pick an installer for the isolated build (`pip` or `uv`).
|
|
77
|
+
- `--no-isolation` (`-n`): Disable build isolation.
|
|
78
|
+
- `--skip-dependency-check` (`-x`): Disable dependency checking when not isolated; this should be done if some requirements or version ranges are not required for non-isolated builds.
|
|
79
|
+
- `--outdir` (`-o`): The output directory (defaults to `dist`)
|
|
80
|
+
|
|
81
|
+
Some common combinations of arguments:
|
|
82
|
+
|
|
83
|
+
- `--sdist --wheel` (`-sw`): Produce and SDist and a wheel, both from the source distribution. The default (if no flag is passed) is to build an SDist and then build a wheel _from_ the SDist.
|
|
84
|
+
- `-nx`: Disable build isolation and dependency checking. Identical to pip and uv's `--no-build-isolation` flag.
|
|
85
|
+
- `--metadata | jq -r .version`: get the version in a bash-like environment.
|
|
86
|
+
|
|
87
|
+
### Integration with other tools
|
|
88
|
+
|
|
89
|
+
#### pipx
|
|
90
|
+
|
|
91
|
+
If you use [pipx][], such as in GitHub Actions, the following command will download
|
|
92
|
+
and run build in one step:
|
|
93
|
+
|
|
94
|
+
```console
|
|
95
|
+
$ pipx run build
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### uv
|
|
99
|
+
|
|
100
|
+
If you want to use [uv][] to speed up the virtual environment creation, you can
|
|
101
|
+
use `--installer=uv`. You can get a Python wheel for `uv` with the `[uv]`
|
|
102
|
+
extra. For example, using pipx like above:
|
|
103
|
+
|
|
104
|
+
```console
|
|
105
|
+
$ pipx run 'build[uv]' --installer uv
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If you already have uv, you don't need the extra. For example:
|
|
109
|
+
|
|
110
|
+
```console
|
|
111
|
+
$ uvx --from build pyproject-build --installer uv
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### cibuildwheel
|
|
115
|
+
|
|
116
|
+
If you are using [cibuildwheel][], build is integrated and the default builder in 3.0+. If you want to use `uv` as the installer, you can use:
|
|
117
|
+
|
|
118
|
+
```toml
|
|
119
|
+
[tool.cibuildwheel]
|
|
120
|
+
build-frontend = "build[uv]"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
(Be sure to pre-install uv before running cibuildwheel for this one!)
|
|
124
|
+
|
|
125
|
+
#### Conda-forge
|
|
126
|
+
|
|
127
|
+
On conda-forge, this package is called [python-build][].
|
|
128
|
+
|
|
129
|
+
### Code of Conduct
|
|
130
|
+
|
|
131
|
+
Everyone interacting in the build's codebase, issue trackers, chat rooms, and mailing lists is expected to follow
|
|
132
|
+
the [PSF Code of Conduct].
|
|
133
|
+
|
|
134
|
+
[psf code of conduct]: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
|
|
135
|
+
[pipx]: https://pipx.pypa.io
|
|
136
|
+
[uv]: https://docs.astral.sh/uv/
|
|
137
|
+
[cibuildwheel]: https://cibuildwheel.pypa.io
|
|
138
|
+
[python-build]: https://github.com/conda-forge/python-build-feedstock
|
|
139
|
+
|
clsync-1.0.1/.pip-cache/http-v2/0/e/d/3/3/0ed336d749e009fe1267c844e36c442e5b3dc645d5eb9865c545b81a
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/2/8/3/9/a/2839a1e60014c8f0cdf9453a6036b2fef7bf06342761e3d37258b029
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/3/c/e/7/7/3ce770df07ea321ab056bed31a67391a50e82aea9460d349fd057276
ADDED
|
Binary file
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: packaging
|
|
3
|
+
Version: 26.0
|
|
4
|
+
Summary: Core utilities for Python packages
|
|
5
|
+
Author-email: Donald Stufft <donald@stufft.io>
|
|
6
|
+
Requires-Python: >=3.8
|
|
7
|
+
Description-Content-Type: text/x-rst
|
|
8
|
+
License-Expression: Apache-2.0 OR BSD-2-Clause
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
License-File: LICENSE.APACHE
|
|
26
|
+
License-File: LICENSE.BSD
|
|
27
|
+
Project-URL: Documentation, https://packaging.pypa.io/
|
|
28
|
+
Project-URL: Source, https://github.com/pypa/packaging
|
|
29
|
+
|
|
30
|
+
packaging
|
|
31
|
+
=========
|
|
32
|
+
|
|
33
|
+
.. start-intro
|
|
34
|
+
|
|
35
|
+
Reusable core utilities for various Python Packaging
|
|
36
|
+
`interoperability specifications <https://packaging.python.org/specifications/>`_.
|
|
37
|
+
|
|
38
|
+
This library provides utilities that implement the interoperability
|
|
39
|
+
specifications which have clearly one correct behaviour (eg: :pep:`440`)
|
|
40
|
+
or benefit greatly from having a single shared implementation (eg: :pep:`425`).
|
|
41
|
+
|
|
42
|
+
.. end-intro
|
|
43
|
+
|
|
44
|
+
The ``packaging`` project includes the following: version handling, specifiers,
|
|
45
|
+
markers, requirements, tags, metadata, lockfiles, utilities.
|
|
46
|
+
|
|
47
|
+
Documentation
|
|
48
|
+
-------------
|
|
49
|
+
|
|
50
|
+
The `documentation`_ provides information and the API for the following:
|
|
51
|
+
|
|
52
|
+
- Version Handling
|
|
53
|
+
- Specifiers
|
|
54
|
+
- Markers
|
|
55
|
+
- Requirements
|
|
56
|
+
- Tags
|
|
57
|
+
- Metadata
|
|
58
|
+
- Lockfiles
|
|
59
|
+
- Utilities
|
|
60
|
+
|
|
61
|
+
Installation
|
|
62
|
+
------------
|
|
63
|
+
|
|
64
|
+
Use ``pip`` to install these utilities::
|
|
65
|
+
|
|
66
|
+
pip install packaging
|
|
67
|
+
|
|
68
|
+
The ``packaging`` library uses calendar-based versioning (``YY.N``).
|
|
69
|
+
|
|
70
|
+
Discussion
|
|
71
|
+
----------
|
|
72
|
+
|
|
73
|
+
If you run into bugs, you can file them in our `issue tracker`_.
|
|
74
|
+
|
|
75
|
+
You can also join ``#pypa`` on Freenode to ask questions or get involved.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
.. _`documentation`: https://packaging.pypa.io/
|
|
79
|
+
.. _`issue tracker`: https://github.com/pypa/packaging/issues
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
Code of Conduct
|
|
83
|
+
---------------
|
|
84
|
+
|
|
85
|
+
Everyone interacting in the packaging project's codebases, issue trackers, chat
|
|
86
|
+
rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
|
|
87
|
+
|
|
88
|
+
.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
|
|
89
|
+
|
|
90
|
+
Contributing
|
|
91
|
+
------------
|
|
92
|
+
|
|
93
|
+
The ``CONTRIBUTING.rst`` file outlines how to contribute to this project as
|
|
94
|
+
well as how to report a potential security issue. The documentation for this
|
|
95
|
+
project also covers information about `project development`_ and `security`_.
|
|
96
|
+
|
|
97
|
+
.. _`project development`: https://packaging.pypa.io/en/latest/development/
|
|
98
|
+
.. _`security`: https://packaging.pypa.io/en/latest/security/
|
|
99
|
+
|
|
100
|
+
Project History
|
|
101
|
+
---------------
|
|
102
|
+
|
|
103
|
+
Please review the ``CHANGELOG.rst`` file or the `Changelog documentation`_ for
|
|
104
|
+
recent changes and project history.
|
|
105
|
+
|
|
106
|
+
.. _`Changelog documentation`: https://packaging.pypa.io/en/latest/changelog/
|
|
107
|
+
|
clsync-1.0.1/.pip-cache/http-v2/4/4/e/5/b/44e5b11a6caa92636d8ccfe658d420ba4ed8f67f7f4e835b214255aa
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/6/2/e/2/c/62e2caaadb9fd2d0a88b65a7d2043b2c343936491ef44dc753aa91e0
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/6/a/0/8/8/6a088fc192b69f4692b96903e0d1df2f92839b402221a47a2ca3b5be
ADDED
|
Binary file
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: trove-classifiers
|
|
3
|
+
Version: 2026.1.14.14
|
|
4
|
+
Summary: Canonical source for classifiers on PyPI (pypi.org).
|
|
5
|
+
Home-page: https://github.com/pypa/trove-classifiers
|
|
6
|
+
Author: The PyPI Admins
|
|
7
|
+
Author-email: admin@pypi.org
|
|
8
|
+
Keywords: classifiers
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Typing :: Typed
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Dynamic: author
|
|
17
|
+
Dynamic: author-email
|
|
18
|
+
Dynamic: classifier
|
|
19
|
+
Dynamic: description
|
|
20
|
+
Dynamic: description-content-type
|
|
21
|
+
Dynamic: home-page
|
|
22
|
+
Dynamic: keywords
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
Dynamic: summary
|
|
25
|
+
|
|
26
|
+
Canonical source for [classifiers][1] on [PyPI][2].
|
|
27
|
+
|
|
28
|
+
Classifiers [categorize projects][3] per [PEP 301][4]. Use this package to
|
|
29
|
+
validate classifiers in packages for PyPI upload or download.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
To install [from PyPI][5]:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
$ pip install trove-classifiers
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
This package can be invoked as a module to print a list of classifiers:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
$ python -m trove_classifiers | grep -Ei pyramid
|
|
43
|
+
Framework :: Pyramid
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
In addition, this package's API is two importable objects:
|
|
47
|
+
|
|
48
|
+
### Classifiers (`trove_classifiers.classifiers`)
|
|
49
|
+
A `set` containing classifiers (as strings). Useful for determining membership.
|
|
50
|
+
|
|
51
|
+
Example - determine if a classifier is valid:
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
>>> from trove_classifiers import classifiers
|
|
55
|
+
>>> 'License :: OSI Approved' in classifiers
|
|
56
|
+
True
|
|
57
|
+
>>> 'Fuzzy :: Wuzzy :: Was :: A :: Bear' in classifiers
|
|
58
|
+
False
|
|
59
|
+
>>>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Deprecated classifiers (`trove_classifiers.deprecated_classifiers`)
|
|
63
|
+
A `dict`, mapping a deprecated classifier (string) to a list of classifiers
|
|
64
|
+
which replaces it (strings).
|
|
65
|
+
|
|
66
|
+
Example - determine if a classifier is deprecated:
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
>>> from trove_classifiers import deprecated_classifiers
|
|
70
|
+
>>> 'License :: OSI Approved' in deprecated_classifiers
|
|
71
|
+
False
|
|
72
|
+
>>> 'Natural Language :: Ukranian' in deprecated_classifiers
|
|
73
|
+
True
|
|
74
|
+
>>> deprecated_classifiers["Natural Language :: Ukranian"]
|
|
75
|
+
['Natural Language :: Ukrainian']
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
[1]: https://pypi.org/classifiers/
|
|
79
|
+
[2]: https://pypi.org
|
|
80
|
+
[3]: https://packaging.python.org/specifications/core-metadata/#classifier-multiple-use
|
|
81
|
+
[4]: https://www.python.org/dev/peps/pep-0301/
|
|
82
|
+
[5]: https://pypi.org/project/trove-classifiers/
|
clsync-1.0.1/.pip-cache/http-v2/8/c/5/4/2/8c54213ac80b2536d9dbc88d24229468300e07d0d4883935e180e4d8
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/9/2/8/c/7/928c755db48c17282ed7a16aa7cbf0ae7aa370d2e20d939a3292aa75
ADDED
|
Binary file
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hatchling
|
|
3
|
+
Version: 1.29.0
|
|
4
|
+
Summary: Modern, extensible Python build backend
|
|
5
|
+
Project-URL: Homepage, https://hatch.pypa.io/latest/
|
|
6
|
+
Project-URL: Sponsor, https://github.com/sponsors/ofek
|
|
7
|
+
Project-URL: History, https://hatch.pypa.io/dev/history/hatchling/
|
|
8
|
+
Project-URL: Tracker, https://github.com/pypa/hatch/issues
|
|
9
|
+
Project-URL: Source, https://github.com/pypa/hatch/tree/master/backend
|
|
10
|
+
Author-email: Ofek Lev <oss@ofek.dev>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE.txt
|
|
13
|
+
Keywords: build,hatch,packaging
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Natural Language :: English
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
24
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Requires-Python: >=3.10
|
|
28
|
+
Requires-Dist: packaging>=24.2
|
|
29
|
+
Requires-Dist: pathspec>=0.10.1
|
|
30
|
+
Requires-Dist: pluggy>=1.0.0
|
|
31
|
+
Requires-Dist: tomli>=1.2.2; python_version < '3.11'
|
|
32
|
+
Requires-Dist: trove-classifiers
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
35
|
+
# Hatchling
|
|
36
|
+
|
|
37
|
+
<div align="center">
|
|
38
|
+
|
|
39
|
+
<img src="https://raw.githubusercontent.com/pypa/hatch/master/docs/assets/images/logo.svg" alt="Hatch logo" width="500" role="img">
|
|
40
|
+
|
|
41
|
+
| | |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| Package | [](https://pypi.org/project/hatchling/) [](https://pypi.org/project/hatchling/) [](https://pypi.org/project/hatchling/) |
|
|
44
|
+
| Meta | [](https://github.com/pypa/hatch) [](https://github.com/astral-sh/ruff) [](https://github.com/psf/black) [](https://github.com/python/mypy) [](https://spdx.org/licenses/) [](https://github.com/sponsors/ofek) |
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
-----
|
|
49
|
+
|
|
50
|
+
This is the extensible, standards compliant build backend used by [Hatch](https://github.com/pypa/hatch).
|
|
51
|
+
|
|
52
|
+
## Usage
|
|
53
|
+
|
|
54
|
+
The following snippet must be present in your project's `pyproject.toml` file in order to use Hatchling as your build backend:
|
|
55
|
+
|
|
56
|
+
```toml
|
|
57
|
+
[build-system]
|
|
58
|
+
requires = ["hatchling"]
|
|
59
|
+
build-backend = "hatchling.build"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Then a build frontend like [pip](https://github.com/pypa/pip), [build](https://github.com/pypa/build), or Hatch itself can build or install your project automatically:
|
|
63
|
+
|
|
64
|
+
```console
|
|
65
|
+
# install using pip
|
|
66
|
+
pip install /path/to/project
|
|
67
|
+
|
|
68
|
+
# build
|
|
69
|
+
python -m build /path/to/project
|
|
70
|
+
|
|
71
|
+
# build with Hatch
|
|
72
|
+
hatch build /path/to/project
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Documentation
|
|
76
|
+
|
|
77
|
+
- [Project metadata](https://hatch.pypa.io/latest/config/metadata/)
|
|
78
|
+
- [Dependencies](https://hatch.pypa.io/latest/config/dependency/)
|
|
79
|
+
- [Packaging](https://hatch.pypa.io/latest/config/build/)
|
clsync-1.0.1/.pip-cache/http-v2/9/e/a/1/5/9ea15e1a7a7a1cb9950b76e2e3c06da4d07100bc185f905f6e33e283
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/9/e/d/3/7/9ed377a761861346a483546ee4ebbe92a83f2d3a40e917849c2eb140
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/a/1/9/5/3/a19537d3cf37c122db841d6fe4cd322bc10d1a558bb00d146b85cb9a
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/a/d/3/4/4/ad344e8dcc28c72166da85db3d3c34ea7bd39531944f502465cf3a50
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/a/d/f/d/a/adfdac1a71358ae7b47b92917f8a6af8c5acecccb52b186c45372c03
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/a/f/0/b/4/af0b4f3ea11a267af8c06f6fa9fa74e1a06b91e221cbd34f379bb11c
ADDED
|
Binary file
|
|
Binary file
|
clsync-1.0.1/.pip-cache/http-v2/b/9/3/9/c/b939c4552b20c2f2a36204f6bb1d2e526af7e96070b43b1d2e2e9ae4
ADDED
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: pyproject_hooks
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Wrappers to call pyproject.toml-based build backend hooks.
|
|
5
|
+
Author-email: Thomas Kluyver <thomas@kluyver.me.uk>
|
|
6
|
+
Requires-Python: >=3.7
|
|
7
|
+
Description-Content-Type: text/x-rst
|
|
8
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
+
Project-URL: Changelog, https://pyproject-hooks.readthedocs.io/en/latest/changelog.html
|
|
12
|
+
Project-URL: Documentation, https://pyproject-hooks.readthedocs.io/
|
|
13
|
+
Project-URL: Source, https://github.com/pypa/pyproject-hooks
|
|
14
|
+
|
|
15
|
+
``pyproject-hooks``
|
|
16
|
+
===================
|
|
17
|
+
|
|
18
|
+
This is a low-level library for calling build-backends in ``pyproject.toml``-based project. It provides the basic functionality to help write tooling that generates distribution files from Python projects.
|
|
19
|
+
|
|
20
|
+
If you want a tool that builds Python packages, you'll want to use https://github.com/pypa/build instead. This is an underlying piece for `pip`, `build` and other "build frontends" use to call "build backends" within them.
|
|
21
|
+
|
|
22
|
+
You can read more in the `documentation <https://pyproject-hooks.readthedocs.io/>`_.
|
|
23
|
+
|
|
24
|
+
Note: The ``pep517`` project has been replaced by this project (low level) and the ``build`` project (high level).
|
|
25
|
+
|