Metadata-Version: 2.3
Name: photos_drive
Version: 9.1.3
Summary: 
Author: Emilio Kartono
Author-email: Emilio Kartono <e.kartonoe@gmail.com>
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: exifread>=3.0.0,<4
Requires-Dist: typer>=0.15.1,<0.16
Requires-Dist: backoff>=2.2.1,<3
Requires-Dist: types-requests>=2.32.0.20241016,<3
Requires-Dist: google-api-python-client>=2.156.0,<3
Requires-Dist: google-auth-oauthlib>=1.2.1,<2
Requires-Dist: python-magic>=0.4.27,<0.5
Requires-Dist: tqdm>=4.67.1,<5
Requires-Dist: event-bus>=1.0.2,<2
Requires-Dist: dacite>=1.8.1,<2
Requires-Dist: types-exifread>=3.0.0.20240806,<4
Requires-Dist: prettytable>=3.12.0,<4
Requires-Dist: termcolor>=2.5.0,<3
Requires-Dist: xxhash>=3.5.0,<4
Requires-Dist: pyexiftool>=0.5.6,<0.6
Requires-Dist: pillow>=11.2.1,<12
Requires-Dist: pillow-heif>=0.22.0,<0.23
Requires-Dist: opencv-python-headless>=4.11.0.86,<5
Requires-Dist: h3>=4.3.0,<5
Requires-Dist: langchain>=0.3.26,<0.4
Requires-Dist: faiss-cpu>=1.11.0.post1,<2
Requires-Dist: langchain-google-vertexai>=2.0.27,<3
Requires-Dist: langchain-community>=0.3.27,<0.4
Requires-Dist: langchain-experimental>=0.3.4,<0.4
Requires-Dist: torch<=2.2.2
Requires-Dist: numpy<2
Requires-Dist: open-clip-torch>=2.32.0,<3
Requires-Dist: langchain-google-genai>=2.1.8,<3
Requires-Dist: transformers>=4.53.2,<5
Requires-Dist: pydantic>=2.11.7,<3
Requires-Dist: langgraph>=0.5.4,<0.6
Requires-Dist: langmem>=0.0.28,<0.0.29
Requires-Dist: rich>=14.0.0,<15
Requires-Dist: pymongo<4.11
Requires-Dist: typing-extensions>=4.14.1,<5
Requires-Python: >=3.10, <3.13
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 Python, [UV](https://docs.astral.sh/uv), [Exiftool](https://exiftool.org), and [Libmagic](https://man7.org/linux/man-pages/man3/libmagic.3.html) are installed on your machine

1. Install dependencies by running:

   ```bash
   uv sync
   ```

1. To lint your code, run:

   ```bash
   uv run mypy ./src && uv run flake8 ./src && uv run isort ./src && uv run black ./src
   ```

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

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

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

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

   For example,

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

1. To publish a new version of the app:

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

      ```bash
      uv version --bump [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
      uv version --bump patch
      ```

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

   1. Once the pull request is submitted, 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.
