mixpeek 0.12.0__py3-none-any.whl → 0.13__py3-none-any.whl

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 (270) hide show
  1. mixpeek/__init__.py +5 -79
  2. mixpeek/_hooks/__init__.py +5 -0
  3. mixpeek/_hooks/registration.py +13 -0
  4. mixpeek/_hooks/sdkhooks.py +76 -0
  5. mixpeek/_hooks/types.py +94 -0
  6. mixpeek/_version.py +11 -3
  7. mixpeek/assets.py +1561 -0
  8. mixpeek/basesdk.py +350 -0
  9. mixpeek/collections.py +1029 -0
  10. mixpeek/featureextractors.py +205 -0
  11. mixpeek/features.py +1181 -0
  12. mixpeek/health.py +167 -0
  13. mixpeek/httpclient.py +84 -0
  14. mixpeek/ingest.py +831 -0
  15. mixpeek/interactions.py +221 -0
  16. mixpeek/models/__init__.py +751 -0
  17. mixpeek/models/actionusage.py +16 -0
  18. mixpeek/models/apierror.py +22 -0
  19. mixpeek/models/apikey.py +25 -0
  20. mixpeek/models/apikeyupdate.py +49 -0
  21. mixpeek/models/assetfeatures.py +55 -0
  22. mixpeek/models/assetresponse.py +166 -0
  23. mixpeek/models/assets_model_searchquery.py +21 -0
  24. mixpeek/models/assetupdate.py +28 -0
  25. mixpeek/models/availableindexesresponse.py +23 -0
  26. mixpeek/models/availablemodels.py +12 -0
  27. mixpeek/models/boolindexparams.py +18 -0
  28. mixpeek/models/collectionmodel.py +70 -0
  29. mixpeek/models/collectionresult.py +73 -0
  30. mixpeek/models/create_api_key_organizations_users_user_email_api_keys_postop.py +23 -0
  31. mixpeek/models/create_collection_collections_postop.py +62 -0
  32. mixpeek/models/create_interaction_features_search_interactions_postop.py +59 -0
  33. mixpeek/models/createcollectionrequest.py +59 -0
  34. mixpeek/models/createnamespacerequest.py +62 -0
  35. mixpeek/models/datetimeindexparams.py +18 -0
  36. mixpeek/models/dateusage.py +22 -0
  37. mixpeek/models/db_model_paginationresponse.py +59 -0
  38. mixpeek/models/db_model_taskresponse.py +20 -0
  39. mixpeek/models/delete_api_key_organizations_users_user_email_api_keys_key_name_deleteop.py +23 -0
  40. mixpeek/models/delete_asset_assets_asset_id_deleteop.py +57 -0
  41. mixpeek/models/delete_collection_collections_collection_deleteop.py +59 -0
  42. mixpeek/models/delete_feature_features_feature_id_deleteop.py +57 -0
  43. mixpeek/models/delete_interaction_features_search_interactions_interaction_id_deleteop.py +59 -0
  44. mixpeek/models/delete_namespace_namespaces_namespace_deleteop.py +18 -0
  45. mixpeek/models/delete_user_organizations_users_user_email_deleteop.py +16 -0
  46. mixpeek/models/denseembedding.py +16 -0
  47. mixpeek/models/embeddingrequest.py +59 -0
  48. mixpeek/models/embeddingresponse.py +64 -0
  49. mixpeek/models/errormessage.py +13 -0
  50. mixpeek/models/errorresponse.py +21 -0
  51. mixpeek/models/facedetectsettings.py +52 -0
  52. mixpeek/models/featureextractionembeddingrequest.py +54 -0
  53. mixpeek/models/featureresponse.py +74 -0
  54. mixpeek/models/features_model_paginationresponse.py +59 -0
  55. mixpeek/models/featureupdaterequest.py +21 -0
  56. mixpeek/models/filtercondition.py +74 -0
  57. mixpeek/models/floatindexparams.py +18 -0
  58. mixpeek/models/full_asset_update_assets_asset_id_putop.py +69 -0
  59. mixpeek/models/full_feature_update_features_feature_id_putop.py +69 -0
  60. mixpeek/models/geoindexparams.py +18 -0
  61. mixpeek/models/get_asset_assets_asset_id_getop.py +73 -0
  62. mixpeek/models/get_asset_with_features_assets_asset_id_features_getop.py +73 -0
  63. mixpeek/models/get_collection_collections_collection_getop.py +59 -0
  64. mixpeek/models/get_feature_features_feature_id_getop.py +70 -0
  65. mixpeek/models/get_interaction_features_search_interactions_interaction_id_getop.py +59 -0
  66. mixpeek/models/get_namespace_namespaces_namespace_getop.py +18 -0
  67. mixpeek/models/get_task_tasks_task_id_getop.py +57 -0
  68. mixpeek/models/get_user_organizations_users_user_email_getop.py +16 -0
  69. mixpeek/models/groupbyoptions.py +71 -0
  70. mixpeek/models/groupbyoptionsasset.py +71 -0
  71. mixpeek/models/groupedassetdata.py +18 -0
  72. mixpeek/models/healthcheckresponse.py +13 -0
  73. mixpeek/models/httpvalidationerror.py +21 -0
  74. mixpeek/models/imagedescribesettings.py +82 -0
  75. mixpeek/models/imagedetectsettings.py +53 -0
  76. mixpeek/models/imagereadsettings.py +71 -0
  77. mixpeek/models/imagesettings.py +79 -0
  78. mixpeek/models/ingest_image_url_ingest_images_url_postop.py +59 -0
  79. mixpeek/models/ingest_text_ingest_text_postop.py +59 -0
  80. mixpeek/models/ingest_video_url_ingest_videos_url_postop.py +59 -0
  81. mixpeek/models/inputtype.py +11 -0
  82. mixpeek/models/integerindexparams.py +24 -0
  83. mixpeek/models/interactionresponse.py +87 -0
  84. mixpeek/models/interactiontype.py +11 -0
  85. mixpeek/models/jsonimageoutputsettings.py +55 -0
  86. mixpeek/models/jsontextoutputsettings.py +55 -0
  87. mixpeek/models/jsonvideooutputsettings.py +55 -0
  88. mixpeek/models/keywordindexparams.py +21 -0
  89. mixpeek/models/kill_task_tasks_task_id_deleteop.py +57 -0
  90. mixpeek/models/list_assets_assets_postop.py +77 -0
  91. mixpeek/models/list_collections_collections_getop.py +65 -0
  92. mixpeek/models/list_features_features_postop.py +79 -0
  93. mixpeek/models/list_interactions_features_search_interactions_getop.py +96 -0
  94. mixpeek/models/listassetsrequest.py +75 -0
  95. mixpeek/models/listassetsresponse.py +22 -0
  96. mixpeek/models/listcollectionsresponse.py +22 -0
  97. mixpeek/models/listfeaturesrequest.py +77 -0
  98. mixpeek/models/listfeaturesresponse.py +22 -0
  99. mixpeek/models/logicaloperator_input.py +88 -0
  100. mixpeek/models/logicaloperator_output.py +103 -0
  101. mixpeek/models/logodetectsettings.py +52 -0
  102. mixpeek/models/modality.py +13 -0
  103. mixpeek/models/modeldetails.py +57 -0
  104. mixpeek/models/namespaceresponse.py +54 -0
  105. mixpeek/models/organizationmodel.py +45 -0
  106. mixpeek/models/partial_asset_update_assets_asset_id_patchop.py +69 -0
  107. mixpeek/models/payloadindexconfig.py +94 -0
  108. mixpeek/models/payloadindextype.py +17 -0
  109. mixpeek/models/payloadschematype.py +15 -0
  110. mixpeek/models/percolaterequest.py +57 -0
  111. mixpeek/models/permission.py +10 -0
  112. mixpeek/models/processimageurlinput.py +99 -0
  113. mixpeek/models/processtextinput.py +94 -0
  114. mixpeek/models/processvideourlinput.py +99 -0
  115. mixpeek/models/querysettings.py +56 -0
  116. mixpeek/models/rerankingoptions.py +47 -0
  117. mixpeek/models/search_assets_assets_search_postop.py +59 -0
  118. mixpeek/models/search_features_features_search_postop.py +96 -0
  119. mixpeek/models/search_model_searchquery_input.py +76 -0
  120. mixpeek/models/searchassetsrequest.py +78 -0
  121. mixpeek/models/searchinteraction.py +82 -0
  122. mixpeek/models/searchquery_output.py +79 -0
  123. mixpeek/models/searchrequestfeatures_input.py +151 -0
  124. mixpeek/models/searchrequestfeatures_output.py +151 -0
  125. mixpeek/models/sortoption.py +28 -0
  126. mixpeek/models/sparseembedding.py +21 -0
  127. mixpeek/models/tasks_model_taskresponse.py +24 -0
  128. mixpeek/models/taskstatus.py +16 -0
  129. mixpeek/models/textindexparams.py +31 -0
  130. mixpeek/models/textsettings.py +61 -0
  131. mixpeek/models/tokenizertype.py +11 -0
  132. mixpeek/models/update_api_key_organizations_users_user_email_api_keys_key_name_patchop.py +30 -0
  133. mixpeek/models/update_collection_collections_collection_putop.py +74 -0
  134. mixpeek/models/update_namespace_namespaces_namespace_putop.py +28 -0
  135. mixpeek/models/updateassetrequest.py +60 -0
  136. mixpeek/models/updatenamespacerequest.py +26 -0
  137. mixpeek/models/usage.py +18 -0
  138. mixpeek/models/usermodel_input.py +36 -0
  139. mixpeek/models/usermodel_output.py +36 -0
  140. mixpeek/models/uuidindexparams.py +21 -0
  141. mixpeek/models/validationerror.py +26 -0
  142. mixpeek/models/vectormodel.py +11 -0
  143. mixpeek/models/vectortype.py +9 -0
  144. mixpeek/models/videodescribesettings.py +82 -0
  145. mixpeek/models/videodetectsettings.py +53 -0
  146. mixpeek/models/videoreadsettings.py +71 -0
  147. mixpeek/models/videosettings.py +101 -0
  148. mixpeek/models/videotranscriptionsettings.py +69 -0
  149. mixpeek/namespaces.py +1143 -0
  150. mixpeek/organizations.py +1508 -0
  151. mixpeek/py.typed +1 -0
  152. mixpeek/sdk.py +135 -0
  153. mixpeek/sdkconfiguration.py +45 -0
  154. mixpeek/searchinteractions.py +647 -0
  155. mixpeek/tasks.py +387 -0
  156. mixpeek/types/__init__.py +19 -29
  157. mixpeek/types/basemodel.py +39 -0
  158. mixpeek/utils/__init__.py +97 -0
  159. mixpeek/utils/annotations.py +55 -0
  160. mixpeek/utils/enums.py +34 -0
  161. mixpeek/utils/eventstreaming.py +238 -0
  162. mixpeek/utils/forms.py +202 -0
  163. mixpeek/utils/headers.py +136 -0
  164. mixpeek/utils/logger.py +27 -0
  165. mixpeek/utils/metadata.py +118 -0
  166. mixpeek/utils/queryparams.py +205 -0
  167. mixpeek/utils/requestbodies.py +66 -0
  168. mixpeek/utils/retries.py +217 -0
  169. mixpeek/utils/security.py +174 -0
  170. mixpeek/utils/serializers.py +215 -0
  171. mixpeek/utils/url.py +155 -0
  172. mixpeek/utils/values.py +134 -0
  173. mixpeek-0.13.dist-info/METADATA +439 -0
  174. mixpeek-0.13.dist-info/RECORD +176 -0
  175. {mixpeek-0.12.0.dist-info → mixpeek-0.13.dist-info}/WHEEL +1 -1
  176. py.typed +1 -0
  177. mixpeek/_base_client.py +0 -2041
  178. mixpeek/_client.py +0 -444
  179. mixpeek/_compat.py +0 -221
  180. mixpeek/_constants.py +0 -14
  181. mixpeek/_exceptions.py +0 -108
  182. mixpeek/_files.py +0 -123
  183. mixpeek/_models.py +0 -788
  184. mixpeek/_qs.py +0 -150
  185. mixpeek/_resource.py +0 -43
  186. mixpeek/_response.py +0 -824
  187. mixpeek/_streaming.py +0 -333
  188. mixpeek/_types.py +0 -219
  189. mixpeek/_utils/__init__.py +0 -56
  190. mixpeek/_utils/_logs.py +0 -25
  191. mixpeek/_utils/_proxy.py +0 -62
  192. mixpeek/_utils/_reflection.py +0 -42
  193. mixpeek/_utils/_streams.py +0 -12
  194. mixpeek/_utils/_sync.py +0 -81
  195. mixpeek/_utils/_transform.py +0 -387
  196. mixpeek/_utils/_typing.py +0 -120
  197. mixpeek/_utils/_utils.py +0 -414
  198. mixpeek/lib/.keep +0 -4
  199. mixpeek/resources/__init__.py +0 -117
  200. mixpeek/resources/accounts.py +0 -271
  201. mixpeek/resources/assets/__init__.py +0 -33
  202. mixpeek/resources/assets/assets.py +0 -708
  203. mixpeek/resources/assets/features.py +0 -172
  204. mixpeek/resources/collections.py +0 -283
  205. mixpeek/resources/entities/__init__.py +0 -47
  206. mixpeek/resources/entities/entities.py +0 -134
  207. mixpeek/resources/entities/faces.py +0 -514
  208. mixpeek/resources/entities/labels.py +0 -388
  209. mixpeek/resources/features/__init__.py +0 -33
  210. mixpeek/resources/features/features.py +0 -562
  211. mixpeek/resources/features/search.py +0 -731
  212. mixpeek/resources/healthcheck.py +0 -135
  213. mixpeek/resources/index/__init__.py +0 -47
  214. mixpeek/resources/index/images.py +0 -249
  215. mixpeek/resources/index/index.py +0 -289
  216. mixpeek/resources/index/videos.py +0 -249
  217. mixpeek/resources/tasks.py +0 -258
  218. mixpeek/types/account_update_params.py +0 -28
  219. mixpeek/types/asset_create_params.py +0 -36
  220. mixpeek/types/asset_create_response.py +0 -15
  221. mixpeek/types/asset_response.py +0 -46
  222. mixpeek/types/asset_search_params.py +0 -43
  223. mixpeek/types/asset_search_response.py +0 -15
  224. mixpeek/types/asset_update_params.py +0 -25
  225. mixpeek/types/asset_update_response.py +0 -11
  226. mixpeek/types/assets/__init__.py +0 -3
  227. mixpeek/types/collection_list_params.py +0 -19
  228. mixpeek/types/collection_list_response.py +0 -14
  229. mixpeek/types/entities/__init__.py +0 -13
  230. mixpeek/types/entities/face_create_params.py +0 -21
  231. mixpeek/types/entities/face_list_params.py +0 -18
  232. mixpeek/types/entities/face_list_response.py +0 -15
  233. mixpeek/types/entities/face_response.py +0 -17
  234. mixpeek/types/entities/face_update_params.py +0 -22
  235. mixpeek/types/entities/label_list_params.py +0 -18
  236. mixpeek/types/entities/label_list_response.py +0 -30
  237. mixpeek/types/entities/label_response.py +0 -30
  238. mixpeek/types/entities/label_update_params.py +0 -21
  239. mixpeek/types/feature.py +0 -32
  240. mixpeek/types/feature_list_params.py +0 -37
  241. mixpeek/types/feature_list_response.py +0 -28
  242. mixpeek/types/feature_retrieve_params.py +0 -18
  243. mixpeek/types/feature_update_params.py +0 -16
  244. mixpeek/types/features/__init__.py +0 -8
  245. mixpeek/types/features/search_feedback_params.py +0 -23
  246. mixpeek/types/features/search_file_params.py +0 -29
  247. mixpeek/types/features/search_text_params.py +0 -72
  248. mixpeek/types/features/search_url_params.py +0 -72
  249. mixpeek/types/grouped_asset_data.py +0 -24
  250. mixpeek/types/health_check_response.py +0 -10
  251. mixpeek/types/index/__init__.py +0 -8
  252. mixpeek/types/index/image_url_params.py +0 -135
  253. mixpeek/types/index/image_url_response.py +0 -20
  254. mixpeek/types/index/video_url_params.py +0 -154
  255. mixpeek/types/index/video_url_response.py +0 -20
  256. mixpeek/types/index_text_params.py +0 -77
  257. mixpeek/types/index_text_response.py +0 -14
  258. mixpeek/types/shared/__init__.py +0 -7
  259. mixpeek/types/shared/filter_condition.py +0 -19
  260. mixpeek/types/shared/logical_operator.py +0 -12
  261. mixpeek/types/shared/model_pagination_response.py +0 -21
  262. mixpeek/types/shared/sort_option.py +0 -15
  263. mixpeek/types/shared/task_response.py +0 -15
  264. mixpeek/types/shared_params/__init__.py +0 -4
  265. mixpeek/types/shared_params/logical_operator.py +0 -13
  266. mixpeek/types/shared_params/sort_option.py +0 -15
  267. mixpeek/types/user.py +0 -34
  268. mixpeek-0.12.0.dist-info/METADATA +0 -345
  269. mixpeek-0.12.0.dist-info/RECORD +0 -99
  270. mixpeek-0.12.0.dist-info/licenses/LICENSE +0 -201
