visionai-sdk-python 2.2.0.dev3__tar.gz → 2.2.0.dev4__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.
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/.gitignore +2 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/PKG-INFO +4 -3
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/README.md +3 -2
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/pyproject.toml +3 -0
- visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples/__init__.py +28 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/PKG-INFO +4 -3
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/SOURCES.txt +10 -9
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/scm_file_list.json +9 -8
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/scm_version.json +2 -2
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/relay/test_protocol.py +7 -8
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/.github/dependabot.yml +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/.github/workflows/ci.yml +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/.github/workflows/publish.yml +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/setup.cfg +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/_base.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/_jwt_verifier.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/_request_attribution.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/_source_header.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/async_client.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/_mixin.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/async_resource.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/credentials.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/models.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/auth/resource.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/client.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/constants.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/endpoints.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/exceptions.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/instrumentation.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/py.typed +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/relay/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/error_connection.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/error_request.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/heartbeat.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/register.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/registered.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/request.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/response.json +0 -0
- {visionai_sdk_python-2.2.0.dev3/tests/relay/fixtures/adr → visionai_sdk_python-2.2.0.dev4/src/visionai_sdk_python/relay/examples}/response_text.json +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/relay/protocol.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/_mixin.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/async_resource.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/models.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/preprocess.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/vlm/resource.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/dependency_links.txt +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/requires.txt +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python.egg-info/top_level.txt +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/constants.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/relay/__init__.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test__base.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_async_client.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_client.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_credentials.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_instrumentation.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_request.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_vlm_preprocess.py +0 -0
- {visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: visionai-sdk-python
|
|
3
|
-
Version: 2.2.0.
|
|
3
|
+
Version: 2.2.0.dev4
|
|
4
4
|
Summary: VisionAI SDK for Python
|
|
5
5
|
Author-email: Tony Yang <tonyyang@linkervision.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -170,8 +170,9 @@ authentication wins. `vlm_url` is optional for clients that only authenticate.
|
|
|
170
170
|
platform-edge-agent: the frame models, the constants and `parse_agent_frame()` /
|
|
171
171
|
`parse_relay_frame()` / `dump_frame()`. The spec is platform-service's
|
|
172
172
|
`docs/adr/0001-relay-protocol.md`; both sides import this module instead of keeping a
|
|
173
|
-
copy
|
|
174
|
-
|
|
173
|
+
copy. The ADR's JSON examples ship with it (`visionai_sdk_python.relay.examples`:
|
|
174
|
+
`example(name)` / `example_text(name)`), so every implementation tests against the same
|
|
175
|
+
frames. It is internal to the platform and not a public API.
|
|
175
176
|
|
|
176
177
|
## VLM Inference
|
|
177
178
|
|
|
@@ -152,8 +152,9 @@ authentication wins. `vlm_url` is optional for clients that only authenticate.
|
|
|
152
152
|
platform-edge-agent: the frame models, the constants and `parse_agent_frame()` /
|
|
153
153
|
`parse_relay_frame()` / `dump_frame()`. The spec is platform-service's
|
|
154
154
|
`docs/adr/0001-relay-protocol.md`; both sides import this module instead of keeping a
|
|
155
|
-
copy
|
|
156
|
-
|
|
155
|
+
copy. The ADR's JSON examples ship with it (`visionai_sdk_python.relay.examples`:
|
|
156
|
+
`example(name)` / `example_text(name)`), so every implementation tests against the same
|
|
157
|
+
frames. It is internal to the platform and not a public API.
|
|
157
158
|
|
|
158
159
|
## VLM Inference
|
|
159
160
|
|
|
@@ -32,6 +32,9 @@ build-backend = "setuptools.build_meta"
|
|
|
32
32
|
|
|
33
33
|
[tool.setuptools_scm]
|
|
34
34
|
|
|
35
|
+
[tool.setuptools.package-data]
|
|
36
|
+
"visionai_sdk_python.relay.examples" = ["*.json"]
|
|
37
|
+
|
|
35
38
|
[tool.uv]
|
|
36
39
|
# Mitigate supply chain attacks. Kept in sync with
|
|
37
40
|
# .github/dependabot.yml's cooldown.default-days (3 days, matching the
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""The ADR's JSON examples, shipped so every implementation tests against the same frames.
|
|
2
|
+
|
|
3
|
+
``example("register")`` is the parsed object, ``example_text("register")`` the wire text.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import json
|
|
7
|
+
from importlib.resources import files
|
|
8
|
+
|
|
9
|
+
NAMES = (
|
|
10
|
+
"register",
|
|
11
|
+
"registered",
|
|
12
|
+
"heartbeat",
|
|
13
|
+
"request",
|
|
14
|
+
"response",
|
|
15
|
+
"response_text",
|
|
16
|
+
"error_request",
|
|
17
|
+
"error_connection",
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def example_text(name: str) -> str:
|
|
22
|
+
"""One ADR example as the text that goes over the wire."""
|
|
23
|
+
return (files(__package__) / f"{name}.json").read_text(encoding="utf-8")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def example(name: str) -> dict:
|
|
27
|
+
"""One ADR example as a dict, for building or comparing frames in tests."""
|
|
28
|
+
return json.loads(example_text(name))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: visionai-sdk-python
|
|
3
|
-
Version: 2.2.0.
|
|
3
|
+
Version: 2.2.0.dev4
|
|
4
4
|
Summary: VisionAI SDK for Python
|
|
5
5
|
Author-email: Tony Yang <tonyyang@linkervision.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -170,8 +170,9 @@ authentication wins. `vlm_url` is optional for clients that only authenticate.
|
|
|
170
170
|
platform-edge-agent: the frame models, the constants and `parse_agent_frame()` /
|
|
171
171
|
`parse_relay_frame()` / `dump_frame()`. The spec is platform-service's
|
|
172
172
|
`docs/adr/0001-relay-protocol.md`; both sides import this module instead of keeping a
|
|
173
|
-
copy
|
|
174
|
-
|
|
173
|
+
copy. The ADR's JSON examples ship with it (`visionai_sdk_python.relay.examples`:
|
|
174
|
+
`example(name)` / `example_text(name)`), so every implementation tests against the same
|
|
175
|
+
frames. It is internal to the platform and not a public API.
|
|
175
176
|
|
|
176
177
|
## VLM Inference
|
|
177
178
|
|
|
@@ -32,6 +32,15 @@ src/visionai_sdk_python/auth/models.py
|
|
|
32
32
|
src/visionai_sdk_python/auth/resource.py
|
|
33
33
|
src/visionai_sdk_python/relay/__init__.py
|
|
34
34
|
src/visionai_sdk_python/relay/protocol.py
|
|
35
|
+
src/visionai_sdk_python/relay/examples/__init__.py
|
|
36
|
+
src/visionai_sdk_python/relay/examples/error_connection.json
|
|
37
|
+
src/visionai_sdk_python/relay/examples/error_request.json
|
|
38
|
+
src/visionai_sdk_python/relay/examples/heartbeat.json
|
|
39
|
+
src/visionai_sdk_python/relay/examples/register.json
|
|
40
|
+
src/visionai_sdk_python/relay/examples/registered.json
|
|
41
|
+
src/visionai_sdk_python/relay/examples/request.json
|
|
42
|
+
src/visionai_sdk_python/relay/examples/response.json
|
|
43
|
+
src/visionai_sdk_python/relay/examples/response_text.json
|
|
35
44
|
src/visionai_sdk_python/vlm/__init__.py
|
|
36
45
|
src/visionai_sdk_python/vlm/_mixin.py
|
|
37
46
|
src/visionai_sdk_python/vlm/async_resource.py
|
|
@@ -48,12 +57,4 @@ tests/test_instrumentation.py
|
|
|
48
57
|
tests/test_request.py
|
|
49
58
|
tests/test_vlm_preprocess.py
|
|
50
59
|
tests/relay/__init__.py
|
|
51
|
-
tests/relay/test_protocol.py
|
|
52
|
-
tests/relay/fixtures/adr/error_connection.json
|
|
53
|
-
tests/relay/fixtures/adr/error_request.json
|
|
54
|
-
tests/relay/fixtures/adr/heartbeat.json
|
|
55
|
-
tests/relay/fixtures/adr/register.json
|
|
56
|
-
tests/relay/fixtures/adr/registered.json
|
|
57
|
-
tests/relay/fixtures/adr/request.json
|
|
58
|
-
tests/relay/fixtures/adr/response.json
|
|
59
|
-
tests/relay/fixtures/adr/response_text.json
|
|
60
|
+
tests/relay/test_protocol.py
|
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
"src/visionai_sdk_python/instrumentation.py",
|
|
26
26
|
"src/visionai_sdk_python/py.typed",
|
|
27
27
|
"src/visionai_sdk_python/relay/__init__.py",
|
|
28
|
+
"src/visionai_sdk_python/relay/examples/__init__.py",
|
|
29
|
+
"src/visionai_sdk_python/relay/examples/error_connection.json",
|
|
30
|
+
"src/visionai_sdk_python/relay/examples/error_request.json",
|
|
31
|
+
"src/visionai_sdk_python/relay/examples/heartbeat.json",
|
|
32
|
+
"src/visionai_sdk_python/relay/examples/register.json",
|
|
33
|
+
"src/visionai_sdk_python/relay/examples/registered.json",
|
|
34
|
+
"src/visionai_sdk_python/relay/examples/request.json",
|
|
35
|
+
"src/visionai_sdk_python/relay/examples/response.json",
|
|
36
|
+
"src/visionai_sdk_python/relay/examples/response_text.json",
|
|
28
37
|
"src/visionai_sdk_python/relay/protocol.py",
|
|
29
38
|
"src/visionai_sdk_python/vlm/__init__.py",
|
|
30
39
|
"src/visionai_sdk_python/vlm/_mixin.py",
|
|
@@ -35,14 +44,6 @@
|
|
|
35
44
|
"tests/__init__.py",
|
|
36
45
|
"tests/constants.py",
|
|
37
46
|
"tests/relay/__init__.py",
|
|
38
|
-
"tests/relay/fixtures/adr/error_connection.json",
|
|
39
|
-
"tests/relay/fixtures/adr/error_request.json",
|
|
40
|
-
"tests/relay/fixtures/adr/heartbeat.json",
|
|
41
|
-
"tests/relay/fixtures/adr/register.json",
|
|
42
|
-
"tests/relay/fixtures/adr/registered.json",
|
|
43
|
-
"tests/relay/fixtures/adr/request.json",
|
|
44
|
-
"tests/relay/fixtures/adr/response.json",
|
|
45
|
-
"tests/relay/fixtures/adr/response_text.json",
|
|
46
47
|
"tests/relay/test_protocol.py",
|
|
47
48
|
"tests/test__base.py",
|
|
48
49
|
"tests/test_async_client.py",
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/relay/test_protocol.py
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"""The relay wire format: the ADR's JSON examples parse on both sides, bad frames say why."""
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
|
-
from pathlib import Path
|
|
5
4
|
|
|
6
5
|
import pytest
|
|
7
6
|
|
|
@@ -18,13 +17,8 @@ from visionai_sdk_python.relay import (
|
|
|
18
17
|
parse_agent_frame,
|
|
19
18
|
parse_relay_frame,
|
|
20
19
|
)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def example(name: str) -> str:
|
|
26
|
-
"""One of the ADR's JSON examples, as the text that goes over the wire."""
|
|
27
|
-
return (FIXTURES / f"{name}.json").read_text()
|
|
20
|
+
from visionai_sdk_python.relay.examples import NAMES
|
|
21
|
+
from visionai_sdk_python.relay.examples import example_text as example
|
|
28
22
|
|
|
29
23
|
|
|
30
24
|
@pytest.mark.parametrize(
|
|
@@ -174,3 +168,8 @@ def test_dump_frame_drops_none_fields():
|
|
|
174
168
|
)
|
|
175
169
|
def test_workspace_id_format(value, ok):
|
|
176
170
|
assert is_workspace_id(value) is ok
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def test_every_shipped_example_is_valid_json_with_a_type():
|
|
174
|
+
for name in NAMES:
|
|
175
|
+
assert isinstance(json.loads(example(name))["type"], str), name
|
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/.github/workflows/publish.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/_base.py
RENAMED
|
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
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/src/visionai_sdk_python/py.typed
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_async_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_instrumentation.py
RENAMED
|
File without changes
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev3 → visionai_sdk_python-2.2.0.dev4}/tests/test_vlm_preprocess.py
RENAMED
|
File without changes
|
|
File without changes
|