runapi-core 0.8.1__tar.gz → 0.8.3__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.1 → runapi_core-0.8.3}/PKG-INFO +2 -2
  2. {runapi_core-0.8.1 → runapi_core-0.8.3}/pyproject.toml +1 -1
  3. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/contract_gen.py +225 -5
  4. runapi_core-0.8.3/src/runapi/core/version.py +1 -0
  5. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_errors.py +5 -2
  6. runapi_core-0.8.1/src/runapi/core/version.py +0 -1
  7. {runapi_core-0.8.1 → runapi_core-0.8.3}/README.md +0 -0
  8. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/__init__.py +0 -0
  9. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/account.py +0 -0
  10. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/auth.py +0 -0
  11. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/config.py +0 -0
  12. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/constants.py +0 -0
  13. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/errors.py +0 -0
  14. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/files.py +0 -0
  15. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/http_client.py +0 -0
  16. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/models.py +0 -0
  17. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/multipart.py +0 -0
  18. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/options.py +0 -0
  19. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/polling.py +0 -0
  20. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/pricing.py +0 -0
  21. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/provider_client.py +0 -0
  22. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/py.typed +0 -0
  23. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/resource.py +0 -0
  24. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/response.py +0 -0
  25. {runapi_core-0.8.1 → runapi_core-0.8.3}/src/runapi/core/uploads.py +0 -0
  26. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_account.py +0 -0
  27. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_auth.py +0 -0
  28. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_config.py +0 -0
  29. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_files.py +0 -0
  30. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_http_client.py +0 -0
  31. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_models.py +0 -0
  32. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_polling.py +0 -0
  33. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_pricing.py +0 -0
  34. {runapi_core-0.8.1 → runapi_core-0.8.3}/tests/test_resource.py +0 -0
  35. {runapi_core-0.8.1 → runapi_core-0.8.3}/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.1
3
+ Version: 0.8.3
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.1
10
+ Project-URL: Release Notes, https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.3
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.1"
22
+ "Release Notes" = "https://github.com/runapi-ai/core-sdk/releases/tag/python%2Fv0.8.3"
23
23
 
24
24
  [tool.hatch.version]
25
25
  path = "src/runapi/core/version.py"
@@ -296,6 +296,48 @@ CONTRACT = {
296
296
  }
297
297
  }
298
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
+ },
299
341
  "gpt-image-2/edit-image": {
300
342
  "models": ["gpt-image-2"],
301
343
  "fields_by_model": {
@@ -1644,6 +1686,12 @@ CONTRACT = {
1644
1686
  }
1645
1687
  }
1646
1688
  },
