pc-cleaner 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.
- pc_cleaner-1.0.0/LICENSE +21 -0
- pc_cleaner-1.0.0/PKG-INFO +74 -0
- pc_cleaner-1.0.0/README.md +52 -0
- pc_cleaner-1.0.0/pyproject.toml +37 -0
- pc_cleaner-1.0.0/setup.cfg +4 -0
- pc_cleaner-1.0.0/src/pc_cleaner/__init__.py +5 -0
- pc_cleaner-1.0.0/src/pc_cleaner/cli.py +64 -0
- pc_cleaner-1.0.0/src/pc_cleaner/core.py +1382 -0
- pc_cleaner-1.0.0/src/pc_cleaner/tui.py +121 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/PKG-INFO +74 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/SOURCES.txt +14 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/dependency_links.txt +1 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/entry_points.txt +2 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/requires.txt +1 -0
- pc_cleaner-1.0.0/src/pc_cleaner.egg-info/top_level.txt +1 -0
- pc_cleaner-1.0.0/tests/test_core.py +31 -0
pc_cleaner-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rituraj
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pc-cleaner
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Safe disk analytics, duplicate discovery, and offline reports
|
|
5
|
+
Author: Rituraj
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/rituraj/pc-cleaner
|
|
8
|
+
Project-URL: Issues, https://github.com/rituraj/pc-cleaner/issues
|
|
9
|
+
Keywords: disk,storage,analytics,duplicate-files,cleanup,tui
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Topic :: System :: Filesystems
|
|
17
|
+
Requires-Python: >=3.9
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: textual<2,>=0.80
|
|
21
|
+
Dynamic: license-file
|
|
22
|
+
|
|
23
|
+
# PC Cleaner
|
|
24
|
+
|
|
25
|
+
**PC Cleaner** is a safe, cross-platform disk analytics tool. It scans a drive or
|
|
26
|
+
folder and produces an offline HTML dashboard, JSON data, and a complete CSV
|
|
27
|
+
file inventory. It finds duplicate files and cleanup candidates, but it never
|
|
28
|
+
deletes or changes user files.
|
|
29
|
+
|
|
30
|
+
## Install
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install pc-cleaner
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Use
|
|
37
|
+
|
|
38
|
+
Launch the terminal dashboard:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pc-cleaner
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Run from scripts or CI:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pc-cleaner scan --drive D --open
|
|
48
|
+
pc-cleaner scan --path "D:\\Projects" --no-dups
|
|
49
|
+
pc-cleaner scan --path ~/Downloads --out ./reports
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The scan produces timestamped HTML, JSON, and CSV reports. The default report
|
|
53
|
+
location is your current directory; use `--out REPORTS_DIR` to choose another.
|
|
54
|
+
|
|
55
|
+
## Features
|
|
56
|
+
|
|
57
|
+
- Fast, recursive, read-only scans using `os.scandir`
|
|
58
|
+
- Self-contained offline HTML dashboard with sortable tables
|
|
59
|
+
- Full CSV file inventory and machine-readable JSON summary
|
|
60
|
+
- Largest files, folders, extensions, categories, ages, and size buckets
|
|
61
|
+
- Duplicate finder using BLAKE2b hashes after efficient size grouping
|
|
62
|
+
- Junk/cache/zero-byte/empty-folder signals
|
|
63
|
+
- Access-error handling and Windows long-path support
|
|
64
|
+
- SQLite-backed processing for very large drives
|
|
65
|
+
|
|
66
|
+
## Safety
|
|
67
|
+
|
|
68
|
+
PC Cleaner is an **analysis and recommendation** tool. It does not delete,
|
|
69
|
+
move, modify, or upload your data. Review report findings yourself before
|
|
70
|
+
performing any cleanup.
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
MIT
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# PC Cleaner
|
|
2
|
+
|
|
3
|
+
**PC Cleaner** is a safe, cross-platform disk analytics tool. It scans a drive or
|
|
4
|
+
folder and produces an offline HTML dashboard, JSON data, and a complete CSV
|
|
5
|
+
file inventory. It finds duplicate files and cleanup candidates, but it never
|
|
6
|
+
deletes or changes user files.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install pc-cleaner
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Use
|
|
15
|
+
|
|
16
|
+
Launch the terminal dashboard:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pc-cleaner
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Run from scripts or CI:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pc-cleaner scan --drive D --open
|
|
26
|
+
pc-cleaner scan --path "D:\\Projects" --no-dups
|
|
27
|
+
pc-cleaner scan --path ~/Downloads --out ./reports
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The scan produces timestamped HTML, JSON, and CSV reports. The default report
|
|
31
|
+
location is your current directory; use `--out REPORTS_DIR` to choose another.
|
|
32
|
+
|
|
33
|
+
## Features
|
|
34
|
+
|
|
35
|
+
- Fast, recursive, read-only scans using `os.scandir`
|
|
36
|
+
- Self-contained offline HTML dashboard with sortable tables
|
|
37
|
+
- Full CSV file inventory and machine-readable JSON summary
|
|
38
|
+
- Largest files, folders, extensions, categories, ages, and size buckets
|
|
39
|
+
- Duplicate finder using BLAKE2b hashes after efficient size grouping
|
|
40
|
+
- Junk/cache/zero-byte/empty-folder signals
|
|
41
|
+
- Access-error handling and Windows long-path support
|
|
42
|
+
- SQLite-backed processing for very large drives
|
|
43
|
+
|
|
44
|
+
## Safety
|
|
45
|
+
|
|
46
|
+
PC Cleaner is an **analysis and recommendation** tool. It does not delete,
|
|
47
|
+
move, modify, or upload your data. Review report findings yourself before
|
|
48
|
+
performing any cleanup.
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
MIT
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pc-cleaner"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "Safe disk analytics, duplicate discovery, and offline reports"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
13
|
+
authors = [{name = "Rituraj"}]
|
|
14
|
+
keywords = ["disk", "storage", "analytics", "duplicate-files", "cleanup", "tui"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 4 - Beta",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: End Users/Desktop",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
22
|
+
"Topic :: System :: Filesystems",
|
|
23
|
+
]
|
|
24
|
+
dependencies = ["textual>=0.80,<2"]
|
|
25
|
+
|
|
26
|
+
[project.scripts]
|
|
27
|
+
pc-cleaner = "pc_cleaner.cli:main"
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://github.com/rituraj/pc-cleaner"
|
|
31
|
+
Issues = "https://github.com/rituraj/pc-cleaner/issues"
|
|
32
|
+
|
|
33
|
+
[tool.setuptools]
|
|
34
|
+
package-dir = {"" = "src"}
|
|
35
|
+
|
|
36
|
+
[tool.setuptools.packages.find]
|
|
37
|
+
where = ["src"]
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""Public command line entry point for :mod:`pc_cleaner`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
from . import __version__
|
|
8
|
+
from . import core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
USAGE = """PC Cleaner - safe disk analyzer and cleanup advisor
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
pc-cleaner Open the interactive terminal UI
|
|
15
|
+
pc-cleaner tui Open the interactive terminal UI
|
|
16
|
+
pc-cleaner scan [SCAN OPTIONS] Run a scan and write reports
|
|
17
|
+
pc-cleaner report --from-db DB Regenerate reports from a saved scan DB
|
|
18
|
+
|
|
19
|
+
Examples:
|
|
20
|
+
pc-cleaner
|
|
21
|
+
pc-cleaner scan --drive D --open
|
|
22
|
+
pc-cleaner scan --path "D:\\Projects" --no-dups
|
|
23
|
+
pc-cleaner report --from-db .scan_tmp_20261008_055421.db
|
|
24
|
+
|
|
25
|
+
Safety: PC Cleaner is read-only. It finds reclaimable data but never deletes it.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _scan_help() -> int:
|
|
30
|
+
core.build_argparser().print_help()
|
|
31
|
+
return 0
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def main(argv: list[str] | None = None) -> int:
|
|
35
|
+
args = list(sys.argv[1:] if argv is None else argv)
|
|
36
|
+
if not args or args[0] in {"tui", "ui"}:
|
|
37
|
+
from .tui import run_tui
|
|
38
|
+
return run_tui(args[1:])
|
|
39
|
+
if args[0] in {"-h", "--help", "help"}:
|
|
40
|
+
print(USAGE)
|
|
41
|
+
return 0
|
|
42
|
+
if args[0] in {"-V", "--version"}:
|
|
43
|
+
print("pc-cleaner %s" % __version__)
|
|
44
|
+
return 0
|
|
45
|
+
if args[0] == "scan":
|
|
46
|
+
if len(args) > 1 and args[1] in {"-h", "--help"}:
|
|
47
|
+
return _scan_help()
|
|
48
|
+
return core.main(args[1:])
|
|
49
|
+
if args[0] == "report":
|
|
50
|
+
if len(args) > 1 and args[1] in {"-h", "--help"}:
|
|
51
|
+
return _scan_help()
|
|
52
|
+
return core.main(args[1:])
|
|
53
|
+
|
|
54
|
+
# Preserve convenience for existing users: `pc-cleaner --drive D` works.
|
|
55
|
+
if args[0].startswith("-"):
|
|
56
|
+
return core.main(args)
|
|
57
|
+
|
|
58
|
+
print("Unknown command: %s\n" % args[0], file=sys.stderr)
|
|
59
|
+
print(USAGE, file=sys.stderr)
|
|
60
|
+
return 2
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
raise SystemExit(main())
|