Skip to content

Commit 01640e6

Browse files
feat(api): manual updates
1 parent d5df30c commit 01640e6

17 files changed

Lines changed: 1999 additions & 282 deletions

.devcontainer/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
33

44
USER vscode
55

6-
RUN curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.44.0" RYE_INSTALL_OPTION="--yes" bash
7-
ENV PATH=/home/vscode/.rye/shims:$PATH
6+
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
87

98
RUN echo "[[ -d .venv ]] && source .venv/bin/activate || export PATH=\$PATH" >> /home/vscode/.bashrc

.devcontainer/devcontainer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"context": ".."
88
},
99

10-
"postStartCommand": "rye sync --all-features",
10+
"postStartCommand": "uv sync --all-extras",
1111

1212
"customizations": {
1313
"vscode": {
@@ -20,7 +20,7 @@
2020
"python.defaultInterpreterPath": ".venv/bin/python",
2121
"python.typeChecking": "basic",
2222
"terminal.integrated.env.linux": {
23-
"PATH": "/home/vscode/.rye/shims:${env:PATH}"
23+
"PATH": "${env:PATH}"
2424
}
2525
}
2626
}

.github/workflows/ci.yml

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,13 @@ jobs:
2323
steps:
2424
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2525

26-
- name: Install Rye
27-
run: |
28-
curl -sSf https://rye.astral.sh/get | bash
29-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
30-
env:
31-
RYE_VERSION: '0.44.0'
32-
RYE_INSTALL_OPTION: '--yes'
26+
- name: Install uv
27+
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
28+
with:
29+
version: '0.10.2'
3330

3431
- name: Install dependencies
35-
run: rye sync --all-features
32+
run: uv sync --all-extras
3633

3734
- name: Run lints
3835
run: ./scripts/lint
@@ -48,19 +45,16 @@ jobs:
4845
steps:
4946
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5047

51-
- name: Install Rye
52-
run: |
53-
curl -sSf https://rye.astral.sh/get | bash
54-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
55-
env:
56-
RYE_VERSION: '0.44.0'
57-
RYE_INSTALL_OPTION: '--yes'
48+
- name: Install uv
49+
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
50+
with:
51+
version: '0.10.2'
5852

5953
- name: Install dependencies
60-
run: rye sync --all-features
54+
run: uv sync --all-extras
6155

6256
- name: Run build
63-
run: rye build
57+
run: uv build
6458

6559
- name: Get GitHub OIDC Token
6660
if: |-
@@ -89,13 +83,10 @@ jobs:
8983
steps:
9084
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
9185

92-
- name: Install Rye
93-
run: |
94-
curl -sSf https://rye.astral.sh/get | bash
95-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
96-
env:
97-
RYE_VERSION: '0.44.0'
98-
RYE_INSTALL_OPTION: '--yes'
86+
- name: Install uv
87+
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
88+
with:
89+
version: '0.10.2'
9990

10091
- name: Bootstrap
10192
run: ./scripts/bootstrap

.github/workflows/publish-pypi.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@ jobs:
1616
steps:
1717
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1818

19-
- name: Install Rye
20-
run: |
21-
curl -sSf https://rye.astral.sh/get | bash
22-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
23-
env:
24-
RYE_VERSION: '0.44.0'
25-
RYE_INSTALL_OPTION: '--yes'
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
21+
with:
22+
version: '0.9.13'
2623

2724
- name: Publish to PyPI
2825
run: |

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 959
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot/hubspot-sdk-10670e8b046a913d525c58235f039117e5c43c6657818de8c1b5050e5ffa6a60.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot/hubspot-sdk-3e36ce42a91a7483dce06bd511cbe5279d2971d456799bd687cc5d19308ac69e.yml
33
openapi_spec_hash: 3a53f40c597fb1a8ded7d5f8939b8cc1
4-
config_hash: 1a2418ad0ae52279c366cfde5b84ac87
4+
config_hash: 03a437eceb8ec75317bb3dccb7cf162b

Brewfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
brew "rye"
1+
brew "uv"
22

CONTRIBUTING.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
## Setting up the environment
22

3-
### With Rye
3+
### With `uv`
44

