Metadata-Version: 2.1
Name: robbie
Version: 0.1.17
Summary: Run experiments on the Positron Cloud
Author: Balint Kerdi
Author-email: bkerdi@positronnetworks.com
License: Apache License 2.0
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests <3.0.0,>=2.20.0
Requires-Dist: python-socketio <6.0.0,>=5.0.0
Requires-Dist: colorama <1.0.0,>=0.4.0
Requires-Dist: configparser <7.0.0,>=5.0.0
Requires-Dist: argparse >=1.4.0
Requires-Dist: aiohttp >=3.7.4.post0
Requires-Dist: typer >=0.12.3
Requires-Dist: pyyaml >=6.0.1
Requires-Dist: pydantic >=2.8.0
Requires-Dist: pydantic-core >=2.20.0
Requires-Dist: s3transfer >=0.10.0
Requires-Dist: boto3 >=1.34.0
Requires-Dist: cloudpickle >=3.0.0
Requires-Dist: python-dotenv >=1.0.1
Requires-Dist: rich >=13.8.1
Requires-Dist: pyfiglet >=1.0.2
Requires-Dist: prompt-toolkit >=3.0.47
Requires-Dist: pydantic-yaml >=1.3.0
Requires-Dist: nest-asyncio >=1.6.0
Requires-Dist: ipywidgets <8,>=7

# Positron Networks

> This package facilitates interacting with the Positron Supercompute infrastructure.

## Installation

Install the package from PyPi:

```bash
pip install robbie
```

## Getting Started

Log in to your account

```sh
positron login
```

Create a python file and decorate it.

```python
from robbie import remote

@remote(
    funding_group_id ='44d273ad-75b4-4af4-8a33-0ab652c2c315',
    environment_id = 'c2fab2e7-7e1c-4180-8d77-53ddbe2af281',
    image = 'pytorch-training:2.2.0-cpu-py310-ubuntu20.04-ec2',
)
def main():
    print("Running my function")

if __name__ == "__main__":
    main()
```

Deploy the job

```sh
python main.py
```

## Positron CLI Usage

Explore the help dialogs.

```sh
robbie --help

robbie run --help
```

## Job Types

### Generic Job

Defined in `job_config.yaml` as a `commands` block.

Example at `test/cli`.

Run with `robbie run`

### Decorator Job

Defined as a python native decorator.

Example at `test/decorator/test.py`.

Run with `python test.py`

Rather than specify configuration options in the src code, you can put them in `job_config.yaml`.

Example at `test/decorator/with_config/main.py`.

## Positron Job Runner

Located at `app/positron_job_runner`, this get's deployed as `positron-job-runner` and is used in the deployed container to launch the user's project.

## License

This project is licensed under the Apache 2 License. See the [LICENSE](LICENSE) file for details.
