Metadata-Version: 2.4
Name: chemsift
Version: 1.1.2
Summary: 
Author: Dave Martinez
Author-email: 34991082+dkm-coder@users.noreply.github.com
Requires-Python: >=3.9
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: boto3 (>=1.34.135,<2.0.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: requests (>=2.32.5,<3.0.0)
Requires-Dist: rich (>=13.7.0,<14.0.0)
Requires-Dist: typer (>=0.21.0,<0.22.0)
Requires-Dist: urllib3 (<2)
Description-Content-Type: text/markdown

# chemsift (cloud CLI)

The `chemsift` CLI lets scientists submit and manage jobs on AWS.

Install from PyPI:

```bash
pip install chemsift
```

## Commands

- `chemsift login`: Authenticate and store credentials
- `chemsift register <input-dir>`: Upload a `registry_input/` and start a registration job
- `chemsift map <register-job-id>`: Run the mapped pipeline against a completed register job
- `chemsift query <register-job-id> --molecules <csv> --yaml <yml>`: Submit a query job
- `chemsift supervised <register-job-id> --yaml <yml> [--state <csv>]`: Submit one round of active-learning screening
- `chemsift status <job-id>`: Check status of a job
- `chemsift download <job-id> <output-dir>`: Download results of a completed job
- `chemsift list`: List all job IDs for the current user

### Supervised workflow

```bash
# Round 0 — no state file yet
chemsift supervised <register-job-id> --yaml supervised.yml

# Wait for completion, download state CSV, fill 'label' column (0=inactive, 1=active)
chemsift status <job-id>
chemsift download <job-id> .

# Subsequent rounds — pass labelled state CSV
chemsift supervised <register-job-id> --yaml supervised.yml --state state.csv
```

## Development

This project uses [Poetry](https://python-poetry.org/) for dependency management and packaging.

### Setup

```bash
cd cli
poetry install
poetry run chemsift --help
```

### Bumping the version

```bash
poetry version patch   # or minor / major
```

### Publishing to PyPI

Publishing is automated via CI when a tag is pushed:

```
cli-vX.X.X
```

The tag version must match the version in `pyproject.toml`.

