Metadata-Version: 2.2
Name: lieplusplus_py
Version: 0.5.1
Summary: Swarm Systems Lab Python lieplusplus library
Author-Email: =?utf-8?q?Jes=C3=BAs_Bautista_Villar?= <jesbauti20@gmail.com>
License: MIT
Requires-Python: >=3.12
Requires-Dist: numpy>=1.19
Provides-Extra: dev
Requires-Dist: tox>=4.18; extra == "dev"
Requires-Dist: tox-uv>=1.9; extra == "dev"
Requires-Dist: ruff>=0.9.0; extra == "dev"
Requires-Dist: semgrep>=1.54.0; extra == "dev"
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
Requires-Dist: pre-commit>=3.0; extra == "dev"
Requires-Dist: ty>=0.0.14; extra == "dev"
Requires-Dist: cibuildwheel>=2.23.3; extra == "dev"
Requires-Dist: build>=1.2.2; extra == "dev"
Requires-Dist: twine>=5.1.1; extra == "dev"
Provides-Extra: lint
Requires-Dist: ruff>=0.9.0; extra == "lint"
Requires-Dist: semgrep>=1.54.0; extra == "lint"
Provides-Extra: tests
Requires-Dist: pytest>=7.0; extra == "tests"
Requires-Dist: pytest-cov>=4.0; extra == "tests"
Requires-Dist: pybind11-stubgen>=0.16.0; extra == "tests"
Requires-Dist: pytest-xdist>=3.5; extra == "tests"
Provides-Extra: pre-commit
Requires-Dist: pre-commit>=3.0; extra == "pre-commit"
Provides-Extra: type-checking
Requires-Dist: ty>=0.0.14; extra == "type-checking"
Provides-Extra: release
Requires-Dist: cibuildwheel>=2.23.3; extra == "release"
Requires-Dist: build>=1.2.2; extra == "release"
Requires-Dist: twine>=5.1.1; extra == "release"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.5.0; extra == "docs"
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "docs"
Requires-Dist: pymdown-extensions>=10.0; extra == "docs"
Description-Content-Type: text/markdown

# lieplusplus_py

Swarm Systems Lab Python lieplusplus library

⚠️ **Warning:** This project is a work in progress.

## Installation

```bash
pip install lieplusplus_py
```

## Usage

```python
import lieplusplus

# Example usage
result = lieplusplus.hello()
print(result)
```

## Development

This project follows the **SSL Golden Path** for streamlined Python development.

### Quick Setup

```bash
# Clone the repository
git clone https://gitea.lyapunov.local/Swarm-Systems-Lab/lieplusplus_py
cd lieplusplus_py

# One-command setup (installs uv, creates .venv, installs dependencies)
just setup

# Verify everything works
just test
```

### Common Commands

All project tasks are managed via `just`. Run `just --list` to see all available commands.

**Essential commands:**
```bash
just setup          # Initial environment setup
just test           # Run full test suite (what CI runs)
just test-fast      # Quick parallel tests (skip slow tests)
just lint           # Check code style
just typecheck      # Check types
just security       # Run security scans
just check-all      # Full CI simulation (run before pushing!)
just build          # Build package

just docs           # Start documentation server

```

**Testing workflows:**
```bash
just test-one test_name      # Run specific test
just test-multi-py           # Test on Python 3.10-3.14
uv run pytest -vv            # Verbose output
uv run pytest --pdb          # Debug on failure
```

### Development Tools

- **Package Manager**: [`uv`](https://github.com/astral-sh/uv) - Fast Rust-based Python package manager
- **Task Runner**: [`just`](https://github.com/casey/just) - Command runner for project tasks
- **Linting**: [`ruff`](https://github.com/astral-sh/ruff) - Fast linter and formatter
- **Type Checking**: `ty` (mypy wrapper) - Static type analysis
- **Testing**: `pytest` with coverage and parallel execution
- **Security**: `semgrep` - Security vulnerability scanning

### Project Structure

```
lieplusplus_py/
├── src/lieplusplus/     # Source code (importable package)
├── tests/                      # Test files (mirrors src structure)

├── docs/                       # Documentation (MkDocs)


├── pyproject.toml              # Project metadata and dependencies
├── justfile                    # Task definitions
└── uv.lock                     # Locked dependencies
```


## Documentation


Full documentation is available at [https://gitea.lyapunov.local/Swarm-Systems-Lab/lieplusplus_py/blob/main/docs](https://gitea.lyapunov.local/Swarm-Systems-Lab/lieplusplus_py/blob/main/docs)


**Build locally:**
```bash
just docs        # Start server at http://localhost:8000 with live reload
just docs-build  # Build static documentation
```




## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](docs/contributing.md) for guidelines.

**Before submitting a PR:**
```bash
just check-all  # Runs lint, security, test, typecheck, pre-commit
```

## License

MIT
