Skip to main content

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 Logo

PyPI version GitHub release (latest by date) Python 3.10-3.13 Ruff codecov Tests GitHub last commit License: MIT

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-run before 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)

  • --lang flag for multi-language support
  • --undo operation 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: PyPI version
  • Python Compatibility: Python 3.10-3.13
  • Platform Support: Windows, macOS, Linux

Created with ❤️ by Serhii Ryzhaiev

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tidyfiles-0.6.3.tar.gz (61.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tidyfiles-0.6.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for tidyfiles-0.6.3.tar.gz
Algorithm Hash digest
SHA256 bc6a9a861d9b8449e0525eb9fe39d9fb9a4c518151db6814b96b0db40af493f9
MD5 6bf911bac2742d397597a7632b6bf29a
BLAKE2b-256 4765bc49ac895231d67b1222de35626e704aba91b99d010abde5efb5003898c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tidyfiles-0.6.3.tar.gz:

Publisher: release.yaml on RYZHAIEV-SERHII/TidyFiles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tidyfiles-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b37f26bfc71f1e38c24ded422c4b0d3ef4c0902c24f169cc2e17da092996136c
MD5 4085a318608b538fbb6c27d00843ce31
BLAKE2b-256 0e824cd49b8d12699aab50d75a5dc66d8d1485a553c5c6087aed491cbaf199ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for tidyfiles-0.6.3-py3-none-any.whl:

Publisher: release.yaml on RYZHAIEV-SERHII/TidyFiles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page