foxclient 5.3.2__tar.gz → 5.4.0__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 (67) hide show
  1. {foxclient-5.3.2 → foxclient-5.4.0}/PKG-INFO +6 -7
  2. {foxclient-5.3.2 → foxclient-5.4.0}/README.md +4 -4
  3. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/__init__.py +4 -4
  4. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api/device_api.py +8 -9
  5. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api/paste_api.py +2 -3
  6. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api/release_api.py +15 -17
  7. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api/stats_api.py +2 -3
  8. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api_client.py +13 -9
  9. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/configuration.py +48 -26
  10. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/exceptions.py +8 -6
  11. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/__init__.py +2 -2
  12. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/device_response.py +5 -4
  13. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/global_stats_aggregation_model.py +5 -4
  14. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/http_validation_error.py +5 -4
  15. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/list_response_release_response.py +5 -4
  16. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/list_response_short_device_response.py +5 -4
  17. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/list_response_short_release_response.py +5 -4
  18. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/list_response_str.py +5 -4
  19. foxclient-5.3.2/foxclient/models/validation_error_loc_inner.py → foxclient-5.4.0/foxclient/models/location_inner.py +7 -7
  20. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/maintainer_short_model.py +5 -4
  21. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/paste_input.py +6 -5
  22. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/paste_output.py +5 -4
  23. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/recovery_img_response.py +5 -4
  24. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/release_groups_response.py +5 -4
  25. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/release_response.py +5 -4
  26. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/release_type.py +1 -1
  27. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/releases_sort.py +1 -1
  28. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/response_get_releases.py +1 -1
  29. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/short_device_response.py +5 -4
  30. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/short_release_response.py +5 -4
  31. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/models/validation_error.py +20 -10
  32. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/rest.py +24 -11
  33. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient.egg-info/PKG-INFO +6 -7
  34. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient.egg-info/SOURCES.txt +3 -3
  35. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient.egg-info/requires.txt +1 -2
  36. {foxclient-5.3.2 → foxclient-5.4.0}/pyproject.toml +2 -3
  37. {foxclient-5.3.2 → foxclient-5.4.0}/setup.py +4 -7
  38. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_device_api.py +1 -1
  39. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_device_response.py +1 -1
  40. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_global_stats_aggregation_model.py +1 -1
  41. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_http_validation_error.py +4 -2
  42. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_list_response_release_response.py +1 -1
  43. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_list_response_short_device_response.py +1 -1
  44. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_list_response_short_release_response.py +1 -1
  45. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_list_response_str.py +1 -1
  46. foxclient-5.3.2/test/test_validation_error_loc_inner.py → foxclient-5.4.0/test/test_location_inner.py +12 -12
  47. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_maintainer_short_model.py +1 -1
  48. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_paste_api.py +1 -1
  49. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_paste_input.py +1 -1
  50. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_paste_output.py +1 -1
  51. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_recovery_img_response.py +1 -1
  52. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_release_api.py +1 -1
  53. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_release_groups_response.py +1 -1
  54. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_release_response.py +1 -1
  55. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_release_type.py +1 -1
  56. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_releases_sort.py +1 -1
  57. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_response_get_releases.py +1 -1
  58. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_short_device_response.py +1 -1
  59. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_short_release_response.py +1 -1
  60. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_stats_api.py +1 -1
  61. {foxclient-5.3.2 → foxclient-5.4.0}/test/test_validation_error.py +4 -2
  62. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api/__init__.py +0 -0
  63. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/api_response.py +0 -0
  64. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient/py.typed +0 -0
  65. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient.egg-info/dependency_links.txt +0 -0
  66. {foxclient-5.3.2 → foxclient-5.4.0}/foxclient.egg-info/top_level.txt +0 -0
  67. {foxclient-5.3.2 → foxclient-5.4.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: foxclient
3
- Version: 5.3.2
3
+ Version: 5.4.0
4
4
  Summary: Fox API
5
5
  Home-page:
6
6
  Author: OpenAPI Generator community
@@ -9,11 +9,10 @@ Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
9
9
  Keywords: OpenAPI,OpenAPI-Generator,Fox API
10
10
  Requires-Python: >=3.9
11
11
  Description-Content-Type: text/markdown
12
- Requires-Dist: urllib3<3.0.0,>=2.1.0
13
12
  Requires-Dist: python-dateutil>=2.8.2
14
13
  Requires-Dist: aiohttp>=3.8.4
15
14
  Requires-Dist: aiohttp-retry>=2.8.3
16
- Requires-Dist: pydantic>=2
15
+ Requires-Dist: pydantic>=2.11
17
16
  Requires-Dist: typing-extensions>=4.7.1
18
17
  Dynamic: author
19
18
 
@@ -31,9 +30,9 @@ The requests may be logged for analytics and development purposes.
31
30
 
32
31
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
33
32
 
34
- - API version: 5.3.2
35
- - Package version: 5.3.2
36
- - Generator version: 7.17.0
33
+ - API version: 5.4.0
34
+ - Package version: 5.4.0
35
+ - Generator version: 7.21.0
37
36
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
38
37
 
39
38
  ## Requirements.
@@ -137,6 +136,7 @@ Class | Method | HTTP request | Description
137
136
  - [ListResponseShortDeviceResponse](docs/ListResponseShortDeviceResponse.md)
138
137
  - [ListResponseShortReleaseResponse](docs/ListResponseShortReleaseResponse.md)
139
138
  - [ListResponseStr](docs/ListResponseStr.md)
139
+ - [LocationInner](docs/LocationInner.md)
140
140
  - [MaintainerShortModel](docs/MaintainerShortModel.md)
141
141
  - [PasteInput](docs/PasteInput.md)
142
142
  - [PasteOutput](docs/PasteOutput.md)
@@ -149,7 +149,6 @@ Class | Method | HTTP request | Description
149
149
  - [ShortDeviceResponse](docs/ShortDeviceResponse.md)
150
150
  - [ShortReleaseResponse](docs/ShortReleaseResponse.md)
151
151
  - [ValidationError](docs/ValidationError.md)
152
- - [ValidationErrorLocInner](docs/ValidationErrorLocInner.md)
153
152
 
154
153
 
155
154
  <a id="documentation-for-authorization"></a>
@@ -12,9 +12,9 @@ The requests may be logged for analytics and development purposes.
12
12
 
13
13
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
14
14
 
15
- - API version: 5.3.2
16
- - Package version: 5.3.2
17
- - Generator version: 7.17.0
15
+ - API version: 5.4.0
16
+ - Package version: 5.4.0
17
+ - Generator version: 7.21.0
18
18
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
19
19
 
20
20
  ## Requirements.
@@ -118,6 +118,7 @@ Class | Method | HTTP request | Description
118
118
  - [ListResponseShortDeviceResponse](docs/ListResponseShortDeviceResponse.md)
119
119
  - [ListResponseShortReleaseResponse](docs/ListResponseShortReleaseResponse.md)
120
120
  - [ListResponseStr](docs/ListResponseStr.md)
121
+ - [LocationInner](docs/LocationInner.md)
121
122
  - [MaintainerShortModel](docs/MaintainerShortModel.md)
122
123
  - [PasteInput](docs/PasteInput.md)
123
124
  - [PasteOutput](docs/PasteOutput.md)
@@ -130,7 +131,6 @@ Class | Method | HTTP request | Description
130
131
  - [ShortDeviceResponse](docs/ShortDeviceResponse.md)
131
132
  - [ShortReleaseResponse](docs/ShortReleaseResponse.md)
132
133
  - [ValidationError](docs/ValidationError.md)
133
- - [ValidationErrorLocInner](docs/ValidationErrorLocInner.md)
134
134
 
135
135
 
136
136
  <a id="documentation-for-authorization"></a>
@@ -7,7 +7,7 @@
7
7
 
8
8
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
9
9
 
10
- The version of the OpenAPI document: 5.3.2
10
+ The version of the OpenAPI document: 5.4.0
11
11
  Contact: admin@orangefox.tech
12
12
  Generated by OpenAPI Generator (https://openapi-generator.tech)
13
13
 
@@ -15,7 +15,7 @@
15
15
  """ # noqa: E501
16
16
 
17
17
 
18
- __version__ = "5.3.2"
18
+ __version__ = "5.4.0"
19
19
 
20
20
  # Define package exports
21
21
  __all__ = [
@@ -39,6 +39,7 @@ __all__ = [
39
39
  "ListResponseShortDeviceResponse",
40
40
  "ListResponseShortReleaseResponse",
41
41
  "ListResponseStr",
42
+ "LocationInner",
42
43
  "MaintainerShortModel",
43
44
  "PasteInput",
44
45
  "PasteOutput",
@@ -51,7 +52,6 @@ __all__ = [
51
52
  "ShortDeviceResponse",
52
53
  "ShortReleaseResponse",
53
54
  "ValidationError",
54
- "ValidationErrorLocInner",
55
55
  ]
56
56
 
57
57
  # import apis into sdk package
@@ -79,6 +79,7 @@ from foxclient.models.list_response_release_response import ListResponseReleaseR
79
79
  from foxclient.models.list_response_short_device_response import ListResponseShortDeviceResponse as ListResponseShortDeviceResponse
80
80
  from foxclient.models.list_response_short_release_response import ListResponseShortReleaseResponse as ListResponseShortReleaseResponse
81
81
  from foxclient.models.list_response_str import ListResponseStr as ListResponseStr
82
+ from foxclient.models.location_inner import LocationInner as LocationInner
82
83
  from foxclient.models.maintainer_short_model import MaintainerShortModel as MaintainerShortModel
83
84
  from foxclient.models.paste_input import PasteInput as PasteInput
84
85
  from foxclient.models.paste_output import PasteOutput as PasteOutput
@@ -91,5 +92,4 @@ from foxclient.models.response_get_releases import ResponseGetReleases as Respon
91
92
  from foxclient.models.short_device_response import ShortDeviceResponse as ShortDeviceResponse
92
93
  from foxclient.models.short_release_response import ShortReleaseResponse as ShortReleaseResponse
93
94
  from foxclient.models.validation_error import ValidationError as ValidationError
94
- from foxclient.models.validation_error_loc_inner import ValidationErrorLocInner as ValidationErrorLocInner
95
95
 
@@ -1,17 +1,16 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Fox API
5
3
 
6
4
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
7
5
 
8
- The version of the OpenAPI document: 5.3.2
6
+ The version of the OpenAPI document: 5.4.0
9
7
  Contact: admin@orangefox.tech
10
8
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
9
 
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -63,7 +62,7 @@ class DeviceApi:
63
62
  ) -> DeviceResponse:
64
63
  """Get Device
65
64
 
66
- Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
65
+ Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
67
66
 
68
67
  :param device_id:
69
68
  :type device_id: str
@@ -141,7 +140,7 @@ class DeviceApi:
141
140
  ) -> ApiResponse[DeviceResponse]:
142
141
  """Get Device
143
142
 
144
- Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
143
+ Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
145
144
 
146
145
  :param device_id:
147
146
  :type device_id: str
@@ -219,7 +218,7 @@ class DeviceApi:
219
218
  ) -> RESTResponseType:
220
219
  """Get Device
221
220
 
222
- Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
221
+ Extended get device method, including the ability to get a device using device codename instead of the ID. /device/get?codename=lavender Due to the reasons mentioned in the /device route, identification devices using their codenames are considered unrecommended.
223
222
 
224
223
  :param device_id:
225
224
  :type device_id: str
@@ -645,7 +644,7 @@ class DeviceApi:
645
644
  ) -> ListResponseShortDeviceResponse:
