Metadata-Version: 2.4
Name: loobric-smooth
Version: 0.1.0
Summary: Python client library and CLI for Smooth Core (CNC tool-data sync).
Author: sliptonic
License: MIT
Project-URL: Homepage, https://github.com/loobric/loobric-smooth
Project-URL: Repository, https://github.com/loobric/loobric-smooth
Project-URL: Issues, https://github.com/loobric/loobric-smooth/issues
Keywords: cnc,cam,tool-data,freecad,linuxcnc,machining
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Intended Audience :: Manufacturing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: importers
Requires-Dist: lxml>=5.0; extra == "importers"
Provides-Extra: completion
Requires-Dist: argcomplete>=3.0; extra == "completion"
Provides-Extra: dev
Requires-Dist: pytest>=7.4; extra == "dev"
Dynamic: license-file

# loobric-smooth

Python client for [Smooth Core](https://github.com/loobric/smooth-core) — the
library and CLI for synchronizing CNC tool data. It speaks only the public REST
API and depends on nothing from the server.

> **Status:** extraction in progress. The importable library (`smooth_client.Client`)
> and the `smooth` CLI are here, ported from the old single-file `loobric.py`. Format
> importers and removing the old client from `smooth-core` are next. See
> [docs/adr/0001-extract-loobric-smooth.md](docs/adr/0001-extract-loobric-smooth.md).

## Install

```bash
pip install loobric-smooth            # library + CLI (stdlib only, no deps)
pip install "loobric-smooth[importers]"   # + format importers (DIN4000/GTC/P21/...)
```

## Library

```python
from smooth_client import Client, NotFound

c = Client(base_url="http://nas:8000", api_key="...")   # solo mode: omit api_key
for s in c.list_tool_sets():
    print(s)
```

Every method returns parsed data and raises a `SmoothClientError` subclass
(`NotFound`, `AuthRequired`, `HTTPError`, `ConnectionFailed`) on failure — it
never prints or exits, so callers handle failure themselves.

## CLI

`smooth <verb>` is the universal command-line client (the role the old `loobric`
command served). See the [CLI reference and walkthrough](docs/CLI.md).

```bash
smooth --help
smooth list-machines
smooth create-record --from-catalog B201 --name "1/4 downcut"
```

## License

MIT. (The server, Smooth Core, is AGPL-3.0; this client is MIT so it can be
freely vendored and reused.)
