raccoonai 0.1.0a12__tar.gz → 0.1.0a15__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.

Potentially problematic release.


This version of raccoonai might be problematic. Click here for more details.

Files changed (113) hide show
  1. raccoonai-0.1.0a15/.release-please-manifest.json +3 -0
  2. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/CHANGELOG.md +37 -0
  3. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/PKG-INFO +5 -7
  4. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/README.md +1 -2
  5. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/SECURITY.md +1 -1
  6. raccoonai-0.1.0a15/bin/publish-pypi +6 -0
  7. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/pyproject.toml +3 -3
  8. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/requirements-dev.lock +1 -0
  9. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/requirements.lock +1 -0
  10. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_client.py +2 -2
  11. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_models.py +6 -3
  12. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_transform.py +1 -1
  13. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_version.py +1 -1
  14. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/fleet/sessions.py +4 -4
  15. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/lam/tasks.py +4 -4
  16. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_all_params.py +4 -2
  17. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_all_response.py +2 -2
  18. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_create_params.py +12 -9
  19. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_create_response.py +1 -1
  20. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam/task_all_params.py +4 -2
  21. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam/task_all_response.py +2 -2
  22. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam_run_params.py +18 -8
  23. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/fleet/test_sessions.py +2 -4
  24. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/lam/test_tasks.py +2 -2
  25. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/test_lam.py +0 -4
  26. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_client.py +2 -2
  27. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_models.py +32 -0
  28. raccoonai-0.1.0a12/.release-please-manifest.json +0 -3
  29. raccoonai-0.1.0a12/bin/publish-pypi +0 -9
  30. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/.gitignore +0 -0
  31. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/CONTRIBUTING.md +0 -0
  32. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/LICENSE +0 -0
  33. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/api.md +0 -0
  34. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/bin/check-release-environment +0 -0
  35. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/examples/.keep +0 -0
  36. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/mypy.ini +0 -0
  37. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/noxfile.py +0 -0
  38. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/release-please-config.json +0 -0
  39. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/__init__.py +0 -0
  40. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_base_client.py +0 -0
  41. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_compat.py +0 -0
  42. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_constants.py +0 -0
  43. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_exceptions.py +0 -0
  44. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_files.py +0 -0
  45. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_qs.py +0 -0
  46. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_resource.py +0 -0
  47. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_response.py +0 -0
  48. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_streaming.py +0 -0
  49. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_types.py +0 -0
  50. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/__init__.py +0 -0
  51. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_logs.py +0 -0
  52. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_proxy.py +0 -0
  53. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_reflection.py +0 -0
  54. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_streams.py +0 -0
  55. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_sync.py +0 -0
  56. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_typing.py +0 -0
  57. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/_utils/_utils.py +0 -0
  58. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/lib/.keep +0 -0
  59. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/py.typed +0 -0
  60. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/__init__.py +0 -0
  61. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/fleet/__init__.py +0 -0
  62. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/fleet/extensions.py +0 -0
  63. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/fleet/fleet.py +0 -0
  64. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/lam/__init__.py +0 -0
  65. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/lam/lam.py +0 -0
  66. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/tail/__init__.py +0 -0
  67. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/tail/apps.py +0 -0
  68. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/tail/tail.py +0 -0
  69. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/resources/tail/users.py +0 -0
  70. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/__init__.py +0 -0
  71. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/__init__.py +0 -0
  72. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/extension_all_response.py +0 -0
  73. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/extension_get_response.py +0 -0
  74. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/extension_upload_params.py +0 -0
  75. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/extension_upload_response.py +0 -0
  76. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_logs_response.py +0 -0
  77. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_media_response.py +0 -0
  78. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_status_response.py +0 -0
  79. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/fleet/session_terminate_response.py +0 -0
  80. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam/__init__.py +0 -0
  81. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam/task_media_response.py +0 -0
  82. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/lam_run_response.py +0 -0
  83. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/__init__.py +0 -0
  84. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/app_all_response.py +0 -0
  85. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/app_linked_params.py +0 -0
  86. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/app_linked_response.py +0 -0
  87. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_all_params.py +0 -0
  88. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_all_response.py +0 -0
  89. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_create_params.py +0 -0
  90. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_create_response.py +0 -0
  91. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_status_params.py +0 -0
  92. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/src/raccoonai/types/tail/user_status_response.py +0 -0
  93. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/__init__.py +0 -0
  94. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/__init__.py +0 -0
  95. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/fleet/__init__.py +0 -0
  96. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/fleet/test_extensions.py +0 -0
  97. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/lam/__init__.py +0 -0
  98. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/tail/__init__.py +0 -0
  99. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/tail/test_apps.py +0 -0
  100. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/api_resources/tail/test_users.py +0 -0
  101. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/conftest.py +0 -0
  102. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/sample_file.txt +0 -0
  103. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_deepcopy.py +0 -0
  104. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_extract_files.py +0 -0
  105. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_files.py +0 -0
  106. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_qs.py +0 -0
  107. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_required_args.py +0 -0
  108. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_response.py +0 -0
  109. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_streaming.py +0 -0
  110. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_transform.py +0 -0
  111. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_utils/test_proxy.py +0 -0
  112. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/test_utils/test_typing.py +0 -0
  113. {raccoonai-0.1.0a12 → raccoonai-0.1.0a15}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.15"
