Metadata-Version: 2.4
Name: ssl_pydev
Version: 0.1.4
Summary: Shared local-dev CLI for Swarm Systems Lab Python projects
Author: Jose Hinojosa Hidalgo
Author-email: Jesus Bautista Villar <jesbauti20@gmail.com>
License: MIT
License-File: LICENSE
Requires-Python: >=3.12
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.9.0; extra == 'dev'
Requires-Dist: tox-uv>=1.9; extra == 'dev'
Requires-Dist: tox>=4.18; extra == 'dev'
Requires-Dist: twine>=5.1.1; extra == 'dev'
Requires-Dist: ty>=0.0.14; extra == 'dev'
Provides-Extra: lint
Requires-Dist: ruff>=0.9.0; extra == 'lint'
Provides-Extra: pre-commit
Requires-Dist: pre-commit>=3.0; extra == 'pre-commit'
Provides-Extra: release
Requires-Dist: build>=1.2.2; extra == 'release'
Requires-Dist: twine>=5.1.1; extra == 'release'
Provides-Extra: tests
Requires-Dist: pytest-cov>=4.0; extra == 'tests'
Requires-Dist: pytest>=7.0; extra == 'tests'
Provides-Extra: type-checking
Requires-Dist: ty>=0.0.14; extra == 'type-checking'
Description-Content-Type: text/markdown

# ssl_pydev

Shared local-dev CLI for `Swarm-Systems-Lab` Python projects. Wraps the same
build/publish/docs-validation logic that `ssl_ci`'s composite actions run in CI,
packaged here so it can be installed **once per machine** instead of copy-pasted
into every project's `scripts/` directory.

## Install

```bash
uv tool install ssl_pydev
```

This installs a single `ssl-pydev` command, available from any project
directory, independent of that project's own virtualenv/dependencies.

> **Using VS Code installed via snap on Linux?** Run the command above from a
> regular system terminal, **not** VS Code's integrated terminal. Snap
> confinement redirects `$HOME`/`$XDG_DATA_HOME` for processes spawned inside
> VS Code's snap, so `uv tool install` ends up putting `ssl-pydev` somewhere
> only visible from inside that snap (e.g.
> `~/snap/code/<rev>/.local/share/uv/tools/...`), invisible to any other
> terminal.

## Usage

```bash
ssl-pydev setup-env --extras dev,tests
ssl-pydev build
ssl-pydev build-native     # for compiled-extension (pybind11/scikit-build-core) projects
ssl-pydev publish          # uv-based publish, requires UV_PUBLISH_* env vars
ssl-pydev publish-ci       # twine-based publish, requires TWINE_* env vars
ssl-pydev validate-docs
ssl-pydev generate-stubs --module mypkg._core --output src/   # pybind11 type stubs
```

Every command operates on the current working directory, so run it from the
root of the project you want to act on - same as the `scripts/*.sh` files it
replaces. A project's `justfile` recipes become one-liners, e.g.:

```just
setup:
    ssl-pydev setup-env --extras dev,lint,tests,type-checking,pre-commit
```

## Versioning

Released the same way as the other `Swarm-Systems-Lab` packages: tag `vX.Y.Z`,
push, and `ssl_ci`'s `publish.yml` builds and uploads to PyPI.
