Skip to content

Commit 74c05e0

Browse files
committed
Progress towards passing lint
1 parent a97247c commit 74c05e0

File tree

3 files changed

+142
-76
lines changed

3 files changed

+142
-76
lines changed

README.rst

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,51 @@ Getting Started
2828
import uuid
2929
3030
from vws import VWS, CloudRecoService
31+
from vws.reports import QueryResult
3132
32-
server_access_key = "[server-access-key]"
33-
server_secret_key = "[server-secret-key]"
34-
client_access_key = "[client-access-key]"
35-
client_secret_key = "[client-secret-key]"
36-
37-
vws_client = VWS(
38-
server_access_key=server_access_key,
39-
server_secret_key=server_secret_key,
40-
)
41-
cloud_reco_client = CloudRecoService(
42-
client_access_key=client_access_key,
43-
client_secret_key=client_secret_key,
44-
)
45-
46-
name = "my_image_name_" + uuid.uuid4().hex
47-
48-
image = pathlib.Path("high_quality_image.jpg")
49-
with image.open(mode="rb") as my_image_file:
50-
target_id = vws_client.add_target(
51-
name=name,
52-
width=1,
53-
image=my_image_file,
54-
active_flag=True,
55-
application_metadata=None,
33+
34+
def add_target() -> str:
35+
"""Add a target to VWS and return its ID."""
36+
server_access_key = "[server-access-key]"
37+
server_secret_key = "[server-secret-key]"
38+
vws_client = VWS(
39+
server_access_key=server_access_key,
40+
server_secret_key=server_secret_key,
41+
)
42+
name = "my_image_name_" + uuid.uuid4().hex
43+
44+
image = pathlib.Path("high_quality_image.jpg")
45+
with image.open(mode="rb") as my_image_file:
46+
target_id = vws_client.add_target(
47+
name=name,
48+
width=1,
49+
image=my_image_file,
50+
active_flag=True,
51+
application_metadata=None,
52+
)
53+
vws_client.wait_for_target_processed(target_id=target_id)
54+
55+
return target_id
56+
57+
58+
def get_matching_targets() -> list[QueryResult]:
59+
"""Query VWS for matching targets."""
60+
client_access_key = "[client-access-key]"
61+
client_secret_key = "[client-secret-key]"
62+
63+
cloud_reco_client = CloudRecoService(
64+
client_access_key=client_access_key,
65+
client_secret_key=client_secret_key,
5666
)
57-
vws_client.wait_for_target_processed(target_id=target_id)
58-
matching_targets = cloud_reco_client.query(image=my_image_file)
5967
60-
assert matching_targets[0].target_id == target_id
61-
a = 1
68+
image = pathlib.Path("high_quality_image.jpg")
69+
with image.open(mode="rb") as my_image_file:
70+
return cloud_reco_client.query(image=my_image_file)
71+
72+
73+
TARGET_ID = add_target()
74+
MATCHING_TARGETS = get_matching_targets()
75+
assert MATCHING_TARGETS[0].target_id == TARGET_ID
6276
6377
Full Documentation
6478
------------------

conftest.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Setup for Sybil."""
22

33
import io
4+
import sys
45
from collections.abc import Generator
56
from doctest import ELLIPSIS
67
from pathlib import Path
@@ -12,9 +13,11 @@
1213
from sybil import Sybil
1314
from sybil.parsers.rest import (
1415
ClearNamespaceParser,
16+
CodeBlockParser,
1517
DocTestParser,
1618
PythonCodeBlockParser,
1719
)
20+
from sybil_extras.evaluators.shell_evaluator import ShellCommandEvaluator
1821

1922

2023
def pytest_collection_modifyitems(items: list[pytest.Item]) -> None:
@@ -67,5 +70,33 @@ def mock_vws() -> Generator[None, None, None]:
6770
PythonCodeBlockParser(),
6871
],
6972
patterns=["*.rst", "*.py"],
70-
fixtures=["make_image_file", "mock_vws"],
7173
).pytest()
74+
75+
run_code_sybil = Sybil(
76+
parsers=[
77+
DocTestParser(optionflags=ELLIPSIS),
78+
PythonCodeBlockParser(),
79+
],
80+
patterns=["*.rst", "*.py"],
81+
fixtures=["make_image_file", "mock_vws"],
82+
)
83+
84+
pytest_sybil = Sybil(
85+
parsers=[
86+
CodeBlockParser(
87+
language="python",
88+
evaluator=ShellCommandEvaluator(
89+
args=[sys.executable, "-m", "pytest"],
90+
tempfile_suffixes=[".py"],
91+
pad_file=True,
92+
write_to_file=False,
93+
),
94+
),
95+
],
96+
patterns=["*.rst"],
97+
fixtures=["make_image_file"],
98+
)
99+
100+
sybils = run_code_sybil + pytest_sybil
101+
102+
pytest_collect_file = sybils.pytest()

docs/source/index.rst

Lines changed: 68 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -24,37 +24,51 @@ See the :doc:`api-reference` for full usage details.
2424
import uuid
2525
2626
from vws import VWS, CloudRecoService
27+
from vws.reports import QueryResult
2728
28-
server_access_key = "[server-access-key]"
29-
server_secret_key = "[server-secret-key]"
30-
client_access_key = "[client-access-key]"
31-
client_secret_key = "[client-secret-key]"
32-
33-
vws_client = VWS(
34-
server_access_key=server_access_key,
35-
server_secret_key=server_secret_key,
36-
)
37-
cloud_reco_client = CloudRecoService(
38-
client_access_key=client_access_key,
39-
client_secret_key=client_secret_key,
40-
)
41-
42-
name = "my_image_name_" + uuid.uuid4().hex
43-
44-
image = pathlib.Path("high_quality_image.jpg")
45-
with image.open(mode="rb") as my_image_file:
46-
target_id = vws_client.add_target(
47-
name=name,
48-
width=1,
49-
image=my_image_file,
50-
active_flag=True,
51-
application_metadata=None,
29+
30+
def add_target() -> str:
31+
"""Add a target to VWS and return its ID."""
32+
server_access_key = "[server-access-key]"
33+
server_secret_key = "[server-secret-key]"
34+
vws_client = VWS(
35+
server_access_key=server_access_key,
36+
server_secret_key=server_secret_key,
37+
)
38+
name = "my_image_name_" + uuid.uuid4().hex
39+
40+
image = pathlib.Path("high_quality_image.jpg")
41+
with image.open(mode="rb") as my_image_file:
42+
target_id = vws_client.add_target(
43+
name=name,
44+
width=1,
45+
image=my_image_file,
46+
active_flag=True,
47+
application_metadata=None,
48+
)
49+
vws_client.wait_for_target_processed(target_id=target_id)
50+
51+
return target_id
52+
53+
54+
def get_matching_targets() -> list[QueryResult]:
55+
"""Query VWS for matching targets."""
56+
client_access_key = "[client-access-key]"
57+
client_secret_key = "[client-secret-key]"
58+
59+
cloud_reco_client = CloudRecoService(
60+
client_access_key=client_access_key,
61+
client_secret_key=client_secret_key,
5262
)
53-
vws_client.wait_for_target_processed(target_id=target_id)
54-
matching_targets = cloud_reco_client.query(image=my_image_file)
5563
56-
assert matching_targets[0].target_id == target_id
57-
a = 1
64+
image = pathlib.Path("high_quality_image.jpg")
65+
with image.open(mode="rb") as my_image_file:
66+
return cloud_reco_client.query(image=my_image_file)
67+
68+
69+
TARGET_ID = add_target()
70+
MATCHING_TARGETS = get_matching_targets()
71+
assert MATCHING_TARGETS[0].target_id == TARGET_ID
5872
5973
Testing
6074
-------
@@ -78,27 +92,34 @@ To write unit tests for code which uses this library, without using your Vuforia
7892
7993
from vws import VWS, CloudRecoService
8094
81-
with MockVWS() as mock:
82-
database = VuforiaDatabase()
83-
mock.add_database(database=database)
84-
vws_client = VWS(
85-
server_access_key=database.server_access_key,
86-
server_secret_key=database.server_secret_key,
87-
)
88-
cloud_reco_client = CloudRecoService(
89-
client_access_key=database.client_access_key,
90-
client_secret_key=database.client_secret_key,
91-
)
9295
93-
image = pathlib.Path("high_quality_image.jpg")
94-
with image.open(mode="rb") as my_image_file:
95-
target_id = vws_client.add_target(
96-
name="example_image_name",
97-
width=1,
98-
image=my_image_file,
99-
application_metadata=None,
100-
active_flag=True,
96+
def test_add_target() -> None:
97+
"""Test adding a target to VWS."""
98+
with MockVWS() as mock:
99+
database = VuforiaDatabase()
100+
mock.add_database(database=database)
101+
vws_client = VWS(
102+
server_access_key=database.server_access_key,
103+
server_secret_key=database.server_secret_key,
101104
)
105+
cloud_reco_client = CloudRecoService(
106+
client_access_key=database.client_access_key,
107+
client_secret_key=database.client_secret_key,
108+
)
109+
110+
image = pathlib.Path("high_quality_image.jpg")
111+
with image.open(mode="rb") as my_image_file:
112+
target_id = vws_client.add_target(
113+
name="example_image_name",
114+
width=1,
115+
image=my_image_file,
116+
application_metadata=None,
117+
active_flag=True,
118+
)
119+
120+
vws_client.wait_for_target_processed(target_id=target_id)
121+
matching_targets = cloud_reco_client.query(image=my_image_file)
122+
assert matching_targets[0].target_id == target_id
102123
103124
There are some differences between the mock and the real Vuforia.
104125
See https://vws-python-mock.readthedocs.io/en/latest/differences-to-vws.html for details.

0 commit comments

Comments
 (0)