image-sorting-tool


Nameimage-sorting-tool JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://github.com/ThorpeJosh/image-sorting-tool
SummaryGraphical tool to sort images into a folder structure based on the date the images were taken
upload_time2024-04-09 02:06:52
maintainerNone
docs_urlNone
authorJoshua Thorpe
requires_python<3.13,>=3.8
licenseMIT
keywords image sort gui executable
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Image Sorting Tool
[![Python Checks](https://github.com/ThorpeJosh/image-sorting-tool/actions/workflows/python-test.yml/badge.svg)](https://github.com/ThorpeJosh/image-sorting-tool/actions/workflows/python-test.yml)
[![PyPI version](https://img.shields.io/pypi/v/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)
[![PyPI version](https://img.shields.io/pypi/pyversions/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)
[![PyPI license](https://img.shields.io/pypi/l/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)  
![Screenshot](https://raw.githubusercontent.com/ThorpeJosh/image-sorting-tool/main/assets/ImageSortingTool.png)
This is a simple graphical tool to sort media into a structured folder. It is designed primarily for JPG images taken with a camera/phone but will also work with MP4, PNG and GIF media files. It works by finding all files in a chosen source directory (including sub-directories) and then based on the chosen sorting options, copies them into a structured destination.

The date-taken for JPG files is extracted from the EXIF data and for all other file formats the filename is used to extract the date-taken. The files destination name will be in format 'yyyymmdd_HHMMSS'. For example '20201225_234532.jpg'
The default output structure is year and month folders. For example:

/<br>
├── 2019/<br>
&ensp;&ensp;&ensp;&ensp;├── 07/<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;├── 20190712_141507.jpg<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;└── 20190719_224521.jpg<br>
&ensp;&ensp;&ensp;&ensp;└── 10/<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;├── 20191011_180520.jpg<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;└── 20191029_204731.jpg<br>
└── 2020/<br>
&ensp;&ensp;&ensp;&ensp;├── 01/<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;└── 20200114_135312.jpg<br>
&ensp;&ensp;&ensp;&ensp;└── 03/<br>
&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;└── 20200301_110330.jpg<br>

Files that cannot have the date-taken extracted (missing EXIF or bad filenames) will be copied to a 'failed_to_sort' folder in the root directory of the above structure without any renaming. These files are commonly ones downloaded from the internet or shared through social media.

If your source folder has other files such as binaries, documents, audio recordings, or music, you can choose if you want to ignore them or copy them to an 'other_files' folder with the 'Copy all other files' option.

This tool is multi-threaded to increase performance on high speed storage such as SSDs.

No data in the source directory is altered. It only reads from the source, and then copy operations are performed during the sorting process.

## Installation
The tool can be run on Linux, MacOS and Windows provided the following requirements are met
### Requirements
* [Python](https://www.python.org/downloads/) (compatible versions are listed at top of readme)
* python3-tk (Comes with Python 3, but may need installing separately in linux)
* [pipx](https://pipx.pypa.io/) (highly recommended, but `pip` will also work)

It is recommended to install `image-sorting-tool` with `pipx` as it will manage a dedicated environment and all paths for you, eliminating risk of dependency conflicts, etc.

To install run the following
```shell
pipx install image-sorting-tool
```

## Usage
Run the following to launch
```bash
image-sorting-tool
```
## Upgrading
Run the following to upgrade
```bash
pipx upgrade image-sorting-tool
```
## Uninstalling
Run the following to remove the tool from your machine
```bash
pipx uninstall image-sorting-tool
```

## Development
To contribute, clone this repo and then install the dev dependencies with
```shell
# Installs package locally so code changes will affect behaviour
pip install -e .[dev]

#Launch with -vv flag for debug logs
image-sorting-tool -vv 
```

### Automated checks
Linting and unit tests should be checked before committing by running the following:
```bash
# Code formatting
black  image-sorting-tool

# Linting
pylint image_sorting_tool

# Unit test on current environment python version
pytest
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ThorpeJosh/image-sorting-tool",
    "name": "image-sorting-tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.8",
    "maintainer_email": null,
    "keywords": "image, sort, gui, executable",
    "author": "Joshua Thorpe",
    "author_email": "josh@thorpe.engineering",
    "download_url": "https://files.pythonhosted.org/packages/24/53/aeb6262b1f89743ec2c8dc2ceb262749979f1aedac196118f0bf92a5c50b/image-sorting-tool-1.1.2.tar.gz",
    "platform": null,
    "description": "# Image Sorting Tool\n[![Python Checks](https://github.com/ThorpeJosh/image-sorting-tool/actions/workflows/python-test.yml/badge.svg)](https://github.com/ThorpeJosh/image-sorting-tool/actions/workflows/python-test.yml)\n[![PyPI version](https://img.shields.io/pypi/v/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)\n[![PyPI version](https://img.shields.io/pypi/pyversions/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)\n[![PyPI license](https://img.shields.io/pypi/l/image-sorting-tool.svg)](https://pypi.org/project/image-sorting-tool/)  \n![Screenshot](https://raw.githubusercontent.com/ThorpeJosh/image-sorting-tool/main/assets/ImageSortingTool.png)\nThis is a simple graphical tool to sort media into a structured folder. It is designed primarily for JPG images taken with a camera/phone but will also work with MP4, PNG and GIF media files. It works by finding all files in a chosen source directory (including sub-directories) and then based on the chosen sorting options, copies them into a structured destination.\n\nThe date-taken for JPG files is extracted from the EXIF data and for all other file formats the filename is used to extract the date-taken. The files destination name will be in format 'yyyymmdd_HHMMSS'. For example '20201225_234532.jpg'\nThe default output structure is year and month folders. For example:\n\n/<br>\n\u251c\u2500\u2500 2019/<br>\n&ensp;&ensp;&ensp;&ensp;\u251c\u2500\u2500 07/<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u251c\u2500\u2500 20190712_141507.jpg<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 20190719_224521.jpg<br>\n&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 10/<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u251c\u2500\u2500 20191011_180520.jpg<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 20191029_204731.jpg<br>\n\u2514\u2500\u2500 2020/<br>\n&ensp;&ensp;&ensp;&ensp;\u251c\u2500\u2500 01/<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 20200114_135312.jpg<br>\n&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 03/<br>\n&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;\u2514\u2500\u2500 20200301_110330.jpg<br>\n\nFiles that cannot have the date-taken extracted (missing EXIF or bad filenames) will be copied to a 'failed_to_sort' folder in the root directory of the above structure without any renaming. These files are commonly ones downloaded from the internet or shared through social media.\n\nIf your source folder has other files such as binaries, documents, audio recordings, or music, you can choose if you want to ignore them or copy them to an 'other_files' folder with the 'Copy all other files' option.\n\nThis tool is multi-threaded to increase performance on high speed storage such as SSDs.\n\nNo data in the source directory is altered. It only reads from the source, and then copy operations are performed during the sorting process.\n\n## Installation\nThe tool can be run on Linux, MacOS and Windows provided the following requirements are met\n### Requirements\n* [Python](https://www.python.org/downloads/) (compatible versions are listed at top of readme)\n* python3-tk (Comes with Python 3, but may need installing separately in linux)\n* [pipx](https://pipx.pypa.io/) (highly recommended, but `pip` will also work)\n\nIt is recommended to install `image-sorting-tool` with `pipx` as it will manage a dedicated environment and all paths for you, eliminating risk of dependency conflicts, etc.\n\nTo install run the following\n```shell\npipx install image-sorting-tool\n```\n\n## Usage\nRun the following to launch\n```bash\nimage-sorting-tool\n```\n## Upgrading\nRun the following to upgrade\n```bash\npipx upgrade image-sorting-tool\n```\n## Uninstalling\nRun the following to remove the tool from your machine\n```bash\npipx uninstall image-sorting-tool\n```\n\n## Development\nTo contribute, clone this repo and then install the dev dependencies with\n```shell\n# Installs package locally so code changes will affect behaviour\npip install -e .[dev]\n\n#Launch with -vv flag for debug logs\nimage-sorting-tool -vv \n```\n\n### Automated checks\nLinting and unit tests should be checked before committing by running the following:\n```bash\n# Code formatting\nblack  image-sorting-tool\n\n# Linting\npylint image_sorting_tool\n\n# Unit test on current environment python version\npytest\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Graphical tool to sort images into a folder structure based on the date the images were taken",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "https://github.com/ThorpeJosh/image-sorting-tool"
    },
    "split_keywords": [
        "image",
        " sort",
        " gui",
        " executable"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6354437a08896d3b2ac38c268966b42a5f91060df8b870acd2bcb58efa0ca8ec",
                "md5": "05ada58d7552c98e76e0fe98825ffd9c",
                "sha256": "42a6690d62a3a373c1040c821e5cde77f80e5ff7f11e74c84f1abf64c7ec44e1"
            },
            "downloads": -1,
            "filename": "image_sorting_tool-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "05ada58d7552c98e76e0fe98825ffd9c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.8",
            "size": 14082,
            "upload_time": "2024-04-09T02:06:50",
            "upload_time_iso_8601": "2024-04-09T02:06:50.605505Z",
            "url": "https://files.pythonhosted.org/packages/63/54/437a08896d3b2ac38c268966b42a5f91060df8b870acd2bcb58efa0ca8ec/image_sorting_tool-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2453aeb6262b1f89743ec2c8dc2ceb262749979f1aedac196118f0bf92a5c50b",
                "md5": "e22b7abd4a1f2d9e63008583ac431feb",
                "sha256": "cd1a466b20e54e3973cdf7f6eff83fd78b79268c7d71853a25be728c62179033"
            },
            "downloads": -1,
            "filename": "image-sorting-tool-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "e22b7abd4a1f2d9e63008583ac431feb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.8",
            "size": 14432,
            "upload_time": "2024-04-09T02:06:52",
            "upload_time_iso_8601": "2024-04-09T02:06:52.174503Z",
            "url": "https://files.pythonhosted.org/packages/24/53/aeb6262b1f89743ec2c8dc2ceb262749979f1aedac196118f0bf92a5c50b/image-sorting-tool-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-09 02:06:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ThorpeJosh",
    "github_project": "image-sorting-tool",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "image-sorting-tool"
}
        
Elapsed time: 0.32025s