capture-runtime-client 0.4.0__py3-none-any.whl

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.
Files changed (48) hide show
  1. capture_runtime_client/__init__.py +41 -0
  2. capture_runtime_client/client.py +852 -0
  3. capture_runtime_client/codec.py +124 -0
  4. capture_runtime_client/contracts.py +272 -0
  5. capture_runtime_client/errors.py +170 -0
  6. capture_runtime_client/private/__init__.py +1 -0
  7. capture_runtime_client/private/assets/__init__.py +1 -0
  8. capture_runtime_client/private/assets/contract-set.json +1 -0
  9. capture_runtime_client/private/assets/contract-set.sha256 +1 -0
  10. capture_runtime_client/private/generated_models.py +627 -0
  11. capture_runtime_client/private/schemas/__init__.py +1 -0
  12. capture_runtime_client/private/schemas/capture-block.schema.json +151 -0
  13. capture_runtime_client/private/schemas/capture-document.schema.json +356 -0
  14. capture_runtime_client/private/schemas/capture-engine.schema.json +40 -0
  15. capture_runtime_client/private/schemas/capture-event-v2.schema.json +301 -0
  16. capture_runtime_client/private/schemas/capture-failure-v2.schema.json +40 -0
  17. capture_runtime_client/private/schemas/capture-operation-v2.schema.json +207 -0
  18. capture_runtime_client/private/schemas/capture-source.schema.json +34 -0
  19. capture_runtime_client/private/schemas/error-body-v2.schema.json +34 -0
  20. capture_runtime_client/private/schemas/error-envelope-v2.schema.json +49 -0
  21. capture_runtime_client/private/schemas/finalize-ingestion-v2.schema.json +27 -0
  22. capture_runtime_client/private/schemas/ingestion-v2.schema.json +127 -0
  23. capture_runtime_client/private/schemas/open-ingestion-v2.schema.json +79 -0
  24. capture_runtime_client/private/schemas/page-locator.schema.json +49 -0
  25. capture_runtime_client/private/schemas/partial-capture-v2.schema.json +267 -0
  26. capture_runtime_client/private/schemas/raw-capture-segment.schema.json +125 -0
  27. capture_runtime_client/private/schemas/raw-capture.schema.json +260 -0
  28. capture_runtime_client/private/schemas/report-structuring-failure-v2.schema.json +28 -0
  29. capture_runtime_client/private/schemas/runtime-artifact-descriptor-v2.schema.json +34 -0
  30. capture_runtime_client/private/schemas/runtime-installation-v2.schema.json +126 -0
  31. capture_runtime_client/private/schemas/runtime-installations-v2.schema.json +143 -0
  32. capture_runtime_client/private/schemas/runtime-model-installation-v2.schema.json +121 -0
  33. capture_runtime_client/private/schemas/runtime-model-installations-v2.schema.json +138 -0
  34. capture_runtime_client/private/schemas/runtime-model-option-v2.schema.json +80 -0
  35. capture_runtime_client/private/schemas/runtime-model-options-v2.schema.json +103 -0
  36. capture_runtime_client/private/schemas/runtime-ready.schema.json +88 -0
  37. capture_runtime_client/private/schemas/runtime-requirement-v2.schema.json +120 -0
  38. capture_runtime_client/private/schemas/runtime-requirements-v2.schema.json +137 -0
  39. capture_runtime_client/private/schemas/runtime-streaming-capabilities-v2.schema.json +64 -0
  40. capture_runtime_client/private/schemas/start-capture-v2.schema.json +59 -0
  41. capture_runtime_client/private/schemas/start-runtime-installation-v2.schema.json +26 -0
  42. capture_runtime_client/private/schemas/start-runtime-model-installation-v2.schema.json +21 -0
  43. capture_runtime_client/private/schemas/time-locator.schema.json +27 -0
  44. capture_runtime_client/py.typed +1 -0
  45. capture_runtime_client/transport.py +158 -0
  46. capture_runtime_client-0.4.0.dist-info/METADATA +18 -0
  47. capture_runtime_client-0.4.0.dist-info/RECORD +48 -0
  48. capture_runtime_client-0.4.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,64 @@
