Metadata-Version: 2.2
Name: robbie
Version: 0.1.31
Summary: Run experiments on the Robbie Cloud
Home-page: https://www.robbie.run
Author: Positron Networks
Author-email: support@robbie.run
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
Requires-Dist: pipreqs>=0.5.0
Requires-Dist: tqdm>=4.66.5
Requires-Dist: dill>=0.3.4
Requires-Dist: stdlib_list>=0.11.0
Requires-Dist: matplotlib>=3.9.2
Requires-Dist: sentry-sdk>=2.17.0
Requires-Dist: jupyter-ui-poll>=1.0.0
Requires-Dist: pipdeptree>=2.24.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

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