pyvegh 0.5.0__tar.gz → 0.6.0__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.
- {pyvegh-0.5.0 → pyvegh-0.6.0}/.gitignore +2 -2
- {pyvegh-0.5.0 → pyvegh-0.6.0}/Cargo.lock +25 -25
- {pyvegh-0.5.0 → pyvegh-0.6.0}/Cargo.toml +1 -2
- pyvegh-0.5.0/README.md → pyvegh-0.6.0/PKG-INFO +75 -11
- pyvegh-0.5.0/PKG-INFO → pyvegh-0.6.0/README.md +46 -26
- pyvegh-0.6.0/pyproject.toml +44 -0
- pyvegh-0.6.0/python/vegh/__init__.py +24 -0
- {pyvegh-0.5.0 → pyvegh-0.6.0}/python/vegh/analytics.py +291 -92
- pyvegh-0.6.0/python/vegh/cli.py +1553 -0
- {pyvegh-0.5.0 → pyvegh-0.6.0}/src/lib.rs +322 -91
- {pyvegh-0.5.0 → pyvegh-0.6.0}/tests/test_smoke.py +7 -5
- pyvegh-0.6.0/uv.lock +250 -0
- pyvegh-0.5.0/pyproject.toml +0 -28
- pyvegh-0.5.0/python/vegh/__init__.py +0 -24
- pyvegh-0.5.0/python/vegh/cli.py +0 -959
- {pyvegh-0.5.0 → pyvegh-0.6.0}/.github/workflows/ci.yml +0 -0
- {pyvegh-0.5.0 → pyvegh-0.6.0}/.github/workflows/release.yml +0 -0
- {pyvegh-0.5.0 → pyvegh-0.6.0}/LICENSE +0 -0
- {pyvegh-0.5.0 → pyvegh-0.6.0}/tests/integration_test.sh +0 -0
|
@@ -83,9 +83,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
|
|
|
83
83
|
|
|
84
84
|
[[package]]
|
|
85
85
|
name = "cc"
|
|
86
|
-
version = "1.2.
|
|
86
|
+
version = "1.2.51"
|
|
87
87
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
88
|
-
checksum = "
|
|
88
|
+
checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203"
|
|
89
89
|
dependencies = [
|
|
90
90
|
"find-msvc-tools",
|
|
91
91
|
"jobserver",
|
|
@@ -173,9 +173,9 @@ dependencies = [
|
|
|
173
173
|
|
|
174
174
|
[[package]]
|
|
175
175
|
name = "find-msvc-tools"
|
|
176
|
-
version = "0.1.
|
|
176
|
+
version = "0.1.6"
|
|
177
177
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
178
|
-
checksum = "
|
|
178
|
+
checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff"
|
|
179
179
|
|
|
180
180
|
[[package]]
|
|
181
181
|
name = "getrandom"
|
|
@@ -265,9 +265,9 @@ dependencies = [
|
|
|
265
265
|
|
|
266
266
|
[[package]]
|
|
267
267
|
name = "itoa"
|
|
268
|
-
version = "1.0.
|
|
268
|
+
version = "1.0.17"
|
|
269
269
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
270
|
-
checksum = "
|
|
270
|
+
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
|
271
271
|
|
|
272
272
|
[[package]]
|
|
273
273
|
name = "jobserver"
|
|
@@ -291,15 +291,15 @@ dependencies = [
|
|
|
291
291
|
|
|
292
292
|
[[package]]
|
|
293
293
|
name = "libc"
|
|
294
|
-
version = "0.2.
|
|
294
|
+
version = "0.2.179"
|
|
295
295
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
296
|
-
checksum = "
|
|
296
|
+
checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f"
|
|
297
297
|
|
|
298
298
|
[[package]]
|
|
299
299
|
name = "libredox"
|
|
300
|
-
version = "0.1.
|
|
300
|
+
version = "0.1.12"
|
|
301
301
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
302
|
-
checksum = "
|
|
302
|
+
checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
|
|
303
303
|
dependencies = [
|
|
304
304
|
"bitflags",
|
|
305
305
|
"libc",
|
|
@@ -365,15 +365,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
|
|
365
365
|
|
|
366
366
|
[[package]]
|
|
367
367
|
name = "portable-atomic"
|
|
368
|
-
version = "1.
|
|
368
|
+
version = "1.13.0"
|
|
369
369
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
370
|
-
checksum = "
|
|
370
|
+
checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
|
|
371
371
|
|
|
372
372
|
[[package]]
|
|
373
373
|
name = "proc-macro2"
|
|
374
|
-
version = "1.0.
|
|
374
|
+
version = "1.0.105"
|
|
375
375
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
376
|
-
checksum = "
|
|
376
|
+
checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
|
|
377
377
|
dependencies = [
|
|
378
378
|
"unicode-ident",
|
|
379
379
|
]
|
|
@@ -441,7 +441,7 @@ dependencies = [
|
|
|
441
441
|
|
|
442
442
|
[[package]]
|
|
443
443
|
name = "pyvegh"
|
|
444
|
-
version = "0.
|
|
444
|
+
version = "0.6.0"
|
|
445
445
|
dependencies = [
|
|
446
446
|
"anyhow",
|
|
447
447
|
"blake3",
|
|
@@ -458,9 +458,9 @@ dependencies = [
|
|
|
458
458
|
|
|
459
459
|
[[package]]
|
|
460
460
|
name = "quote"
|
|
461
|
-
version = "1.0.
|
|
461
|
+
version = "1.0.43"
|
|
462
462
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
463
|
-
checksum = "
|
|
463
|
+
checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
|
|
464
464
|
dependencies = [
|
|
465
465
|
"proc-macro2",
|
|
466
466
|
]
|
|
@@ -483,9 +483,9 @@ dependencies = [
|
|
|
483
483
|
|
|
484
484
|
[[package]]
|
|
485
485
|
name = "redox_syscall"
|
|
486
|
-
version = "0.
|
|
486
|
+
version = "0.7.0"
|
|
487
487
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
488
|
-
checksum = "
|
|
488
|
+
checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
|
|
489
489
|
dependencies = [
|
|
490
490
|
"bitflags",
|
|
491
491
|
]
|
|
@@ -567,9 +567,9 @@ dependencies = [
|
|
|
567
567
|
|
|
568
568
|
[[package]]
|
|
569
569
|
name = "serde_json"
|
|
570
|
-
version = "1.0.
|
|
570
|
+
version = "1.0.149"
|
|
571
571
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
572
|
-
checksum = "
|
|
572
|
+
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
|
573
573
|
dependencies = [
|
|
574
574
|
"itoa",
|
|
575
575
|
"memchr",
|
|
@@ -586,9 +586,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
586
586
|
|
|
587
587
|
[[package]]
|
|
588
588
|
name = "syn"
|
|
589
|
-
version = "2.0.
|
|
589
|
+
version = "2.0.114"
|
|
590
590
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
591
|
-
checksum = "
|
|
591
|
+
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
|
|
592
592
|
dependencies = [
|
|
593
593
|
"proc-macro2",
|
|
594
594
|
"quote",
|
|
@@ -857,9 +857,9 @@ dependencies = [
|
|
|
857
857
|
|
|
858
858
|
[[package]]
|
|
859
859
|
name = "zmij"
|
|
860
|
-
version = "0.
|
|
860
|
+
version = "1.0.12"
|
|
861
861
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
862
|
-
checksum = "
|
|
862
|
+
checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
|
|
863
863
|
|
|
864
864
|
[[package]]
|
|
865
865
|
name = "zstd"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "pyvegh"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
authors = ["CodeTease"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -14,7 +14,6 @@ pyo3 = { version = "0.27.1", features = ["extension-module", "abi3-py38"] }
|
|
|
14
14
|
|
|
15
15
|
# Core Logic Deps
|
|
16
16
|
tar = "0.4"
|
|
17
|
-
# Kích hoạt zstdmt (multithread) cho zstd
|
|
18
17
|
zstd = { version = "0.13", features = ["zstdmt"] }
|
|
19
18
|
ignore = "0.4"
|
|
20
19
|
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyvegh
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
5
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
6
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
10
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
11
|
+
Classifier: Programming Language :: Rust
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
+
Classifier: Topic :: Utilities
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
18
|
+
Requires-Dist: typer>=0.20.0
|
|
19
|
+
Requires-Dist: rich>=14.2.0
|
|
20
|
+
Requires-Dist: shellingham>=1.5.4
|
|
21
|
+
Requires-Dist: requests>=2.32.5
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Summary: Python bindings for Vegh - The Snapshot Tool.
|
|
24
|
+
Keywords: snapshot,backup,rust,binding,loc,analytics
|
|
25
|
+
Author: CodeTease
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
28
|
+
|
|
1
29
|
# 🥬 PyVegh
|
|
2
30
|
|
|
3
31
|
**PyVegh** is the official Python binding for the Vegh snapshot engine, developed by **CodeTease**.
|
|
@@ -9,7 +37,8 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
|
|
|
9
37
|
## Features
|
|
10
38
|
|
|
11
39
|
* **Blazing Fast:** Core logic is implemented in Rust using PyO3, utilizing **Zstd Multithreading** and the next-gen **Blake3** hashing algorithm.
|
|
12
|
-
* **
|
|
40
|
+
* **AI-Ready Context:** Generate clean, token-optimized XML prompts for ChatGPT/Claude in milliseconds.
|
|
41
|
+
* **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard, no extraction required.
|
|
13
42
|
* **Dry-Run Mode:** Simulate snapshot creation to check file sizes and detect sensitive data risks before packing.
|
|
14
43
|
* **Integrity v2:** Verify data integrity at lightning speed with **Blake3** and inspect metadata (author, timestamp, tool version) without unpacking.
|
|
15
44
|
* **Smart Upload:** Built-in `send` command supporting concurrent **Chunked Uploads** for large files.
|
|
@@ -22,7 +51,7 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
|
|
|
22
51
|
Install directly from PyPI:
|
|
23
52
|
```bash
|
|
24
53
|
pip install pyvegh
|
|
25
|
-
|
|
54
|
+
```
|
|
26
55
|
|
|
27
56
|
Or build from source (requires Rust):
|
|
28
57
|
|
|
@@ -62,15 +91,49 @@ vegh snap ./my-project --output backup.vegh
|
|
|
62
91
|
vegh snap ./my-project --dry-run
|
|
63
92
|
```
|
|
64
93
|
|
|
65
|
-
### 3\.
|
|
94
|
+
### 3\. LOC
|
|
66
95
|
|
|
67
|
-
View the
|
|
96
|
+
View the Analytics Dashboard to break down your project by language and lines of code.
|
|
68
97
|
|
|
69
98
|
```bash
|
|
70
99
|
vegh loc backup.vegh
|
|
100
|
+
|
|
101
|
+
# Show Source Lines of Code (SLOC) instead of total LOC
|
|
102
|
+
# Excludes blank lines and comments
|
|
103
|
+
vegh loc backup.vegh --sloc
|
|
71
104
|
```
|
|
72
105
|
|
|
73
|
-
### 4\.
|
|
106
|
+
### 4\. Prompt
|
|
107
|
+
|
|
108
|
+
Generate a structured XML context of your codebase to feed directly into ChatGPT, Claude, or Gemini.
|
|
109
|
+
```bash
|
|
110
|
+
# Generate XML context to stdout
|
|
111
|
+
vegh prompt .
|
|
112
|
+
|
|
113
|
+
# Clean Mode (Recommended):
|
|
114
|
+
# Removes lock files (package-lock.json, Cargo.lock), logs, secrets and other unnecessary files.
|
|
115
|
+
vegh prompt . --clean
|
|
116
|
+
|
|
117
|
+
# Copy to Clipboard (One-shot):
|
|
118
|
+
vegh prompt . --clean --copy
|
|
119
|
+
|
|
120
|
+
# Save to file
|
|
121
|
+
vegh prompt . --clean --output context.xml
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 5\. Prune
|
|
125
|
+
|
|
126
|
+
Clean up old snapshots to free disk space.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# Keep only the 5 most recent snapshots in the current directory
|
|
130
|
+
vegh prune --keep 5
|
|
131
|
+
|
|
132
|
+
# Force clean without confirmation (useful for CI/CD)
|
|
133
|
+
vegh prune --keep 1 --force
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 6\. Check
|
|
74
137
|
|
|
75
138
|
Check file integrity (Blake3) and view embedded metadata.
|
|
76
139
|
|
|
@@ -78,7 +141,7 @@ Check file integrity (Blake3) and view embedded metadata.
|
|
|
78
141
|
vegh check backup.vegh
|
|
79
142
|
```
|
|
80
143
|
|
|
81
|
-
###
|
|
144
|
+
### 7\. Restore
|
|
82
145
|
|
|
83
146
|
Restore the snapshot to a target directory. Supports **Partial Restore**.
|
|
84
147
|
|
|
@@ -93,7 +156,7 @@ vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
|
|
|
93
156
|
vegh restore backup.vegh ./restored-folder --flatten
|
|
94
157
|
```
|
|
95
158
|
|
|
96
|
-
###
|
|
159
|
+
### 8\. Cat & Diff
|
|
97
160
|
|
|
98
161
|
Inspect content without extracting.
|
|
99
162
|
|
|
@@ -108,16 +171,16 @@ vegh cat backup.vegh image.png --raw > extracted_image.png
|
|
|
108
171
|
vegh diff backup.vegh ./current-project
|
|
109
172
|
```
|
|
110
173
|
|
|
111
|
-
###
|
|
174
|
+
### 9\. Send
|
|
112
175
|
|
|
113
|
-
Send the snapshot to a remote server.
|
|
176
|
+
Send the snapshot to a remote server. Supports **Chunked Uploads** for reliability.
|
|
114
177
|
|
|
115
178
|
```bash
|
|
116
179
|
# Auto-detects if chunking is needed, or force it:
|
|
117
180
|
vegh send backup.vegh --force-chunk
|
|
118
181
|
```
|
|
119
182
|
|
|
120
|
-
###
|
|
183
|
+
### 10\. Doctor
|
|
121
184
|
|
|
122
185
|
Check your environment and installation health.
|
|
123
186
|
|
|
@@ -125,7 +188,7 @@ Check your environment and installation health.
|
|
|
125
188
|
vegh doctor
|
|
126
189
|
```
|
|
127
190
|
|
|
128
|
-
###
|
|
191
|
+
### 11\. Hooks example
|
|
129
192
|
|
|
130
193
|
Create a `.veghhooks.json` in your workspace.
|
|
131
194
|
|
|
@@ -175,3 +238,4 @@ restore_snap("backup.vegh", "dest_folder")
|
|
|
175
238
|
## License
|
|
176
239
|
|
|
177
240
|
This project is under the **MIT License**.
|
|
241
|
+
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: pyvegh
|
|
3
|
-
Version: 0.5.0
|
|
4
|
-
Requires-Dist: typer>=0.20.0
|
|
5
|
-
Requires-Dist: rich>=14.2.0
|
|
6
|
-
Requires-Dist: shellingham>=1.5.4
|
|
7
|
-
Requires-Dist: requests>=2.32.5
|
|
8
|
-
License-File: LICENSE
|
|
9
|
-
Summary: Python bindings for Vegh - The Snapshot Tool.
|
|
10
|
-
Keywords: snapshot,backup,rust,binding,loc,analytics
|
|
11
|
-
Author: CodeTease
|
|
12
|
-
Requires-Python: >=3.10
|
|
13
|
-
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
14
|
-
|
|
15
1
|
# 🥬 PyVegh
|
|
16
2
|
|
|
17
3
|
**PyVegh** is the official Python binding for the Vegh snapshot engine, developed by **CodeTease**.
|
|
@@ -23,7 +9,8 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
|
|
|
23
9
|
## Features
|
|
24
10
|
|
|
25
11
|
* **Blazing Fast:** Core logic is implemented in Rust using PyO3, utilizing **Zstd Multithreading** and the next-gen **Blake3** hashing algorithm.
|
|
26
|
-
* **
|
|
12
|
+
* **AI-Ready Context:** Generate clean, token-optimized XML prompts for ChatGPT/Claude in milliseconds.
|
|
13
|
+
* **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard, no extraction required.
|
|
27
14
|
* **Dry-Run Mode:** Simulate snapshot creation to check file sizes and detect sensitive data risks before packing.
|
|
28
15
|
* **Integrity v2:** Verify data integrity at lightning speed with **Blake3** and inspect metadata (author, timestamp, tool version) without unpacking.
|
|
29
16
|
* **Smart Upload:** Built-in `send` command supporting concurrent **Chunked Uploads** for large files.
|
|
@@ -36,7 +23,7 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
|
|
|
36
23
|
Install directly from PyPI:
|
|
37
24
|
```bash
|
|
38
25
|
pip install pyvegh
|
|
39
|
-
|
|
26
|
+
```
|
|
40
27
|
|
|
41
28
|
Or build from source (requires Rust):
|
|
42
29
|
|
|
@@ -76,15 +63,49 @@ vegh snap ./my-project --output backup.vegh
|
|
|
76
63
|
vegh snap ./my-project --dry-run
|
|
77
64
|
```
|
|
78
65
|
|
|
79
|
-
### 3\.
|
|
66
|
+
### 3\. LOC
|
|
80
67
|
|
|
81
|
-
View the
|
|
68
|
+
View the Analytics Dashboard to break down your project by language and lines of code.
|
|
82
69
|
|
|
83
70
|
```bash
|
|
84
71
|
vegh loc backup.vegh
|
|
72
|
+
|
|
73
|
+
# Show Source Lines of Code (SLOC) instead of total LOC
|
|
74
|
+
# Excludes blank lines and comments
|
|
75
|
+
vegh loc backup.vegh --sloc
|
|
85
76
|
```
|
|
86
77
|
|
|
87
|
-
### 4\.
|
|
78
|
+
### 4\. Prompt
|
|
79
|
+
|
|
80
|
+
Generate a structured XML context of your codebase to feed directly into ChatGPT, Claude, or Gemini.
|
|
81
|
+
```bash
|
|
82
|
+
# Generate XML context to stdout
|
|
83
|
+
vegh prompt .
|
|
84
|
+
|
|
85
|
+
# Clean Mode (Recommended):
|
|
86
|
+
# Removes lock files (package-lock.json, Cargo.lock), logs, secrets and other unnecessary files.
|
|
87
|
+
vegh prompt . --clean
|
|
88
|
+
|
|
89
|
+
# Copy to Clipboard (One-shot):
|
|
90
|
+
vegh prompt . --clean --copy
|
|
91
|
+
|
|
92
|
+
# Save to file
|
|
93
|
+
vegh prompt . --clean --output context.xml
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 5\. Prune
|
|
97
|
+
|
|
98
|
+
Clean up old snapshots to free disk space.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Keep only the 5 most recent snapshots in the current directory
|
|
102
|
+
vegh prune --keep 5
|
|
103
|
+
|
|
104
|
+
# Force clean without confirmation (useful for CI/CD)
|
|
105
|
+
vegh prune --keep 1 --force
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 6\. Check
|
|
88
109
|
|
|
89
110
|
Check file integrity (Blake3) and view embedded metadata.
|
|
90
111
|
|
|
@@ -92,7 +113,7 @@ Check file integrity (Blake3) and view embedded metadata.
|
|
|
92
113
|
vegh check backup.vegh
|
|
93
114
|
```
|
|
94
115
|
|
|
95
|
-
###
|
|
116
|
+
### 7\. Restore
|
|
96
117
|
|
|
97
118
|
Restore the snapshot to a target directory. Supports **Partial Restore**.
|
|
98
119
|
|
|
@@ -107,7 +128,7 @@ vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
|
|
|
107
128
|
vegh restore backup.vegh ./restored-folder --flatten
|
|
108
129
|
```
|
|
109
130
|
|
|
110
|
-
###
|
|
131
|
+
### 8\. Cat & Diff
|
|
111
132
|
|
|
112
133
|
Inspect content without extracting.
|
|
113
134
|
|
|
@@ -122,16 +143,16 @@ vegh cat backup.vegh image.png --raw > extracted_image.png
|
|
|
122
143
|
vegh diff backup.vegh ./current-project
|
|
123
144
|
```
|
|
124
145
|
|
|
125
|
-
###
|
|
146
|
+
### 9\. Send
|
|
126
147
|
|
|
127
|
-
Send the snapshot to a remote server.
|
|
148
|
+
Send the snapshot to a remote server. Supports **Chunked Uploads** for reliability.
|
|
128
149
|
|
|
129
150
|
```bash
|
|
130
151
|
# Auto-detects if chunking is needed, or force it:
|
|
131
152
|
vegh send backup.vegh --force-chunk
|
|
132
153
|
```
|
|
133
154
|
|
|
134
|
-
###
|
|
155
|
+
### 10\. Doctor
|
|
135
156
|
|
|
136
157
|
Check your environment and installation health.
|
|
137
158
|
|
|
@@ -139,7 +160,7 @@ Check your environment and installation health.
|
|
|
139
160
|
vegh doctor
|
|
140
161
|
```
|
|
141
162
|
|
|
142
|
-
###
|
|
163
|
+
### 11\. Hooks example
|
|
143
164
|
|
|
144
165
|
Create a `.veghhooks.json` in your workspace.
|
|
145
166
|
|
|
@@ -189,4 +210,3 @@ restore_snap("backup.vegh", "dest_folder")
|
|
|
189
210
|
## License
|
|
190
211
|
|
|
191
212
|
This project is under the **MIT License**.
|
|
192
|
-
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["maturin>=1.0,<2.0"]
|
|
3
|
+
build-backend = "maturin"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pyvegh"
|
|
7
|
+
version = "0.6.0"
|
|
8
|
+
description = "Python bindings for Vegh - The Snapshot Tool."
|
|
9
|
+
authors = [{name = "CodeTease"}]
|
|
10
|
+
readme = "README.md"
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
|
+
keywords = ["snapshot", "backup", "rust", "binding", "loc", "analytics"]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3.10",
|
|
15
|
+
"Programming Language :: Python :: 3.11",
|
|
16
|
+
"Programming Language :: Python :: 3.12",
|
|
17
|
+
"Programming Language :: Python :: 3.13",
|
|
18
|
+
"Programming Language :: Python :: 3.14",
|
|
19
|
+
"Programming Language :: Python :: 3.15",
|
|
20
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
21
|
+
"Programming Language :: Rust",
|
|
22
|
+
"License :: OSI Approved :: MIT License",
|
|
23
|
+
"Operating System :: OS Independent",
|
|
24
|
+
"Topic :: Software Development :: Libraries",
|
|
25
|
+
"Topic :: Utilities",
|
|
26
|
+
"Intended Audience :: Developers",
|
|
27
|
+
"Development Status :: 5 - Production/Stable",
|
|
28
|
+
]
|
|
29
|
+
license = {file = "LICENSE"}
|
|
30
|
+
dependencies = [
|
|
31
|
+
"typer>=0.20.0",
|
|
32
|
+
"rich>=14.2.0",
|
|
33
|
+
"shellingham>=1.5.4",
|
|
34
|
+
"requests>=2.32.5",
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
[project.scripts]
|
|
38
|
+
vegh = "vegh.cli:app" # CLI entry point
|
|
39
|
+
pyvegh = "vegh.cli:app" # Alternate
|
|
40
|
+
|
|
41
|
+
[tool.maturin]
|
|
42
|
+
features = ["pyo3/extension-module"]
|
|
43
|
+
python-source = "python"
|
|
44
|
+
module-name = "vegh._core" # Maps Rust binary to vegh._core
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# PyVegh - The CodeTease Snapshot Tool (Python Binding)
|
|
2
|
+
# Copyright (c) 2025 CodeTease
|
|
3
|
+
|
|
4
|
+
from ._core import (
|
|
5
|
+
create_snap,
|
|
6
|
+
dry_run_snap,
|
|
7
|
+
restore_snap,
|
|
8
|
+
check_integrity,
|
|
9
|
+
get_metadata,
|
|
10
|
+
count_locs,
|
|
11
|
+
scan_locs_dir,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__version__ = "0.6.0"
|
|
15
|
+
__all__ = [
|
|
16
|
+
"create_snap",
|
|
17
|
+
"dry_run_snap",
|
|
18
|
+
"restore_snap",
|
|
19
|
+
"check_integrity",
|
|
20
|
+
"get_metadata",
|
|
21
|
+
"count_locs",
|
|
22
|
+
"scan_locs_dir",
|
|
23
|
+
"__version__",
|
|
24
|
+
]
|