1689
+ "suno/audio-exports": {
1690
+ "models": [],
1691
+ "fields_by_model": {
1692
+ "_": {}
1693
+ }
1694
+ },
1647
1695
  "suno/blend-lyrics": {
1648
1696
  "models": [],
1649
1697
  "fields_by_model": {
@@ -1669,7 +1717,7 @@ CONTRACT = {
1669
1717
  }
1670
1718
  },
1671
1719
  "suno/cover-audio": {
1672
- "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
1720
+ "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5", "suno-v6", "suno-v6-mini", "suno-v6-wild"],
1673
1721
  "fields_by_model": {
1674
1722
  "suno-v4": {
1675
1723
  "persona_type": {
@@ -1736,11 +1784,44 @@ CONTRACT = {
1736
1784
  "vocal_mode": {
1737
1785
  "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1738
1786
  }
1787
+ },
1788
+ "suno-v6": {
1789
+ "persona_type": {
1790
+ "enum": ["style", "voice"]
1791
+ },
1792
+ "vocal_gender": {
1793
+ "enum": ["male", "female"]
1794
+ },
1795
+ "vocal_mode": {
1796
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1797
+ }
1798
+ },
1799
+ "suno-v6-mini": {
1800
+ "persona_type": {
1801
+ "enum": ["style", "voice"]
1802
+ },
1803
+ "vocal_gender": {
1804
+ "enum": ["male", "female"]
1805
+ },
1806
+ "vocal_mode": {
1807
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1808
+ }
1809
+ },
1810
+ "suno-v6-wild": {
1811
+ "persona_type": {
1812
+ "enum": ["style", "voice"]
1813
+ },
1814
+ "vocal_gender": {
1815
+ "enum": ["male", "female"]
1816
+ },
1817
+ "vocal_mode": {
1818
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1819
+ }
1739
1820
  }
1740
1821
  }
1741
1822
  },
1742
1823
  "suno/create-mashup": {
1743
- "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
1824
+ "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5", "suno-v6", "suno-v6-mini", "suno-v6-wild"],
1744
1825
  "fields_by_model": {
1745
1826
  "suno-v4": {
1746
1827
  "persona_type": {
@@ -1807,11 +1888,44 @@ CONTRACT = {
1807
1888
  "vocal_mode": {
1808
1889
  "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1809
1890
  }
1891
+ },
1892
+ "suno-v6": {
1893
+ "persona_type": {
1894
+ "enum": ["style", "voice"]
1895
+ },
1896
+ "vocal_gender": {
1897
+ "enum": ["male", "female"]
1898
+ },
1899
+ "vocal_mode": {
1900
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1901
+ }
1902
+ },
1903
+ "suno-v6-mini": {
1904
+ "persona_type": {
1905
+ "enum": ["style", "voice"]
1906
+ },
1907
+ "vocal_gender": {
1908
+ "enum": ["male", "female"]
1909
+ },
1910
+ "vocal_mode": {
1911
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1912
+ }
1913
+ },
1914
+ "suno-v6-wild": {
1915
+ "persona_type": {
1916
+ "enum": ["style", "voice"]
1917
+ },
1918
+ "vocal_gender": {
1919
+ "enum": ["male", "female"]
1920
+ },
1921
+ "vocal_mode": {
1922
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
1923
+ }
1810
1924
  }
1811
1925
  }
1812
1926
  },
1813
1927
  "suno/extend-music": {
1814
- "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
1928
+ "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5", "suno-v6", "suno-v6-mini", "suno-v6-wild"],
1815
1929
  "fields_by_model": {
1816
1930
  "suno-v4": {
1817
1931
  "parameter_mode": {
@@ -1878,6 +1992,39 @@ CONTRACT = {
1878
1992
  "vocal_gender": {
1879
1993
  "enum": ["male", "female"]
1880
1994
  }
1995
+ },
1996
+ "suno-v6": {
1997
+ "parameter_mode": {
1998
+ "enum": ["source", "custom"]
1999
+ },
2000
+ "persona_type": {
2001
+ "enum": ["style", "voice"]
2002
+ },
2003
+ "vocal_gender": {
2004
+ "enum": ["male", "female"]
2005
+ }
2006
+ },
2007
+ "suno-v6-mini": {
2008
+ "parameter_mode": {
2009
+ "enum": ["source", "custom"]
2010
+ },
2011
+ "persona_type": {
2012
+ "enum": ["style", "voice"]
2013
+ },
2014
+ "vocal_gender": {
2015
+ "enum": ["male", "female"]
2016
+ }
2017
+ },
2018
+ "suno-v6-wild": {
2019
+ "parameter_mode": {
2020
+ "enum": ["source", "custom"]
2021
+ },
2022
+ "persona_type": {
2023
+ "enum": ["style", "voice"]
2024
+ },
2025
+ "vocal_gender": {
2026
+ "enum": ["male", "female"]
2027
+ }
1881
2028
  }
1882
2029
  }
1883
2030
  },
@@ -1931,6 +2078,28 @@ CONTRACT = {
1931
2078
  "suno-v5.5": {}
1932
2079
  }
1933
2080
  },
2081
+ "suno/music-from-sample": {
2082
+ "models": ["suno-v4", "suno-v4.5", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
2083
+ "fields_by_model": {
2084
+ "suno-v4": {},
2085
+ "suno-v4.5": {},
2086
+ "suno-v4.5-plus": {},
2087
+ "suno-v5": {},
2088
+ "suno-v5.5": {}
2089
+ }
2090
+ },
2091
+ "suno/music-visualizations": {
2092
+ "models": [],
2093
+ "fields_by_model": {
2094
+ "_": {}
2095
+ }
2096
+ },
2097
+ "suno/personas": {
2098
+ "models": [],
2099
+ "fields_by_model": {
2100
+ "_": {}
2101
+ }
2102
+ },
1934
2103
  "suno/regenerate-validation-phrase": {
1935
2104
  "models": [],
1936
2105
  "fields_by_model": {
@@ -1952,7 +2121,7 @@ CONTRACT = {
1952
2121
  "fields_by_model": {
1953
2122
  "_": {
1954
2123
  "model": {
1955
- "enum": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"]
2124
+ "enum": ["suno-v6", "suno-v6-wild", "suno-v6-mini", "suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"]
1956
2125
  }
1957
2126
  }
1958
2127
  }
@@ -1980,8 +2149,14 @@ CONTRACT = {
1980
2149
  "suno-v5.5": {}
1981
2150
  }
1982
2151
  },
2152
+ "suno/style-expansions": {
2153
+ "models": [],
2154
+ "fields_by_model": {
2155
+ "_": {}
2156
+ }
2157
+ },
1983
2158
  "suno/text-to-music": {
1984
- "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5"],
2159
+ "models": ["suno-v4", "suno-v4.5", "suno-v4.5-all", "suno-v4.5-plus", "suno-v5", "suno-v5.5", "suno-v6", "suno-v6-mini", "suno-v6-wild"],
1985
2160
  "fields_by_model": {
1986
2161
  "suno-v4": {
1987
2162
  "persona_type": {
@@ -2048,6 +2223,39 @@ CONTRACT = {
2048
2223
  "vocal_mode": {
2049
2224
  "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
2050
2225
  }
2226
+ },
2227
+ "suno-v6": {
2228
+ "persona_type": {
2229
+ "enum": ["style", "voice"]
2230
+ },
2231
+ "vocal_gender": {
2232
+ "enum": ["male", "female"]
2233
+ },
2234
+ "vocal_mode": {
2235
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
2236
+ }
2237
+ },
2238
+ "suno-v6-mini": {
2239
+ "persona_type": {
2240
+ "enum": ["style", "voice"]
2241
+ },
2242
+ "vocal_gender": {
2243
+ "enum": ["male", "female"]
2244
+ },
2245
+ "vocal_mode": {
2246
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
2247
+ }
2248
+ },
2249
+ "suno-v6-wild": {
2250
+ "persona_type": {
2251
+ "enum": ["style", "voice"]
2252
+ },
2253
+ "vocal_gender": {
2254
+ "enum": ["male", "female"]
2255
+ },
2256
+ "vocal_mode": {
2257
+ "enum": ["auto_lyrics", "exact_lyrics", "instrumental"]
2258
+ }
2051
2259
  }
2052
2260
  }
2053
2261
  },
@@ -2066,6 +2274,12 @@ CONTRACT = {
2066
2274
  }
2067
2275
  }
2068
2276
  },
2277
+ "suno/timestamped-lyrics": {
2278
+ "models": [],
2279
+ "fields_by_model": {
2280
+ "_": {}
2281
+ }
2282
+ },
2069
2283
  "suno/visualize-music": {
2070
2284
  "models": [],
2071
2285
  "fields_by_model": {
@@ -2082,6 +2296,12 @@ CONTRACT = {
2082
2296
  }
2083
2297
  }
2084
2298
  },
2299
+ "suno/voices": {
2300
+ "models": [],
2301
+ "fields_by_model": {
2302
+ "_": {}
2303
+ }
2304
+ },
2085
2305
  "topaz/upscale-image": {
2086
2306
  "models": ["topaz-upscale-image"],
2087
2307
  "fields_by_model": {
@@ -0,0 +1 @@
1
+ __version__ = "0.8.3"
@@ -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.1"
File without changes