TidyFiles is a user-friendly, lightweight CLI tool designed to bring order to your Downloads (or any other) folder! It intelligently organizes files by type and keep logs of all the sorting magic.
Project description
TidyFiles
TidyFiles is a user-friendly, lightweight CLI tool designed to bring order to your Downloads (or any other) folder! It intelligently organizes files by type and keeps logs of all the sorting magic.
🌟 Features
- Smart Organization: Automatically categorizes files by type (images, documents, videos, etc.)
- Dry Run Mode: Preview changes with
--dry-runbefore actual organization - Flexible Configuration: Customize source and destination directories
- Detailed Logging: Track all operations with console and file logging
- Rich CLI Interface: Beautiful command-line interface with progress indicators
- Safe Operations: Maintains file integrity during organization
🔧 Tech Stack
- Python >=3.10: Modern Python features for robust performance
- Typer: For elegant CLI interface
- Rich: Beautiful terminal formatting and output
- Loguru: Advanced logging capabilities
- Ruff: For code formatting and linting
- Pre-commit: Automated code quality checks
- PyTest: Comprehensive test coverage
🚀 Getting Started
Installation
pip install tidyfiles
Basic Usage
tidyfiles --source-dir /path/to/your/downloads
Advanced Usage
# Dry run to preview changes
tidyfiles --source-dir ~/Downloads --dry-run
# Specify custom destination
tidyfiles --source-dir ~/Downloads --destination-dir ~/Organized
# Custom logging
tidyfiles --source-dir ~/Downloads --log-console-level DEBUG
📁 Example Organization
Before:
Downloads/
├── photo.jpg
├── document.pdf
├── video.mp4
After:
Downloads/
├── images/
│ └── photo.jpg
├── documents/
│ └── document.pdf
├── videos/
│ └── video.mp4
📝 Logging
TidyFiles generates detailed logs in:
- Console output (configurable level)
- Log file (
~/.tidyfiles/tidyfiles.log)
🛠️ Contributing
We welcome contributions! Check out our Contributing Guidelines.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
🎯 Roadmap
Coming Soon (v0.7.0)
-
--langflag for multi-language support -
--undooperation to reverse recent changes - Custom file category definitions
- Subdirectory organization support
Future Plans (v0.8.0+)
- File deduplication detection
- Bulk rename operations
- File content-based organization
- GUI interface option
- Integration with cloud storage services
- Schedule automated organization
- File compression options
- Organization templates/presets
- Statistics and reports generation
📊 Stats
- First Release: March 2025
- Latest Version:
- Python Compatibility:
- Platform Support: Windows, macOS, Linux
Created with ❤️ by Serhii Ryzhaiev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tidyfiles-0.6.3.tar.gz.
File metadata
- Download URL: tidyfiles-0.6.3.tar.gz
- Upload date:
- Size: 61.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc6a9a861d9b8449e0525eb9fe39d9fb9a4c518151db6814b96b0db40af493f9
|
|
| MD5 |
6bf911bac2742d397597a7632b6bf29a
|
|
| BLAKE2b-256 |
4765bc49ac895231d67b1222de35626e704aba91b99d010abde5efb5003898c0
|
Provenance
The following attestation bundles were made for tidyfiles-0.6.3.tar.gz:
Publisher:
release.yaml on RYZHAIEV-SERHII/TidyFiles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tidyfiles-0.6.3.tar.gz -
Subject digest:
bc6a9a861d9b8449e0525eb9fe39d9fb9a4c518151db6814b96b0db40af493f9 - Sigstore transparency entry: 186604644
- Sigstore integration time:
-
Permalink:
RYZHAIEV-SERHII/TidyFiles@8d313b8778a791f1e05f8280acd908b77d0170d8 -
Branch / Tag:
refs/tags/0.6.3 - Owner: https://github.com/RYZHAIEV-SERHII
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8d313b8778a791f1e05f8280acd908b77d0170d8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tidyfiles-0.6.3-py3-none-any.whl.
File metadata
- Download URL: tidyfiles-0.6.3-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b37f26bfc71f1e38c24ded422c4b0d3ef4c0902c24f169cc2e17da092996136c
|
|
| MD5 |
4085a318608b538fbb6c27d00843ce31
|
|
| BLAKE2b-256 |
0e824cd49b8d12699aab50d75a5dc66d8d1485a553c5c6087aed491cbaf199ac
|
Provenance
The following attestation bundles were made for tidyfiles-0.6.3-py3-none-any.whl:
Publisher:
release.yaml on RYZHAIEV-SERHII/TidyFiles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tidyfiles-0.6.3-py3-none-any.whl -
Subject digest:
b37f26bfc71f1e38c24ded422c4b0d3ef4c0902c24f169cc2e17da092996136c - Sigstore transparency entry: 186604647
- Sigstore integration time:
-
Permalink:
RYZHAIEV-SERHII/TidyFiles@8d313b8778a791f1e05f8280acd908b77d0170d8 -
Branch / Tag:
refs/tags/0.6.3 - Owner: https://github.com/RYZHAIEV-SERHII
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@8d313b8778a791f1e05f8280acd908b77d0170d8 -
Trigger Event:
push
-
Statement type: