Metadata-Version: 2.3
Name: robbie
Version: 0.1.44
Summary: Run experiments in the Robbie Cloud
License: Apache-2.0
Author: Positron Networks
Author-email: support@robbie.run
Requires-Python: >=3.9,<3.13
Classifier: License :: OSI Approved :: Apache Software License
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
Requires-Dist: GitPython (>=3.1.44)
Requires-Dist: aiohttp (>=3.7.4.post0)
Requires-Dist: argparse (>=1.4.0)
Requires-Dist: awscli (>=1.37.16)
Requires-Dist: boto3 (>=1.34.0)
Requires-Dist: cloudpickle (>=3.0.0)
Requires-Dist: colorama (>=0.4.0,<1.0.0)
Requires-Dist: configparser (>=5.0.0,<7.0.0)
Requires-Dist: dill (>=0.3.4)
Requires-Dist: ipywidgets (>=8)
Requires-Dist: jupyter-ui-poll (>=1.0.0)
Requires-Dist: matplotlib (>=3.9.2)
Requires-Dist: nest_asyncio (>=1.6.0)
Requires-Dist: pipdeptree (>=2.24.0)
Requires-Dist: pipreqs (>=0.5.0) ; python_version >= "3.9" and python_version < "3.13"
Requires-Dist: prompt_toolkit (>=3.0.47)
Requires-Dist: psutil (>=6.1.1)
Requires-Dist: pydantic (>=2.8.0)
Requires-Dist: pydantic_core (>=2.20.0)
Requires-Dist: pydantic_yaml (>=1.3.0)
Requires-Dist: pyfiglet (>=1.0.2)
Requires-Dist: python-dotenv (>=1.0.1)
Requires-Dist: python-socketio (>=5.0.0,<6.0.0)
Requires-Dist: pyyaml (>=6.0.1)
Requires-Dist: requests (>=2.28,<2.32)
Requires-Dist: rich (>=13.8.1)
Requires-Dist: s3transfer (>=0.10.0)
Requires-Dist: sentry-sdk (>=2.17.0)
Requires-Dist: stdlib_list (>=0.11.0)
Requires-Dist: tqdm (>=4.66.5)
Requires-Dist: typer (>=0.12.3)
Requires-Dist: urllib3 (>=1.26,<2.0)
Project-URL: Documentation, https://github.com/Positron-Networks/robbie-examples
Project-URL: Homepage, https://robbie.run
Description-Content-Type: text/markdown

# Robbie

> Run experiments on the Robbie Cloud

## Installation

Install the package from PyPi:

```bash
pip install robbie
```

## Getting Started

Log in to your account

```sh
robbie 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 gets 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.

