Metadata-Version: 2.5
Name: fleetml
Version: 0.10.2
Summary: Python client for FleetML: push models, run and watch rollouts, A/B experiments and drift checks on a FleetML server.
Project-URL: Homepage, https://github.com/fleetml/fleetml
Project-URL: Documentation, https://github.com/fleetml/fleetml/blob/main/docs/PYTHON_CLIENT.md
Project-URL: Repository, https://github.com/fleetml/fleetml
Project-URL: Changelog, https://github.com/fleetml/fleetml/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/fleetml/fleetml/issues
Project-URL: Contact, https://github.com/fleetml/fleetml/blob/main/SUPPORT.md
Author-email: FleetML Maintainers <hello@fleetml.dev>
Maintainer-email: FleetML Maintainers <hello@fleetml.dev>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: a/b testing,canary,edge,mlops,model deployment,ota
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: httpx<1,>=0.24
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# fleetml

The Python client for [FleetML](https://github.com/fleetml/fleetml), the
self-hosted platform that rolls models out to Android, iOS and Linux devices
with canaries, automatic rollback, A/B experiments and drift detection.

From a training pipeline, a notebook or CI: push a model, start a rollout,
wait for it, and read what the fleet reports. It speaks the server's REST API,
with the same words as the `fleetml` CLI, and depends only on `httpx`.

```bash
pip install fleetml
```

Python 3.9 or later. The package is typed (`py.typed`; its own code passes
`mypy --strict`).

```python
import time

from fleetml import FleetML

fm = FleetML("<server URL>", api_key="...")  # or FLEETML_SERVER, FLEETML_API_KEY
project = fm.projects.create(f"demo-{time.strftime('%Y%m%d-%H%M%S')}")  # names are unique per server
version = fm.push("model.tflite", project=project.id, model="iris", version="1.0.0")
deployment = fm.deployments.start(fm.deployments.create(project.id, version.id).id)
print(fm.wait_for_deployment(deployment.id).status)
```

Documentation: [docs/PYTHON_CLIENT.md](https://github.com/fleetml/fleetml/blob/main/docs/PYTHON_CLIENT.md).
License: Apache-2.0.

## Contact

- Anything about FleetML: [hello@fleetml.dev](mailto:hello@fleetml.dev).
- A security problem: [security@fleetml.dev](mailto:security@fleetml.dev), see [SECURITY.md](https://github.com/fleetml/fleetml/blob/main/SECURITY.md).
- Questions in public: [GitHub Discussions](https://github.com/fleetml/fleetml/discussions).
- Bugs: [GitHub Issues](https://github.com/fleetml/fleetml/issues/new/choose), with the FleetML version and the command or log line that shows the problem.
