Skip to content

Commit 7b6f1c5

Browse files
feat(api): manual updates
1 parent ae111a6 commit 7b6f1c5

32 files changed

+595
-401
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 14
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/zeroentropy%2Fzeroentropy-bd2f55f423e09b74f83cbad6034fb76f7052363308d02533a908b49543cff459.yml
3-
openapi_spec_hash: 6d7566ebda7fecac4069744949d547e0
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/zeroentropy%2Fzeroentropy-c95681b13dc56e64126746c6e546b564c7f802ae567fc9ccc1aeb8eddd40bb1e.yml
3+
openapi_spec_hash: 2ac723122fe938e384f11b5cf19e85ec
44
config_hash: e07cdee04c971e1db74e91a5a4cd981c

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
<!-- prettier-ignore -->
44
[![PyPI version](https://img.shields.io/pypi/v/zeroentropy.svg?label=pypi%20(stable))](https://pypi.org/project/zeroentropy/)
55

6-
The ZeroEntropy Python SDK provides convenient access to the [ZeroEntropy REST API](https://docs.zeroentropy.dev/api-reference/) from any Python 3.8+
7-
application.
6+
The ZeroEntropy Python SDK provides convenient type-safe access to the [ZeroEntropy REST API](https://docs.zeroentropy.dev/api-reference/) from any Python 3.9+ application.
87

98
In order to get an API Key, you can visit our [dashboard](https://dashboard.zeroentropy.dev/).
109

@@ -449,7 +448,7 @@ print(zeroentropy.__version__)
449448

450449
## Requirements
451450

452-
Python 3.8 or higher.
451+
Python 3.9 or higher.
453452

454453
## Contributing
455454

pyproject.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ dependencies = [
1515
"distro>=1.7.0, <2",
1616
"sniffio",
1717
]
18-
requires-python = ">= 3.8"
18+
requires-python = ">= 3.9"
1919
classifiers = [
2020
"Typing :: Typed",
2121
"Intended Audience :: Developers",
22-
"Programming Language :: Python :: 3.8",
2322
"Programming Language :: Python :: 3.9",
2423
"Programming Language :: Python :: 3.10",
2524
"Programming Language :: Python :: 3.11",
2625
"Programming Language :: Python :: 3.12",
2726
"Programming Language :: Python :: 3.13",
27+
"Programming Language :: Python :: 3.14",
2828
"Operating System :: OS Independent",
2929
"Operating System :: POSIX",
3030
"Operating System :: MacOS",
@@ -39,7 +39,7 @@ Homepage = "https://github.com/zeroentropy-ai/zeroentropy-python"
3939
Repository = "https://github.com/zeroentropy-ai/zeroentropy-python"
4040

4141
[project.optional-dependencies]
42-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
42+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
4343

4444
[tool.rye]
4545
managed = true
@@ -141,7 +141,7 @@ filterwarnings = [
141141
# there are a couple of flags that are still disabled by
142142
# default in strict mode as they are experimental and niche.
143143
typeCheckingMode = "strict"
144-
pythonVersion = "3.8"
144+
pythonVersion = "3.9"
145145

146146
exclude = [
147147
"_dev",
@@ -224,6 +224,8 @@ select = [
224224
"B",
225225
# remove unused imports
226226
"F401",
227+
# check for missing future annotations
228+
"FA102",
227229
# bare except statements
228230
"E722",
229231
# unused arguments
@@ -246,6 +248,8 @@ unfixable = [
246248
"T203",
247249
]
248250

251+
extend-safe-fixes = ["FA102"]
252+
249253
[tool.ruff.lint.flake8-tidy-imports.banned-api]
250254
"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"
251255

requirements-dev.lock

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ httpx==0.28.1
5656
# via httpx-aiohttp
5757
# via respx
5858
# via zeroentropy
59-
httpx-aiohttp==0.1.8
59+
httpx-aiohttp==0.1.9
6060
# via zeroentropy
6161
idna==3.4
6262
# via anyio
@@ -88,9 +88,9 @@ pluggy==1.5.0
8888
propcache==0.3.1
8989
# via aiohttp
9090
# via yarl
91-
pydantic==2.10.3
91+
pydantic==2.11.9
9292
# via zeroentropy
93-
pydantic-core==2.27.1
93+
pydantic-core==2.33.2
9494
# via pydantic
9595
pygments==2.18.0
9696
# via rich
@@ -125,7 +125,10 @@ typing-extensions==4.12.2
125125
# via pydantic
126126
# via pydantic-core
127127
# via pyright
128+
# via typing-inspection
128129
# via zeroentropy
130+
typing-inspection==0.4.1
131+
# via pydantic
129132
virtualenv==20.24.5
130133
# via nox
131134
yarl==1.20.0

requirements.lock

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ httpcore==1.0.9
4343
httpx==0.28.1
4444
# via httpx-aiohttp
4545
# via zeroentropy
46-
httpx-aiohttp==0.1.8
46+
httpx-aiohttp==0.1.9
4747
# via zeroentropy
4848
idna==3.4
4949
# via anyio
@@ -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 zeroentropy
60-
pydantic-core==2.27.1
60+
pydantic-core==2.33.2
6161
# via pydantic
6262
sniffio==1.3.0
6363
# via anyio
@@ -67,6 +67,9 @@ typing-extensions==4.12.2
6767
# via multidict
6868
# via pydantic
6969
# via pydantic-core
70+
# via typing-inspection
7071
# via zeroentropy
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/zeroentropy/__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
"ZeroEntropyError",
5355
"APIError",
5456
"APIStatusError",

src/zeroentropy/_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/zeroentropy/_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__
@@ -59,7 +59,7 @@ def __init__(
5959
*,
6060
api_key: str | None = None,
6161
base_url: str | httpx.URL | None = None,
62-
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
62+
timeout: float | Timeout | None | NotGiven = not_given,
6363
max_retries: int = DEFAULT_MAX_RETRIES,
6464
default_headers: Mapping[str, str] | None = None,
6565
default_query: Mapping[str, object] | None = None,
@@ -138,9 +138,9 @@ def copy(
138138
*,
139139
api_key: str | None = None,
140140
base_url: str | httpx.URL | None = None,
141-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
141+
timeout: float | Timeout | None | NotGiven = not_given,
142142
http_client: httpx.Client | None = None,
143-
max_retries: int | NotGiven = NOT_GIVEN,
143+
max_retries: int | NotGiven = not_given,
144144
default_headers: Mapping[str, str] | None = None,
145145
set_default_headers: Mapping[str, str] | None = None,
146146
default_query: Mapping[str, object] | None = None,
@@ -235,7 +235,7 @@ def __init__(
235235
*,
236236
api_key: str | None = None,
237237
base_url: str | httpx.URL | None = None,
238-
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
238+
timeout: float | Timeout | None | NotGiven = not_given,
239239
max_retries: int = DEFAULT_MAX_RETRIES,
240240
default_headers: Mapping[str, str] | None = None,
241241
default_query: Mapping[str, object] | None = None,
@@ -314,9 +314,9 @@ def copy(
314314
*,
315315
api_key: str | None = None,
316316
base_url: str | httpx.URL | None = None,
317-
timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
317+
timeout: float | Timeout | None | NotGiven = not_given,
318318
http_client: httpx.AsyncClient | None = None,
319-
max_retries: int | NotGiven = NOT_GIVEN,
319+
max_retries: int | NotGiven = not_given,
320320
default_headers: Mapping[str, str] | None = None,
321321
set_default_headers: Mapping[str, str] | None = None,
322322
default_query: Mapping[str, object] | None = None,

0 commit comments

Comments
 (0)