3
+ }
@@ -1,5 +1,42 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.15 (2025-03-27)
4
+
5
+ Full Changelog: [v0.1.0-alpha.14...v0.1.0-alpha.15](https://github.com/raccoonaihq/raccoonai-python/compare/v0.1.0-alpha.14...v0.1.0-alpha.15)
6
+
7
+ ### Chores
8
+
9
+ * fix typos ([#62](https://github.com/raccoonaihq/raccoonai-python/issues/62)) ([48b308d](https://github.com/raccoonaihq/raccoonai-python/commit/48b308d54385b04e0d7139b81690a81194499310))
10
+
11
+ ## 0.1.0-alpha.14 (2025-03-18)
12
+
13
+ Full Changelog: [v0.1.0-alpha.13...v0.1.0-alpha.14](https://github.com/raccoonaihq/raccoonai-python/compare/v0.1.0-alpha.13...v0.1.0-alpha.14)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([#59](https://github.com/raccoonaihq/raccoonai-python/issues/59)) ([8c3e83c](https://github.com/raccoonaihq/raccoonai-python/commit/8c3e83cc030af8c2dfe01e79676b9b3f80bd3f8b))
18
+ * **api:** update new domain ([#60](https://github.com/raccoonaihq/raccoonai-python/issues/60)) ([89b0074](https://github.com/raccoonaihq/raccoonai-python/commit/89b00747c646dc3ac8dfe84a025ba59aee06bbff))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **ci:** ensure pip is always available ([#56](https://github.com/raccoonaihq/raccoonai-python/issues/56)) ([1317d91](https://github.com/raccoonaihq/raccoonai-python/commit/1317d91a7551ea5e44d56e2538b1f8498cdc3f0e))
24
+ * **ci:** remove publishing patch ([#58](https://github.com/raccoonaihq/raccoonai-python/issues/58)) ([fd0c16a](https://github.com/raccoonaihq/raccoonai-python/commit/fd0c16ab03e82f28591c3fde7b5ed079fe8f0557))
25
+
26
+ ## 0.1.0-alpha.13 (2025-03-15)
27
+
28
+ Full Changelog: [v0.1.0-alpha.12...v0.1.0-alpha.13](https://github.com/raccoonaihq/raccoonai-python/compare/v0.1.0-alpha.12...v0.1.0-alpha.13)
29
+
30
+ ### Bug Fixes
31
+
32
+ * **types:** handle more discriminated union shapes ([#54](https://github.com/raccoonaihq/raccoonai-python/issues/54)) ([89309c4](https://github.com/raccoonaihq/raccoonai-python/commit/89309c469b5350d7883e9d979ee34af7178ebb11))
33
+
34
+
35
+ ### Chores
36
+
37
+ * **internal:** bump rye to 0.44.0 ([#53](https://github.com/raccoonaihq/raccoonai-python/issues/53)) ([8c6bbb6](https://github.com/raccoonaihq/raccoonai-python/commit/8c6bbb67d288e897cda0d492a6217ae3138e0ba5))
38
+ * **internal:** codegen related update ([#51](https://github.com/raccoonaihq/raccoonai-python/issues/51)) ([f1ef956](https://github.com/raccoonaihq/raccoonai-python/commit/f1ef956cfe8fe417214ffc79dff0f233c48a2f82))
39
+
3
40
  ## 0.1.0-alpha.12 (2025-03-14)
4
41
 
5
42
  Full Changelog: [v0.1.0-alpha.11...v0.1.0-alpha.12](https://github.com/raccoonaihq/raccoonai-python/compare/v0.1.0-alpha.11...v0.1.0-alpha.12)
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: raccoonai
3
- Version: 0.1.0a12
3
+ Version: 0.1.0a15
4
4
  Summary: The official Python library for the raccoonAI API
5
5
  Project-URL: Homepage, https://github.com/raccoonaihq/raccoonai-python
6
6
  Project-URL: Repository, https://github.com/raccoonaihq/raccoonai-python
7
- Author-email: Raccoon AI <team@flyingraccoon.tech>
8
- License-Expression: Apache-2.0
9
- License-File: LICENSE
7
+ Author-email: Raccoon AI <team@raccoonai.tech>
8
+ License: Apache-2.0
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: License :: OSI Approved :: Apache Software License
12
11
  Classifier: Operating System :: MacOS
@@ -42,7 +41,7 @@ It is generated with [Stainless](https://www.stainless.com/).
42
41
 
43
42
  ## Documentation
44
43
 
45
- The REST API documentation can be found on [docs.flyingraccoon.tech](https://docs.flyingraccoon.tech). The full API of this library can be found in [api.md](https://github.com/raccoonaihq/raccoonai-python/tree/main/api.md).
44
+ The REST API documentation can be found on [docs.raccoonai.tech](https://docs.raccoonai.tech). The full API of this library can be found in [api.md](https://github.com/raccoonaihq/raccoonai-python/tree/main/api.md).
46
45
 
47
46
  ## Installation
48
47
 
@@ -167,7 +166,6 @@ response = client.lam.run(
167
166
  "proxy": {
168
167
  "city": "sanfrancisco",
169
168
  "country": "us",
170
- "enable": True,
171
169
  "state": "ca",
172
170
  "zip": 94102,
173
171
  },
@@ -10,7 +10,7 @@ It is generated with [Stainless](https://www.stainless.com/).
10
10
 
11
11
  ## Documentation
12
12
 
13
- The REST API documentation can be found on [docs.flyingraccoon.tech](https://docs.flyingraccoon.tech). The full API of this library can be found in [api.md](api.md).
13
+ The REST API documentation can be found on [docs.raccoonai.tech](https://docs.raccoonai.tech). The full API of this library can be found in [api.md](api.md).
14
14
 
15
15
  ## Installation
16
16
 
@@ -135,7 +135,6 @@ response = client.lam.run(
135
135
  "proxy": {
136
136
  "city": "sanfrancisco",
137
137
  "country": "us",
138
- "enable": True,
139
138
  "state": "ca",
140
139
  "zip": 94102,
141
140
  },
@@ -20,7 +20,7 @@ or products provided by Raccoon AI please follow the respective company's securi
20
20
 
21
21
  ### Raccoon AI Terms and Policies
22
22
 
23
- Please contact team@flyingraccoon.tech for any questions or concerns regarding security of our services.
23
+ Please contact team@raccoonai.tech for any questions or concerns regarding security of our services.
24
24
 
25
25
  ---
26
26
 
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -eux
4
+ mkdir -p dist
5
+ rye build --clean
6
+ rye publish --yes --token=$PYPI_TOKEN
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "raccoonai"
3
- version = "0.1.0-alpha.12"
3
+ version = "0.1.0-alpha.15"
4
4
  description = "The official Python library for the raccoonAI API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
7
7
  authors = [
8
- { name = "Raccoon AI", email = "team@flyingraccoon.tech" },
8
+ { name = "Raccoon AI", email = "team@raccoonai.tech" },
9
9
  ]
10
10
  dependencies = [
11
11
  "httpx>=0.23.0, <1",
@@ -86,7 +86,7 @@ typecheck = { chain = [
86
86
  "typecheck:mypy" = "mypy ."
87
87
 
88
88
  [build-system]
89
- requires = ["hatchling", "hatch-fancy-pypi-readme"]
89
+ requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
90
90
  build-backend = "hatchling.build"
91
91
 
92
92
  [tool.hatch.build]
@@ -7,6 +7,7 @@
7
7
  # all-features: true
8
8
  # with-sources: false
9
9
  # generate-hashes: false
10
+ # universal: false
10
11
 
11
12
  -e file:.
12
13
  annotated-types==0.6.0
@@ -7,6 +7,7 @@
7
7
  # all-features: true
8
8
  # with-sources: false
9
9
  # generate-hashes: false
10
+ # universal: false
10
11
 
11
12
  -e file:.
12
13
  annotated-types==0.6.0
@@ -48,8 +48,8 @@ __all__ = [
48
48
  ]
49
49
 
50
50
  ENVIRONMENTS: Dict[str, str] = {
51
- "production": "https://api.flyingraccoon.tech",
52
- "staging": "https://staging.flyingraccoon.tech",
51
+ "production": "https://api.raccoonai.tech",
52
+ "staging": "https://staging.raccoonai.tech",
53
53
  "local": "http://localhost:3800",
54
54
  }
55
55
 
@@ -65,7 +65,7 @@ from ._compat import (
65
65
  from ._constants import RAW_RESPONSE_HEADER
66
66
 
67
67
  if TYPE_CHECKING:
68
- from pydantic_core.core_schema import ModelField, LiteralSchema, ModelFieldsSchema
68
+ from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
69
69
 
70
70
  __all__ = ["BaseModel", "GenericModel"]
71
71
 
@@ -646,15 +646,18 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
646
646
 
647
647
  def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None:
648
648
  schema = model.__pydantic_core_schema__
649
+ if schema["type"] == "definitions":
650
+ schema = schema["schema"]
651
+
649
652
  if schema["type"] != "model":
650
653
  return None
651
654
 
655
+ schema = cast("ModelSchema", schema)
652
656
  fields_schema = schema["schema"]
653
657
  if fields_schema["type"] != "model-fields":
654
658
  return None
655
659
 
656
660
  fields_schema = cast("ModelFieldsSchema", fields_schema)
657
-
658
661
  field = fields_schema["fields"].get(field_name)
659
662
  if not field:
660
663
  return None
@@ -678,7 +681,7 @@ def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None:
678
681
  setattr(typ, "__pydantic_config__", config) # noqa: B010
679
682
 
680
683
 
681
- # our use of subclasssing here causes weirdness for type checkers,
684
+ # our use of subclassing here causes weirdness for type checkers,
682
685
  # so we just pretend that we don't subclass
683
686
  if TYPE_CHECKING:
684
687
  GenericModel = BaseModel
@@ -126,7 +126,7 @@ def _get_annotated_type(type_: type) -> type | None:
126
126
  def _maybe_transform_key(key: str, type_: type) -> str:
127
127
  """Transform the given `data` based on the annotations provided in `type_`.
128
128
 
129
- Note: this function only looks at `Annotated` types that contain `PropertInfo` metadata.
129
+ Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata.
130
130
  """
131
131
  annotated_type = _get_annotated_type(type_)
132
132
  if annotated_type is None:
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "raccoonai"
4
- __version__ = "0.1.0-alpha.12" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.15" # x-release-please-version
@@ -123,7 +123,7 @@ class SessionsResource(SyncAPIResource):
123
123
  self,
124
124
  *,
125
125
  end_time: Optional[int] | NotGiven = NOT_GIVEN,
126
- execution_type: Optional[List[Literal["run", "extract", "fleet"]]] | NotGiven = NOT_GIVEN,
126
+ execution_type: Optional[List[Literal["default", "deepsearch", "fleet"]]] | NotGiven = NOT_GIVEN,
127
127
  limit: Optional[int] | NotGiven = NOT_GIVEN,
128
128
  page: Optional[int] | NotGiven = NOT_GIVEN,
129
129
  raccoon_passcode: Optional[str] | NotGiven = NOT_GIVEN,
@@ -146,7 +146,7 @@ class SessionsResource(SyncAPIResource):
146
146
  Args:
147
147
  end_time: Filter sessions created before this Unix timestamp (in milliseconds).
148
148
 
149
- execution_type: Filter sessions by execution type (e.g., 'run', 'extract').
149
+ execution_type: Filter sessions by execution type (e.g., 'default', 'deepsearch').
150
150
 
151
151
  limit: Number of sessions per page (maximum 100).
152
152
 
@@ -424,7 +424,7 @@ class AsyncSessionsResource(AsyncAPIResource):
424
424
  self,
425
425
  *,
426
426
  end_time: Optional[int] | NotGiven = NOT_GIVEN,
427
- execution_type: Optional[List[Literal["run", "extract", "fleet"]]] | NotGiven = NOT_GIVEN,
427
+ execution_type: Optional[List[Literal["default", "deepsearch", "fleet"]]] | NotGiven = NOT_GIVEN,
428
428
  limit: Optional[int] | NotGiven = NOT_GIVEN,
429
429
  page: Optional[int] | NotGiven = NOT_GIVEN,
430
430
  raccoon_passcode: Optional[str] | NotGiven = NOT_GIVEN,
@@ -447,7 +447,7 @@ class AsyncSessionsResource(AsyncAPIResource):
447
447
  Args:
448
448
  end_time: Filter sessions created before this Unix timestamp (in milliseconds).
449
449
 
450
- execution_type: Filter sessions by execution type (e.g., 'run', 'extract').
450
+ execution_type: Filter sessions by execution type (e.g., 'default', 'deepsearch').
451
451
 
452
452
  limit: Number of sessions per page (maximum 100).
453
453
 
@@ -52,7 +52,7 @@ class TasksResource(SyncAPIResource):
52
52
  self,
53
53
  *,
54
54
  end_time: Optional[int] | NotGiven = NOT_GIVEN,
55
- execution_type: Optional[List[Literal["run", "extract", "fleet"]]] | NotGiven = NOT_GIVEN,
55
+ execution_type: Optional[List[Literal["default", "deepsearch", "fleet"]]] | NotGiven = NOT_GIVEN,
56
56
  limit: Optional[int] | NotGiven = NOT_GIVEN,
57
57
  page: Optional[int] | NotGiven = NOT_GIVEN,
58
58
  raccoon_passcode: Optional[str] | NotGiven = NOT_GIVEN,
@@ -74,7 +74,7 @@ class TasksResource(SyncAPIResource):
74
74
  Args:
75
75
  end_time: Filter tasks created before this Unix timestamp (in milliseconds).
76
76
 
77
- execution_type: Filter tasks by execution type (e.g., 'run', 'extract').
77
+ execution_type: Filter tasks by execution type (e.g., 'default', 'deepsearch').
78
78
 
79
79
  limit: Number of tasks per page (maximum 100).
80
80
 
@@ -183,7 +183,7 @@ class AsyncTasksResource(AsyncAPIResource):
183
183
  self,
184
184
  *,
185
185
  end_time: Optional[int] | NotGiven = NOT_GIVEN,
186
- execution_type: Optional[List[Literal["run", "extract", "fleet"]]] | NotGiven = NOT_GIVEN,
186
+ execution_type: Optional[List[Literal["default", "deepsearch", "fleet"]]] | NotGiven = NOT_GIVEN,
187
187
  limit: Optional[int] | NotGiven = NOT_GIVEN,
188
188
  page: Optional[int] | NotGiven = NOT_GIVEN,
189
189
  raccoon_passcode: Optional[str] | NotGiven = NOT_GIVEN,
@@ -205,7 +205,7 @@ class AsyncTasksResource(AsyncAPIResource):
205
205
  Args:
206
206
  end_time: Filter tasks created before this Unix timestamp (in milliseconds).
207
207
 
208
- execution_type: Filter tasks by execution type (e.g., 'run', 'extract').
208
+ execution_type: Filter tasks by execution type (e.g., 'default', 'deepsearch').
209
209
 
210
210
  limit: Number of tasks per page (maximum 100).
211
211
 
@@ -14,8 +14,10 @@ class SessionAllParams(TypedDict, total=False):
14
14
  end_time: Optional[int]
15
15
  """Filter sessions created before this Unix timestamp (in milliseconds)."""
16
16
 
17
- execution_type: Annotated[Optional[List[Literal["run", "extract", "fleet"]]], PropertyInfo(alias="executionType")]
18
- """Filter sessions by execution type (e.g., 'run', 'extract')."""
17
+ execution_type: Annotated[
18
+ Optional[List[Literal["default", "deepsearch", "fleet"]]], PropertyInfo(alias="executionType")
19
+ ]
20
+ """Filter sessions by execution type (e.g., 'default', 'deepsearch')."""
19
21
 
20
22
  limit: Optional[int]
21
23
  """Number of sessions per page (maximum 100)."""
@@ -25,8 +25,8 @@ class Session(BaseModel):
25
25
  execution_time: int = FieldInfo(alias="executionTime")
26
26
  """Time taken for the session execution (in milliseconds)."""
27
27
 
28
- execution_type: Literal["run", "extract", "fleet"] = FieldInfo(alias="executionType")
29
- """The type of execution performed (e.g., 'run', 'extract')."""
28
+ execution_type: Literal["default", "deepsearch", "fleet"] = FieldInfo(alias="executionType")
29
+ """The type of execution performed (e.g., 'default', 'deepsearch')."""
30
30
 
31
31
  inputs: object
32
32
  """Input parameters used for the session."""
@@ -2,10 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, List, Iterable, Optional
6
- from typing_extensions import Literal, TypedDict
5
+ from typing import Dict, List, Union, Iterable, Optional
6
+ from typing_extensions import Literal, TypeAlias, TypedDict
7
7
 
8
- __all__ = ["SessionCreateParams", "Advanced", "AdvancedProxy", "Settings"]
8
+ __all__ = ["SessionCreateParams", "Advanced", "AdvancedProxy", "AdvancedProxyProxySettings", "Settings"]
9
9
 
10
10
 
11
11
  class SessionCreateParams(TypedDict, total=False):
@@ -43,16 +43,13 @@ class SessionCreateParams(TypedDict, total=False):
43
43
  """The entrypoint url for the session."""
44
44
 
45
45
 
46
- class AdvancedProxy(TypedDict, total=False):
46
+ class AdvancedProxyProxySettings(TypedDict, total=False):
47
47
  city: Optional[str]
48
48
  """Target city."""
49
49
 
50
50
  country: Optional[str]
51
51
  """Target country (2-letter ISO code)."""
52
52
 
53
- enable: bool
54
- """Whether to use a proxy for the browser session."""
55
-
56
53
  state: Optional[str]
57
54
  """Target state (2-letter code)."""
58
55
 
@@ -60,6 +57,9 @@ class AdvancedProxy(TypedDict, total=False):
60
57
  """Target postal code."""
61
58
 
62
59
 
60
+ AdvancedProxy: TypeAlias = Union[AdvancedProxyProxySettings, bool]
61
+
62
+
63
63
  class Advanced(TypedDict, total=False):
64
64
  block_ads: Optional[bool]
65
65
  """Whether to block advertisements during the browser session."""
@@ -67,8 +67,11 @@ class Advanced(TypedDict, total=False):
67
67
  extension_ids: Optional[Iterable[object]]
68
68
  """list of extension ids"""
69
69
 
70
- proxy: Optional[AdvancedProxy]
71
- """Proxy details for the browser session."""
70
+ proxy: AdvancedProxy
71
+ """Proxy details for the browser session.
72
+
73
+ Automatically defaults to True if solve_captchas is on.
74
+ """
72
75
 
73
76
  solve_captchas: Optional[bool]
74
77
  """Whether to attempt automatic CAPTCHA solving."""
@@ -14,7 +14,7 @@ class SessionCreateResponse(BaseModel):
14
14
  session_id: str
15
15
  """A unique identifier for the created session."""
16
16
 
17
- status: Literal["starting", "running", "terminated", "completed", "unknown"]
17
+ status: Literal["starting", "running", "terminated", "completed", "unknown", "success", "failure"]
18
18
  """The current status of the session."""
19
19
 
20
20
  websocket_url: str
@@ -14,8 +14,10 @@ class TaskAllParams(TypedDict, total=False):
14
14
  end_time: Optional[int]
15
15
  """Filter tasks created before this Unix timestamp (in milliseconds)."""
16
16
 
17
- execution_type: Annotated[Optional[List[Literal["run", "extract", "fleet"]]], PropertyInfo(alias="executionType")]
18
- """Filter tasks by execution type (e.g., 'run', 'extract')."""
17
+ execution_type: Annotated[
18
+ Optional[List[Literal["default", "deepsearch", "fleet"]]], PropertyInfo(alias="executionType")
19
+ ]
20
+ """Filter tasks by execution type (e.g., 'default', 'deepsearch')."""
19
21
 
20
22
  limit: Optional[int]
21
23
  """Number of tasks per page (maximum 100)."""
@@ -25,8 +25,8 @@ class Task(BaseModel):
25
25
  execution_time: int = FieldInfo(alias="executionTime")
26
26
  """Time taken for the task execution (in seconds)."""
27
27
 
28
- execution_type: Literal["run", "extract"] = FieldInfo(alias="executionType")
29
- """The type of execution performed (e.g., 'run', 'extract')."""
28
+ execution_type: Literal["default", "deepsearch"] = FieldInfo(alias="executionType")
29
+ """The type of execution performed (e.g., 'default', 'deepsearch')."""
30
30
 
31
31
  inputs: object
32
32
  """Input parameters used for the task execution."""
@@ -3,9 +3,16 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Union, Iterable, Optional
6
- from typing_extensions import Literal, Required, TypedDict
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
7
 
8
- __all__ = ["LamRunParamsBase", "Advanced", "AdvancedProxy", "LamRunParamsNonStreaming", "LamRunParamsStreaming"]
8
+ __all__ = [
9
+ "LamRunParamsBase",
10
+ "Advanced",
11
+ "AdvancedProxy",
12
+ "AdvancedProxyProxySettings",
13
+ "LamRunParamsNonStreaming",
14
+ "LamRunParamsStreaming",
15
+ ]
9
16
 
10
17
 
11
18
  class LamRunParamsBase(TypedDict, total=False):
@@ -47,16 +54,13 @@ class LamRunParamsBase(TypedDict, total=False):
47
54
  """
48
55
 
49
56
 
50
- class AdvancedProxy(TypedDict, total=False):
57
+ class AdvancedProxyProxySettings(TypedDict, total=False):
51
58
  city: Optional[str]
52
59
  """Target city."""
53
60
 
54
61
  country: Optional[str]
55
62
  """Target country (2-letter ISO code)."""
56
63
 
57
- enable: bool
58
- """Whether to use a proxy for the browser session."""
59
-
60
64
  state: Optional[str]
61
65
  """Target state (2-letter code)."""
62
66
 
@@ -64,6 +68,9 @@ class AdvancedProxy(TypedDict, total=False):
64
68
  """Target postal code."""
65
69
 
66
70
 
71
+ AdvancedProxy: TypeAlias = Union[AdvancedProxyProxySettings, bool]
72
+
73
+
67
74
  class Advanced(TypedDict, total=False):
68
75
  block_ads: Optional[bool]
69
76
  """Whether to block advertisements during the browser session."""
@@ -71,8 +78,11 @@ class Advanced(TypedDict, total=False):
71
78
  extension_ids: Optional[Iterable[object]]
72
79
  """list of extension ids"""
73
80
 
74
- proxy: Optional[AdvancedProxy]
75
- """Proxy details for the browser session."""
81
+ proxy: AdvancedProxy
82
+ """Proxy details for the browser session.
83
+
84
+ Automatically defaults to True if solve_captchas is on.
85
+ """
76
86
 
77
87
  solve_captchas: Optional[bool]
78
88
  """Whether to attempt automatic CAPTCHA solving."""
@@ -38,7 +38,6 @@ class TestSessions:
38
38
  "proxy": {
39
39
  "city": "sanfrancisco",
40
40
  "country": "us",
41
- "enable": True,
42
41
  "state": "ca",
43
42
  "zip": 94102,
44
43
  },
@@ -89,7 +88,7 @@ class TestSessions:
89
88
  def test_method_all_with_all_params(self, client: RaccoonAI) -> None:
90
89
  session = client.fleet.sessions.all(
91
90
  end_time=1678972800000,
92
- execution_type=["run"],
91
+ execution_type=["default"],
93
92
  limit=15,
94
93
  page=2,
95
94
  raccoon_passcode="code456",
@@ -291,7 +290,6 @@ class TestAsyncSessions:
291
290
  "proxy": {
292
291
  "city": "sanfrancisco",
293
292
  "country": "us",
294
- "enable": True,
295
293
  "state": "ca",
296
294
  "zip": 94102,
297
295
  },
@@ -342,7 +340,7 @@ class TestAsyncSessions:
342
340
  async def test_method_all_with_all_params(self, async_client: AsyncRaccoonAI) -> None:
343
341
  session = await async_client.fleet.sessions.all(
344
342
  end_time=1678972800000,
345
- execution_type=["run"],
343
+ execution_type=["default"],
346
344
  limit=15,
347
345
  page=2,
348
346
  raccoon_passcode="code456",
@@ -26,7 +26,7 @@ class TestTasks:
26
26
  def test_method_all_with_all_params(self, client: RaccoonAI) -> None:
27
27
  task = client.lam.tasks.all(
28
28
  end_time=1678972800000,
29
- execution_type=["run", "extract"],
29
+ execution_type=["default", "deepsearch"],
30
30
  limit=20,
31
31
  page=1,
32
32
  raccoon_passcode="code123",
@@ -108,7 +108,7 @@ class TestAsyncTasks:
108
108
  async def test_method_all_with_all_params(self, async_client: AsyncRaccoonAI) -> None:
109
109
  task = await async_client.lam.tasks.all(
110
110
  end_time=1678972800000,
111
- execution_type=["run", "extract"],
111
+ execution_type=["default", "deepsearch"],
112
112
  limit=20,
113
113
  page=1,
114
114
  raccoon_passcode="code123",
@@ -36,7 +36,6 @@ class TestLam:
36
36
  "proxy": {
37
37
  "city": "sanfrancisco",
38
38
  "country": "us",
39
- "enable": True,
40
39
  "state": "ca",
41
40
  "zip": 94102,
42
41
  },
@@ -105,7 +104,6 @@ class TestLam:
105
104
  "proxy": {
106
105
  "city": "sanfrancisco",
107
106
  "country": "us",
108
- "enable": True,
109
107
  "state": "ca",
110
108
  "zip": 94102,
111
109
  },
@@ -176,7 +174,6 @@ class TestAsyncLam:
176
174
  "proxy": {
177
175
  "city": "sanfrancisco",
178
176
  "country": "us",
179
- "enable": True,
180
177
  "state": "ca",
181
178
  "zip": 94102,
182
179
  },
@@ -245,7 +242,6 @@ class TestAsyncLam:
245
242
  "proxy": {
246
243
  "city": "sanfrancisco",
247
244
  "country": "us",
248
- "enable": True,
249
245
  "state": "ca",
250
246
  "zip": 94102,
251
247
  },
@@ -573,7 +573,7 @@ class TestRaccoonAI:
573
573
  client = RaccoonAI(
574
574
  base_url=None, secret_key=secret_key, _strict_response_validation=True, environment="production"
575
575
  )
576
- assert str(client.base_url).startswith("https://api.flyingraccoon.tech")
576
+ assert str(client.base_url).startswith("https://api.raccoonai.tech")
577
577
 
578
578
  @pytest.mark.parametrize(
579
579
  "client",
@@ -1386,7 +1386,7 @@ class TestAsyncRaccoonAI:
1386
1386
  client = AsyncRaccoonAI(
1387
1387
  base_url=None, secret_key=secret_key, _strict_response_validation=True, environment="production"
1388
1388
  )
1389
- assert str(client.base_url).startswith("https://api.flyingraccoon.tech")
1389
+ assert str(client.base_url).startswith("https://api.raccoonai.tech")
1390
1390
 
1391
1391
  @pytest.mark.parametrize(
1392
1392
  "client",
@@ -854,3 +854,35 @@ def test_field_named_cls() -> None:
854
854
  m = construct_type(value={"cls": "foo"}, type_=Model)
855
855
  assert isinstance(m, Model)
856
856
  assert isinstance(m.cls, str)
857
+
858
+
859
+ def test_discriminated_union_case() -> None:
860
+ class A(BaseModel):
861
+ type: Literal["a"]
862
+
863
+ data: bool
864
+
865
+ class B(BaseModel):
866
+ type: Literal["b"]
867
+
868
+ data: List[Union[A, object]]
869
+
870
+ class ModelA(BaseModel):
871
+ type: Literal["modelA"]
872
+
873
+ data: int
874
+
875
+ class ModelB(BaseModel):
876
+ type: Literal["modelB"]
877
+
878
+ required: str
879
+
880
+ data: Union[A, B]
881
+
882
+ # when constructing ModelA | ModelB, value data doesn't match ModelB exactly - missing `required`
883
+ m = construct_type(
884
+ value={"type": "modelB", "data": {"type": "a", "data": True}},
885
+ type_=cast(Any, Annotated[Union[ModelA, ModelB], PropertyInfo(discriminator="type")]),
886
+ )
887
+
888
+ assert isinstance(m, ModelB)
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.12"
3
- }
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -eux
4
- mkdir -p dist
5
- rye build --clean
6
- # Patching importlib-metadata version until upstream library version is updated
7
- # https://github.com/pypa/twine/issues/977#issuecomment-2189800841
8
- "$HOME/.rye/self/bin/python3" -m pip install 'importlib-metadata==7.2.1'
9
- rye publish --yes --token=$PYPI_TOKEN
File without changes
File without changes
File without changes
File without changes
File without changes