@@ -1,514 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from __future__ import annotations
4
-
5
- from typing import Mapping, cast
6
-
7
- import httpx
8
-
9
- from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
10
- from ..._utils import (
11
- extract_files,
12
- maybe_transform,
13
- strip_not_given,
14
- deepcopy_minimal,
15
- async_maybe_transform,
16
- )
17
- from ..._compat import cached_property
18
- from ..._resource import SyncAPIResource, AsyncAPIResource
19
- from ..._response import (
20
- to_raw_response_wrapper,
21
- to_streamed_response_wrapper,
22
- async_to_raw_response_wrapper,
23
- async_to_streamed_response_wrapper,
24
- )
25
- from ..._base_client import make_request_options
26
- from ...types.entities import face_list_params, face_create_params, face_update_params
27
- from ...types.entities.face_response import FaceResponse
28
- from ...types.entities.face_list_response import FaceListResponse
29
-
30
- __all__ = ["FacesResource", "AsyncFacesResource"]
31
-
32
-
33
- class FacesResource(SyncAPIResource):
34
- @cached_property
35
- def with_raw_response(self) -> FacesResourceWithRawResponse:
36
- """
37
- This property can be used as a prefix for any HTTP method call to return the
38
- the raw response object instead of the parsed content.
39
-
40
- For more information, see https://www.github.com/mixpeek/python-client#accessing-raw-response-data-eg-headers
41
- """
42
- return FacesResourceWithRawResponse(self)
43
-
44
- @cached_property
45
- def with_streaming_response(self) -> FacesResourceWithStreamingResponse:
46
- """
47
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
48
-
49
- For more information, see https://www.github.com/mixpeek/python-client#with_streaming_response
50
- """
51
- return FacesResourceWithStreamingResponse(self)
52
-
53
- def create(
54
- self,
55
- *,
56
- collection_id: str,
57
- file: FileTypes,
58
- metadata: str | NotGiven = NOT_GIVEN,
59
- index_id: str | NotGiven = NOT_GIVEN,
60
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
61
- # The extra values given here take precedence over values defined on the client or passed to this method.
62
- extra_headers: Headers | None = None,
63
- extra_query: Query | None = None,
64
- extra_body: Body | None = None,
65
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
66
- ) -> FaceResponse:
67
- """
68
- Register Face
69
-
70
- Args:
71
- index_id: filter by organization
72
-
73
- extra_headers: Send extra headers
74
-
75
- extra_query: Add additional query parameters to the request
76
-
77
- extra_body: Add additional JSON properties to the request
78
-
79
- timeout: Override the client-level default timeout for this request, in seconds
80
- """
81
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
82
- body = deepcopy_minimal(
83
- {
84
- "collection_id": collection_id,
85
- "file": file,
86
- "metadata": metadata,
87
- }
88
- )
89
- files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
90
- # It should be noted that the actual Content-Type header that will be
91
- # sent to the server will contain a `boundary` parameter, e.g.
92
- # multipart/form-data; boundary=---abc--
93
- extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
94
- return self._post(
95
- "/entities/faces",
96
- body=maybe_transform(body, face_create_params.FaceCreateParams),
97
- files=files,
98
- options=make_request_options(
99
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
100
- ),
101
- cast_to=FaceResponse,
102
- )
103
-
104
- def update(
105
- self,
106
- *,
107
- path_face_id: str,
108
- collection_id: str,
109
- body_face_id: str,
110
- metadata: object,
111
- index_id: str | NotGiven = NOT_GIVEN,
112
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
113
- # The extra values given here take precedence over values defined on the client or passed to this method.
114
- extra_headers: Headers | None = None,
115
- extra_query: Query | None = None,
116
- extra_body: Body | None = None,
117
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
118
- ) -> FaceResponse:
119
- """
120
- Update Face
121
-
122
- Args:
123
- index_id: filter by organization
124
-
125
- extra_headers: Send extra headers
126
-
127
- extra_query: Add additional query parameters to the request
128
-
129
- extra_body: Add additional JSON properties to the request
130
-
131
- timeout: Override the client-level default timeout for this request, in seconds
132
- """
133
- if not path_face_id:
134
- raise ValueError(f"Expected a non-empty value for `path_face_id` but received {path_face_id!r}")
135
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
136
- return self._patch(
137
- f"/entities/faces/{path_face_id}",
138
- body=maybe_transform(
139
- {
140
- "collection_id": collection_id,
141
- "face_id": body_face_id,
142
- "metadata": metadata,
143
- },
144
- face_update_params.FaceUpdateParams,
145
- ),
146
- options=make_request_options(
147
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
148
- ),
149
- cast_to=FaceResponse,
150
- )
151
-
152
- def list(
153
- self,
154
- collection_id: str,
155
- *,
156
- page: int | NotGiven = NOT_GIVEN,
157
- page_size: int | NotGiven = NOT_GIVEN,
158
- index_id: str | NotGiven = NOT_GIVEN,
159
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
160
- # The extra values given here take precedence over values defined on the client or passed to this method.
161
- extra_headers: Headers | None = None,
162
- extra_query: Query | None = None,
163
- extra_body: Body | None = None,
164
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
165
- ) -> FaceListResponse:
166
- """
167
- List registered faces for a specific collection.
168
-
169
- Args:
170
- index_id: filter by organization
171
-
172
- extra_headers: Send extra headers
173
-
174
- extra_query: Add additional query parameters to the request
175
-
176
- extra_body: Add additional JSON properties to the request
177
-
178
- timeout: Override the client-level default timeout for this request, in seconds
179
- """
180
- if not collection_id:
181
- raise ValueError(f"Expected a non-empty value for `collection_id` but received {collection_id!r}")
182
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
183
- return self._get(
184
- f"/entities/faces/{collection_id}",
185
- options=make_request_options(
186
- extra_headers=extra_headers,
187
- extra_query=extra_query,
188
- extra_body=extra_body,
189
- timeout=timeout,
190
- query=maybe_transform(
191
- {
192
- "page": page,
193
- "page_size": page_size,
194
- },
195
- face_list_params.FaceListParams,
196
- ),
197
- ),
198
- cast_to=FaceListResponse,
199
- )
200
-
201
- def delete(
202
- self,
203
- face_id: str,
204
- *,
205
- index_id: str | NotGiven = NOT_GIVEN,
206
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
207
- # The extra values given here take precedence over values defined on the client or passed to this method.
208
- extra_headers: Headers | None = None,
209
- extra_query: Query | None = None,
210
- extra_body: Body | None = None,
211
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
212
- ) -> object:
213
- """
214
- Delete Face
215
-
216
- Args:
217
- index_id: filter by organization
218
-
219
- extra_headers: Send extra headers
220
-
221
- extra_query: Add additional query parameters to the request
222
-
223
- extra_body: Add additional JSON properties to the request
224
-
225
- timeout: Override the client-level default timeout for this request, in seconds
226
- """
227
- if not face_id:
228
- raise ValueError(f"Expected a non-empty value for `face_id` but received {face_id!r}")
229
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
230
- return self._delete(
231
- f"/entities/faces/{face_id}",
232
- options=make_request_options(
233
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
234
- ),
235
- cast_to=object,
236
- )
237
-
238
-
239
- class AsyncFacesResource(AsyncAPIResource):
240
- @cached_property
241
- def with_raw_response(self) -> AsyncFacesResourceWithRawResponse:
242
- """
243
- This property can be used as a prefix for any HTTP method call to return the
244
- the raw response object instead of the parsed content.
245
-
246
- For more information, see https://www.github.com/mixpeek/python-client#accessing-raw-response-data-eg-headers
247
- """
248
- return AsyncFacesResourceWithRawResponse(self)
249
-
250
- @cached_property
251
- def with_streaming_response(self) -> AsyncFacesResourceWithStreamingResponse:
252
- """
253
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
254
-
255
- For more information, see https://www.github.com/mixpeek/python-client#with_streaming_response
256
- """
257
- return AsyncFacesResourceWithStreamingResponse(self)
258
-
259
- async def create(
260
- self,
261
- *,
262
- collection_id: str,
263
- file: FileTypes,
264
- metadata: str | NotGiven = NOT_GIVEN,
265
- index_id: str | NotGiven = NOT_GIVEN,
266
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
267
- # The extra values given here take precedence over values defined on the client or passed to this method.
268
- extra_headers: Headers | None = None,
269
- extra_query: Query | None = None,
270
- extra_body: Body | None = None,
271
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
272
- ) -> FaceResponse:
273
- """
274
- Register Face
275
-
276
- Args:
277
- index_id: filter by organization
278
-
279
- extra_headers: Send extra headers
280
-
281
- extra_query: Add additional query parameters to the request
282
-
283
- extra_body: Add additional JSON properties to the request
284
-
285
- timeout: Override the client-level default timeout for this request, in seconds
286
- """
287
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
288
- body = deepcopy_minimal(
289
- {
290
- "collection_id": collection_id,
291
- "file": file,
292
- "metadata": metadata,
293
- }
294
- )
295
- files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
296
- # It should be noted that the actual Content-Type header that will be
297
- # sent to the server will contain a `boundary` parameter, e.g.
298
- # multipart/form-data; boundary=---abc--
299
- extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
300
- return await self._post(
301
- "/entities/faces",
302
- body=await async_maybe_transform(body, face_create_params.FaceCreateParams),
303
- files=files,
304
- options=make_request_options(
305
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
306
- ),
307
- cast_to=FaceResponse,
308
- )
309
-
310
- async def update(
311
- self,
312
- *,
313
- path_face_id: str,
314
- collection_id: str,
315
- body_face_id: str,
316
- metadata: object,
317
- index_id: str | NotGiven = NOT_GIVEN,
318
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
319
- # The extra values given here take precedence over values defined on the client or passed to this method.
320
- extra_headers: Headers | None = None,
321
- extra_query: Query | None = None,
322
- extra_body: Body | None = None,
323
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
324
- ) -> FaceResponse:
325
- """
326
- Update Face
327
-
328
- Args:
329
- index_id: filter by organization
330
-
331
- extra_headers: Send extra headers
332
-
333
- extra_query: Add additional query parameters to the request
334
-
335
- extra_body: Add additional JSON properties to the request
336
-
337
- timeout: Override the client-level default timeout for this request, in seconds
338
- """
339
- if not path_face_id:
340
- raise ValueError(f"Expected a non-empty value for `path_face_id` but received {path_face_id!r}")
341
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
342
- return await self._patch(
343
- f"/entities/faces/{path_face_id}",
344
- body=await async_maybe_transform(
345
- {
346
- "collection_id": collection_id,
347
- "face_id": body_face_id,
348
- "metadata": metadata,
349
- },
350
- face_update_params.FaceUpdateParams,
351
- ),
352
- options=make_request_options(
353
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
354
- ),
355
- cast_to=FaceResponse,
356
- )
357
-
358
- async def list(
359
- self,
360
- collection_id: str,
361
- *,
362
- page: int | NotGiven = NOT_GIVEN,
363
- page_size: int | NotGiven = NOT_GIVEN,
364
- index_id: str | NotGiven = NOT_GIVEN,
365
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
366
- # The extra values given here take precedence over values defined on the client or passed to this method.
367
- extra_headers: Headers | None = None,
368
- extra_query: Query | None = None,
369
- extra_body: Body | None = None,
370
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
371
- ) -> FaceListResponse:
372
- """
373
- List registered faces for a specific collection.
374
-
375
- Args:
376
- index_id: filter by organization
377
-
378
- extra_headers: Send extra headers
379
-
380
- extra_query: Add additional query parameters to the request
381
-
382
- extra_body: Add additional JSON properties to the request
383
-
384
- timeout: Override the client-level default timeout for this request, in seconds
385
- """
386
- if not collection_id:
387
- raise ValueError(f"Expected a non-empty value for `collection_id` but received {collection_id!r}")
388
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
389
- return await self._get(
390
- f"/entities/faces/{collection_id}",
391
- options=make_request_options(
392
- extra_headers=extra_headers,
393
- extra_query=extra_query,
394
- extra_body=extra_body,
395
- timeout=timeout,
396
- query=await async_maybe_transform(
397
- {
398
- "page": page,
399
- "page_size": page_size,
400
- },
401
- face_list_params.FaceListParams,
402
- ),
403
- ),
404
- cast_to=FaceListResponse,
405
- )
406
-
407
- async def delete(
408
- self,
409
- face_id: str,
410
- *,
411
- index_id: str | NotGiven = NOT_GIVEN,
412
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
413
- # The extra values given here take precedence over values defined on the client or passed to this method.
414
- extra_headers: Headers | None = None,
415
- extra_query: Query | None = None,
416
- extra_body: Body | None = None,
417
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
418
- ) -> object:
419
- """
420
- Delete Face
421
-
422
- Args:
423
- index_id: filter by organization
424
-
425
- extra_headers: Send extra headers
426
-
427
- extra_query: Add additional query parameters to the request
428
-
429
- extra_body: Add additional JSON properties to the request
430
-
431
- timeout: Override the client-level default timeout for this request, in seconds
432
- """
433
- if not face_id:
434
- raise ValueError(f"Expected a non-empty value for `face_id` but received {face_id!r}")
435
- extra_headers = {**strip_not_given({"index-id": index_id}), **(extra_headers or {})}
436
- return await self._delete(
437
- f"/entities/faces/{face_id}",
438
- options=make_request_options(
439
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
440
- ),
441
- cast_to=object,
442
- )
443
-
444
-
445
- class FacesResourceWithRawResponse:
446
- def __init__(self, faces: FacesResource) -> None:
447
- self._faces = faces
448
-
449
- self.create = to_raw_response_wrapper(
450
- faces.create,
451
- )
452
- self.update = to_raw_response_wrapper(
453
- faces.update,
454
- )
455
- self.list = to_raw_response_wrapper(
456
- faces.list,
457
- )
458
- self.delete = to_raw_response_wrapper(
459
- faces.delete,
460
- )
461
-
462
-
463
- class AsyncFacesResourceWithRawResponse:
464
- def __init__(self, faces: AsyncFacesResource) -> None:
465
- self._faces = faces
466
-
467
- self.create = async_to_raw_response_wrapper(
468
- faces.create,
469
- )
470
- self.update = async_to_raw_response_wrapper(
471
- faces.update,
472
- )
473
- self.list = async_to_raw_response_wrapper(
474
- faces.list,
475
- )
476
- self.delete = async_to_raw_response_wrapper(
477
- faces.delete,
478
- )
479
-
480
-
481
- class FacesResourceWithStreamingResponse:
482
- def __init__(self, faces: FacesResource) -> None:
483
- self._faces = faces
484
-
485
- self.create = to_streamed_response_wrapper(
486
- faces.create,
487
- )
488
- self.update = to_streamed_response_wrapper(
489
- faces.update,
490
- )
491
- self.list = to_streamed_response_wrapper(
492
- faces.list,
493
- )
494
- self.delete = to_streamed_response_wrapper(
495
- faces.delete,
496
- )
497
-
498
-
499
- class AsyncFacesResourceWithStreamingResponse:
500
- def __init__(self, faces: AsyncFacesResource) -> None:
501
- self._faces = faces
502
-
503
- self.create = async_to_streamed_response_wrapper(
504
- faces.create,
505
- )
506
- self.update = async_to_streamed_response_wrapper(
507
- faces.update,
508
- )
509
- self.list = async_to_streamed_response_wrapper(
510
- faces.list,
511
- )
512
- self.delete = async_to_streamed_response_wrapper(
513
- faces.delete,
514
- )