Skip to content

Commit 1a88ecc

Browse files
feat(api): manual updates
1 parent 959442d commit 1a88ecc

File tree

16 files changed

+1785
-1461
lines changed

16 files changed

+1785
-1461
lines changed

.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
@@ -21,16 +21,13 @@ jobs:
2121
steps:
2222
- uses: actions/checkout@v4
2323

24-
- name: Install Rye
25-
run: |
26-
curl -sSf https://rye.astral.sh/get | bash
27-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
28-
env:
29-
RYE_VERSION: '0.44.0'
30-
RYE_INSTALL_OPTION: '--yes'
24+
- name: Install uv
25+
uses: astral-sh/setup-uv@v5
26+
with:
27+
version: '0.8.11'
3128

3229
- name: Install dependencies
33-
run: rye sync --all-features
30+
run: uv sync --all-extras
3431

3532
- name: Run lints
3633
run: ./scripts/lint
@@ -46,19 +43,16 @@ jobs:
4643
steps:
4744
- uses: actions/checkout@v4
4845

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

5751
- name: Install dependencies
58-
run: rye sync --all-features
52+
run: uv sync --all-extras
5953

6054
- name: Run build
61-
run: rye build
55+
run: uv build
6256

6357
- name: Get GitHub OIDC Token
6458
if: github.repository == 'stainless-sdks/replicate-client-python'
@@ -83,13 +77,10 @@ jobs:
8377
steps:
8478
- uses: actions/checkout@v4
8579

86-
- name: Install Rye
87-
run: |
88-
curl -sSf https://rye.astral.sh/get | bash
89-
echo "$HOME/.rye/shims" >> $GITHUB_PATH
90-
env:
91-
RYE_VERSION: '0.44.0'
92-
RYE_INSTALL_OPTION: '--yes'
80+
- name: Install uv
81+
uses: astral-sh/setup-uv@v5
82+
with:
83+
version: '0.8.11'
9384

9485
- name: Bootstrap
9586
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@v4
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@v5
21+
with:
22+
version: '0.8.11'
2623

2724
- name: Publish to PyPI
2825
run: |

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 37
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/replicate%2Freplicate-client-7a537f433b0b71a42a3d53ce6182cc06790157bbb379461eed93cdb68659bc92.yml
33
openapi_spec_hash: 5c7633dce3ece58e21f74d826946914c
4-
config_hash: fe0c3be89db52c26c9669b2013807a92
4+
config_hash: e879500b6a97f9096703a56044f1cb5f

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
@@ -42,52 +42,38 @@ Repository = "https://github.com/replicate/replicate-python-beta"
4242
[project.optional-dependencies]
4343
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
4444

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

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

0 commit comments

Comments
 (0)