threadify-sdk 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {threadify_sdk-0.2.0/threadify_sdk.egg-info → threadify_sdk-0.2.2}/PKG-INFO +9 -8
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/README.md +7 -6
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/pyproject.toml +2 -2
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/models.py +2 -1
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/otel_exporter.py +1 -1
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/thread.py +1 -1
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2/threadify_sdk.egg-info}/PKG-INFO +9 -8
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/CHANGELOG.md +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/LICENSE +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/MANIFEST.in +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/setup.cfg +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_client.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_connection.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_data_retriever.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_models.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_notification.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_step.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/tests/test_thread.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/__init__.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/client.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/connection.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/data_retriever.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/notification.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify/step.py +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify_sdk.egg-info/SOURCES.txt +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify_sdk.egg-info/dependency_links.txt +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify_sdk.egg-info/requires.txt +0 -0
- {threadify_sdk-0.2.0 → threadify_sdk-0.2.2}/threadify_sdk.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: threadify-sdk
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary: Python SDK for
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Python SDK for Threadify — service-delivery intelligence. Track every customer request from start to finish across every system, team, and partner. Visit: https://threadify.dev
|
|
5
5
|
Author-email: Threadify Team <team@threadify.dev>
|
|
6
6
|
License: MIT
|
|
7
7
|
Keywords: threadify,workflow,orchestration,websocket,graphql
|
|
@@ -27,7 +27,10 @@ Dynamic: license-file
|
|
|
27
27
|
|
|
28
28
|
# Threadify Python SDK
|
|
29
29
|
|
|
30
|
-
Python SDK for
|
|
30
|
+
Python SDK for [Threadify](https://threadify.dev) — service-delivery intelligence that tracks every customer request from start to finish across every system, team, and partner.
|
|
31
|
+
|
|
32
|
+
- **Documentation:** [https://docs.threadify.dev](https://docs.threadify.dev)
|
|
33
|
+
- **Create an account:** [https://threadify.dev](https://threadify.dev)
|
|
31
34
|
|
|
32
35
|
## Installation
|
|
33
36
|
|
|
@@ -54,14 +57,13 @@ async def main():
|
|
|
54
57
|
conn = await Threadify.connect(
|
|
55
58
|
"your-api-key",
|
|
56
59
|
service_name="orders-service",
|
|
57
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
58
60
|
)
|
|
59
61
|
except Exception as e:
|
|
60
62
|
logging.error(f"Failed to connect: {e}")
|
|
61
63
|
return
|
|
62
64
|
|
|
63
65
|
try:
|
|
64
|
-
thread = await conn.start(
|
|
66
|
+
thread = await conn.start("Order-123")
|
|
65
67
|
|
|
66
68
|
# Easy chaining!
|
|
67
69
|
await (
|
|
@@ -79,7 +81,7 @@ if __name__ == "__main__":
|
|
|
79
81
|
asyncio.run(main())
|
|
80
82
|
```
|
|
81
83
|
|
|
82
|
-
`ws_url`
|
|
84
|
+
`ws_url` defaults to `wss://eng.threadify.dev/threads`. Override it if you are using a self-hosted or regional endpoint.
|
|
83
85
|
|
|
84
86
|
## Configuration
|
|
85
87
|
|
|
@@ -88,7 +90,7 @@ if __name__ == "__main__":
|
|
|
88
90
|
Use keyword arguments with `Threadify.connect(...)`:
|
|
89
91
|
|
|
90
92
|
- `service_name`
|
|
91
|
-
- `ws_url` (
|
|
93
|
+
- `ws_url` (optional, defaults to production)
|
|
92
94
|
- `graphql_url`
|
|
93
95
|
- `debug`
|
|
94
96
|
- `max_in_flight`
|
|
@@ -102,7 +104,6 @@ from threadify import Threadify
|
|
|
102
104
|
conn = await Threadify.connect(
|
|
103
105
|
"your-api-key",
|
|
104
106
|
service_name="inventory-service",
|
|
105
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
106
107
|
debug=True,
|
|
107
108
|
)
|
|
108
109
|
```
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Threadify Python SDK
|
|
2
2
|
|
|
3
|
-
Python SDK for
|
|
3
|
+
Python SDK for [Threadify](https://threadify.dev) — service-delivery intelligence that tracks every customer request from start to finish across every system, team, and partner.
|
|
4
|
+
|
|
5
|
+
- **Documentation:** [https://docs.threadify.dev](https://docs.threadify.dev)
|
|
6
|
+
- **Create an account:** [https://threadify.dev](https://threadify.dev)
|
|
4
7
|
|
|
5
8
|
## Installation
|
|
6
9
|
|
|
@@ -27,14 +30,13 @@ async def main():
|
|
|
27
30
|
conn = await Threadify.connect(
|
|
28
31
|
"your-api-key",
|
|
29
32
|
service_name="orders-service",
|
|
30
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
31
33
|
)
|
|
32
34
|
except Exception as e:
|
|
33
35
|
logging.error(f"Failed to connect: {e}")
|
|
34
36
|
return
|
|
35
37
|
|
|
36
38
|
try:
|
|
37
|
-
thread = await conn.start(
|
|
39
|
+
thread = await conn.start("Order-123")
|
|
38
40
|
|
|
39
41
|
# Easy chaining!
|
|
40
42
|
await (
|
|
@@ -52,7 +54,7 @@ if __name__ == "__main__":
|
|
|
52
54
|
asyncio.run(main())
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
`ws_url`
|
|
57
|
+
`ws_url` defaults to `wss://eng.threadify.dev/threads`. Override it if you are using a self-hosted or regional endpoint.
|
|
56
58
|
|
|
57
59
|
## Configuration
|
|
58
60
|
|
|
@@ -61,7 +63,7 @@ if __name__ == "__main__":
|
|
|
61
63
|
Use keyword arguments with `Threadify.connect(...)`:
|
|
62
64
|
|
|
63
65
|
- `service_name`
|
|
64
|
-
- `ws_url` (
|
|
66
|
+
- `ws_url` (optional, defaults to production)
|
|
65
67
|
- `graphql_url`
|
|
66
68
|
- `debug`
|
|
67
69
|
- `max_in_flight`
|
|
@@ -75,7 +77,6 @@ from threadify import Threadify
|
|
|
75
77
|
conn = await Threadify.connect(
|
|
76
78
|
"your-api-key",
|
|
77
79
|
service_name="inventory-service",
|
|
78
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
79
80
|
debug=True,
|
|
80
81
|
)
|
|
81
82
|
```
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "threadify-sdk"
|
|
7
|
-
version = "0.2.
|
|
8
|
-
description = "Python SDK for
|
|
7
|
+
version = "0.2.2"
|
|
8
|
+
description = "Python SDK for Threadify — service-delivery intelligence. Track every customer request from start to finish across every system, team, and partner. Visit: https://threadify.dev"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
license = {text = "MIT"}
|
|
@@ -7,6 +7,7 @@ from typing import Any
|
|
|
7
7
|
# --- Constants ---
|
|
8
8
|
|
|
9
9
|
DEFAULT_CONNECT_TIMEOUT = 10.0 # seconds
|
|
10
|
+
DEFAULT_WS_URL = "wss://eng.threadify.dev/threads"
|
|
10
11
|
DEFAULT_REQUEST_TIMEOUT = 10.0
|
|
11
12
|
DEFAULT_WAIT_TIMEOUT = 5.0
|
|
12
13
|
DEFAULT_MAX_IN_FLIGHT = 10
|
|
@@ -113,7 +114,7 @@ class ConnectOptions:
|
|
|
113
114
|
"""Configuration for connecting to the Threadify Engine."""
|
|
114
115
|
|
|
115
116
|
service_name: str = ""
|
|
116
|
-
ws_url: str =
|
|
117
|
+
ws_url: str = DEFAULT_WS_URL
|
|
117
118
|
graphql_url: str = ""
|
|
118
119
|
debug: bool = False
|
|
119
120
|
max_in_flight: int = DEFAULT_MAX_IN_FLIGHT
|
|
@@ -50,7 +50,7 @@ class ThreadifySpanExporter(_SpanExporterBase):
|
|
|
50
50
|
from threadify import Threadify
|
|
51
51
|
|
|
52
52
|
conn = await Threadify.connect("api-key", service_name="my-service", ...)
|
|
53
|
-
thread = await conn.start(
|
|
53
|
+
thread = await conn.start("Order-123")
|
|
54
54
|
|
|
55
55
|
exporter = thread.create_span_exporter(options={"refs": ["orderId"]})
|
|
56
56
|
|
|
@@ -50,7 +50,7 @@ class ThreadInstance:
|
|
|
50
50
|
|
|
51
51
|
Usage::
|
|
52
52
|
|
|
53
|
-
thread = await conn.start(
|
|
53
|
+
thread = await conn.start("Order-123")
|
|
54
54
|
step = thread.step("order_placed")
|
|
55
55
|
result = await step.add_context({"orderId": "ORD-123"}).success("Order received")
|
|
56
56
|
await thread.complete("All done")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: threadify-sdk
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary: Python SDK for
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Python SDK for Threadify — service-delivery intelligence. Track every customer request from start to finish across every system, team, and partner. Visit: https://threadify.dev
|
|
5
5
|
Author-email: Threadify Team <team@threadify.dev>
|
|
6
6
|
License: MIT
|
|
7
7
|
Keywords: threadify,workflow,orchestration,websocket,graphql
|
|
@@ -27,7 +27,10 @@ Dynamic: license-file
|
|
|
27
27
|
|
|
28
28
|
# Threadify Python SDK
|
|
29
29
|
|
|
30
|
-
Python SDK for
|
|
30
|
+
Python SDK for [Threadify](https://threadify.dev) — service-delivery intelligence that tracks every customer request from start to finish across every system, team, and partner.
|
|
31
|
+
|
|
32
|
+
- **Documentation:** [https://docs.threadify.dev](https://docs.threadify.dev)
|
|
33
|
+
- **Create an account:** [https://threadify.dev](https://threadify.dev)
|
|
31
34
|
|
|
32
35
|
## Installation
|
|
33
36
|
|
|
@@ -54,14 +57,13 @@ async def main():
|
|
|
54
57
|
conn = await Threadify.connect(
|
|
55
58
|
"your-api-key",
|
|
56
59
|
service_name="orders-service",
|
|
57
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
58
60
|
)
|
|
59
61
|
except Exception as e:
|
|
60
62
|
logging.error(f"Failed to connect: {e}")
|
|
61
63
|
return
|
|
62
64
|
|
|
63
65
|
try:
|
|
64
|
-
thread = await conn.start(
|
|
66
|
+
thread = await conn.start("Order-123")
|
|
65
67
|
|
|
66
68
|
# Easy chaining!
|
|
67
69
|
await (
|
|
@@ -79,7 +81,7 @@ if __name__ == "__main__":
|
|
|
79
81
|
asyncio.run(main())
|
|
80
82
|
```
|
|
81
83
|
|
|
82
|
-
`ws_url`
|
|
84
|
+
`ws_url` defaults to `wss://eng.threadify.dev/threads`. Override it if you are using a self-hosted or regional endpoint.
|
|
83
85
|
|
|
84
86
|
## Configuration
|
|
85
87
|
|
|
@@ -88,7 +90,7 @@ if __name__ == "__main__":
|
|
|
88
90
|
Use keyword arguments with `Threadify.connect(...)`:
|
|
89
91
|
|
|
90
92
|
- `service_name`
|
|
91
|
-
- `ws_url` (
|
|
93
|
+
- `ws_url` (optional, defaults to production)
|
|
92
94
|
- `graphql_url`
|
|
93
95
|
- `debug`
|
|
94
96
|
- `max_in_flight`
|
|
@@ -102,7 +104,6 @@ from threadify import Threadify
|
|
|
102
104
|
conn = await Threadify.connect(
|
|
103
105
|
"your-api-key",
|
|
104
106
|
service_name="inventory-service",
|
|
105
|
-
ws_url="wss://eng.threadify.dev/threads",
|
|
106
107
|
debug=True,
|
|
107
108
|
)
|
|
108
109
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|