646
645
  """Get Devices
647
646
 
648
- Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
647
+ Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
649
648
 
650
649
  :param id: Filter by Device IDs
651
650
  :type id: List[str]
@@ -754,7 +753,7 @@ class DeviceApi:
754
753
  ) -> ApiResponse[ListResponseShortDeviceResponse]:
755
754
  """Get Devices
756
755
 
757
- Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
756
+ Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
758
757
 
759
758
  :param id: Filter by Device IDs
760
759
  :type id: List[str]
@@ -863,7 +862,7 @@ class DeviceApi:
863
862
  ) -> RESTResponseType:
864
863
  """Get Devices
865
864
 
866
- Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
865
+ Get a device list. Device ID is the internal OrangeFox device identifier (https://www.mongodb.com/docs/manual/reference/method/ObjectId/). Please only use it for identification instead of codename or model_name if it's possible. You would find two Device ID query parameters here, the _id one is left deprecated due to historical reasons, please use id instead. Please note that using model_name is unrecommended and considered deprecated as it's very inconsistent around some OEMs that play with the names around. As of the current moment, the API won't support unified model names at all! In short, do not use model_name as device's identification. Be careful using codenames, there are a lot of problems and pain about those. Some OEMs keep releasing new phones with the same hardware as the old ones and may or may not update or change the codename for those. Currently, API doesn't support unified devices; they would have only one codename. Our OEMs database would not include subbrands, they instead would be added to the model name. Like oem_name: \"Xiaomi\" model_name: \"Poco F5 Pro\". The exclusions are merged ones, like OnePlus, as calling those BBK OnePlus is really weird in the respective communities. Note: You will get only a shortened device object with this method, if you want to get a full one, use \"/device/<device_id>\" or \"/device/get\" method instead.
867
866
 
868
867
  :param id: Filter by Device IDs
869
868
  :type id: List[str]
@@ -1,17 +1,16 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Fox API
5
3
 
6
4
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
7
5
 
8
- The version of the OpenAPI document: 5.3.2
6
+ The version of the OpenAPI document: 5.4.0
9
7
  Contact: admin@orangefox.tech
10
8
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
9
 
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,30 +1,28 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Fox API
5
3
 
6
4
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
7
5
 
8
- The version of the OpenAPI document: 5.3.2
6
+ The version of the OpenAPI document: 5.4.0
9
7
  Contact: admin@orangefox.tech
10
8
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
9
 
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
18
17
  from typing_extensions import Annotated
19
18
 
20
19
  from pydantic import Field, StrictBool, StrictInt, StrictStr
21
- from typing import List, Optional
20
+ from typing import Any, List, Optional
22
21
  from typing_extensions import Annotated
23
22
  from uuid import UUID
24
23
  from foxclient.models.list_response_short_release_response import ListResponseShortReleaseResponse
25
24
  from foxclient.models.release_response import ReleaseResponse
26
25
  from foxclient.models.release_type import ReleaseType
27
- from foxclient.models.releases_sort import ReleasesSort
28
26
  from foxclient.models.response_get_releases import ResponseGetReleases
29
27
 
30
28
  from foxclient.api_client import ApiClient, RequestSerialized
@@ -74,7 +72,7 @@ class ReleaseApi:
74
72
  :param id: Release ID (deprecated)
75
73
  :type id: str
76
74
  :param build_id: Build ID, `ro.build.fox_id` prop
77
- :type build_id: str
75
+ :type build_id: UUID
78
76
  :param filename:
79
77
  :type filename: str
80
78
  :param _request_timeout: timeout setting for this request. If one
@@ -154,7 +152,7 @@ class ReleaseApi:
154
152
  :param id: Release ID (deprecated)
155
153
  :type id: str
156
154
  :param build_id: Build ID, `ro.build.fox_id` prop
157
- :type build_id: str
155
+ :type build_id: UUID
158
156
  :param filename:
159
157
  :type filename: str
160
158
  :param _request_timeout: timeout setting for this request. If one
@@ -234,7 +232,7 @@ class ReleaseApi:
234
232
  :param id: Release ID (deprecated)
235
233
  :type id: str
236
234
  :param build_id: Build ID, `ro.build.fox_id` prop
237
- :type build_id: str
235
+ :type build_id: UUID
238
236
  :param filename:
239
237
  :type filename: str
240
238
  :param _request_timeout: timeout setting for this request. If one
@@ -642,7 +640,7 @@ class ReleaseApi:
642
640
  freezed: Annotated[Optional[StrictBool], Field(description="Filter by the freezed status")] = None,
643
641
  after_release_id: Annotated[Optional[StrictStr], Field(description="Show releases after the provided one")] = None,
644
642
  after_date: Annotated[Optional[StrictInt], Field(description="Show releases after the provided timestamp")] = None,
645
- sort: Annotated[Optional[ReleasesSort], Field(description="Sort mode")] = None,
643
+ sort: Annotated[Optional[Any], Field(description="Sort mode")] = None,
646
644
  group: Annotated[Optional[StrictBool], Field(description="Group releases by version + variant. This will change the response!")] = None,
647
645
  skip: Annotated[Optional[StrictInt], Field(description="Skip query results")] = None,
648
646
  limit: Annotated[Optional[StrictInt], Field(description="Limit query results (0 means unlimited)")] = None,
@@ -661,14 +659,14 @@ class ReleaseApi:
661
659
  ) -> ResponseGetReleases:
662
660
  """Get Releases
