Metadata-Version: 2.1
Name: flytekit
Version: 0.6.1
Summary: Flyte SDK for Python
Home-page: https://github.com/lyft/flytekit
Maintainer: Lyft
Maintainer-email: flyte-eng@lyft.com
License: apache2
Platform: UNKNOWN
Requires-Python: >=2.7
Requires-Dist: flyteidl (<1.0.0,>=0.17.25)
Requires-Dist: click (<8.0,>=6.6)
Requires-Dist: croniter (<4.0.0,>=0.3.20)
Requires-Dist: deprecation (<3.0,>=2.0)
Requires-Dist: boto3 (<2.0,>=1.4.4)
Requires-Dist: python-dateutil (<2.8.1,>=2.1)
Requires-Dist: grpcio (<2.0,>=1.3.0)
Requires-Dist: protobuf (<4,>=3.6.1)
Requires-Dist: pytimeparse (<2.0.0,>=1.1.8)
Requires-Dist: pytz (<2018.5,>=2017.2)
Requires-Dist: keyring (>=18.0.1)
Requires-Dist: requests (<3.0.0,>=2.18.4)
Requires-Dist: responses (>=0.10.7)
Requires-Dist: six (<2.0.0,>=1.9.0)
Requires-Dist: sortedcontainers (>=1.5.9<3.0.0)
Requires-Dist: statsd (<4.0.0,>=3.0.0)
Requires-Dist: urllib3 (<1.25,>=1.22)
Requires-Dist: wrapt (<2.0.0,>=1.0.0)
Requires-Dist: configparser (<4.0.0,>=3.0.0) ; python_version<"3"
Requires-Dist: futures (<4.0.0,>=3.2.0) ; python_version<"3"
Requires-Dist: pathlib2 (<3.0.0,>=2.3.2) ; python_version<"3"
Provides-Extra: all
Requires-Dist: pyspark (<3.0.0,>=2.4.0) ; extra == 'all'
Requires-Dist: k8s-proto (<1.0.0,>=0.0.2) ; extra == 'all'
Requires-Dist: numpy (<2.0.0,>=1.14.0) ; extra == 'all'
Requires-Dist: pandas (<2.0.0,>=0.22.0) ; extra == 'all'
Requires-Dist: pyarrow (<1.0.0,>=0.11.0) ; extra == 'all'
Requires-Dist: hmsclient (<1.0.0,>=0.0.1) ; extra == 'all'
Provides-Extra: hive_sensor
Requires-Dist: hmsclient (<1.0.0,>=0.0.1) ; extra == 'hive_sensor'
Provides-Extra: schema
Requires-Dist: numpy (<2.0.0,>=1.14.0) ; extra == 'schema'
Requires-Dist: pandas (<2.0.0,>=0.22.0) ; extra == 'schema'
Requires-Dist: pyarrow (<1.0.0,>=0.11.0) ; extra == 'schema'
Provides-Extra: sidecar
Requires-Dist: k8s-proto (<1.0.0,>=0.0.2) ; extra == 'sidecar'
Provides-Extra: spark
Requires-Dist: pyspark (<3.0.0,>=2.4.0) ; extra == 'spark'

# Flytekit

Library for easily authoring, testing, deploying, and interacting with Flyte tasks, workflows, and launch plans.

## Installation

Flytekit is designed for minimal footprint, and thus some features must be installed as extras.

### Base Installation

This is the lightest-weight SDK install. This installation includes everything you need to interact with Flyte.

Modules include:
1. The full Flyte IDL and an additional model layer for easier extension of the data model.
2. gRPC client for communicating with the platform.
3. Implementations for authoring and extending all Flyte entities (including tasks, workflows, and launch plans).

Tools include:
1. flyte-cli (Command-Line Interface for Interacting with the Flyte Platform)
2. pyflyte (Command-Line tool for easing the registration of Flyte entities)

```bash
pip install flytekit
```

### Spark Plugin Installation

If `@spark_task` is to be used, one should install the `spark` plugin.

```bash
pip install flytekit[spark]
```

### Schema Plugin Installation

If `Types.Schema()` is to be used for computations involving large dataframes, one should install the `schema` extension.

```bash
pip install flytekit[schema]
```

### Sidecar Plugin Installation

If `@sidecar_task` is to be used, one should install the `sidecar` plugin.

```bash
pip install flytekit[sidecar]
```

### Full Installation

To install all or multiple available plugins, one can specify them individually:

```bash
pip install flytekit[sidecar,spark,schema]
```

Or install them with the `all` directive.

```bash
pip install flytekit[all]
```

## Testing

Flytekit is Python 2.7+ compatible, so when feasible, it is recommended to test with both Python 2 and 3.

### Unit Testing

#### Setup (Do Once)
```bash
virtualenv ~/.virtualenvs/flytekit
source ~/.virtualenvs/flytekit/bin/activate
python -m pip install -r requirements.txt
python -m pip install -U .[all]
```

#### Execute
```bash
source ~/.virtualenvs/flytekit/bin/activate
python -m pytest tests/flytekit/unit
shellcheck **/*.sh
```


