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.
@@ -1,6 +1,5 @@
1
1
  # Rust
2
2
  /target
3
- Cargo.lock
4
3
  **/*.rs.bk
5
4
 
6
5
  # Python
@@ -44,4 +43,5 @@ venv.bak/
44
43
  # Internal
45
44
  *.vegh
46
45
  .veghcache/
47
- .veghhooks.json
46
+ .veghhooks.json
47
+ *.xml
@@ -83,9 +83,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
83
83
 
84
84
  [[package]]
85
85
  name = "cc"
86
- version = "1.2.50"
86
+ version = "1.2.51"
87
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
88
- checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
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.5"
176
+ version = "0.1.6"
177
177
  source = "registry+https://github.com/rust-lang/crates.io-index"
178
- checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
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.16"
268
+ version = "1.0.17"
269
269
  source = "registry+https://github.com/rust-lang/crates.io-index"
270
- checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
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.178"
294
+ version = "0.2.179"
295
295
  source = "registry+https://github.com/rust-lang/crates.io-index"
296
- checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
296
+ checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f"
297
297
 
298
298
  [[package]]
299
299
  name = "libredox"
300
- version = "0.1.11"
300
+ version = "0.1.12"
301
301
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
- checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50"
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.12.0"
368
+ version = "1.13.0"
369
369
  source = "registry+https://github.com/rust-lang/crates.io-index"
370
- checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd"
370
+ checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
371
371
 
372
372
  [[package]]
373
373
  name = "proc-macro2"
374
- version = "1.0.103"
374
+ version = "1.0.105"
375
375
  source = "registry+https://github.com/rust-lang/crates.io-index"
376
- checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
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.5.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.42"
461
+ version = "1.0.43"
462
462
  source = "registry+https://github.com/rust-lang/crates.io-index"
463
- checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
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.6.0"
486
+ version = "0.7.0"
487
487
  source = "registry+https://github.com/rust-lang/crates.io-index"
488
- checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5"
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.147"
570
+ version = "1.0.149"
571
571
  source = "registry+https://github.com/rust-lang/crates.io-index"
572
- checksum = "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4"
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.111"
589
+ version = "2.0.114"
590
590
  source = "registry+https://github.com/rust-lang/crates.io-index"
591
- checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
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.1.9"
860
+ version = "1.0.12"
861
861
  source = "registry+https://github.com/rust-lang/crates.io-index"
862
- checksum = "d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a"
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.5.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
- * **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard—no extraction required.
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\. Analytics
94
+ ### 3\. LOC
66
95
 
67
- View the CodeTease Analytics Dashboard to break down your project by language and lines of code.
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\. Inspect & Verify
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
- ### 5\. Restore
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
- ### 6\. Peek & Diff
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
- ### 7\. Send
174
+ ### 9\. Send
112
175
 
113
- Send the snapshot to a remote server. PyVegh now supports **Chunked Uploads** for reliability.
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
- ### 8\. Doctor
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
- ### 9\. Hooks example
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
- * **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard—no extraction required.
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\. Analytics
66
+ ### 3\. LOC
80
67
 
81
- View the CodeTease Analytics Dashboard to break down your project by language and lines of code.
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\. Inspect & Verify
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
- ### 5\. Restore
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
- ### 6\. Peek & Diff
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
- ### 7\. Send
146
+ ### 9\. Send
126
147
 
127
- Send the snapshot to a remote server. PyVegh now supports **Chunked Uploads** for reliability.
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
- ### 8\. Doctor
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
- ### 9\. Hooks example
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
+ ]