663
661
 
664
- Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
662
+ Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
665
663
 
666
664
  :param id: Filter by Release IDs
667
665
  :type id: List[Optional[str]]
668
666
  :param id2: Filter by Release IDs (deprecated)
669
667
  :type id2: List[Optional[str]]
670
668
  :param build_id: Filter by Build IDs
671
- :type build_id: List[str]
669
+ :type build_id: List[UUID]
672
670
  :param device_id: Filter by Device IDs
673
671
  :type device_id: List[Optional[str]]
674
672
  :param maintainer_id: Filter by Maintainer IDs
@@ -771,7 +769,7 @@ class ReleaseApi:
771
769
  freezed: Annotated[Optional[StrictBool], Field(description="Filter by the freezed status")] = None,
772
770
  after_release_id: Annotated[Optional[StrictStr], Field(description="Show releases after the provided one")] = None,
773
771
  after_date: Annotated[Optional[StrictInt], Field(description="Show releases after the provided timestamp")] = None,
774
- sort: Annotated[Optional[ReleasesSort], Field(description="Sort mode")] = None,
772
+ sort: Annotated[Optional[Any], Field(description="Sort mode")] = None,
775
773
  group: Annotated[Optional[StrictBool], Field(description="Group releases by version + variant. This will change the response!")] = None,