5-
We use [Rye](https://rye.astral.sh/) to manage dependencies because it will automatically provision a Python environment with the expected Python version. To set it up, run:
5+
We use [uv](https://docs.astral.sh/uv/) to manage dependencies because it will automatically provision a Python environment with the expected Python version. To set it up, run:
66

77
```sh
88
$ ./scripts/bootstrap
99
```
1010

11-
Or [install Rye manually](https://rye.astral.sh/guide/installation/) and run:
11+
Or [install uv manually](https://docs.astral.sh/uv/getting-started/installation/) and run:
1212

1313
```sh
14-
$ rye sync --all-features
14+
$ uv sync --all-extras
1515
```
1616

17-
You can then run scripts using `rye run python script.py` or by activating the virtual environment:
17+
You can then run scripts using `uv run python script.py` or by manually activating the virtual environment:
1818

1919
```sh
20-
# Activate the virtual environment - https://docs.python.org/3/library/venv.html#how-venvs-work
20+
# manually activate - https://docs.python.org/3/library/venv.html#how-venvs-work
2121
$ source .venv/bin/activate
2222

23-
# now you can omit the `rye run` prefix
23+
# now you can omit the `uv run` prefix
2424
$ python script.py
2525
```
2626

27-
### Without Rye
27+
### Without `uv`
2828

29-
Alternatively if you don't want to install `Rye`, you can stick with the standard `pip` setup by ensuring you have the Python version specified in `.python-version`, create a virtual environment however you desire and then install dependencies using this command:
29+
Alternatively if you don't want to install `uv`, you can stick with the standard `pip` setup by ensuring you have the Python version specified in `.python-version`, create a virtual environment however you desire and then install dependencies using this command:
3030

3131
```sh
3232
$ pip install -r requirements-dev.lock
@@ -45,7 +45,7 @@ All files in the `examples/` directory are not modified by the generator and can
4545
```py
4646
# add an example to examples/<your-example>.py
4747

48-
#!/usr/bin/env -S rye run python
48+
#!/usr/bin/env -S uv run python
4949
5050
```
5151

@@ -72,7 +72,7 @@ Building this package will create two files in the `dist/` directory, a `.tar.gz
7272
To create a distributable version of the library, all you have to do is run this command:
7373

7474
```sh
75-
$ rye build
75+
$ uv build
7676
# or
7777
$ python -m build
7878
```

bin/publish-pypi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env bash
22

33
set -eux
4+
rm -rf dist
45
mkdir -p dist
5-
rye build --clean
6-
rye publish --yes --token=$PYPI_TOKEN
6+
uv build
7+
uv publish --token=$PYPI_TOKEN

noxfile.py

Lines changed: 0 additions & 9 deletions
This file was deleted.

pyproject.toml

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -43,52 +43,38 @@ Repository = "https://github.com/HubSpot/hubspot-sdk-python"
4343
[project.optional-dependencies]
4444
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
4545

46-
[tool.rye]
46+
[tool.uv]
4747
managed = true
48-
# version pins are in requirements-dev.lock
49-
dev-dependencies = [
48+
required-version = ">=0.9"
49+
conflicts = [
50+
[
51+
{ group = "pydantic-v1" },
52+
{ group = "pydantic-v2" },
53+
],
54+
]
55+
56+
[dependency-groups]
57+
# version pins are in uv.lock
58+
dev = [
5059
"pyright==1.1.399",
5160
"mypy==1.17",
5261
"respx",
5362
"pytest",
5463
"pytest-asyncio",
5564
"ruff",
5665
"time-machine",
57-
"nox",
5866
"dirty-equals>=0.6.0",
5967
"importlib-metadata>=6.7.0",
6068
"rich>=13.7.1",
6169
"pytest-xdist>=3.6.1",
6270
]
63-
64-
[tool.rye.scripts]
65-
format = { chain = [
66-
"format:ruff",
67-
"format:docs",
68-
"fix:ruff",
69-
# run formatting again to fix any inconsistencies when imports are stripped
70-
"format:ruff",
71-
]}
72-
"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'"
73-
"format:ruff" = "ruff format"
74-
75-
"lint" = { chain = [
76-
"check:ruff",
77-
"typecheck",
78-
"check:importable",
79-
]}
80-
"check:ruff" = "ruff check ."
81-
"fix:ruff" = "ruff check --fix ."
82-
83-
"check:importable" = "python -c 'import hubspot_sdk'"
84-
85-
typecheck = { chain = [
86-
"typecheck:pyright",
87-
"typecheck:mypy"
88-
]}
89-
"typecheck:pyright" = "pyright"
90-
"typecheck:verify-types" = "pyright --verifytypes hubspot_sdk --ignoreexternal"
91-
"typecheck:mypy" = "mypy ."
71+
pydantic-v1 = [
72+
"pydantic>=1.9.0,<2",
73+
]
74+
pydantic-v2 = [
75+
"pydantic~=2.0 ; python_full_version < '3.14'",
76+
"pydantic~=2.12 ; python_full_version >= '3.14'",
77+
]
9278

9379
[build-system]
9480
requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]

0 commit comments

Comments
 (0)