1
+ {
2
+ "$defs": {
3
+ "CaptureSourceKind": {
4
+ "enum": [
5
+ "pdf",
6
+ "image",
7
+ "audio"
8
+ ],
9
+ "title": "CaptureSourceKind",
10
+ "type": "string"
11
+ }
12
+ },
13
+ "additionalProperties": false,
14
+ "properties": {
15
+ "protocolVersion": {
16
+ "const": "2",
17
+ "default": "2",
18
+ "title": "Protocolversion",
19
+ "type": "string"
20
+ },
21
+ "captureKinds": {
22
+ "items": {
23
+ "$ref": "#/$defs/CaptureSourceKind"
24
+ },
25
+ "minItems": 1,
26
+ "title": "Capturekinds",
27
+ "type": "array"
28
+ },
29
+ "supportsProgressiveAudio": {
30
+ "default": true,
31
+ "title": "Supportsprogressiveaudio",
32
+ "type": "boolean"
33
+ },
34
+ "maxChunkBytes": {
35
+ "exclusiveMinimum": 0,
36
+ "maximum": 4194304,
37
+ "title": "Maxchunkbytes",
38
+ "type": "integer"
39
+ },
40
+ "checkpointIntervalMs": {
41
+ "exclusiveMinimum": 0,
42
+ "title": "Checkpointintervalms",
43
+ "type": "integer"
44
+ },
45
+ "heartbeatIntervalMs": {
46
+ "exclusiveMinimum": 0,
47
+ "title": "Heartbeatintervalms",
48
+ "type": "integer"
49
+ },
50
+ "stallTimeoutMs": {
51
+ "exclusiveMinimum": 0,
52
+ "title": "Stalltimeoutms",
53
+ "type": "integer"
54
+ }
55
+ },
56
+ "required": [
57
+ "maxChunkBytes",
58
+ "checkpointIntervalMs",
59
+ "heartbeatIntervalMs",
60
+ "stallTimeoutMs"
61
+ ],
62
+ "title": "RuntimeStreamingCapabilitiesV2",
63
+ "type": "object"
64
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$defs": {
3
+ "StructuringMode": {
4
+ "enum": [
5
+ "runtime",
6
+ "host"
7
+ ],
8
+ "title": "StructuringMode",
9
+ "type": "string"
10
+ }
11
+ },
12
+ "additionalProperties": false,
13
+ "properties": {
14
+ "protocolVersion": {
15
+ "const": "2",
16
+ "default": "2",
17
+ "title": "Protocolversion",
18
+ "type": "string"
19
+ },
20
+ "clientRequestId": {
21
+ "minLength": 1,
22
+ "title": "Clientrequestid",
23
+ "type": "string"
24
+ },
25
+ "ingestionId": {
26
+ "minLength": 1,
27
+ "title": "Ingestionid",
28
+ "type": "string"
29
+ },
30
+ "structuringMode": {
31
+ "$ref": "#/$defs/StructuringMode"
32
+ },
33
+ "targetLanguage": {
34
+ "anyOf": [
35
+ {
36
+ "type": "string"
37
+ },
38
+ {
39
+ "type": "null"
40
+ }
41
+ ],
42
+ "default": null,
43
+ "title": "Targetlanguage"
44
+ },
45
+ "startPolicy": {
46
+ "const": "eager",
47
+ "default": "eager",
48
+ "title": "Startpolicy",
49
+ "type": "string"
50
+ }
51
+ },
52
+ "required": [
53
+ "clientRequestId",
54
+ "ingestionId",
55
+ "structuringMode"
56
+ ],
57
+ "title": "StartCaptureV2",
58
+ "type": "object"
59
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "properties": {
4
+ "requirementId": {
5
+ "enum": [
6
+ "windowsml-ocr",
7
+ "whisper-primary",
8
+ "ollama-runtime",
9
+ "capture-ollama-model"
10
+ ],
11
+ "title": "Requirementid",
12
+ "type": "string"
13
+ },
14
+ "consent": {
15
+ "const": true,
16
+ "title": "Consent",
17
+ "type": "boolean"
18
+ }
19
+ },
20
+ "required": [
21
+ "requirementId",
22
+ "consent"
23
+ ],
24
+ "title": "StartRuntimeInstallationV2",
25
+ "type": "object"
26
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "properties": {
4
+ "optionId": {
5
+ "minLength": 1,
6
+ "title": "Optionid",
7
+ "type": "string"
8
+ },
9
+ "consent": {
10
+ "const": true,
11
+ "title": "Consent",
12
+ "type": "boolean"
13
+ }
14
+ },
15
+ "required": [
16
+ "optionId",
17
+ "consent"
18
+ ],
19
+ "title": "StartRuntimeModelInstallationV2",
20
+ "type": "object"
21
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "additionalProperties": false,
3
+ "properties": {
4
+ "kind": {
5
+ "const": "time",
6
+ "default": "time",
7
+ "title": "Kind",
8
+ "type": "string"
9
+ },
10
+ "startMs": {
11
+ "minimum": 0,
12
+ "title": "Startms",
13
+ "type": "integer"
14
+ },
15
+ "endMs": {
16
+ "exclusiveMinimum": 0,
17
+ "title": "Endms",
18
+ "type": "integer"
19
+ }
20
+ },
21
+ "required": [
22
+ "startMs",
23
+ "endMs"
24
+ ],
25
+ "title": "TimeLocator",
26
+ "type": "object"
27
+ }
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,158 @@
1
+ """Authenticated HTTP and deterministic in-memory transports."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Callable, Mapping
6
+ from dataclasses import dataclass
7
+ from typing import Any, Protocol, cast
8
+ from urllib.parse import urlsplit
9
+
10
+ import httpx
11
+
12
+ from .errors import CaptureTransportError
13
+
14
+
15
+ def validate_loopback_base_url(value: str | int) -> str:
16
+ candidate = f"http://127.0.0.1:{value}" if isinstance(value, int) else value
17
+ parsed = urlsplit(candidate)
18
+ if (
19
+ parsed.scheme != "http"
20
+ or parsed.hostname not in {"127.0.0.1", "::1"}
21
+ or not parsed.port
22
+ or parsed.username
23
+ or parsed.password
24
+ or parsed.query
25
+ or parsed.fragment
26
+ or parsed.path not in {"", "/"}
27
+ ):
28
+ raise CaptureTransportError(
29
+ "Capture Runtime URL must be an HTTP loopback origin with an explicit port.",
30
+ code="unsafe_base_url",
31
+ )
32
+ return f"http://{parsed.hostname}:{parsed.port}"
33
+
34
+
35
+ class RuntimeTransport(Protocol):
36
+ def request(self, method: str, path: str, **kwargs: Any) -> httpx.Response: ...
37
+
38
+ def stream(self, method: str, path: str, **kwargs: Any) -> Any: ...
39
+
40
+
41
+ class HttpRuntimeTransport:
42
+ def __init__(
43
+ self,
44
+ *,
45
+ base_url: str | int,
46
+ bearer_token: str,
47
+ timeout_seconds: float = 30,
48
+ client: httpx.Client | None = None,
49
+ ) -> None:
50
+ self.base_url = validate_loopback_base_url(base_url)
51
+ if not bearer_token.strip():
52
+ raise ValueError("Capture Runtime bearer token must not be empty")
53
+ self._token = bearer_token
54
+ self._client = client or httpx.Client(timeout=timeout_seconds, follow_redirects=False)
55
+ self._owns_client = client is None
56
+
57
+ def request(self, method: str, path: str, **kwargs: Any) -> httpx.Response:
58
+ headers = dict(kwargs.pop("headers", {}) or {})
59
+ headers["Authorization"] = f"Bearer {self._token}"
60
+ try:
61
+ return self._client.request(method, f"{self.base_url}{path}", headers=headers, **kwargs)
62
+ except httpx.HTTPError as error:
63
+ raise CaptureTransportError(
64
+ "Capture Runtime transport request failed.", str(error)
65
+ ) from error
66
+
67
+ def stream(self, method: str, path: str, **kwargs: Any) -> Any:
68
+ headers = dict(kwargs.pop("headers", {}) or {})
69
+ headers["Authorization"] = f"Bearer {self._token}"
70
+ try:
71
+ context = self._client.stream(
72
+ method, f"{self.base_url}{path}", headers=headers, **kwargs
73
+ )
74
+ return _HttpxStream(context)
75
+ except httpx.HTTPError as error:
76
+ raise CaptureTransportError(
77
+ "Capture Runtime transport stream failed.", str(error)
78
+ ) from error
79
+
80
+ def close(self) -> None:
81
+ if self._owns_client:
82
+ self._client.close()
83
+
84
+ def __enter__(self) -> HttpRuntimeTransport:
85
+ return self
86
+
87
+ def __exit__(self, *_args: object) -> None:
88
+ self.close()
89
+
90
+
91
+ @dataclass(frozen=True, slots=True)
92
+ class InMemoryRoute:
93
+ method: str
94
+ path: str
95
+ handler: Callable[[httpx.Request], httpx.Response]
96
+
97
+
98
+ class InMemoryRuntimeTransport:
99
+ """Small adapter for client contract tests without sockets or credentials."""
100
+
101
+ def __init__(
102
+ self,
103
+ routes: Mapping[tuple[str, str], Callable[[httpx.Request], httpx.Response]] | None = None,
104
+ ) -> None:
105
+ self._routes = dict(routes or {})
106
+
107
+ def request(self, method: str, path: str, **kwargs: Any) -> httpx.Response:
108
+ request = httpx.Request(method, f"http://capture.test{path}", **kwargs)
109
+ handler = self._routes.get((method.upper(), path))
110
+ if handler is None:
111
+ return httpx.Response(
112
+ 404,
113
+ json={"error": {"code": "not_found", "message": "Route not found."}},
114
+ request=request,
115
+ )
116
+ return handler(request)
117
+
118
+ def stream(self, method: str, path: str, **kwargs: Any) -> Any:
119
+ response = self.request(method, path, **kwargs)
120
+ return _InMemoryStream(response)
121
+
122
+
123
+ class _InMemoryStream:
124
+ def __init__(self, response: httpx.Response) -> None:
125
+ self.response = response
126
+
127
+ def __enter__(self) -> httpx.Response:
128
+ return self.response
129
+
130
+ def __exit__(self, *_args: object) -> None:
131
+ self.response.close()
132
+
133
+
134
+ class _HttpxStream:
135
+ """Map deferred httpx stream failures to the SDK transport taxonomy."""
136
+
137
+ def __init__(self, context: Any) -> None:
138
+ self._context = context
139
+
140
+ def __enter__(self) -> httpx.Response:
141
+ try:
142
+ return cast(httpx.Response, self._context.__enter__())
143
+ except httpx.HTTPError as error:
144
+ raise CaptureTransportError(
145
+ "Capture Runtime transport stream failed.", str(error)
146
+ ) from error
147
+
148
+ def __exit__(self, *args: object) -> Any:
149
+ return self._context.__exit__(*args)
150
+
151
+
152
+ __all__ = [
153
+ "HttpRuntimeTransport",
154
+ "InMemoryRoute",
155
+ "InMemoryRuntimeTransport",
156
+ "RuntimeTransport",
157
+ "validate_loopback_base_url",
158
+ ]
@@ -0,0 +1,18 @@
1
+ Metadata-Version: 2.5
2
+ Name: capture-runtime-client
3
+ Version: 0.4.0
4
+ Summary: Capture Runtime HTTP, in-memory, discovery, and protocol client SDK.
5
+ License: MIT
6
+ Requires-Python: <3.15,>=3.12
7
+ Requires-Dist: httpx<1.0.0,>=0.27.0
8
+ Requires-Dist: pydantic<3.0.0,>=2.13.4
9
+ Description-Content-Type: text/markdown
10
+
11
+ # capture-runtime-client
12
+
13
+ Backend-side Capture Runtime client SDK. It owns loopback endpoint
14
+ validation, readiness/schema-hash negotiation, authenticated HTTP and
15
+ deterministic in-memory transports, canonical v2 request methods, SSE decoding, and
16
+ redacted common errors. Generated Pydantic models are private SDK build input;
17
+ consumers import them from `capture_runtime_client`, never from a generated
18
+ contracts package.
@@ -0,0 +1,48 @@
1
+ capture_runtime_client/__init__.py,sha256=bm0yIgnJWXyMdBtloG6Q3cg5WI4ejj4VJ7IEOVTNUoc,1176
2
+ capture_runtime_client/client.py,sha256=kFkXdbWrpYHIMn7AZwKZkwaIabpwtESA8fYc7VHXpvo,34987
3
+ capture_runtime_client/codec.py,sha256=whub3Hhhnq_PT9VKRF8HB64tTZlVvs30Ktxm2lsWyMA,4359
4
+ capture_runtime_client/contracts.py,sha256=Xm-qPH4N8cl9eDUXUE0IZqIOs86Pp62acEVZSJ_mrCA,7421
5
+ capture_runtime_client/errors.py,sha256=6kAX4pvML46eirEfohYoEnlhrE9dqmQVBTvQuS5wBQ8,4977
6
+ capture_runtime_client/transport.py,sha256=GVXJg7W4QBD90M5u3XHdakkSLU8GpTpk44J7CxKyO8M,5261
7
+ capture_runtime_client/private/__init__.py,sha256=eGy1FewPqP3dCz0IIY3GVKcokF_Nq4ZtuPB-eLzNK7U,79
8
+ capture_runtime_client/private/generated_models.py,sha256=kvA1rVQAJTCKG5q2-37NqSJQwN0XwT7q8QOs3nVaQuo,21853
9
+ capture_runtime_client/private/assets/__init__.py,sha256=irUWjqjZ2DBo1-jZnZfpg4LVECR9vMsOB362AWFVjzw,55
10
+ capture_runtime_client/private/schemas/__init__.py,sha256=mbZqwM1hxtMr-eRDGYtV6YDCM3mJsA-CzbWBf7WqDN8,64
11
+ capture_runtime_client/private/schemas/capture-block.schema.json,sha256=aZPYJbCqKZdmtBmWDM4f95X0SbzkykGUuqaQ7XXuxgg,3205
12
+ capture_runtime_client/private/schemas/capture-document.schema.json,sha256=hQr9IS0EnCXaQdOGe6VHdFGmosbH5B8Rb-YPJrajUzU,8222
13
+ capture_runtime_client/private/schemas/capture-engine.schema.json,sha256=T-0KBYwRiH_KdQy6VH3PoR2fLUZWmB5WaD4mnXfsmWM,719
14
+ capture_runtime_client/private/schemas/capture-event-v2.schema.json,sha256=i45sJHsNwZ4pr8K_WLrUAR3DxqKMpmdfeO_tncJBxuo,6470
15
+ capture_runtime_client/private/schemas/capture-failure-v2.schema.json,sha256=H5B_e48RwKtgh5SEZdBXUDgqJxrTr2_8MCKUIWOIpAw,740
16
+ capture_runtime_client/private/schemas/capture-operation-v2.schema.json,sha256=QGsWYzmfwG3CHvBfLk7DN6oNQxR1NiQLafR35-cnpw4,4359
17
+ capture_runtime_client/private/schemas/capture-source.schema.json,sha256=4GtLXxu_UnG8UkykRctxrV2TdQzu7MYxg8TvqT7SCn0,636
18
+ capture_runtime_client/private/schemas/error-body-v2.schema.json,sha256=VOHKQUPuI1OK6c6nKHy1B3BcQT40NE2-SL6I-dfx-fM,600
19
+ capture_runtime_client/private/schemas/error-envelope-v2.schema.json,sha256=IeotQdcv1hEja0rKzGwFI4tnBRjpJYYBZiF2PjTsRMA,983
20
+ capture_runtime_client/private/schemas/finalize-ingestion-v2.schema.json,sha256=oi3X62-8zxe07Hwk9OUqn0D3WCSiiYOsGu250m8cqH8,537
21
+ capture_runtime_client/private/schemas/ingestion-v2.schema.json,sha256=OeMsg1hpMsyBK81lU8W-YtEm7nxFdvzLj7XZvVtCmeg,2603
22
+ capture_runtime_client/private/schemas/open-ingestion-v2.schema.json,sha256=9fWf-YYditn69Zywc9SP_-AaR51Zsgi_y5HJXOms-r0,1600
23
+ capture_runtime_client/private/schemas/page-locator.schema.json,sha256=Bs73ZGASiTmRjuFpEpZjyDdEuuYwerkLRhZLvZIePN8,915
24
+ capture_runtime_client/private/schemas/partial-capture-v2.schema.json,sha256=GRBWvlGRCpd0FiqTktzbg2a8KCM6O8JdNGVpzbIgzZg,5938
25
+ capture_runtime_client/private/schemas/raw-capture-segment.schema.json,sha256=zfgSVhfqYjYYFHnJUx74LVN1zANV1frvaMwydDepH7k,2671
26
+ capture_runtime_client/private/schemas/raw-capture.schema.json,sha256=0CWoOs7fzxdnYceUzuk-TQ7K996296eeVT960dk9bXg,5832
27
+ capture_runtime_client/private/schemas/report-structuring-failure-v2.schema.json,sha256=4iI0TuqiAl4S6dZHGXKyI8ju5bcROEFHUODn8bLnldc,554
28
+ capture_runtime_client/private/schemas/runtime-artifact-descriptor-v2.schema.json,sha256=jGlc1Xhmj1b-EiYeNaDK4EzFO1ekNTxthefJdqGjd5I,684
29
+ capture_runtime_client/private/schemas/runtime-installation-v2.schema.json,sha256=0a_EyvyOr2ncwoK6ODUWbSXltWzC-Rvd-Efio5xi26Y,2648
30
+ capture_runtime_client/private/schemas/runtime-installations-v2.schema.json,sha256=pjZiIJSSHge6hPCiyxIVXgBbYNScBtUj963N1lYCX4Q,3269
31
+ capture_runtime_client/private/schemas/runtime-model-installation-v2.schema.json,sha256=qAZPZ9pfDkhfxHKPtEmXxW3P8a9NTmRL9ZYNSlpS8aU,2521
32
+ capture_runtime_client/private/schemas/runtime-model-installations-v2.schema.json,sha256=kSaneYcOK3S29_uc3L0wTHS2hKM9bfPu4x6gyXOHerw,3137
33
+ capture_runtime_client/private/schemas/runtime-model-option-v2.schema.json,sha256=B5RGZC9gHN1Qyqym1WnMM2BOWjHpsENrTEzFXOnnuM0,1618
34
+ capture_runtime_client/private/schemas/runtime-model-options-v2.schema.json,sha256=GFGwkSS57f_yjfTifqPO09hUnnGcXMc7BXU520ct-y8,2371
35
+ capture_runtime_client/private/schemas/runtime-ready.schema.json,sha256=P_k3l9xCjjMNvOwb8f9XXUzInqJpRne_yNuXZFFR27s,1891
36
+ capture_runtime_client/private/schemas/runtime-requirement-v2.schema.json,sha256=F2U-VB_NuhMN6uUVjKSLchathZAdoYFZNktl941k1Po,2552
37
+ capture_runtime_client/private/schemas/runtime-requirements-v2.schema.json,sha256=knWrE6Bxdd7hF0_FLRLw5ncVyrDx9GDGLAY_m5RcTiY,3174
38
+ capture_runtime_client/private/schemas/runtime-streaming-capabilities-v2.schema.json,sha256=k8eRRAoYLI3Ktq9rsnEHlEsK_YgHnrYl84CEnzCnLjE,1437
39
+ capture_runtime_client/private/schemas/start-capture-v2.schema.json,sha256=1rq6vTBzYOiA4fTFovcupwC2tOQUPUYxV2dFZy4pwBI,1169
40
+ capture_runtime_client/private/schemas/start-runtime-installation-v2.schema.json,sha256=uYV_zxI9OziiaHn0ODWaEFMyMWwcSFDKu0nuPuDDnVk,515
41
+ capture_runtime_client/private/schemas/start-runtime-model-installation-v2.schema.json,sha256=Iwk0lYqsslVhvjfHVB_MoBMS5xEyAyCRO-Pqyq30X-o,388
42
+ capture_runtime_client/private/schemas/time-locator.schema.json,sha256=ewNnOUItQz_54-8ag9mwDseS2im5NNO237V8f577QDI,487
43
+ capture_runtime_client/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
44
+ capture_runtime_client/private/assets/contract-set.json,sha256=W5O8tVesygNDhrbp5HUC7-yRIQMx7Our2cRwGW01_sM,77203
45
+ capture_runtime_client/private/assets/contract-set.sha256,sha256=JZWtbJ20QvknCz7QewqyNT1kovdF_EA1RyF8E0Lltw4,66
46
+ capture_runtime_client-0.4.0.dist-info/METADATA,sha256=gqb8S6xSXcuped6fHVJsAea_Sv9p0I1U6u3Uj_SI_TU,725
47
+ capture_runtime_client-0.4.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
48
+ capture_runtime_client-0.4.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any