PyDrime Documentation
=====================

PyDrime is a Python command-line tool and API client for uploading, downloading, and managing files on Drime Cloud.

.. warning::
   **Disclaimer**

   PyDrime is an **unofficial, community-developed library** and is **not affiliated with, endorsed by, or supported by Drime or the Drime Cloud service**.

   This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

   **Use at your own risk.** The authors are not responsible for any data loss, corruption, or other issues that may arise from using this tool. Always maintain backups of your important data.

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   installation
   quickstart
   cli
   api
   exceptions

Features
--------

* Upload individual files or entire directories
* Download files by hash or ID
* Create and manage folders with navigation (cd/pwd)
* Rename, delete, and share files by name or ID
* List and search files with flexible filtering
* Multipart upload for large files (>30MB)
* Rich terminal output with progress tracking
* JSON output for programmatic processing
* Context-aware file operations (current directory support)
* **Sync** - Bidirectional and one-way sync between local and cloud
* **Encrypted Vault** - Client-side encryption for sensitive files
* **Duplicate Finder** - Find and remove duplicate files
* **Storage Usage** - Monitor your cloud storage usage

Quick Example
-------------

Upload a file:

.. code-block:: bash

   pydrime upload myfile.txt

Upload a directory:

.. code-block:: bash

   pydrime upload /path/to/directory

Download a file:

.. code-block:: bash

   pydrime download abc123hash

Sync a directory:

.. code-block:: bash

   pydrime sync ./my_folder

Using the Python API:

.. code-block:: python

   from pydrime import DrimeClient
   from pathlib import Path

   # Initialize client
   client = DrimeClient(api_key="your_api_key_here")

   # Upload a file
   result = client.upload_file(Path("myfile.txt"))
   print(f"Uploaded: {result}")

   # List files
   files = client.list_files()
   for file in files.get("data", []):
       print(f"{file['name']} ({file['type']})")

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
