sorting-assistant


Namesorting-assistant JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryTool for sorting photos based on Exif.
upload_time2024-08-15 16:35:54
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords camera exif exposure photo sorting
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sorting-assistant

[![PyPI - Version](https://img.shields.io/pypi/v/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)

---

A tool that determines sets of photos taken consecutively based on the Exif shooting date and exposure time, and creates a directory for each set.

**_[ja]_**  
Exif の撮影日時と露光時間から、連続撮影された写真のセットを判断し、セットごとにディレクトリを作成するツール。

## Table of Contents

- [Specification](#specification)
- [Installation](#installation)
- [Usage](#usage)
- [License](#license)
- [Acknowledgment](#acknowledgment)

## Specification

- Only JPEG-format photos with Exif data are acceptable.
- If the difference between the date and time of shooting in the Exif is within ±2 seconds of the exposure time,
  the camera is considered to have taken consecutive shots.
- Directories for each set are created in the directory to be sorted.
  - The directory names created will be sequentially numbered from 0000.

**_[ja]_**

- Exif が記録されている JPEG 形式の写真のみ対象です。
- Exif の撮影日時の差が、露光時間 ±2 秒以内の場合に、連続撮影されたと判断します。
- セットごとのディレクトリは、仕分け対象のディレクトリ内に作成します。
  - 作成されるディレクトリ名は 0000 からの連番となります。

## Installation

```console
pip install sorting-assistant
```

### Dependency

- Modules

  - [exif](https://pypi.org/project/exif)
  - [flet](https://pypi.org/project/flet)

- Libraries

  If you do not use the GUI, you can omit installation.

  **_[ja]_**  
  GUI を使用しない場合は、インストールを省略できます。

  ```bash
  # For Ubuntu 20.04; Mac and Windows do not require installation.
  sudo apt install libgtk-3-dev libgstreamer-plugins-base1.0-dev libmpv-dev zenity
  ```

## Usage

```bash
$ python -m sorting_assistant -h
usage: python -m sorting_assistant [-h] [--input-directory INPUT_DIRECTORY] [--grouping-threshould GROUPING_THRESHOULD] [--cli]

Sort photos based on Exif.

options:
  -h, --help            show this help message and exit
  --input-directory INPUT_DIRECTORY, -d INPUT_DIRECTORY
                        [required in cli] directory containing photos to be sorted.
  --grouping-threshould GROUPING_THRESHOULD, -t GROUPING_THRESHOULD
                        [optional, default: 1] threshold for the number of photos to be directory (0-99).
  --cli, -c             [optional, default: launch with gui] execute with CLI.
```

### CLI

```bash
# Use as module.
python -m sorting_assistant -d /path/to/image/dir -t 1 -c
# Or, use with pyproject script.
sorting-assistant-cli -d /path/to/image/dir -t 1
```

### GUI

```bash
# Use as module.
python -m sorting_assistant
python -m sorting_assistant -d /path/to/image/dir -t 1
# Or, use with pyproject script.
sorting-assistant-gui
sorting-assistant-gui -d /path/to/image/dir -t 1
```

![sorting assistant flet](https://raw.githubusercontent.com/adeliae1316/sorting-assistant/develop/sorting-assiatant-flet.png)

- Set the `Directory Path` and `Grouping threshould` and press the `Execute` button to execute.
- When specifying the `Directory Path`, you can press `Select` to display the file selection dialog.
- DnD is not supported because flet does not support DnD ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)).

**_[ja]_**

- `Directory Path` と `Grouping threshould` を設定して、`Execute` ボタンを押すと実行されます。
- `Directory Path` を指定する際、`Select` を押すとファイルセレクションダイアログを表示できます。
- flet が DnD に対応していない ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)) ため、DnD は非対応です。

## License

`sorting-assistant` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.

**_[ja]_**  
`sorting-assistant` は [MIT](https://spdx.org/licenses/MIT.html)ライセンス の下で配布されています。

## Acknowledgment

This tool uses the following libraries. Thank you.

**_[ja]_**  
このツールでは、以下のライブラリを使用しています。ありがとうございます。

| Library                                    | Author         | License                                                                  |
| ------------------------------------------ | -------------- | ------------------------------------------------------------------------ |
| [exif](https://gitlab.com/TNThieding/exif) | Tyler Thieding | [MIT License](https://gitlab.com/TNThieding/exif/-/blob/master/LICENSE)  |
| [flet](https://flet.dev)                   | flet-dev       | [Apache License 2.0](https://github.com/flet-dev/flet/blob/main/LICENSE) |

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sorting-assistant",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "camera, exif, exposure, photo, sorting",
    "author": null,
    "author_email": "adeliae1316 <knsak.ug487@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/ce/9b/c829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728/sorting_assistant-0.0.2.tar.gz",
    "platform": null,
    "description": "# sorting-assistant\n\n[![PyPI - Version](https://img.shields.io/pypi/v/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)\n\n---\n\nA tool that determines sets of photos taken consecutively based on the Exif shooting date and exposure time, and creates a directory for each set.\n\n**_[ja]_**  \nExif \u306e\u64ae\u5f71\u65e5\u6642\u3068\u9732\u5149\u6642\u9593\u304b\u3089\u3001\u9023\u7d9a\u64ae\u5f71\u3055\u308c\u305f\u5199\u771f\u306e\u30bb\u30c3\u30c8\u3092\u5224\u65ad\u3057\u3001\u30bb\u30c3\u30c8\u3054\u3068\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b\u30c4\u30fc\u30eb\u3002\n\n## Table of Contents\n\n- [Specification](#specification)\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n- [Acknowledgment](#acknowledgment)\n\n## Specification\n\n- Only JPEG-format photos with Exif data are acceptable.\n- If the difference between the date and time of shooting in the Exif is within \u00b12 seconds of the exposure time,\n  the camera is considered to have taken consecutive shots.\n- Directories for each set are created in the directory to be sorted.\n  - The directory names created will be sequentially numbered from 0000.\n\n**_[ja]_**\n\n- Exif \u304c\u8a18\u9332\u3055\u308c\u3066\u3044\u308b JPEG \u5f62\u5f0f\u306e\u5199\u771f\u306e\u307f\u5bfe\u8c61\u3067\u3059\u3002\n- Exif \u306e\u64ae\u5f71\u65e5\u6642\u306e\u5dee\u304c\u3001\u9732\u5149\u6642\u9593 \u00b12 \u79d2\u4ee5\u5185\u306e\u5834\u5408\u306b\u3001\u9023\u7d9a\u64ae\u5f71\u3055\u308c\u305f\u3068\u5224\u65ad\u3057\u307e\u3059\u3002\n- \u30bb\u30c3\u30c8\u3054\u3068\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3001\u4ed5\u5206\u3051\u5bfe\u8c61\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u4f5c\u6210\u3057\u307e\u3059\u3002\n  - \u4f5c\u6210\u3055\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u306f 0000 \u304b\u3089\u306e\u9023\u756a\u3068\u306a\u308a\u307e\u3059\u3002\n\n## Installation\n\n```console\npip install sorting-assistant\n```\n\n### Dependency\n\n- Modules\n\n  - [exif](https://pypi.org/project/exif)\n  - [flet](https://pypi.org/project/flet)\n\n- Libraries\n\n  If you do not use the GUI, you can omit installation.\n\n  **_[ja]_**  \n  GUI \u3092\u4f7f\u7528\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u7701\u7565\u3067\u304d\u307e\u3059\u3002\n\n  ```bash\n  # For Ubuntu 20.04; Mac and Windows do not require installation.\n  sudo apt install libgtk-3-dev libgstreamer-plugins-base1.0-dev libmpv-dev zenity\n  ```\n\n## Usage\n\n```bash\n$ python -m sorting_assistant -h\nusage: python -m sorting_assistant [-h] [--input-directory INPUT_DIRECTORY] [--grouping-threshould GROUPING_THRESHOULD] [--cli]\n\nSort photos based on Exif.\n\noptions:\n  -h, --help            show this help message and exit\n  --input-directory INPUT_DIRECTORY, -d INPUT_DIRECTORY\n                        [required in cli] directory containing photos to be sorted.\n  --grouping-threshould GROUPING_THRESHOULD, -t GROUPING_THRESHOULD\n                        [optional, default: 1] threshold for the number of photos to be directory (0-99).\n  --cli, -c             [optional, default: launch with gui] execute with CLI.\n```\n\n### CLI\n\n```bash\n# Use as module.\npython -m sorting_assistant -d /path/to/image/dir -t 1 -c\n# Or, use with pyproject script.\nsorting-assistant-cli -d /path/to/image/dir -t 1\n```\n\n### GUI\n\n```bash\n# Use as module.\npython -m sorting_assistant\npython -m sorting_assistant -d /path/to/image/dir -t 1\n# Or, use with pyproject script.\nsorting-assistant-gui\nsorting-assistant-gui -d /path/to/image/dir -t 1\n```\n\n![sorting assistant flet](https://raw.githubusercontent.com/adeliae1316/sorting-assistant/develop/sorting-assiatant-flet.png)\n\n- Set the `Directory Path` and `Grouping threshould` and press the `Execute` button to execute.\n- When specifying the `Directory Path`, you can press `Select` to display the file selection dialog.\n- DnD is not supported because flet does not support DnD ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)).\n\n**_[ja]_**\n\n- `Directory Path` \u3068 `Grouping threshould` \u3092\u8a2d\u5b9a\u3057\u3066\u3001`Execute` \u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n- `Directory Path` \u3092\u6307\u5b9a\u3059\u308b\u969b\u3001`Select` \u3092\u62bc\u3059\u3068\u30d5\u30a1\u30a4\u30eb\u30bb\u30ec\u30af\u30b7\u30e7\u30f3\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002\n- flet \u304c DnD \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044 ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)) \u305f\u3081\u3001DnD \u306f\u975e\u5bfe\u5fdc\u3067\u3059\u3002\n\n## License\n\n`sorting-assistant` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n\n**_[ja]_**  \n`sorting-assistant` \u306f [MIT](https://spdx.org/licenses/MIT.html)\u30e9\u30a4\u30bb\u30f3\u30b9 \u306e\u4e0b\u3067\u914d\u5e03\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\n## Acknowledgment\n\nThis tool uses the following libraries. Thank you.\n\n**_[ja]_**  \n\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002\n\n| Library                                    | Author         | License                                                                  |\n| ------------------------------------------ | -------------- | ------------------------------------------------------------------------ |\n| [exif](https://gitlab.com/TNThieding/exif) | Tyler Thieding | [MIT License](https://gitlab.com/TNThieding/exif/-/blob/master/LICENSE)  |\n| [flet](https://flet.dev)                   | flet-dev       | [Apache License 2.0](https://github.com/flet-dev/flet/blob/main/LICENSE) |\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Tool for sorting photos based on Exif.",
    "version": "0.0.2",
    "project_urls": {
        "Documentation": "https://github.com/adeliae1316/sorting-assistant#readme",
        "Issues": "https://github.com/adeliae1316/sorting-assistant/issues",
        "Source": "https://github.com/adeliae1316/sorting-assistant"
    },
    "split_keywords": [
        "camera",
        " exif",
        " exposure",
        " photo",
        " sorting"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b29b4cff5cb39240463af4ea9102b4dcf24be520f311e13f7da1d1b6cbbc926",
                "md5": "5d96af36dff6e73d3d31adcde6c43d8e",
                "sha256": "c6f205ba675171767886adf141d724c5ddfbe7325cabf13668587cfd47253068"
            },
            "downloads": -1,
            "filename": "sorting_assistant-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5d96af36dff6e73d3d31adcde6c43d8e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 8459,
            "upload_time": "2024-08-15T16:35:52",
            "upload_time_iso_8601": "2024-08-15T16:35:52.508848Z",
            "url": "https://files.pythonhosted.org/packages/9b/29/b4cff5cb39240463af4ea9102b4dcf24be520f311e13f7da1d1b6cbbc926/sorting_assistant-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce9bc829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728",
                "md5": "0fb1e604145df8ec4f659061fa8a795d",
                "sha256": "c0275d9c1f2c4b0f5b16bf5ad9617f30edf26b5534352e8b3e13bcbd47a671f9"
            },
            "downloads": -1,
            "filename": "sorting_assistant-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "0fb1e604145df8ec4f659061fa8a795d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 243244,
            "upload_time": "2024-08-15T16:35:54",
            "upload_time_iso_8601": "2024-08-15T16:35:54.103409Z",
            "url": "https://files.pythonhosted.org/packages/ce/9b/c829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728/sorting_assistant-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-15 16:35:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "adeliae1316",
    "github_project": "sorting-assistant#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sorting-assistant"
}
        
Elapsed time: 0.32676s