Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
f1d74e2
feat(api): api update (#71)
stainless-app[bot] Mar 31, 2025
4e2d3a4
codegen metadata
stainless-app[bot] Apr 3, 2025
75e43a9
chore(internal): remove trailing character (#73)
stainless-app[bot] Apr 4, 2025
9808a93
chore(internal): slight transform perf improvement (#74)
stainless-app[bot] Apr 9, 2025
064117a
chore(internal): expand CI branch coverage
stainless-app[bot] Apr 10, 2025
e0381ae
chore(internal): reduce CI branch coverage
stainless-app[bot] Apr 10, 2025
62cf11f
fix(perf): skip traversing types for NotGiven values
stainless-app[bot] Apr 12, 2025
2130460
fix(perf): optimize some hot paths
stainless-app[bot] Apr 12, 2025
ccd70c6
chore(internal): update pyright settings
stainless-app[bot] Apr 15, 2025
024b925
chore(client): minor internal fixes
stainless-app[bot] Apr 15, 2025
730f781
chore(internal): bump pyright version
stainless-app[bot] Apr 17, 2025
bd85924
chore(internal): base client updates
stainless-app[bot] Apr 17, 2025
02396c5
chore(internal): update models test
stainless-app[bot] Apr 19, 2025
e3ab35a
chore(ci): add timeout thresholds for CI jobs
stainless-app[bot] Apr 23, 2025
0541854
chore(internal): import reformatting
stainless-app[bot] Apr 23, 2025
4ac36d0
chore(internal): fix list file params
stainless-app[bot] Apr 23, 2025
85d0556
chore(internal): refactor retries to not use recursion
stainless-app[bot] Apr 23, 2025
c9e8911
fix(pydantic v1): more robust ModelField.annotation check
stainless-app[bot] Apr 23, 2025
0ef9e84
chore(internal): minor formatting changes
stainless-app[bot] Apr 24, 2025
a5c88eb
chore(internal): codegen related update
stainless-app[bot] Apr 24, 2025
efaf732
chore(ci): only use depot for staging repos
stainless-app[bot] Apr 24, 2025
893312b
chore: broadly detect json family of content-type headers
stainless-app[bot] Apr 24, 2025
b109cd3
chore(internal): avoid errors for isinstance checks on proxies
stainless-app[bot] May 9, 2025
db3beee
fix(package): support direct resource imports
stainless-app[bot] May 10, 2025
6ee22ad
chore(ci): upload sdks to package manager
stainless-app[bot] May 15, 2025
1edfc67
chore(ci): fix installation instructions
stainless-app[bot] May 16, 2025
60b41d0
chore(docs): grammar improvements
stainless-app[bot] May 22, 2025
64cfb26
release: 2.9.0
stainless-app[bot] Aug 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 34 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
- next
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'

jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/evrim-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4

Expand All @@ -30,10 +30,34 @@ jobs:
- name: Run lints
run: ./scripts/lint

upload:
if: github.repository == 'stainless-sdks/evrim-python'
timeout-minutes: 10
name: upload
permissions:
contents: read
id-token: write
runs-on: depot-ubuntu-24.04
steps:
- uses: actions/checkout@v4

- name: Get GitHub OIDC Token
id: github-oidc
uses: actions/github-script@v6
with:
script: core.setOutput('github_token', await core.getIDToken());

- name: Upload tarball
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
SHA: ${{ github.sha }}
run: ./scripts/utils/upload-artifact.sh

test:
timeout-minutes: 10
name: test
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/evrim-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4

Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "2.8.0"
".": "2.9.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 85
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/evrim%2Fevrim-bfa1475f723b89cde7b4d5db25ad11a54cb2f28cbfaae95e3fc058d63dba9690.yml
openapi_spec_hash: 91ccf99085fa20cd7edf365b2ee8d2b3
configured_endpoints: 78
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/evrim%2Fevrim-9867c840663bf9521ba6ba6bc6efbbbd3e5e14e99a77fe043d40c54a7eb05697.yml
openapi_spec_hash: c584614551cfa5ef0cfd95c36d7b9e02
config_hash: cfac76dd5ce7c345175ea4884c19195c
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# Changelog

## 2.9.0 (2025-08-02)

Full Changelog: [v2.8.0...v2.9.0](https://github.com/evrimai/python-client/compare/v2.8.0...v2.9.0)

### Features

* **api:** api update ([#71](https://github.com/evrimai/python-client/issues/71)) ([f1d74e2](https://github.com/evrimai/python-client/commit/f1d74e2bd52f9c00e8d14c894716b2719469b260))


### Bug Fixes

* **package:** support direct resource imports ([db3beee](https://github.com/evrimai/python-client/commit/db3beee83baa64b866436c219e6f7d8c5df1a136))
* **perf:** optimize some hot paths ([2130460](https://github.com/evrimai/python-client/commit/21304602461229683e8e63f72e0122550b05a618))
* **perf:** skip traversing types for NotGiven values ([62cf11f](https://github.com/evrimai/python-client/commit/62cf11fba968715c7b31d901c8f5f34a30c8fa3a))
* **pydantic v1:** more robust ModelField.annotation check ([c9e8911](https://github.com/evrimai/python-client/commit/c9e89114a21af9de22041087891f2b6cdea8dae9))


### Chores

* broadly detect json family of content-type headers ([893312b](https://github.com/evrimai/python-client/commit/893312b59fd147d1356c543ecef0195387d3aa26))
* **ci:** add timeout thresholds for CI jobs ([e3ab35a](https://github.com/evrimai/python-client/commit/e3ab35a64fd929598a179e0060020676d8021c29))
* **ci:** fix installation instructions ([1edfc67](https://github.com/evrimai/python-client/commit/1edfc678a53fc7ad6f86170a9dbbb606cde8baca))
* **ci:** only use depot for staging repos ([efaf732](https://github.com/evrimai/python-client/commit/efaf732c2b77ec26698b61dde3b9dc017cfc725b))
* **ci:** upload sdks to package manager ([6ee22ad](https://github.com/evrimai/python-client/commit/6ee22adb50be0070098473c84a7ac1d00a5a2bff))
* **client:** minor internal fixes ([024b925](https://github.com/evrimai/python-client/commit/024b9254751ef8643f0b72037b0e0d7f0f526798))
* **docs:** grammar improvements ([60b41d0](https://github.com/evrimai/python-client/commit/60b41d0be94a2e55a1cc126373f042bc9d4c5273))
* **internal:** avoid errors for isinstance checks on proxies ([b109cd3](https://github.com/evrimai/python-client/commit/b109cd3d1021ef045774eab4c9068810bd915227))
* **internal:** base client updates ([bd85924](https://github.com/evrimai/python-client/commit/bd85924eebfe9f9e6e0b205a83857cd6c3dbfd2b))
* **internal:** bump pyright version ([730f781](https://github.com/evrimai/python-client/commit/730f781a69dd8f10c9f5cc63c79b718541e51c4a))
* **internal:** codegen related update ([a5c88eb](https://github.com/evrimai/python-client/commit/a5c88ebfa9dc2918c163753e090ffe8afaf7d2df))
* **internal:** expand CI branch coverage ([064117a](https://github.com/evrimai/python-client/commit/064117a7bce50f9d30e416365d912fddd4a5318f))
* **internal:** fix list file params ([4ac36d0](https://github.com/evrimai/python-client/commit/4ac36d01d2bc29c158fd5f0a598dfb4dc7e48c12))
* **internal:** import reformatting ([0541854](https://github.com/evrimai/python-client/commit/05418549ab67acf639f7cd9300e3971262d3fa8b))
* **internal:** minor formatting changes ([0ef9e84](https://github.com/evrimai/python-client/commit/0ef9e84193f9b9ef3db29972d7981766fac89628))
* **internal:** reduce CI branch coverage ([e0381ae](https://github.com/evrimai/python-client/commit/e0381ae7b71c11737c073e30ec83a890e0ee147a))
* **internal:** refactor retries to not use recursion ([85d0556](https://github.com/evrimai/python-client/commit/85d0556f0a2eb3727941f0230f47ac1fb9869c9a))
* **internal:** remove trailing character ([#73](https://github.com/evrimai/python-client/issues/73)) ([75e43a9](https://github.com/evrimai/python-client/commit/75e43a9ab76587d240d151003f1f8a9d37a82ca2))
* **internal:** slight transform perf improvement ([#74](https://github.com/evrimai/python-client/issues/74)) ([9808a93](https://github.com/evrimai/python-client/commit/9808a9315129182b4304802653ce7b27ddd83ad7))
* **internal:** update models test ([02396c5](https://github.com/evrimai/python-client/commit/02396c5343fa736ec016cb541e803dbbd95792c0))
* **internal:** update pyright settings ([ccd70c6](https://github.com/evrimai/python-client/commit/ccd70c617998c7e2f0193455bd7b47b4da04e4e2))

## 2.8.0 (2025-03-27)

Full Changelog: [v2.7.0...v2.8.0](https://github.com/evrimai/python-client/compare/v2.7.0...v2.8.0)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ created_field = client.created_fields.create(
"name": "name",
"description": "description",
"questions": ["string"],
"tags": ["string"],
},
)
print(created_field.rel_template)
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ before making any information public.
## Reporting Non-SDK Related Security Issues

If you encounter security issues that are not directly related to SDKs but pertain to the services
or products provided by Evrim please follow the respective company's security reporting guidelines.
or products provided by Evrim, please follow the respective company's security reporting guidelines.

### Evrim Terms and Policies

Please contact support@evrim.ai for any questions or concerns regarding security of our services.
Please contact support@evrim.ai for any questions or concerns regarding the security of our services.

---

Expand Down
33 changes: 2 additions & 31 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -413,41 +413,12 @@ Methods:
Types:

```python
from evrim.types import Tag, TagListResponse
from evrim.types import Tag
```

Methods:

- <code title="post /prod/v0/tags/">client.tags.<a href="./src/evrim/resources/tags/tags.py">create</a>(\*\*<a href="src/evrim/types/tag_create_params.py">params</a>) -> <a href="./src/evrim/types/tag.py">Tag</a></code>
- <code title="get /prod/v0/tags/{id}/">client.tags.<a href="./src/evrim/resources/tags/tags.py">retrieve</a>(id) -> <a href="./src/evrim/types/tag.py">Tag</a></code>
- <code title="put /prod/v0/tags/{id}/">client.tags.<a href="./src/evrim/resources/tags/tags.py">update</a>(id, \*\*<a href="src/evrim/types/tag_update_params.py">params</a>) -> <a href="./src/evrim/types/tag.py">Tag</a></code>
- <code title="get /prod/v0/tags/">client.tags.<a href="./src/evrim/resources/tags/tags.py">list</a>(\*\*<a href="src/evrim/types/tag_list_params.py">params</a>) -> <a href="./src/evrim/types/tag_list_response.py">TagListResponse</a></code>
- <code title="delete /prod/v0/tags/{id}/">client.tags.<a href="./src/evrim/resources/tags/tags.py">delete</a>(id) -> None</code>

## Collections

Types:

```python
from evrim.types.tags import TagToCollection
```

Methods:

- <code title="post /prod/v0/tags/{tag_id}/collections/">client.tags.collections.<a href="./src/evrim/resources/tags/collections.py">tag</a>(tag_id, \*\*<a href="src/evrim/types/tags/collection_tag_params.py">params</a>) -> <a href="./src/evrim/types/tags/tag_to_collection.py">TagToCollection</a></code>

## Profiles

Types:

```python
from evrim.types.tags import ProfileListResponse
```

Methods:

- <code title="get /prod/v0/tags/{tag_id}/profiles/">client.tags.profiles.<a href="./src/evrim/resources/tags/profiles.py">list</a>(tag_id, \*\*<a href="src/evrim/types/tags/profile_list_params.py">params</a>) -> <a href="./src/evrim/types/tags/profile_list_response.py">ProfileListResponse</a></code>
- <code title="post /prod/v0/tags/{tag_id}/profiles/">client.tags.profiles.<a href="./src/evrim/resources/tags/profiles.py">tag</a>(tag_id, \*\*<a href="src/evrim/types/tags/profile_tag_params.py">params</a>) -> None</code>
- <code title="get /prod/v0/tags/">client.tags.<a href="./src/evrim/resources/tags/tags.py">list</a>() -> None</code>

# Templates

Expand Down
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "evrim"
version = "2.8.0"
version = "2.9.0"
description = "The official Python library for the evrim API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down Expand Up @@ -42,7 +42,7 @@ Repository = "https://github.com/evrimai/python-client"
managed = true
# version pins are in requirements-dev.lock
dev-dependencies = [
"pyright>=1.1.359",
"pyright==1.1.399",
"mypy",
"respx",
"pytest",
Expand Down Expand Up @@ -147,6 +147,7 @@ exclude = [
]

reportImplicitOverride = true
reportOverlappingOverload = false

reportImportCycles = false
reportPrivateUsage = false
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev.lock
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ pydantic-core==2.27.1
# via pydantic
pygments==2.18.0
# via rich
pyright==1.1.392.post0
pyright==1.1.399
pytest==8.3.3
# via pytest-asyncio
pytest-asyncio==0.24.0
Expand Down
25 changes: 25 additions & 0 deletions scripts/utils/upload-artifact.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -exuo pipefail

RESPONSE=$(curl -X POST "$URL" \
-H "Authorization: Bearer $AUTH" \
-H "Content-Type: application/json")

SIGNED_URL=$(echo "$RESPONSE" | jq -r '.url')

if [[ "$SIGNED_URL" == "null" ]]; then
echo -e "\033[31mFailed to get signed URL.\033[0m"
exit 1
fi

UPLOAD_RESPONSE=$(tar -cz . | curl -v -X PUT \
-H "Content-Type: application/gzip" \
--data-binary @- "$SIGNED_URL" 2>&1)

if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then
echo -e "\033[32mUploaded build to Stainless storage.\033[0m"
echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/evrim-python/$SHA'\033[0m"
else
echo -e "\033[31mFailed to upload artifact.\033[0m"
exit 1
fi
5 changes: 5 additions & 0 deletions src/evrim/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import typing as _t

from . import types
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
from ._utils import file_from_path
Expand Down Expand Up @@ -68,6 +70,9 @@
"DefaultAsyncHttpxClient",
]

if not _t.TYPE_CHECKING:
from ._utils._resources_proxy import resources as resources

_setup_logging()

# Update the __module__ attribute for exported symbols so that
Expand Down
Loading