776
774
  skip: Annotated[Optional[StrictInt], Field(description="Skip query results")] = None,
777
775
  limit: Annotated[Optional[StrictInt], Field(description="Limit query results (0 means unlimited)")] = None,
@@ -790,14 +788,14 @@ class ReleaseApi:
790
788
  ) -> ApiResponse[ResponseGetReleases]:
791
789
  """Get Releases
792
790
 
793
- Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
791
+ Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
794
792
 
795
793
  :param id: Filter by Release IDs
796
794
  :type id: List[Optional[str]]
797
795
  :param id2: Filter by Release IDs (deprecated)
798
796
  :type id2: List[Optional[str]]
799
797
  :param build_id: Filter by Build IDs
800
- :type build_id: List[str]
798
+ :type build_id: List[UUID]
801
799
  :param device_id: Filter by Device IDs
802
800
  :type device_id: List[Optional[str]]
803
801
  :param maintainer_id: Filter by Maintainer IDs
@@ -900,7 +898,7 @@ class ReleaseApi:
900
898
  freezed: Annotated[Optional[StrictBool], Field(description="Filter by the freezed status")] = None,
901
899
  after_release_id: Annotated[Optional[StrictStr], Field(description="Show releases after the provided one")] = None,
902
900
  after_date: Annotated[Optional[StrictInt], Field(description="Show releases after the provided timestamp")] = None,
903
- sort: Annotated[Optional[ReleasesSort], Field(description="Sort mode")] = None,
901
+ sort: Annotated[Optional[Any], Field(description="Sort mode")] = None,
904
902
  group: Annotated[Optional[StrictBool], Field(description="Group releases by version + variant. This will change the response!")] = None,
905
903
  skip: Annotated[Optional[StrictInt], Field(description="Skip query results")] = None,
906
904
  limit: Annotated[Optional[StrictInt], Field(description="Limit query results (0 means unlimited)")] = None,
@@ -919,14 +917,14 @@ class ReleaseApi:
919
917
  ) -> RESTResponseType:
920
918
  """Get Releases
