Skip to content

Commit 4930e1c

Browse files
authored
Merge pull request #108 from steel-dev/release-please--branches--main--changes--next
release: 0.1.0
2 parents df64f57 + af587fc commit 4930e1c

22 files changed

+1624
-38
lines changed

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.0.1"
2+
".": "0.1.0"
33
}

.stats.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
configured_endpoints: 11
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nen-labs%2Fsteel-eeb1e8ae03bb1dd924b05f4a631d38d5f1fdeb8926168ce63b95d8445df2d359.yml
1+
configured_endpoints: 17
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nen-labs%2Fsteel-6f475030f25058d2a692446a9ce20a095e0a8b4c3f73627841d274d4141fb48f.yml
3+
openapi_spec_hash: ebd8e01a380d203620785ca2cbd9e1b9
4+
config_hash: f23d5011c9a89d67725b48e96ffb7c99

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## 0.1.0 (2025-04-09)
4+
5+
Full Changelog: [v0.0.1...v0.1.0](https://github.com/steel-dev/steel-python/compare/v0.0.1...v0.1.0)
6+
7+
### Features
8+
9+
* **api:** api update ([#111](https://github.com/steel-dev/steel-python/issues/111)) ([d45bfd1](https://github.com/steel-dev/steel-python/commit/d45bfd199cb99612197ea59b05ea9aba15a6a76d))
10+
11+
12+
### Chores
13+
14+
* fix typos ([#107](https://github.com/steel-dev/steel-python/issues/107)) ([dabc9fe](https://github.com/steel-dev/steel-python/commit/dabc9fe147283ed3bfe85076fdf0267b9b87faef))
15+
* **internal:** remove test without asserts ([#109](https://github.com/steel-dev/steel-python/issues/109)) ([89fd178](https://github.com/steel-dev/steel-python/commit/89fd17829645dcc4aed95e6f78e731eba66e0bfb))
16+
* **internal:** slight transform perf improvement ([#110](https://github.com/steel-dev/steel-python/issues/110)) ([85f6c31](https://github.com/steel-dev/steel-python/commit/85f6c313d9b230d5f38065c0e7ef05c51ed288a7))
17+
318
## 0.0.1 (2025-03-19)
419

520
Full Changelog: [v0.1.0-beta.11...v0.0.1](https://github.com/steel-dev/steel-python/compare/v0.1.0-beta.11...v0.0.1)

api.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,28 @@ from steel.types import (
3030

3131
Methods:
3232

33-
- <code title="post /v1/sessions">client.sessions.<a href="./src/steel/resources/sessions.py">create</a>(\*\*<a href="src/steel/types/session_create_params.py">params</a>) -> <a href="./src/steel/types/session.py">Session</a></code>
34-
- <code title="get /v1/sessions/{id}">client.sessions.<a href="./src/steel/resources/sessions.py">retrieve</a>(id) -> <a href="./src/steel/types/session.py">Session</a></code>
35-
- <code title="get /v1/sessions">client.sessions.<a href="./src/steel/resources/sessions.py">list</a>(\*\*<a href="src/steel/types/session_list_params.py">params</a>) -> SyncSessionsCursor[Session]</code>
36-
- <code title="get /v1/sessions/{id}/context">client.sessions.<a href="./src/steel/resources/sessions.py">context</a>(id) -> <a href="./src/steel/types/session_context.py">SessionContext</a></code>
37-
- <code title="get /v1/sessions/{id}/events">client.sessions.<a href="./src/steel/resources/sessions.py">events</a>(id) -> <a href="./src/steel/types/session_events_response.py">SessionEventsResponse</a></code>
38-
- <code title="get /v1/sessions/{id}/live-details">client.sessions.<a href="./src/steel/resources/sessions.py">live_details</a>(id) -> <a href="./src/steel/types/session_live_details_response.py">SessionLiveDetailsResponse</a></code>
39-
- <code title="post /v1/sessions/{id}/release">client.sessions.<a href="./src/steel/resources/sessions.py">release</a>(id) -> <a href="./src/steel/types/session_release_response.py">SessionReleaseResponse</a></code>
40-
- <code title="post /v1/sessions/release">client.sessions.<a href="./src/steel/resources/sessions.py">release_all</a>() -> <a href="./src/steel/types/session_release_all_response.py">SessionReleaseAllResponse</a></code>
33+
- <code title="post /v1/sessions">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">create</a>(\*\*<a href="src/steel/types/session_create_params.py">params</a>) -> <a href="./src/steel/types/session.py">Session</a></code>
34+
- <code title="get /v1/sessions/{id}">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">retrieve</a>(id) -> <a href="./src/steel/types/session.py">Session</a></code>
35+
- <code title="get /v1/sessions">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">list</a>(\*\*<a href="src/steel/types/session_list_params.py">params</a>) -> SyncSessionsCursor[Session]</code>
36+
- <code title="get /v1/sessions/{id}/context">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">context</a>(id) -> <a href="./src/steel/types/session_context.py">SessionContext</a></code>
37+
- <code title="get /v1/sessions/{id}/events">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">events</a>(id) -> <a href="./src/steel/types/session_events_response.py">SessionEventsResponse</a></code>
38+
- <code title="get /v1/sessions/{id}/live-details">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">live_details</a>(id) -> <a href="./src/steel/types/session_live_details_response.py">SessionLiveDetailsResponse</a></code>
39+
- <code title="post /v1/sessions/{id}/release">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">release</a>(id) -> <a href="./src/steel/types/session_release_response.py">SessionReleaseResponse</a></code>
40+
- <code title="post /v1/sessions/release">client.sessions.<a href="./src/steel/resources/sessions/sessions.py">release_all</a>() -> <a href="./src/steel/types/session_release_all_response.py">SessionReleaseAllResponse</a></code>
41+
42+
## Files
43+
44+
Types:
45+
46+
```python
47+
from steel.types.sessions import File, Fileslist, FileDeleteResponse, FileDeleteAllResponse
48+
```
49+
50+
Methods:
51+
52+
- <code title="get /v1/sessions/{sessionId}/files/{fileId}">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">retrieve</a>(file_id, \*, session_id) -> <a href="./src/steel/types/sessions/file.py">File</a></code>
53+
- <code title="get /v1/sessions/{sessionId}/files">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">list</a>(session_id) -> <a href="./src/steel/types/sessions/fileslist.py">Fileslist</a></code>
54+
- <code title="delete /v1/sessions/{sessionId}/files/{fileId}">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">delete</a>(file_id, \*, session_id) -> <a href="./src/steel/types/sessions/file_delete_response.py">FileDeleteResponse</a></code>
55+
- <code title="delete /v1/sessions/{sessionId}/files">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">delete_all</a>(session_id) -> <a href="./src/steel/types/sessions/file_delete_all_response.py">FileDeleteAllResponse</a></code>
56+
- <code title="get /v1/sessions/{sessionId}/files/{fileId}/download">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">download</a>(file_id, \*, session_id) -> BinaryAPIResponse</code>
57+
- <code title="post /v1/sessions/{sessionId}/files">client.sessions.files.<a href="./src/steel/resources/sessions/files.py">upload</a>(session_id, \*\*<a href="src/steel/types/sessions/file_upload_params.py">params</a>) -> <a href="./src/steel/types/sessions/file.py">File</a></code>

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "steel-sdk"
3-
version = "0.0.1"
3+
version = "0.1.0"
44
description = "The official Python library for the steel API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

src/steel/_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
async_to_raw_response_wrapper,
3737
async_to_streamed_response_wrapper,
3838
)
39-
from .resources import sessions
4039
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
4140
from ._exceptions import SteelError, APIStatusError
4241
from ._base_client import (
@@ -45,6 +44,7 @@
4544
AsyncAPIClient,
4645
make_request_options,
4746
)
47+
from .resources.sessions import sessions
4848
from .types.pdf_response import PdfResponse
4949
from .types.scrape_response import ScrapeResponse
5050
from .types.screenshot_response import ScreenshotResponse

src/steel/_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None:
681681
setattr(typ, "__pydantic_config__", config) # noqa: B010
682682

683683

684-
# our use of subclasssing here causes weirdness for type checkers,
684+
# our use of subclassing here causes weirdness for type checkers,
685685
# so we just pretend that we don't subclass
686686
if TYPE_CHECKING:
687687
GenericModel = BaseModel

src/steel/_utils/_transform.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def _get_annotated_type(type_: type) -> type | None:
126126
def _maybe_transform_key(key: str, type_: type) -> str:
127127
"""Transform the given `data` based on the annotations provided in `type_`.
128128
129-
Note: this function only looks at `Annotated` types that contain `PropertInfo` metadata.
129+
Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata.
130130
"""
131131
annotated_type = _get_annotated_type(type_)
132132
if annotated_type is None:
@@ -142,6 +142,10 @@ def _maybe_transform_key(key: str, type_: type) -> str:
142142
return key
143143

144144

145+
def _no_transform_needed(annotation: type) -> bool:
146+
return annotation == float or annotation == int
147+
148+
145149
def _transform_recursive(
146150
data: object,
147151
*,
@@ -184,6 +188,15 @@ def _transform_recursive(
184188
return cast(object, data)
185189

186190
inner_type = extract_type_arg(stripped_type, 0)
191+
if _no_transform_needed(inner_type):
192+
# for some types there is no need to transform anything, so we can get a small
193+
# perf boost from skipping that work.
194+
#
195+
# but we still need to convert to a list to ensure the data is json-serializable
196+
if is_list(data):
197+
return data
198+
return list(data)
199+
187200
return [_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
188201

189202
if is_union_type(stripped_type):
@@ -332,6 +345,15 @@ async def _async_transform_recursive(
332345
return cast(object, data)
333346

334347
inner_type = extract_type_arg(stripped_type, 0)
348+
if _no_transform_needed(inner_type):
349+
# for some types there is no need to transform anything, so we can get a small
350+
# perf boost from skipping that work.
351+
#
352+
# but we still need to convert to a list to ensure the data is json-serializable
353+
if is_list(data):
354+
return data
355+
return list(data)
356+
335357
return [await _async_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
336358

337359
if is_union_type(stripped_type):

src/steel/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "steel"
4-
__version__ = "0.0.1" # x-release-please-version
4+
__version__ = "0.1.0" # x-release-please-version
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from .files import (
4+
FilesResource,
5+
AsyncFilesResource,
6+
FilesResourceWithRawResponse,
7+
AsyncFilesResourceWithRawResponse,
8+
FilesResourceWithStreamingResponse,
9+
AsyncFilesResourceWithStreamingResponse,
10+
)
11+
from .sessions import (
12+
SessionsResource,
13+
AsyncSessionsResource,
14+
SessionsResourceWithRawResponse,
15+
AsyncSessionsResourceWithRawResponse,
16+
SessionsResourceWithStreamingResponse,
17+
AsyncSessionsResourceWithStreamingResponse,
18+
)
19+
20+
__all__ = [
21+
"FilesResource",
22+
"AsyncFilesResource",
23+
"FilesResourceWithRawResponse",
24+
"AsyncFilesResourceWithRawResponse",
25+
"FilesResourceWithStreamingResponse",
26+
"AsyncFilesResourceWithStreamingResponse",
27+
"SessionsResource",
28+
"AsyncSessionsResource",
29+
"SessionsResourceWithRawResponse",
30+
"AsyncSessionsResourceWithRawResponse",
31+
"SessionsResourceWithStreamingResponse",
32+
"AsyncSessionsResourceWithStreamingResponse",
33+
]

0 commit comments

Comments
 (0)