Metadata-Version: 2.4
Name: prusa-connect-sdk-client
Version: 1.0.0a2
Summary: Unoriginal Prusa Connect API client for Python and CLI
Project-URL: Documentation, https://dcode.github.io/python-prusa-connect-sdk-client/
Project-URL: Homepage, https://dcode.github.io/python-prusa-connect-sdk-client/
Project-URL: Issues, https://github.com/dcode/python-prusa-connect-sdk-client/issues
Project-URL: Repository, https://github.com/dcode/python-prusa-connect-sdk-client
Author-email: Derek Ditch <dcode@users.noreply.github.com>
License: AGPL-3.0-or-later
License-File: LICENSE
Keywords: 3d-printing,api,client,connect,iot,prusa,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Requires-Dist: platformdirs>=4.0.0
Requires-Dist: protobuf>=6.33.5
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-socketio>=5.16.1
Requires-Dist: requests>=2.32.5
Requires-Dist: structlog>=25.5.0
Provides-Extra: all
Requires-Dist: better-exceptions>=0.3.3; extra == 'all'
Requires-Dist: cyclopts>=2.0.0; extra == 'all'
Requires-Dist: pydantic-settings>=2.2.0; extra == 'all'
Requires-Dist: rich>=14.3.1; extra == 'all'
Provides-Extra: cli
Requires-Dist: better-exceptions>=0.3.3; extra == 'cli'
Requires-Dist: cyclopts>=2.0.0; extra == 'cli'
Requires-Dist: pydantic-settings>=2.2.0; extra == 'cli'
Requires-Dist: rich>=14.3.1; extra == 'cli'
Description-Content-Type: text/markdown

# Unoriginal Prusa Connect Python Client

[![PyPI version](https://badge.fury.io/py/prusa-connect-sdk-client.svg)](https://badge.fury.io/py/prusa-connect-sdk-client)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Python Versions](https://img.shields.io/pypi/pyversions/prusa-connect-sdk-client.svg)](https://pypi.org/project/prusa-connect-sdk-client/)

Control your Prusa 3D printers programmatically with Python. This library
provides a frictionless, strongly-typed interface for the Prusa Connect API.

> [!WARNING] **A Note on Unoriginal-ness**
>
> This SDK is not an officially supported or endorsed product of Prusa Research.
> It is developed and maintained by an independent developer and is not
> affiliated with Prusa Research. See [Motivation & Design](#motivation-design)
> for more information.

**Features:**

- **Zero-Config Authentication:** Log in once via CLI, use everywhere in Python.
- **Strong Typing:** Full Pydantic models for printers, jobs, cameras, and
  files.
- **Batteries Included:** Retries, timeouts, and error handling out of the box.
- **CLI Tool:** Managing printers from the terminal.

## Installation

Install the package with the CLI tools (recommended for easiest setup):

```bash
pip install "prusa-connect-sdk-client[cli]"
```

Or install the lightweight library only:

```bash
pip install prusa-connect-sdk-client
```

## Motivation & Design

My motivation to create this library is to provide a frictionless,
strongly-typed interface for the Prusa Connect API. I want to be able to monitor
and control my Prusa 3D printers programmatically with Python. I love building
tools, which has led to me loving my Prusa 3D printers.

It is my goal that this library has the same level of quality engineering and
"feel" as the products Prusa Research produces. That goal drove the decisions on
library layout (e.g. `prusa.connect.client` namespace) and the naming of the
PyPI package itself.

That said, if anyone from Prusa Research wishes to take over development of this
library, I would be happy to hand it over (and keep contributing, if desired).
Alternatively, I can keep this project going as a community-driven project in my
spare time. If you're from Prusa Research and wish to support this work, I'd
gladly accept Prusameters towards a new Core-generation printer. 😉

My Printables Profile: :simple-printables:
[dcode](https://www.printables.com/@dcode_3006269)
