Skip to content

Commit b8f8f6e

Browse files
release: 0.2.2 (#11)
Automated Release PR --- ## 0.2.2 (2025-10-16) Full Changelog: [v0.2.1...v0.2.2](v0.2.1...v0.2.2) ### Features * **api:** Add progress meter to Task Run events ([176f9d3](176f9d3)) ### Bug Fixes * do not set headers with default to omit ([8989f91](8989f91)) ### Chores * do not install brew dependencies in ./scripts/bootstrap by default ([c3250e2](c3250e2)) * **internal:** detect missing future annotations with ruff ([db5980c](db5980c)) * **internal:** update pydantic dependency ([96f50db](96f50db)) * **types:** change optional parameter type from NotGiven to Omit ([0f0fa20](0f0fa20)) --- This pull request is managed by Stainless's [GitHub App](https://github.com/apps/stainless-app). The [semver version number](https://semver.org/#semantic-versioning-specification-semver) is based on included [commit messages](https://www.conventionalcommits.org/en/v1.0.0/). Alternatively, you can manually set the version number in the title of this pull request. For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request. 🔗 Stainless [website](https://www.stainlessapi.com) 📚 Read the [docs](https://app.stainlessapi.com/docs) 🙋 [Reach out](mailto:support@stainlessapi.com) for help or questions --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Kumar Saunack <kumar@shapley.ai>
1 parent af56b87 commit b8f8f6e

28 files changed

+294
-210
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.2.1"
2+
".": "0.2.2"
33
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 12
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-ed59cb6466c038703341e4b1eacb013f08b1907b40a6cba7d39ff5396fb432f3.yml
3-
openapi_spec_hash: 9d983b5f712eb8b5531127543291c6e7
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-496d0afc77bafdc8f4208d3ddd767c3101d91ffb933b9b6bfcef5f489cc175a6.yml
3+
openapi_spec_hash: 730e697fec302b9310d4495c1f82802d
44
config_hash: f9aa4d901581aaf70789dd0bc1b84597

CHANGELOG.md

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

3+
## 0.2.2 (2025-10-16)
4+
5+
Full Changelog: [v0.2.1...v0.2.2](https://github.com/parallel-web/parallel-sdk-python/compare/v0.2.1...v0.2.2)
6+
7+
### Features
8+
9+
* **api:** Add progress meter to Task Run events ([176f9d3](https://github.com/parallel-web/parallel-sdk-python/commit/176f9d318d9d9367b61e40fb6f8c27576e75deb4))
10+
11+
12+
### Bug Fixes
13+
14+
* do not set headers with default to omit ([8989f91](https://github.com/parallel-web/parallel-sdk-python/commit/8989f9120217bba2c95b2b256a2767f885311652))
15+
16+
17+
### Chores
18+
19+
* do not install brew dependencies in ./scripts/bootstrap by default ([c3250e2](https://github.com/parallel-web/parallel-sdk-python/commit/c3250e26311cc9b767d06a112317b74f73f78644))
20+
* **internal:** detect missing future annotations with ruff ([db5980c](https://github.com/parallel-web/parallel-sdk-python/commit/db5980ce6d58ac926eea60d836b36dc8bdd651d7))
21+
* **internal:** update pydantic dependency ([96f50db](https://github.com/parallel-web/parallel-sdk-python/commit/96f50dbffc919f591a149f89b387ebf19bd4deb0))
22+
* **types:** change optional parameter type from NotGiven to Omit ([0f0fa20](https://github.com/parallel-web/parallel-sdk-python/commit/0f0fa20994ddb2c89d0def2a16a68b9499e1abd4))
23+
324
## 0.2.1 (2025-09-15)
425

526
Full Changelog: [v0.2.0...v0.2.1](https://github.com/parallel-web/parallel-sdk-python/compare/v0.2.0...v0.2.1)

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "parallel-web"
3-
version = "0.2.1"
3+
version = "0.2.2"
44
description = "The official Python library for the Parallel API"
55
dynamic = ["readme"]
66
license = "MIT"
@@ -225,6 +225,8 @@ select = [
225225
"B",
226226
# remove unused imports
227227
"F401",
228+
# check for missing future annotations
229+
"FA102",
228230
# bare except statements
229231
"E722",
230232
# unused arguments
@@ -247,6 +249,8 @@ unfixable = [
247249
"T203",
248250
]
249251

252+
extend-safe-fixes = ["FA102"]
253+
250254
[tool.ruff.lint.flake8-tidy-imports.banned-api]
251255
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"
252256

requirements-dev.lock

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ pluggy==1.5.0
9191
propcache==0.3.1
9292
# via aiohttp
9393
# via yarl
94-
pydantic==2.10.3
94+
pydantic==2.11.9
9595
# via parallel-web
96-
pydantic-core==2.27.1
96+
pydantic-core==2.33.2
9797
# via pydantic
9898
pygments==2.18.0
9999
# via rich
@@ -129,6 +129,9 @@ typing-extensions==4.12.2
129129
# via pydantic
130130
# via pydantic-core
131131
# via pyright
132+
# via typing-inspection
133+
typing-inspection==0.4.1
134+
# via pydantic
132135
virtualenv==20.24.5
133136
# via nox
134137
yarl==1.20.0

requirements.lock

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ multidict==6.4.4
5555
propcache==0.3.1
5656
# via aiohttp
5757
# via yarl
58-
pydantic==2.10.3
58+
pydantic==2.11.9
5959
# via parallel-web
60-
pydantic-core==2.27.1
60+
pydantic-core==2.33.2
6161
# via pydantic
6262
sniffio==1.3.0
6363
# via anyio
@@ -68,5 +68,8 @@ typing-extensions==4.12.2
6868
# via parallel-web
6969
# via pydantic
7070
# via pydantic-core
71+
# via typing-inspection
72+
typing-inspection==0.4.1
73+
# via pydantic
7174
yarl==1.20.0
7275
# via aiohttp

scripts/bootstrap

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@ set -e
44

55
cd "$(dirname "$0")/.."
66

7-
if ! command -v rye >/dev/null 2>&1 && [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
7+
if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then
88
brew bundle check >/dev/null 2>&1 || {
9-
echo "==> Installing Homebrew dependencies…"
10-
brew bundle
9+
echo -n "==> Install Homebrew dependencies? (y/N): "
10+
read -r response
11+
case "$response" in
12+
[yY][eE][sS]|[yY])
13+
brew bundle
14+
;;
15+
*)
16+
;;
17+
esac
18+
echo
1119
}
1220
fi
1321

src/parallel/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import typing as _t
44

55
from . import types
6-
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
6+
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes, omit, not_given
77
from ._utils import file_from_path
88
from ._client import (
99
Client,
@@ -48,7 +48,9 @@
4848
"ProxiesTypes",
4949
"NotGiven",
5050
"NOT_GIVEN",
51+
"not_given",
5152
"Omit",
53+
"omit",
5254
"ParallelError",
5355
"APIError",
5456
"APIStatusError",

src/parallel/_base_client.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
from ._qs import Querystring
4343
from ._files import to_httpx_files, async_to_httpx_files
4444
from ._types import (
45-
NOT_GIVEN,
4645
Body,
4746
Omit,
4847
Query,
@@ -57,6 +56,7 @@
5756
RequestOptions,
5857
HttpxRequestFiles,
5958
ModelBuilderProtocol,
59+
not_given,
6060
)
6161
from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
6262
from ._compat import PYDANTIC_V1, model_copy, model_dump
@@ -145,9 +145,9 @@ def __init__(
145145
def __init__(
146146
self,
147147
*,
148-
url: URL | NotGiven = NOT_GIVEN,
149-
json: Body | NotGiven = NOT_GIVEN,
150-
params: Query | NotGiven = NOT_GIVEN,
148+
url: URL | NotGiven = not_given,
149+
json: Body | NotGiven = not_given,
150+
params: Query | NotGiven = not_given,
151151
) -> None:
152152
self.url = url
153153
self.json = json
@@ -595,7 +595,7 @@ def _maybe_override_cast_to(self, cast_to: type[ResponseT], options: FinalReques
595595
# we internally support defining a temporary header to override the
596596
# default `cast_to` type for use with `.with_raw_response` and `.with_streaming_response`
597597
# see _response.py for implementation details
598-
override_cast_to = headers.pop(OVERRIDE_CAST_TO_HEADER, NOT_GIVEN)
598+
override_cast_to = headers.pop(OVERRIDE_CAST_TO_HEADER, not_given)
599599
if is_given(override_cast_to):
600600
options.headers = headers
601601
return cast(Type[ResponseT], override_cast_to)
@@ -825,7 +825,7 @@ def __init__(
825825
version: str,
826826
base_url: str | URL,
827827
max_retries: int = DEFAULT_MAX_RETRIES,
828-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
828+
timeout: float | Timeout | None | NotGiven = not_given,
829829
http_client: httpx.Client | None = None,
830830
custom_headers: Mapping[str, str] | None = None,
831831
custom_query: Mapping[str, object] | None = None,
@@ -1356,7 +1356,7 @@ def __init__(
13561356
base_url: str | URL,
13571357
_strict_response_validation: bool,
13581358
max_retries: int = DEFAULT_MAX_RETRIES,
1359-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
1359+
timeout: float | Timeout | None | NotGiven = not_given,
13601360
http_client: httpx.AsyncClient | None = None,
13611361
custom_headers: Mapping[str, str] | None = None,
13621362
custom_query: Mapping[str, object] | None = None,
@@ -1818,8 +1818,8 @@ def make_request_options(
18181818
extra_query: Query | None = None,
18191819
extra_body: Body | None = None,
18201820
idempotency_key: str | None = None,
1821-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1822-
post_parser: PostParser | NotGiven = NOT_GIVEN,
1821+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
1822+
post_parser: PostParser | NotGiven = not_given,
18231823
) -> RequestOptions:
18241824
"""Create a dict of type RequestOptions without keys of NotGiven values."""
18251825
options: RequestOptions = {}

src/parallel/_client.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@
33
from __future__ import annotations
44

55
import os
6-
from typing import Any, Union, Mapping
6+
from typing import Any, Mapping
77
from typing_extensions import Self, override
88

99
import httpx
1010

1111
from . import _exceptions
1212
from ._qs import Querystring
1313
from ._types import (
14-
NOT_GIVEN,
1514
Omit,
1615
Timeout,
1716
NotGiven,
1817
Transport,
1918
ProxiesTypes,
2019
RequestOptions,
20+
not_given,
2121
)
2222
from ._utils import is_given, get_async_library
2323
from ._version import __version__
@@ -57,7 +57,7 @@ def __init__(
5757
*,
5858
api_key: str | None = None,
5959
base_url: str | httpx.URL | None = None,
60-
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
60+
timeout: float | Timeout | None | NotGiven = not_given,
6161
max_retries: int = DEFAULT_MAX_RETRIES,
6262
default_headers: Mapping[str, str] | None = None,
6363
default_query: Mapping[str, object] | None = None,
@@ -133,9 +133,9 @@ def copy(
133133
*,
134134
api_key: str | None = None,
135135
base_url: str | httpx.URL | None = None,
136-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
136+
timeout: float | Timeout | None | NotGiven = not_given,
137137
http_client: httpx.Client | None = None,
138-
max_retries: int | NotGiven = NOT_GIVEN,
138+
max_retries: int | NotGiven = not_given,
139139
default_headers: Mapping[str, str] | None = None,
140140
set_default_headers: Mapping[str, str] | None = None,
141141
default_query: Mapping[str, object] | None = None,
@@ -227,7 +227,7 @@ def __init__(
227227
*,
228228
api_key: str | None = None,
229229
base_url: str | httpx.URL | None = None,
230-
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
230+
timeout: float | Timeout | None | NotGiven = not_given,
231231
max_retries: int = DEFAULT_MAX_RETRIES,
232232
default_headers: Mapping[str, str] | None = None,
233233
default_query: Mapping[str, object] | None = None,
@@ -303,9 +303,9 @@ def copy(
303303
*,
304304
api_key: str | None = None,
305305
base_url: str | httpx.URL | None = None,
306-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
306+
timeout: float | Timeout | None | NotGiven = not_given,
307307
http_client: httpx.AsyncClient | None = None,
308-
max_retries: int | NotGiven = NOT_GIVEN,
308+
max_retries: int | NotGiven = not_given,
309309
default_headers: Mapping[str, str] | None = None,
310310
set_default_headers: Mapping[str, str] | None = None,
311311
default_query: Mapping[str, object] | None = None,

0 commit comments

Comments
 (0)