921
919
 
922
- Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
920
+ Lists releases. This method contains a bunch of different parameters to filter releases for different cases. For example, you may use ?after_release_id param to get only releases that came after the last known one (aka get updates). You can filter releases by maintainer_id to get releases from a specific maintainer. This is the maintainer who released the build, not the current maintainer of the device. Getting releases by device codename is obsolete thought. The reason for this is that devices could change codenames eventually. Unfortunately, some OEMs and community make a total mess of them. Please use /device methods to determine the right device (preferably with the user decision), save the device ID somewhere and use it afterward. Version tag is deprecated for the same reason, it's not really consistent, as it might contain patch and mod versions and very different by each maintainer.
923
921
 
924
922
  :param id: Filter by Release IDs
925
923
  :type id: List[Optional[str]]
926
924
  :param id2: Filter by Release IDs (deprecated)
927
925
  :type id2: List[Optional[str]]
928
926
  :param build_id: Filter by Build IDs
929
- :type build_id: List[str]
927
+ :type build_id: List[UUID]
930
928
  :param device_id: Filter by Device IDs
931
929
  :type device_id: List[Optional[str]]
932
930
  :param maintainer_id: Filter by Maintainer IDs
@@ -1,17 +1,16 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Fox API
5
3
 
6
4
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
7
5
 
