Metadata-Version: 2.3
Name: photos_drive
Version: 8.2.3
Summary: 
Author: Emilio Kartono
Author-email: e.kartonoe@gmail.com
Requires-Python: >=3.10,<3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: backoff (>=2.2.1,<3.0.0)
Requires-Dist: dacite (>=1.8.1,<2.0.0)
Requires-Dist: event-bus (>=1.0.2,<2.0.0)
Requires-Dist: exifread (>=3.0.0,<4.0.0)
Requires-Dist: faiss-cpu (>=1.11.0.post1,<2.0.0)
Requires-Dist: google-api-python-client (>=2.156.0,<3.0.0)
Requires-Dist: google-auth-oauthlib (>=1.2.1,<2.0.0)
Requires-Dist: h3 (>=4.3.0,<5.0.0)
Requires-Dist: langchain (>=0.3.26,<0.4.0)
Requires-Dist: langchain-community (>=0.3.27,<0.4.0)
Requires-Dist: langchain-experimental (>=0.3.4,<0.4.0)
Requires-Dist: langchain-google-genai (>=2.1.8,<3.0.0)
Requires-Dist: langchain-google-vertexai (>=2.0.27,<3.0.0)
Requires-Dist: langgraph (>=0.5.4,<0.6.0)
Requires-Dist: langmem (>=0.0.28,<0.0.29)
Requires-Dist: numpy (<2)
Requires-Dist: open-clip-torch (>=2.32.0,<3.0.0)
Requires-Dist: opencv-python-headless (>=4.11.0.86,<5.0.0.0)
Requires-Dist: pillow (>=11.2.1,<12.0.0)
Requires-Dist: pillow-heif (>=0.22.0,<0.23.0)
Requires-Dist: prettytable (>=3.12.0,<4.0.0)
Requires-Dist: pydantic (>=2.11.7,<3.0.0)
Requires-Dist: pyexiftool (>=0.5.6,<0.6.0)
Requires-Dist: pymongo (<4.11)
Requires-Dist: python-magic (>=0.4.27,<0.5.0)
Requires-Dist: rich (>=14.0.0,<15.0.0)
Requires-Dist: termcolor (>=2.5.0,<3.0.0)
Requires-Dist: torch (<=2.2.2)
Requires-Dist: tqdm (>=4.67.1,<5.0.0)
Requires-Dist: transformers (>=4.53.2,<5.0.0)
Requires-Dist: typer (>=0.15.1,<0.16.0)
Requires-Dist: types-exifread (>=3.0.0.20240806,<4.0.0.0)
Requires-Dist: types-requests (>=2.32.0.20241016,<3.0.0.0)
Requires-Dist: typing-extensions (>=4.14.1,<5.0.0)
Requires-Dist: xxhash (>=3.5.0,<4.0.0)
Description-Content-Type: text/markdown

# Photos-Drive-CLI-Client

![PyPI - Version](https://img.shields.io/pypi/v/photos_drive)
![check-code-coverage](https://img.shields.io/badge/code--coverage-99-brightgreen)

## Description

The Photos-Drive-CLI-Client is the cli client for Photos Drive. This CLI helps set up your infrastructure, syncs, adds, and delete your pictures and videos from your machine to Photos Drive.

This CLI will never delete content from your machine - it should only mirror the content from your machine to the cloud.

## Table of Contents

- [Getting Started](#getting-started)
- [Getting Started to Contribute](#getting-started-to-contribute)
- [Usage](#usage)
- [Credits](#credits)
- [License](#license)

## Getting Started

Refer to [this doc](./docs/getting_started.md) on step-by-step instructions on how to get started with the Photos Drive CLI.

## Getting Started to Contribute

1. Ensure Python3, Pip, and Poetry are installed on your machine

2. Install dependencies by running:

   ```bash
   poetry install
   ```

3. To lint your code, run:

   ```bash
   poetry run mypy . && poetry run flake8 && poetry run isort . && poetry run black .
   ```

4. To run all tests and code coverage, run:

   ```bash
   poetry run coverage run  --source=photos_drive -m pytest tests/ && poetry run coverage report -m
   ```

5. To run tests and code coverage for a particular test file, run:

   ```bash
   poetry run coverage run --source=photos_drive -m pytest <insert-file-path> && poetry run coverage report -m
   ```

   For example,

   ```bash
   poetry run coverage run --source=photos_drive -m pytest tests/backup/test_backup_photos.py && poetry run coverage report -m
   ```

6. To publish a new version of the app:

   1. First, bump up the package version by running:

      ```bash
      poetry version [patch|minor|major]
      ```

      For instance, if the app is on 0.1.0 and you want to increment it to version 0.1.1, run:

      ```bash
      poetry version patch
      ```

   2. Then, create a pull request with the new version number.

   3. Once the pull request is submitted, go to <https://github.com/EKarton/photos-drive/actions/workflows/publish-cli-client.yaml>, click on the `Run workflow`, ensure that it's on the `main` branch, and click on `Run workflow`:

      ![Screenshot of publish workflow](docs/images/publish-package/publish-cli-client-screenshot.png)

   4. Once the action is complete, it will publish a new version of the app on <https://pypi.org/project/photos_drive_cli_client/>.

## Usage

Please note that this project is used for educational purposes and is not intended to be used commercially. We are not liable for any damages/changes done by this project.

## Credits

Emilio Kartono, who made the entire project.

CLI images were provided by <https://ray.so/> in Ice theme.

## License

This project is protected under the GNU licence. Please refer to the root project's LICENSE.txt for more information.

