czk-tool 1.0.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.
- czk_tool-1.0.0/PKG-INFO +71 -0
- czk_tool-1.0.0/README.md +63 -0
- czk_tool-1.0.0/pyproject.toml +27 -0
- czk_tool-1.0.0/setup.cfg +4 -0
- czk_tool-1.0.0/src/czk_tool/__init__.py +2 -0
- czk_tool-1.0.0/src/czk_tool/__main__.py +4 -0
- czk_tool-1.0.0/src/czk_tool/cli.py +848 -0
- czk_tool-1.0.0/src/czk_tool/counting.py +74 -0
- czk_tool-1.0.0/src/czk_tool/czkawka.py +132 -0
- czk_tool-1.0.0/src/czk_tool/duckdb_shell.py +437 -0
- czk_tool-1.0.0/src/czk_tool/rendering.py +371 -0
- czk_tool-1.0.0/src/czk_tool/report.py +504 -0
- czk_tool-1.0.0/src/czk_tool/viz.py +750 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/PKG-INFO +71 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/SOURCES.txt +25 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/dependency_links.txt +1 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/entry_points.txt +2 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/requires.txt +1 -0
- czk_tool-1.0.0/src/czk_tool.egg-info/top_level.txt +1 -0
- czk_tool-1.0.0/tests/test_cli_args.py +265 -0
- czk_tool-1.0.0/tests/test_csv_output.py +122 -0
- czk_tool-1.0.0/tests/test_czkawka_command.py +59 -0
- czk_tool-1.0.0/tests/test_duckdb_shell.py +191 -0
- czk_tool-1.0.0/tests/test_privacy_guard.py +66 -0
- czk_tool-1.0.0/tests/test_rendering.py +206 -0
- czk_tool-1.0.0/tests/test_report_parsing.py +126 -0
- czk_tool-1.0.0/tests/test_viz.py +342 -0
czk_tool-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: czk-tool
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: CLI wrapper around czkawka_cli for duplicate media workflows
|
|
5
|
+
Requires-Python: >=3.14
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: rich>=13.7.0
|
|
8
|
+
|
|
9
|
+
# czk
|
|
10
|
+
|
|
11
|
+
A CLI wrapper around [`czkawka_cli`](https://github.com/qarmin/czkawka) focused on usability and easier analysis of duplicate images and videos.
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- Dry-run and live deletion modes with colorized, grouped terminal output
|
|
16
|
+
- CSV and JSON reports per run
|
|
17
|
+
- Interactive SQL analysis via DuckDB
|
|
18
|
+
- Self-contained HTML visual report with inline image/video previews, search, and pagination
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- macOS or Linux
|
|
23
|
+
- [`czkawka_cli`](https://github.com/qarmin/czkawka) — duplicate detection engine
|
|
24
|
+
- [`duckdb`](https://duckdb.org/) CLI — required for `czk analyze`
|
|
25
|
+
- Python + [`uv`](https://github.com/astral-sh/uv)
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uv tool install --editable .
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
czk test <directory> # Dry run — scan for duplicates, no deletion
|
|
37
|
+
czk execute <directory> # Delete duplicates (AEB strategy)
|
|
38
|
+
czk analyze <directory> # Interactive DuckDB SQL session over scan results
|
|
39
|
+
czk viz <directory> # Generate a self-contained HTML visual report
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`czk check` is an alias for `czk test`; `czk analyse` is an alias for `czk analyze`.
|
|
43
|
+
|
|
44
|
+
## Options
|
|
45
|
+
|
|
46
|
+
| Flag | Description |
|
|
47
|
+
|---|---|
|
|
48
|
+
| `--media {both,images,videos}` | Media type to scan (default: `both`) |
|
|
49
|
+
| `-s, --similarity-preset` | Image similarity preset: `Original`, `VeryHigh`, `High`, `Medium`, `Small`, `VerySmall`, `Minimal` (default: `High`) |
|
|
50
|
+
| `-c, --hash-size {8,16,32,64}` | Perceptual hash size for images (default: `32`) |
|
|
51
|
+
| `-g, --hash-alg` | Hash algorithm for images: `Mean`, `Gradient`, `Blockhash`, `VertGradient`, `DoubleGradient`, `Median` (default: `Gradient`) |
|
|
52
|
+
| `-z, --image-filter` | Resize filter for images: `Lanczos3`, `Nearest`, `Triangle`, `Faussian`, `Catmullrom` (default: `Nearest`) |
|
|
53
|
+
| `-t, --tolerance 0..20` | Similarity tolerance for videos (default: `10`) |
|
|
54
|
+
| `--top N` | Limit duplicate groups in previews (default: `50`) |
|
|
55
|
+
| `--all` | Show all duplicate groups, overrides `--top` |
|
|
56
|
+
| `--out-dir <path>` | Output directory (default: `<system-temp>/czk-reports`) |
|
|
57
|
+
| `--no-color` | Disable colored output |
|
|
58
|
+
|
|
59
|
+
## Output
|
|
60
|
+
|
|
61
|
+
Each run writes timestamped artifacts to the output directory:
|
|
62
|
+
|
|
63
|
+
- `<base>-<media>-<YYYYMMDD-HHMMSS>.json`
|
|
64
|
+
- `<base>-<media>-<YYYYMMDD-HHMMSS>.csv`
|
|
65
|
+
- `<base>-viz-<YYYYMMDD-HHMMSS>.html` (`czk viz` only)
|
|
66
|
+
|
|
67
|
+
CSV columns: `index`, `file_to_keep`, `files_to_remove`, `count`
|
|
68
|
+
|
|
69
|
+
## Disclaimer
|
|
70
|
+
|
|
71
|
+
Parts of this project were assisted by AI tooling. Review all commands carefully before running, especially deletion workflows. This software is provided "as is" without warranties of any kind. The authors are not liable for any data loss or other damages resulting from use.
|
czk_tool-1.0.0/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# czk
|
|
2
|
+
|
|
3
|
+
A CLI wrapper around [`czkawka_cli`](https://github.com/qarmin/czkawka) focused on usability and easier analysis of duplicate images and videos.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Dry-run and live deletion modes with colorized, grouped terminal output
|
|
8
|
+
- CSV and JSON reports per run
|
|
9
|
+
- Interactive SQL analysis via DuckDB
|
|
10
|
+
- Self-contained HTML visual report with inline image/video previews, search, and pagination
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- macOS or Linux
|
|
15
|
+
- [`czkawka_cli`](https://github.com/qarmin/czkawka) — duplicate detection engine
|
|
16
|
+
- [`duckdb`](https://duckdb.org/) CLI — required for `czk analyze`
|
|
17
|
+
- Python + [`uv`](https://github.com/astral-sh/uv)
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv tool install --editable .
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
czk test <directory> # Dry run — scan for duplicates, no deletion
|
|
29
|
+
czk execute <directory> # Delete duplicates (AEB strategy)
|
|
30
|
+
czk analyze <directory> # Interactive DuckDB SQL session over scan results
|
|
31
|
+
czk viz <directory> # Generate a self-contained HTML visual report
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`czk check` is an alias for `czk test`; `czk analyse` is an alias for `czk analyze`.
|
|
35
|
+
|
|
36
|
+
## Options
|
|
37
|
+
|
|
38
|
+
| Flag | Description |
|
|
39
|
+
|---|---|
|
|
40
|
+
| `--media {both,images,videos}` | Media type to scan (default: `both`) |
|
|
41
|
+
| `-s, --similarity-preset` | Image similarity preset: `Original`, `VeryHigh`, `High`, `Medium`, `Small`, `VerySmall`, `Minimal` (default: `High`) |
|
|
42
|
+
| `-c, --hash-size {8,16,32,64}` | Perceptual hash size for images (default: `32`) |
|
|
43
|
+
| `-g, --hash-alg` | Hash algorithm for images: `Mean`, `Gradient`, `Blockhash`, `VertGradient`, `DoubleGradient`, `Median` (default: `Gradient`) |
|
|
44
|
+
| `-z, --image-filter` | Resize filter for images: `Lanczos3`, `Nearest`, `Triangle`, `Faussian`, `Catmullrom` (default: `Nearest`) |
|
|
45
|
+
| `-t, --tolerance 0..20` | Similarity tolerance for videos (default: `10`) |
|
|
46
|
+
| `--top N` | Limit duplicate groups in previews (default: `50`) |
|
|
47
|
+
| `--all` | Show all duplicate groups, overrides `--top` |
|
|
48
|
+
| `--out-dir <path>` | Output directory (default: `<system-temp>/czk-reports`) |
|
|
49
|
+
| `--no-color` | Disable colored output |
|
|
50
|
+
|
|
51
|
+
## Output
|
|
52
|
+
|
|
53
|
+
Each run writes timestamped artifacts to the output directory:
|
|
54
|
+
|
|
55
|
+
- `<base>-<media>-<YYYYMMDD-HHMMSS>.json`
|
|
56
|
+
- `<base>-<media>-<YYYYMMDD-HHMMSS>.csv`
|
|
57
|
+
- `<base>-viz-<YYYYMMDD-HHMMSS>.html` (`czk viz` only)
|
|
58
|
+
|
|
59
|
+
CSV columns: `index`, `file_to_keep`, `files_to_remove`, `count`
|
|
60
|
+
|
|
61
|
+
## Disclaimer
|
|
62
|
+
|
|
63
|
+
Parts of this project were assisted by AI tooling. Review all commands carefully before running, especially deletion workflows. This software is provided "as is" without warranties of any kind. The authors are not liable for any data loss or other damages resulting from use.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "czk-tool"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "CLI wrapper around czkawka_cli for duplicate media workflows"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.14"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"rich>=13.7.0",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.scripts]
|
|
16
|
+
czk = "czk_tool.cli:main"
|
|
17
|
+
|
|
18
|
+
[tool.setuptools]
|
|
19
|
+
package-dir = {"" = "src"}
|
|
20
|
+
|
|
21
|
+
[tool.setuptools.packages.find]
|
|
22
|
+
where = ["src"]
|
|
23
|
+
|
|
24
|
+
[dependency-groups]
|
|
25
|
+
dev = [
|
|
26
|
+
"pytest>=9.0.2",
|
|
27
|
+
]
|
czk_tool-1.0.0/setup.cfg
ADDED