8
- The version of the OpenAPI document: 5.3.2
6
+ The version of the OpenAPI document: 5.4.0
9
7
  Contact: admin@orangefox.tech
10
8
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
9
 
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,11 +1,9 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Fox API
5
3
 
6
4
  Warning: Please add a custom user agent header to your requests. This would help us fighting against DDoS attacks in future, while keeping your application's access to the API. In future, this may be a mandatory requirement. To reduce the system load, the API endpoints are rate limited. The default limit is 30 requests per minute. Contact admin@orangefox.tech if you need a higher limit. The requests may be logged for analytics and development purposes.
7
5
 
8
- The version of the OpenAPI document: 5.3.2
6
+ The version of the OpenAPI document: 5.4.0
9
7
  Contact: admin@orangefox.tech
10
8
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
9
 
@@ -13,6 +11,7 @@
13
11
  """ # noqa: E501
14
12
 
15
13
 
14
+
16
15
  import datetime
17
16
  from dateutil.parser import parse
18
17
  from enum import Enum
@@ -70,6 +69,7 @@ class ApiClient:
70
69
  'date': datetime.date,
71
70
  'datetime': datetime.datetime,
72
71
  'decimal': decimal.Decimal,
72
+ 'UUID': uuid.UUID,
73
73
  'object': object,
74
74
  }
75
75
  _pool = None
@@ -92,7 +92,7 @@ class ApiClient:
92
92
  self.default_headers[header_name] = header_value
93
93
  self.cookie = cookie
94
94
  # Set default User-Agent.
95
- self.user_agent = 'OpenAPI-Generator/5.3.2/python'
95
+ self.user_agent = 'OpenAPI-Generator/5.4.0/python'
96
96
  self.client_side_validation = configuration.client_side_validation
97
97
 
98
98
  async def __aenter__(self):
@@ -310,13 +310,13 @@ class ApiClient:
310
310
  response_text = None
311
311
  return_data = None
312
312
  try:
313
- if response_type == "bytearray":
313
+ if response_type in ("bytearray", "bytes"):
314
314
  return_data = response_data.data
315
315
  elif response_type == "file":
316
316
  return_data = self.__deserialize_file(response_data)
317
317
  elif response_type is not None:
318
318
  match = None
319
- content_type = response_data.getheader('content-type')
319
+ content_type = response_data.headers.get('content-type')
320
320
  if content_type is not None:
321
321
  match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
322
322
  encoding = match.group(1) if match else "utf-8"
@@ -333,7 +333,7 @@ class ApiClient:
333
333
  return ApiResponse(
334
334
  status_code = response_data.status,
335
335
  data = return_data,
336
- headers = response_data.getheaders(),
336
+ headers = response_data.headers,
337
337
  raw_data = response_data.data
338
338
  )
339
339
 
@@ -472,6 +472,8 @@ class ApiClient:
472
472
  return self.__deserialize_datetime(data)
473
473
  elif klass is decimal.Decimal:
474
474
  return decimal.Decimal(data)
475
+ elif klass is uuid.UUID:
476
+ return uuid.UUID(data)
475
477
  elif issubclass(klass, Enum):
476
478
  return self.__deserialize_enum(data, klass)
477
479
  else:
@@ -705,14 +707,16 @@ class ApiClient:
705
707
  os.close(fd)
706
708
  os.remove(path)
707
709
 
708
- content_disposition = response.getheader("Content-Disposition")
710
+ content_disposition = response.headers.get("Content-Disposition")
709
711
  if content_disposition:
710
712
  m = re.search(
711
713
  r'filename=[\'"]?([^\'"\s]+)[\'"]?',
712
714
  content_disposition
713
715
  )
714
716
  assert m is not None, "Unexpected 'content-disposition' header value"
715
- filename = m.group(1)
717
+ filename = os.path.basename(m.group(1)) # Strip any directory traversal
718
+ if filename in ("", ".", ".."): # fall back to tmp filename
719
+ filename = os.path.basename(path)
716
720
  path = os.path.join(os.path.dirname(path), filename)
717
721
 
718
722
  with open(path, "wb") as f: