Skip to content

Commit 4aa172e

Browse files
feat(api): manual updates
1 parent 63d9bdf commit 4aa172e

3 files changed

Lines changed: 47 additions & 171 deletions

File tree

‎.stats.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 29
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-2e40370ce4d7d019b30d43020674bb02aaaf2a67a8916772084815c874f99950.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-9de98d1d4d2c9a431961599cb54716212c06200a919e09adedd42244038ec07b.yml
33
openapi_spec_hash: a44b7d4172c8c7cd395237738867d5cb
4-
config_hash: 472cc1adb51663e5b3d8dce16f6d29d9
4+
config_hash: ff35e224e809656528c44163aa41bebd

‎README.md‎

Lines changed: 21 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,10 @@ client = ContextDev(
4141
api_key=os.environ.get("CONTEXT_DEV_API_KEY"), # This is the default and can be omitted
4242
)
4343

44-
response = client.web.extract(
45-
schema={
46-
"type": "bar",
47-
"properties": "bar",
48-
"required": "bar",
49-
"additionalProperties": "bar",
50-
},
51-
url="https://example.com",
44+
brand = client.brand.retrieve(
45+
domain="REPLACE_ME",
5246
)
53-
print(response.data)
47+
print(brand.brand)
5448
```
5549

5650
While you can provide an `api_key` keyword argument,
@@ -73,16 +67,10 @@ client = AsyncContextDev(
7367

7468

7569
async def main() -> None:
76-
response = await client.web.extract(
77-
schema={
78-
"type": "bar",
79-
"properties": "bar",
80-
"required": "bar",
81-
"additionalProperties": "bar",
82-
},
83-
url="https://example.com",
70+
brand = await client.brand.retrieve(
71+
domain="REPLACE_ME",
8472
)
85-
print(response.data)
73+
print(brand.brand)
8674

8775

8876
asyncio.run(main())
@@ -115,16 +103,10 @@ async def main() -> None:
115103
api_key=os.environ.get("CONTEXT_DEV_API_KEY"), # This is the default and can be omitted
116104
http_client=DefaultAioHttpClient(),
117105
) as client:
118-
response = await client.web.extract(
119-
schema={
120-
"type": "bar",
121-
"properties": "bar",
122-
"required": "bar",
123-
"additionalProperties": "bar",
124-
},
125-
url="https://example.com",
106+
brand = await client.brand.retrieve(
107+
domain="REPLACE_ME",
126108
)
127-
print(response.data)
109+
print(brand.brand)
128110

129111

130112
asyncio.run(main())
@@ -177,14 +159,8 @@ from context.dev import ContextDev
177159
client = ContextDev()
178160

179161
try:
180-
client.web.extract(
181-
schema={
182-
"type": "bar",
183-
"properties": "bar",
184-
"required": "bar",
185-
"additionalProperties": "bar",
186-
},
187-
url="https://example.com",
162+
client.brand.retrieve(
163+
domain="REPLACE_ME",
188164
)
189165
except context.dev.APIConnectionError as e:
190166
print("The server could not be reached")
@@ -228,14 +204,8 @@ client = ContextDev(
228204
)
229205

230206
# Or, configure per-request:
231-
client.with_options(max_retries=5).web.extract(
232-
schema={
233-
"type": "bar",
234-
"properties": "bar",
235-
"required": "bar",
236-
"additionalProperties": "bar",
237-
},
238-
url="https://example.com",
207+
client.with_options(max_retries=5).brand.retrieve(
208+
domain="REPLACE_ME",
239209
)
240210
```
241211

@@ -259,14 +229,8 @@ client = ContextDev(
259229
)
260230

261231
# Override per-request:
262-
client.with_options(timeout=5.0).web.extract(
263-
schema={
264-
"type": "bar",
265-
"properties": "bar",
266-
"required": "bar",
267-
"additionalProperties": "bar",
268-
},
269-
url="https://example.com",
232+
client.with_options(timeout=5.0).brand.retrieve(
233+
domain="REPLACE_ME",
270234
)
271235
```
272236

@@ -308,19 +272,13 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
308272
from context.dev import ContextDev
309273

310274
client = ContextDev()
311-
response = client.web.with_raw_response.extract(
312-
schema={
313-
"type": "bar",
314-
"properties": "bar",
315-
"required": "bar",
316-
"additionalProperties": "bar",
317-
},
318-
url="https://example.com",
275+
response = client.brand.with_raw_response.retrieve(
276+
domain="REPLACE_ME",
319277
)
320278
print(response.headers.get('X-My-Header'))
321279

322-
web = response.parse() # get the object that `web.extract()` would have returned
323-
print(web.data)
280+
brand = response.parse() # get the object that `brand.retrieve()` would have returned
281+
print(brand.brand)
324282
```
325283

326284
These methods return an [`APIResponse`](https://github.com/context-dot-dev/context-python-sdk/tree/main/src/context/dev/_response.py) object.
@@ -334,14 +292,8 @@ The above interface eagerly reads the full response body when you make the reque
334292
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
335293

336294
```python
337-
with client.web.with_streaming_response.extract(
338-
schema={
339-
"type": "bar",
340-
"properties": "bar",
341-
"required": "bar",
342-
"additionalProperties": "bar",
343-
},
344-
url="https://example.com",
295+
with client.brand.with_streaming_response.retrieve(
296+
domain="REPLACE_ME",
345297
) as response:
346298
print(response.headers.get("X-My-Header"))
347299

‎tests/test_client.py‎

Lines changed: 24 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -883,36 +883,20 @@ def test_parse_retry_after_header(
883883
@mock.patch("context.dev._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
884884
@pytest.mark.respx(base_url=base_url)
885885
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: ContextDev) -> None:
886-
respx_mock.post("/web/extract").mock(side_effect=httpx.TimeoutException("Test timeout error"))
886+
respx_mock.post("/brand/retrieve").mock(side_effect=httpx.TimeoutException("Test timeout error"))
887887

888888
with pytest.raises(APITimeoutError):
889-
client.web.with_streaming_response.extract(
890-
schema={
891-
"type": "bar",
892-
"properties": "bar",
893-
"required": "bar",
894-
"additionalProperties": "bar",
895-
},
896-
url="https://example.com",
897-
).__enter__()
889+
client.brand.with_streaming_response.retrieve(domain="domain").__enter__()
898890

899891
assert _get_open_connections(client) == 0
900892

901893
@mock.patch("context.dev._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
902894
@pytest.mark.respx(base_url=base_url)
903895
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: ContextDev) -> None:
904-
respx_mock.post("/web/extract").mock(return_value=httpx.Response(500))
896+
respx_mock.post("/brand/retrieve").mock(return_value=httpx.Response(500))
905897

906898
with pytest.raises(APIStatusError):
907-
client.web.with_streaming_response.extract(
908-
schema={
909-
"type": "bar",
910-
"properties": "bar",
911-
"required": "bar",
912-
"additionalProperties": "bar",
913-
},
914-
url="https://example.com",
915-
).__enter__()
899+
client.brand.with_streaming_response.retrieve(domain="domain").__enter__()
916900
assert _get_open_connections(client) == 0
917901

918902
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -939,17 +923,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
939923
return httpx.Response(500)
940924
return httpx.Response(200)
941925

942-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
926+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
943927

944-
response = client.web.with_raw_response.extract(
945-
schema={
946-
"type": "bar",
947-
"properties": "bar",
948-
"required": "bar",
949-
"additionalProperties": "bar",
950-
},
951-
url="https://example.com",
952-
)
928+
response = client.brand.with_raw_response.retrieve(domain="domain")
953929

954930
assert response.retries_taken == failures_before_success
955931
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -971,17 +947,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
971947
return httpx.Response(500)
972948
return httpx.Response(200)
973949

974-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
950+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
975951

976-
response = client.web.with_raw_response.extract(
977-
schema={
978-
"type": "bar",
979-
"properties": "bar",
980-
"required": "bar",
981-
"additionalProperties": "bar",
982-
},
983-
url="https://example.com",
984-
extra_headers={"x-stainless-retry-count": Omit()},
952+
response = client.brand.with_raw_response.retrieve(
953+
domain="domain", extra_headers={"x-stainless-retry-count": Omit()}
985954
)
986955

987956
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
@@ -1003,17 +972,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
1003972
return httpx.Response(500)
1004973
return httpx.Response(200)
1005974

1006-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
975+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
1007976

1008-
response = client.web.with_raw_response.extract(
1009-
schema={
1010-
"type": "bar",
1011-
"properties": "bar",
1012-
"required": "bar",
1013-
"additionalProperties": "bar",
1014-
},
1015-
url="https://example.com",
1016-
extra_headers={"x-stainless-retry-count": "42"},
977+
response = client.brand.with_raw_response.retrieve(
978+
domain="domain", extra_headers={"x-stainless-retry-count": "42"}
1017979
)
1018980

1019981
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
@@ -1859,18 +1821,10 @@ async def test_parse_retry_after_header(
18591821
async def test_retrying_timeout_errors_doesnt_leak(
18601822
self, respx_mock: MockRouter, async_client: AsyncContextDev
18611823
) -> None:
1862-
respx_mock.post("/web/extract").mock(side_effect=httpx.TimeoutException("Test timeout error"))
1824+
respx_mock.post("/brand/retrieve").mock(side_effect=httpx.TimeoutException("Test timeout error"))
18631825

18641826
with pytest.raises(APITimeoutError):
1865-
await async_client.web.with_streaming_response.extract(
1866-
schema={
1867-
"type": "bar",
1868-
"properties": "bar",
1869-
"required": "bar",
1870-
"additionalProperties": "bar",
1871-
},
1872-
url="https://example.com",
1873-
).__aenter__()
1827+
await async_client.brand.with_streaming_response.retrieve(domain="domain").__aenter__()
18741828

18751829
assert _get_open_connections(async_client) == 0
18761830

@@ -1879,18 +1833,10 @@ async def test_retrying_timeout_errors_doesnt_leak(
18791833
async def test_retrying_status_errors_doesnt_leak(
18801834
self, respx_mock: MockRouter, async_client: AsyncContextDev
18811835
) -> None:
1882-
respx_mock.post("/web/extract").mock(return_value=httpx.Response(500))
1836+
respx_mock.post("/brand/retrieve").mock(return_value=httpx.Response(500))
18831837

18841838
with pytest.raises(APIStatusError):
1885-
await async_client.web.with_streaming_response.extract(
1886-
schema={
1887-
"type": "bar",
1888-
"properties": "bar",
1889-
"required": "bar",
1890-
"additionalProperties": "bar",
1891-
},
1892-
url="https://example.com",
1893-
).__aenter__()
1839+
await async_client.brand.with_streaming_response.retrieve(domain="domain").__aenter__()
18941840
assert _get_open_connections(async_client) == 0
18951841

18961842
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -1917,17 +1863,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
19171863
return httpx.Response(500)
19181864
return httpx.Response(200)
19191865

1920-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
1866+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
19211867

1922-
response = await client.web.with_raw_response.extract(
1923-
schema={
1924-
"type": "bar",
1925-
"properties": "bar",
1926-
"required": "bar",
1927-
"additionalProperties": "bar",
1928-
},
1929-
url="https://example.com",
1930-
)
1868+
response = await client.brand.with_raw_response.retrieve(domain="domain")
19311869

19321870
assert response.retries_taken == failures_before_success
19331871
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -1949,17 +1887,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
19491887
return httpx.Response(500)
19501888
return httpx.Response(200)
19511889

1952-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
1890+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
19531891

1954-
response = await client.web.with_raw_response.extract(
1955-
schema={
1956-
"type": "bar",
1957-
"properties": "bar",
1958-
"required": "bar",
1959-
"additionalProperties": "bar",
1960-
},
1961-
url="https://example.com",
1962-
extra_headers={"x-stainless-retry-count": Omit()},
1892+
response = await client.brand.with_raw_response.retrieve(
1893+
domain="domain", extra_headers={"x-stainless-retry-count": Omit()}
19631894
)
19641895

19651896
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
@@ -1981,17 +1912,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
19811912
return httpx.Response(500)
19821913
return httpx.Response(200)
19831914

1984-
respx_mock.post("/web/extract").mock(side_effect=retry_handler)
1915+
respx_mock.post("/brand/retrieve").mock(side_effect=retry_handler)
19851916

1986-
response = await client.web.with_raw_response.extract(
1987-
schema={
1988-
"type": "bar",
1989-
"properties": "bar",
1990-
"required": "bar",
1991-
"additionalProperties": "bar",
1992-
},
1993-
url="https://example.com",
1994-
extra_headers={"x-stainless-retry-count": "42"},
1917+
response = await client.brand.with_raw_response.retrieve(
1918+
domain="domain", extra_headers={"x-stainless-retry-count": "42"}
19951919
)
19961920

19971921
assert response.http_request.headers.get("x-stainless-retry-count") == "42"

0 commit comments

Comments
 (0)