Metadata-Version: 2.4
Name: cesiumcloud
Version: 0.1.4
Summary: CesiumCloud cloud storage Python SDK and command-line client
Author: CesiumCloud
Project-URL: Homepage, https://cloud.cesiummc.space/
Project-URL: Documentation, https://api.cesiummc.space/docs
Keywords: cesiumcloud,cloud,storage,backup
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Classifier: Topic :: Internet
Classifier: Topic :: System :: Archiving :: Backup
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# CesiumCloud for Python

CesiumCloud cloud storage client for Python 3.10+.

## Installation

Install the latest version from PyPI:

    python -m pip install cesiumcloud

Or install the official wheel directly:

    python3 -m pip install https://cloud.cesiummc.space/clients/cesiumcloud-0.1.4-py3-none-any.whl

## Command-line use

    python -m cesiumcloud authenticate
    python -m cesiumcloud upload "/home/user/Documents"
    python -m cesiumcloud upload "/home/user/dogimages.zip"
    python -m cesiumcloud download "/home/user/Restored"
    python -m cesiumcloud whoami

The cesiumcloud command is equivalent to python3 -m cesiumcloud.

## Ubuntu 22.04, 24.04, 26.04 LTS and 26.10

Use Python 3.10 or newer. This Python client uses only the standard library
and does not require Node.js.

On Ubuntu, use a virtual environment instead of changing the system Python:

    sudo apt-get update
    sudo apt-get install -y python3 python3-venv
    python3 -m venv "$HOME/.local/share/cesiumcloud/venv"
    "$HOME/.local/share/cesiumcloud/venv/bin/python" -m pip install --upgrade https://cloud.cesiummc.space/clients/cesiumcloud-0.1.4-py3-none-any.whl
    "$HOME/.local/share/cesiumcloud/venv/bin/cesiumcloud" authenticate
    "$HOME/.local/share/cesiumcloud/venv/bin/cesiumcloud" upload "$HOME/Videos/My video.mp4"

The CLI accepts a single path containing spaces even when it is unquoted,
but quoting paths is still recommended. Authentication keeps the existing
~/.cesiumcloud/credentials.json.

Large uploads display transport-send progress in 256 KiB increments.
99% means data has been handed to the transport but may await server response;
100% appears only after the storage server commits the upload. The Python
client does not yet maintain resumable checkpoints across separate processes.

## Python SDK

    from cesiumcloud import CesiumCloudClient

    client = CesiumCloudClient()
    client.authenticate()
    client.upload("/home/user/dogimages.zip")
    files = client.list_files()
    print([file["name"] for file in files])
    client.download("/home/user/Restored")

Authentication uses your CesiumCloud account without copying an API key.
The Python implementation requires no Node.js runtime or third-party Python dependencies.

## Current limitations

Data is streamed directly from local files. The Python client does not yet maintain
restart-safe checkpoints across processes. Existing destination files are not
silently overwritten. Keep an independent backup of important data.

## Access management

Revoke credentials from the CesiumCloud dashboard. The logout command removes local credentials only.

## Existing accounts

CesiumCloud connects to the existing API and stores credentials in ~/.cesiumcloud/credentials.json. Existing CesiumCloud package installations are not modified.


### PowerShell filenames with parentheses
PowerShell treats unquoted parentheses as shell syntax and may remove them
before a program receives command arguments. Quote the **entire** path:

    cesiumcloud upload "E:\\Downloads\\Roblox 2026-10-18 13-37-47 (1).mp4"

The CLI joins unquoted fragments containing ordinary spaces, but cannot
reconstruct text that the shell has discarded. Version 0.1.4 displays
matching filenames and complete quoted examples when the supplied path
does not exist; it never guesses and uploads the wrong file.

