Metadata-Version: 2.4
Name: diffusion
Version: 6.12.2
Summary: Python SDK for Diffusion.
Author-email: DiffusionData Limited <contact@diffusiondata.com>
License: LicenseRef-Proprietary
Project-URL: homepage, https://www.diffusiondata.com/
Keywords: diffusion,cloud,websockets,data
Classifier: Environment :: Other Environment
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: <3.13,>=3.8
Description-Content-Type: text/markdown
Requires-Dist: aiohttp==3.*,>=3.9.0
Requires-Dist: attrs<24.0,>=21.4.0
Requires-Dist: cbor2<5.8.0,==5.*,>=5.1.2
Requires-Dist: stringcase==1.*,>=1.2.0
Requires-Dist: structlog==21.*,>=21.5.0
Requires-Dist: typing-extensions==4.*,>=4.0.1
Requires-Dist: pydantic!=1.10.20,<3.0.0,>=1.9.0
Requires-Dist: diffusion-core==0.*,>=0.0.68
Provides-Extra: telemetry
Requires-Dist: opentelemetry-instrumentation==0.*,>=0.53b1; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-aiohttp-client==0.*,>=0.53b1; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-asyncio==0.*,>=0.53b1; extra == "telemetry"
Requires-Dist: opentelemetry-sdk==1.*,>=1.12.0; extra == "telemetry"
Requires-Dist: opentelemetry-exporter-otlp==1.*,>=1.33.1; extra == "telemetry"
Requires-Dist: psutil==7.*,>=7.0.0; extra == "telemetry"
Provides-Extra: telemetry-metrics
Requires-Dist: opentelemetry-instrumentation-system-metrics==0.*; extra == "telemetry-metrics"
Provides-Extra: websockets
Requires-Dist: websockets>=13.1; extra == "websockets"
Provides-Extra: uvloop
Requires-Dist: uvloop==0.*,>=0.19.0; ((sys_platform == "linux" or sys_platform == "darwin" or sys_platform == "macos") and python_version < "3.14") and extra == "uvloop"
Requires-Dist: winloop==0.*,>=0.3.1; (sys_platform == "windows" and python_version < "3.14" and python_version > "3.8") and extra == "uvloop"
Provides-Extra: pycddl
Requires-Dist: pycddl>=0.6.4; extra == "pycddl"

# Python SDK for Diffusion

The Diffusion Python library allows Python applications to interact with a Diffusion server.


## Supported Python Versions

The Diffusion Python SDK 6.12.2 officially supports the following interpreters:

Supported Interpreters:

* CPython 3.8.6 or later

* CPython 3.9.0 or later

* CPython 3.10.0 or later

* CPython 3.11.0 or later

* CPython 3.12.0 or later

Supported Platforms:

* MacOS 10.13-11.5
* Windows Intel 64-bit
* Any Linux supported by the [ManyLinux 2010/2014](https://github.com/pypa/manylinux) binary wheel standard.

We recommend using the latest available patch version of the Python interpreter.

## Installing the Diffusion client

The easiest way to install the latest version is:

```shell
$ pip install diffusion
```

It is possible to install a specific version, for example if you need one that works with the previous version of the Diffusion server:

```shell
$ pip install "diffusion==6.12.2"
```

Alternatively, the package is also available in the `clients` directory of the Diffusion installation:

```shell
$ pip install clients/python/diffusion-6.12.2-py3-none-any.whl
```

## Current Capabilities

- Session:
      - Establish a session
      - Send user ping
      - Receive system ping
      - Session factory
      - SSL Context
      - Retry strategies
- Messaging:
      - Register request handler
      - Send request to path
      - Send request to session
      - Send request to filter
      - Register filter message stream
- Control:
      - Session trees
      - Topic metrics
      - Session metrics
- Topics:
      - Topic subscriptions
      - Topic creation
      - Topic creation with initial topic value
      - Topic removal
      - Topic stream handlers
      - Topic update
      - Topic constraints
      - Fetch queries
- Time Series
      - Edit
      - Append
      - Range queries
