Metadata-Version: 2.1
Name: conductor-python
Version: 1.0.39
Summary: Netflix Conductor Python SDK
Home-page: https://github.com/conductor-sdk/conductor-python
Author: Orkes
Author-email: developers@orkes.io
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: certifi (>=14.05.14)
Requires-Dist: prometheus-client (>=0.13.1)
Requires-Dist: six (>=1.10)
Requires-Dist: urllib3 (>=1.15.1)
Requires-Dist: typing-extensions (>=4.2.0)

# Netflix Conductor SDK

`conductor-python` repository provides the client SDKs to build Task Workers in Python

## Quick Start

1. [Setup conductor-python package](#Setup-conductor-python-package)
2. [Create and run Task Workers](docs/worker/README.md)
3. [Create workflows using Code](docs/workflow/README.md)

### Setup conductor python package

Create a virtual environment to build your package:
```shell
virtualenv conductor
source conductor/bin/activate
```

Get Conductor Python SDK
```shell
python3 -m pip install conductor-python
```

### Server settings
Everything related to server settings should be done within `Configuration` class, by setting the required parameter when initializing an object, like this:

```python
configuration = Configuration(
    server_api_url='https://play.orkes.io/api',
    debug=True
)
```

* server_api_url : Conductor server address.  e.g. `http://localhost:8000/api` if running locally 
* debug: `true` for verbose logging `false` to display only the errors

#### Authentication settings (optional)
Use if your conductor server requires authentication.

##### Access Control Setup
See [Access Control](https://orkes.io/content/docs/getting-started/concepts/access-control) for more details on role based access control with Conductor and generating API keys for your environment.

```python
configuration = Configuration(
    authentication_settings=AuthenticationSettings(
        key_id='key',
        key_secret='secret'
    )
)
```

### Metrics settings (optional)
Conductor uses [Prometheus](https://prometheus.io/) to collect metrics.

```python
metrics_settings = MetricsSettings(
    directory='/path/to/folder',
    file_name='metrics_file_name.extension',
    update_interval=0.1,
)
```

* `directory`: Directory where to store the metrics
  * make sure that you have created this folder before, or the program have permission to create it for you
* `file_name`: File where the metrics are stored
  * example: `metrics.log`
* `update_interval`: Time interval in seconds to refresh metrics into the file 
  * example: `0.1` means metrics are updated every 0.1s, or 100ms

### Next: [Create and run Task Workers](docs/worker/README.md)
