Metadata-Version: 2.1
Name: airplanesdk
Version: 0.1.1
Summary: A Python SDK for writing Airplane tasks
Home-page: https://airplane.dev
License: MIT
Author: Airplane
Author-email: support@airplane.dev
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: backoff (>=1.10.0,<2.0.0)
Requires-Dist: requests (>=2.25.1,<3.0.0)
Project-URL: Repository, https://github.com/airplanedev/python-sdk
Description-Content-Type: text/markdown

# Airplane Python SDK ![PyPI](https://img.shields.io/pypi/v/airplanesdk) ![PyPI - License](https://img.shields.io/pypi/l/airplanesdk)

An SDK for writing Airplane tasks in Python.

## Usage

First, install the SDK:

```sh
pip install airplanesdk
```

Next, import the SDK and create a client:

```python
from airplanesdk import Airplane

airplane = Airplane()
```

You can then use the SDK to produce outputs which will be separated from your logs:

```python
airplane.writeOutput("Show me what you got")

# You can also separate outputs into groups by attaching names:
airplane.writeNamedOutput("saying", "Show me what you got")
airplane.writeNamedOutput("saying", "Welcome to the club, pal")
airplane.writeNamedOutput("name", "Summer")
```

This SDK can be used to programmatically kick off tasks and fetch their output:

```python
# You can get a task's ID from the URL bar, f.e.
# https://app.airplane.dev/tasks/1oMt2mZC1DjkOZXxHH8BV57xrmF
taskId = "..."
runOutput = airplane.run(taskId, {
  # Optionally provide parameters to your task, using the same name
  # as when templating a parameter into your task's CLI args.
  "DryRun": True,
})
# run() will return a dict of outputs, by name.
# Default outputs are available as `runOutput.output`.
print(runOutput)
```

## Contributing

### Deployment

To deploy a new version of this SDK:

1. Bump the version number in `pyproject.toml` and `airplanesdk/__init__.py`
2. Run the following to build and publish to PyPI:

```sh
poetry publish --build --username=airplane
```

