runapi-core 0.8.0__tar.gz → 0.8.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {runapi_core-0.8.0 → runapi_core-0.8.2}/PKG-INFO +2 -2
  2. {runapi_core-0.8.0 → runapi_core-0.8.2}/pyproject.toml +1 -1
  3. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/contract_gen.py +54 -1
  4. runapi_core-0.8.2/src/runapi/core/version.py +1 -0
  5. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_errors.py +5 -2
  6. runapi_core-0.8.0/src/runapi/core/version.py +0 -1
  7. {runapi_core-0.8.0 → runapi_core-0.8.2}/README.md +0 -0
  8. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/__init__.py +0 -0
  9. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/account.py +0 -0
  10. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/auth.py +0 -0
  11. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/config.py +0 -0
  12. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/constants.py +0 -0
  13. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/errors.py +0 -0
  14. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/files.py +0 -0
  15. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/http_client.py +0 -0
  16. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/models.py +0 -0
  17. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/multipart.py +0 -0
  18. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/options.py +0 -0
  19. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/polling.py +0 -0
  20. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/pricing.py +0 -0
  21. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/provider_client.py +0 -0
  22. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/py.typed +0 -0
  23. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/resource.py +0 -0
  24. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/response.py +0 -0
  25. {runapi_core-0.8.0 → runapi_core-0.8.2}/src/runapi/core/uploads.py +0 -0
  26. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_account.py +0 -0
  27. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_auth.py +0 -0
  28. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_config.py +0 -0
  29. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_files.py +0 -0
  30. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_http_client.py +0 -0
  31. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_models.py +0 -0
  32. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_polling.py +0 -0
  33. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_pricing.py +0 -0
  34. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_resource.py +0 -0
  35. {runapi_core-0.8.0 → runapi_core-0.8.2}/tests/test_uploads.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: runapi-core
3
- Version: 0.8.0
3
+ Version: 0.8.2
4
4
  Summary: RunAPI core SDK for JavaScript, Python, Ruby, Go, Java, and PHP
5
5
  Project-URL: Homepage, https://runapi.ai/models
6
6
  Project-URL: Documentation, https://runapi.ai/docs/resources/sdks
7
7
  Project-URL: Source, https://github.com/runapi-ai/core-sdk
8
8
  Project-URL: Issues, https://github.com/runapi-ai/core-sdk/issues
9
9
  Project-URL: Changelog, https://github.com/runapi-ai/core-sdk/blob/main/CHANGELOG.md
10
- Project-URL: Release Notes, https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.0
10
+ Project-URL: Release Notes, https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.2
11
11
  Author-email: RunAPI <contact@runapi.ai>
12
12
  License-Expression: Apache-2.0
13
13
  Keywords: api,core,golang,gradle,java,maven,pypi,python,ruby,runapi,runapi-ai,sdk,typescript
@@ -19,7 +19,7 @@ Documentation = "https://runapi.ai/docs/resources/sdks"
19
19
  Source = "https://github.com/runapi-ai/core-sdk"
20
20
  Issues = "https://github.com/runapi-ai/core-sdk/issues"
21
21
  Changelog = "https://github.com/runapi-ai/core-sdk/blob/main/CHANGELOG.md"
22
- "Release Notes" = "https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.0"
22
+ "Release Notes" = "https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.2"
23
23
 
24
24
  [tool.hatch.version]
25
25
  path = "src/runapi/core/version.py"
@@ -242,8 +242,19 @@ CONTRACT = {
242
242
  }
243
243
  },
244
244
  "gemini-omni/text-to-video": {
245
- "models": ["gemini-omni-flash-preview", "gemini-omni-text-to-video"],
245
+ "models": ["gemini-omni-flash-1-1", "gemini-omni-flash-preview", "gemini-omni-text-to-video"],
246
246
  "fields_by_model": {
247
+ "gemini-omni-flash-1-1": {
248
+ "aspect_ratio": {
249
+ "enum": ["16:9", "9:16"]
250
+ },
251
+ "duration_seconds": {
252
+ "enum": [4, 6, 8, 10]
253
+ },
254
+ "output_resolution": {
255
+ "enum": ["360p", "720p", "1080p", "4k"]
256
+ }
257
+ },
247
258
  "gemini-omni-flash-preview": {
248
259
  "aspect_ratio": {
249
260
  "enum": ["16:9", "9:16"]
@@ -285,6 +296,48 @@ CONTRACT = {
285
296
  }
286
297
  }
287
298
  },
299
+ "gpt-image-2.5/edit-image": {
300
+ "models": ["gpt-image-2.5-flare", "gpt-image-2.5-sunburst"],
301
+ "fields_by_model": {
302
+ "gpt-image-2.5-flare": {
303
+ "aspect_ratio": {
304
+ "enum": ["auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21"]
305
+ },
306
+ "output_resolution": {
307
+ "enum": ["1k", "2k", "4k"]
308
+ }
309
+ },
310
+ "gpt-image-2.5-sunburst": {
311
+ "aspect_ratio": {
312
+ "enum": ["auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21"]
313
+ },
314
+ "output_resolution": {
315
+ "enum": ["1k", "2k", "4k"]
316
+ }
317
+ }
318
+ }
319
+ },
320
+ "gpt-image-2.5/text-to-image": {
321
+ "models": ["gpt-image-2.5-flare", "gpt-image-2.5-sunburst"],
322
+ "fields_by_model": {
323
+ "gpt-image-2.5-flare": {
324
+ "aspect_ratio": {
325
+ "enum": ["auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21"]
326
+ },
327
+ "output_resolution": {
328
+ "enum": ["1k", "2k", "4k"]
329
+ }
330
+ },
331
+ "gpt-image-2.5-sunburst": {
332
+ "aspect_ratio": {
333
+ "enum": ["auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21"]
334
+ },
335
+ "output_resolution": {
336
+ "enum": ["1k", "2k", "4k"]
337
+ }
338
+ }
339
+ }
340
+ },
288
341
  "gpt-image-2/edit-image": {
289
342
  "models": ["gpt-image-2"],
290
343
  "fields_by_model": {
@@ -0,0 +1 @@
1
+ __version__ = "0.8.2"
@@ -144,9 +144,12 @@ def test_service_unavailable_defaults_to_503():
144
144
  assert errors.ServiceUnavailableError().status == 503
145
145
 
146
146
 
147
- def test_resource_validation_uses_summary_and_preserves_field_errors():
147
+ def test_resource_validation_reads_summary_and_preserves_field_errors():
148
148
  error = errors.error_from_response(
149
- response(422, body='{"error":"Validation failed","errors":{"prompt":["too long"]}}')
149
+ response(
150
+ 422,
151
+ body='{"error":"Validation failed","errors":{"prompt":["too long"]}}',
152
+ )
150
153
  )
151
154
  assert error.message == "Validation failed"
152
155
  assert error.details["errors"] == {"prompt": ["too long"]}
@@ -1 +0,0 @@
1
- __version__ = "0.8.0"
File without changes