dcipher 0.3.2

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

dcipher 0.3.2

Dcipher Workflows API Python library
The Dcipher Workflows Python library provides convenient access to the Dcipher Workflows API from any Python 3.7+
application. It offers both synchronous and asynchronous clients powered by httpx.
Documentation
The REST API documentation can be found on app.dcipheranalytics.com/workflows
Installation
pip install dcipher

Usage
import os
from dcipher import Dcipher

client = Dcipher(
# This is the default and can be omitted
api_key=os.environ.get("DCIPHER_API_KEY"),
)

client.run_flow(
flow_id="65cf2f3e..",
params={"param1": "...", "param2": "...."}, # param names are set by workflow user
save_path="output.json",
)

While you can provide an api_key keyword argument,
we recommend using python-dotenv
to add DCIPHER_API_KEY="my-dcipher-api-key" to your .env file
so that your API Key is not stored in source control.
Async usage
Simply import AsyncDcipher instead of Dcipher and use await with each API call:
import os
import asyncio
from dcipher import AsyncDcipher

client = AsyncDcipher(
# This is the default and can be omitted
api_key=os.environ.get("DCIPHER_API_KEY"),
)


async def main() -> None:
await client.run_flow(
flow_id="65cf2f3e..",
params={"param1": "...", "param2": "...."}, # param names are set by workflow user
save_path="output.json",
)


asyncio.run(main())

Functionality between the synchronous and asynchronous clients is otherwise identical.
Handling errors
When the API returns a non-success status code (that is, 4xx or 5xx
response), a subclass of APIStatusError is raised, containing an error message.
In case Timeout or Connection errors occur, the client auto-retries with exponential back-off using tenacity.
Error codes are as follows:



Status Code
Error Type




400
BadRequestError


401
AuthenticationError


403
PermissionDeniedError


404
NotFoundError


422
UnprocessableEntityError


429
RateLimitError


>=500
InternalServerError



Retries
Certain errors are automatically retried by default, with a short exponential backoff.
Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,
429 Rate Limit, and >=500 Internal errors are all retried by default.
You can use the max_retries option to configure or disable retry settings.
Advanced
Logging
We use the standard library logging module.
You can enable logging by setting the environment variable DCIPHER_LOG to debug.
$ export DCIPHER_LOG=debug

Requirements
Python 3.7 or higher.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.