Metadata-Version: 2.4
Name: ikalogic-cs8000
Version: 1.0.5
Summary: Python API for CS8000 series RF switches
Author-email: IKALOGIC <info@ikalogic.com>
License: MIT
Project-URL: Homepage, https://github.com/ikalogic/cs8000-api
Project-URL: Repository, https://github.com/ikalogic/cs8000-api.git
Project-URL: Documentation, https://github.com/ikalogic/cs8000-api/tree/main/docs
Keywords: cs8000,rf-switch,serial,python,api,ikalogic
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pyserial>=3.5
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"

# CS8000 Python API

Python library for controlling CS8000 series RF switches.

## Installation

```bash
pip install ikalogic-cs8000
```

## Quick Start

```python
from ikalogic import cs8000

# Create instance and connect
sw = cs8000.CS8000("CS8216")
sw.open()  # Auto-detect first available device

# Switch connections
sw.prepare(1, 1)  # Connect COM1 to CH1
sw.prepare(2, 0)  # Disconnect COM2
sw.commit()
# Close connection
sw.close()
```

## Publishing

To publish a new version to PyPI:

```bash
cd packages/python-api
./publish.sh
```

This will:
1. Prompt for version bump (patch/minor/major)
2. Update version in `pyproject.toml` and `__init__.py`
3. Commit and create a git tag `python-v1.0.x`
4. Push to GitHub
5. GitHub Actions automatically publishes to PyPI

## Package Name

- **PyPI Package**: `ikalogic-cs8000`
- **Import**: `from ikalogic import CS8000`
- **Git Tags**: `python-v1.0.0` (to avoid conflicts with GUI releases)

## GitHub Actions

The Python API has its own separate workflow:
- **Workflow**: `.github/workflows/publish-python.yml`
- **Trigger**: Tags matching `python-v*`
- **Does NOT trigger**: GUI build workflow

The GUI/Electron workflow only triggers on `v*` tags (excluding `python-v*`).
