Metadata-Version: 2.4
Name: ssl_simulator
Version: 0.4.4
Summary: Swarm Systems Lab Python Simulator
Author-email: Jesus Bautista Villar <jesbauti20@gmail.com>
License: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: lieplusplus-py>=0.3
Requires-Dist: numpy>=1.23
Requires-Dist: pandas>=1.5
Requires-Dist: scipy>=1.5
Requires-Dist: tqdm>=4.50
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == 'dev'
Requires-Dist: cibuildwheel>=2.23.3; extra == 'dev'
Requires-Dist: pre-commit>=3.0; extra == 'dev'
Requires-Dist: pytest-benchmark>=4.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.9.0; extra == 'dev'
Requires-Dist: semgrep>=1.54.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: docs
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
Provides-Extra: examples
Requires-Dist: ipykernel; extra == 'examples'
Requires-Dist: ipython>=8.0; extra == 'examples'
Requires-Dist: matplotlib-inline<0.3,>=0.1.6; extra == 'examples'
Requires-Dist: matplotlib>=3.7; extra == 'examples'
Provides-Extra: lint
Requires-Dist: ruff>=0.9.0; extra == 'lint'
Requires-Dist: semgrep>=1.54.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: cibuildwheel>=2.23.3; extra == 'release'
Requires-Dist: twine>=5.1.1; extra == 'release'
Provides-Extra: tests
Requires-Dist: ipython>=8.0; extra == 'tests'
Requires-Dist: matplotlib>=3.7; extra == 'tests'
Requires-Dist: pytest-benchmark>=4.0; extra == 'tests'
Requires-Dist: pytest-cov>=4.0; extra == 'tests'
Requires-Dist: pytest-xdist>=3.5; 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_simulator

Swarm Systems Lab Python Simulator

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

## Installation

```bash
pip install ssl_simulator
```

## Usage

```python
import ssl_simulator

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

## Development

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

### Quick Setup

```bash
# Clone the repository
git clone https://github.com/Swarm-Systems-Lab/ssl-simulator
cd ssl_simulator

# 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

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

├── docs/                       # Documentation (MkDocs)


├── examples/                   # Usage examples

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


## Documentation


Full documentation is available at [https://github.com/Swarm-Systems-Lab/ssl-simulator/blob/main/docs](https://github.com/Swarm-Systems-Lab/ssl-simulator/blob/main/docs)


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



## Examples

See the [examples/](examples/) directory for usage examples.

**Run the basic example:**
```bash
just example
# Or directly:
uv run python examples/basic_usage.py
```


## 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
