pyvegh 0.4.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.4.0 → pyvegh-0.6.0}/.gitignore +2 -2
- {pyvegh-0.4.0 → pyvegh-0.6.0}/Cargo.lock +32 -32
- {pyvegh-0.4.0 → pyvegh-0.6.0}/Cargo.toml +1 -2
- pyvegh-0.4.0/README.md → pyvegh-0.6.0/PKG-INFO +88 -12
- pyvegh-0.4.0/PKG-INFO → pyvegh-0.6.0/README.md +59 -27
- pyvegh-0.6.0/pyproject.toml +44 -0
- pyvegh-0.6.0/python/vegh/__init__.py +24 -0
- pyvegh-0.6.0/python/vegh/analytics.py +621 -0
- pyvegh-0.6.0/python/vegh/cli.py +1553 -0
- {pyvegh-0.4.0 → pyvegh-0.6.0}/src/lib.rs +330 -91
- {pyvegh-0.4.0 → pyvegh-0.6.0}/tests/integration_test.sh +1 -1
- {pyvegh-0.4.0 → pyvegh-0.6.0}/tests/test_smoke.py +7 -7
- pyvegh-0.6.0/uv.lock +250 -0
- pyvegh-0.4.0/pyproject.toml +0 -28
- pyvegh-0.4.0/python/vegh/__init__.py +0 -24
- pyvegh-0.4.0/python/vegh/analytics.py +0 -292
- pyvegh-0.4.0/python/vegh/cli.py +0 -714
- {pyvegh-0.4.0 → pyvegh-0.6.0}/.github/workflows/ci.yml +0 -0
- {pyvegh-0.4.0 → pyvegh-0.6.0}/.github/workflows/release.yml +0 -0
- {pyvegh-0.4.0 → pyvegh-0.6.0}/LICENSE +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
|
]
|
|
@@ -509,9 +509,9 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
|
|
|
509
509
|
|
|
510
510
|
[[package]]
|
|
511
511
|
name = "rustix"
|
|
512
|
-
version = "1.1.
|
|
512
|
+
version = "1.1.3"
|
|
513
513
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
514
|
-
checksum = "
|
|
514
|
+
checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
|
|
515
515
|
dependencies = [
|
|
516
516
|
"bitflags",
|
|
517
517
|
"errno",
|
|
@@ -526,12 +526,6 @@ version = "1.0.22"
|
|
|
526
526
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
527
527
|
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
|
528
528
|
|
|
529
|
-
[[package]]
|
|
530
|
-
name = "ryu"
|
|
531
|
-
version = "1.0.21"
|
|
532
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
533
|
-
checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea"
|
|
534
|
-
|
|
535
529
|
[[package]]
|
|
536
530
|
name = "same-file"
|
|
537
531
|
version = "1.0.6"
|
|
@@ -573,15 +567,15 @@ dependencies = [
|
|
|
573
567
|
|
|
574
568
|
[[package]]
|
|
575
569
|
name = "serde_json"
|
|
576
|
-
version = "1.0.
|
|
570
|
+
version = "1.0.149"
|
|
577
571
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
578
|
-
checksum = "
|
|
572
|
+
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
|
579
573
|
dependencies = [
|
|
580
574
|
"itoa",
|
|
581
575
|
"memchr",
|
|
582
|
-
"ryu",
|
|
583
576
|
"serde",
|
|
584
577
|
"serde_core",
|
|
578
|
+
"zmij",
|
|
585
579
|
]
|
|
586
580
|
|
|
587
581
|
[[package]]
|
|
@@ -592,9 +586,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
|
592
586
|
|
|
593
587
|
[[package]]
|
|
594
588
|
name = "syn"
|
|
595
|
-
version = "2.0.
|
|
589
|
+
version = "2.0.114"
|
|
596
590
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
597
|
-
checksum = "
|
|
591
|
+
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
|
|
598
592
|
dependencies = [
|
|
599
593
|
"proc-macro2",
|
|
600
594
|
"quote",
|
|
@@ -861,6 +855,12 @@ dependencies = [
|
|
|
861
855
|
"rustix",
|
|
862
856
|
]
|
|
863
857
|
|
|
858
|
+
[[package]]
|
|
859
|
+
name = "zmij"
|
|
860
|
+
version = "1.0.12"
|
|
861
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
862
|
+
checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
|
|
863
|
+
|
|
864
864
|
[[package]]
|
|
865
865
|
name = "zstd"
|
|
866
866
|
version = "0.13.3"
|
|
@@ -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
|
|
|
@@ -41,7 +70,13 @@ Set up your default server URL and Auth Token so you don't have to type them eve
|
|
|
41
70
|
```bash
|
|
42
71
|
vegh config
|
|
43
72
|
# Or one-liner:
|
|
44
|
-
vegh config --url https://api.teaserverse.online/test --auth YOUR_TOKEN
|
|
73
|
+
vegh config send --url https://api.teaserverse.online/test --auth YOUR_TOKEN
|
|
74
|
+
|
|
75
|
+
# List current configuration
|
|
76
|
+
vegh config list
|
|
77
|
+
|
|
78
|
+
# Reset configuration to defaults
|
|
79
|
+
vegh config reset
|
|
45
80
|
```
|
|
46
81
|
|
|
47
82
|
### 2\. Create Snapshot
|
|
@@ -56,15 +91,49 @@ vegh snap ./my-project --output backup.vegh
|
|
|
56
91
|
vegh snap ./my-project --dry-run
|
|
57
92
|
```
|
|
58
93
|
|
|
59
|
-
### 3\.
|
|
94
|
+
### 3\. LOC
|
|
60
95
|
|
|
61
|
-
View the
|
|
96
|
+
View the Analytics Dashboard to break down your project by language and lines of code.
|
|
62
97
|
|
|
63
98
|
```bash
|
|
64
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
|
|
65
104
|
```
|
|
66
105
|
|
|
67
|
-
### 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
|
|
68
137
|
|
|
69
138
|
Check file integrity (Blake3) and view embedded metadata.
|
|
70
139
|
|
|
@@ -72,7 +141,7 @@ Check file integrity (Blake3) and view embedded metadata.
|
|
|
72
141
|
vegh check backup.vegh
|
|
73
142
|
```
|
|
74
143
|
|
|
75
|
-
###
|
|
144
|
+
### 7\. Restore
|
|
76
145
|
|
|
77
146
|
Restore the snapshot to a target directory. Supports **Partial Restore**.
|
|
78
147
|
|
|
@@ -82,9 +151,12 @@ vegh restore backup.vegh ./restored-folder
|
|
|
82
151
|
|
|
83
152
|
# Partial restore (Specific files or folders)
|
|
84
153
|
vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
|
|
154
|
+
|
|
155
|
+
# Flatten directory structure (Extract files directly to output dir)
|
|
156
|
+
vegh restore backup.vegh ./restored-folder --flatten
|
|
85
157
|
```
|
|
86
158
|
|
|
87
|
-
###
|
|
159
|
+
### 8\. Cat & Diff
|
|
88
160
|
|
|
89
161
|
Inspect content without extracting.
|
|
90
162
|
|
|
@@ -92,20 +164,23 @@ Inspect content without extracting.
|
|
|
92
164
|
# View a file's content inside the snapshot
|
|
93
165
|
vegh cat backup.vegh src/main.rs
|
|
94
166
|
|
|
167
|
+
# View raw content (Useful for piping binary files)
|
|
168
|
+
vegh cat backup.vegh image.png --raw > extracted_image.png
|
|
169
|
+
|
|
95
170
|
# Compare snapshot with a directory
|
|
96
171
|
vegh diff backup.vegh ./current-project
|
|
97
172
|
```
|
|
98
173
|
|
|
99
|
-
###
|
|
174
|
+
### 9\. Send
|
|
100
175
|
|
|
101
|
-
Send the snapshot to a remote server.
|
|
176
|
+
Send the snapshot to a remote server. Supports **Chunked Uploads** for reliability.
|
|
102
177
|
|
|
103
178
|
```bash
|
|
104
179
|
# Auto-detects if chunking is needed, or force it:
|
|
105
180
|
vegh send backup.vegh --force-chunk
|
|
106
181
|
```
|
|
107
182
|
|
|
108
|
-
###
|
|
183
|
+
### 10\. Doctor
|
|
109
184
|
|
|
110
185
|
Check your environment and installation health.
|
|
111
186
|
|
|
@@ -113,7 +188,7 @@ Check your environment and installation health.
|
|
|
113
188
|
vegh doctor
|
|
114
189
|
```
|
|
115
190
|
|
|
116
|
-
###
|
|
191
|
+
### 11\. Hooks example
|
|
117
192
|
|
|
118
193
|
Create a `.veghhooks.json` in your workspace.
|
|
119
194
|
|
|
@@ -163,3 +238,4 @@ restore_snap("backup.vegh", "dest_folder")
|
|
|
163
238
|
## License
|
|
164
239
|
|
|
165
240
|
This project is under the **MIT License**.
|
|
241
|
+
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: pyvegh
|
|
3
|
-
Version: 0.4.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
|
|
|
@@ -55,7 +42,13 @@ Set up your default server URL and Auth Token so you don't have to type them eve
|
|
|
55
42
|
```bash
|
|
56
43
|
vegh config
|
|
57
44
|
# Or one-liner:
|
|
58
|
-
vegh config --url https://api.teaserverse.online/test --auth YOUR_TOKEN
|
|
45
|
+
vegh config send --url https://api.teaserverse.online/test --auth YOUR_TOKEN
|
|
46
|
+
|
|
47
|
+
# List current configuration
|
|
48
|
+
vegh config list
|
|
49
|
+
|
|
50
|
+
# Reset configuration to defaults
|
|
51
|
+
vegh config reset
|
|
59
52
|
```
|
|
60
53
|
|
|
61
54
|
### 2\. Create Snapshot
|
|
@@ -70,15 +63,49 @@ vegh snap ./my-project --output backup.vegh
|
|
|
70
63
|
vegh snap ./my-project --dry-run
|
|
71
64
|
```
|
|
72
65
|
|
|
73
|
-
### 3\.
|
|
66
|
+
### 3\. LOC
|
|
74
67
|
|
|
75
|
-
View the
|
|
68
|
+
View the Analytics Dashboard to break down your project by language and lines of code.
|
|
76
69
|
|
|
77
70
|
```bash
|
|
78
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
|
|
79
76
|
```
|
|
80
77
|
|
|
81
|
-
### 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
|
|
82
109
|
|
|
83
110
|
Check file integrity (Blake3) and view embedded metadata.
|
|
84
111
|
|
|
@@ -86,7 +113,7 @@ Check file integrity (Blake3) and view embedded metadata.
|
|
|
86
113
|
vegh check backup.vegh
|
|
87
114
|
```
|
|
88
115
|
|
|
89
|
-
###
|
|
116
|
+
### 7\. Restore
|
|
90
117
|
|
|
91
118
|
Restore the snapshot to a target directory. Supports **Partial Restore**.
|
|
92
119
|
|
|
@@ -96,9 +123,12 @@ vegh restore backup.vegh ./restored-folder
|
|
|
96
123
|
|
|
97
124
|
# Partial restore (Specific files or folders)
|
|
98
125
|
vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
|
|
126
|
+
|
|
127
|
+
# Flatten directory structure (Extract files directly to output dir)
|
|
128
|
+
vegh restore backup.vegh ./restored-folder --flatten
|
|
99
129
|
```
|
|
100
130
|
|
|
101
|
-
###
|
|
131
|
+
### 8\. Cat & Diff
|
|
102
132
|
|
|
103
133
|
Inspect content without extracting.
|
|
104
134
|
|
|
@@ -106,20 +136,23 @@ Inspect content without extracting.
|
|
|
106
136
|
# View a file's content inside the snapshot
|
|
107
137
|
vegh cat backup.vegh src/main.rs
|
|
108
138
|
|
|
139
|
+
# View raw content (Useful for piping binary files)
|
|
140
|
+
vegh cat backup.vegh image.png --raw > extracted_image.png
|
|
141
|
+
|
|
109
142
|
# Compare snapshot with a directory
|
|
110
143
|
vegh diff backup.vegh ./current-project
|
|
111
144
|
```
|
|
112
145
|
|
|
113
|
-
###
|
|
146
|
+
### 9\. Send
|
|
114
147
|
|
|
115
|
-
Send the snapshot to a remote server.
|
|
148
|
+
Send the snapshot to a remote server. Supports **Chunked Uploads** for reliability.
|
|
116
149
|
|
|
117
150
|
```bash
|
|
118
151
|
# Auto-detects if chunking is needed, or force it:
|
|
119
152
|
vegh send backup.vegh --force-chunk
|
|
120
153
|
```
|
|
121
154
|
|
|
122
|
-
###
|
|
155
|
+
### 10\. Doctor
|
|
123
156
|
|
|
124
157
|
Check your environment and installation health.
|
|
125
158
|
|
|
@@ -127,7 +160,7 @@ Check your environment and installation health.
|
|
|
127
160
|
vegh doctor
|
|
128
161
|
```
|
|
129
162
|
|
|
130
|
-
###
|
|
163
|
+
### 11\. Hooks example
|
|
131
164
|
|
|
132
165
|
Create a `.veghhooks.json` in your workspace.
|
|
133
166
|
|
|
@@ -177,4 +210,3 @@ restore_snap("backup.vegh", "dest_folder")
|
|
|
177
210
|
## License
|
|
178
211
|
|
|
179
212
|
This project is under the **MIT License**.
|
|
180
|
-
|
|
@@ -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
|
+
]
|