mixpeek 0.11.2__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.
- mixpeek/__init__.py +9 -1
- mixpeek/_hooks/__init__.py +5 -0
- mixpeek/_hooks/registration.py +13 -0
- mixpeek/_hooks/sdkhooks.py +76 -0
- mixpeek/_hooks/types.py +94 -0
- mixpeek/_version.py +12 -0
- mixpeek/assets.py +1561 -0
- mixpeek/basesdk.py +350 -0
- mixpeek/collections.py +1029 -0
- mixpeek/featureextractors.py +205 -0
- mixpeek/features.py +1181 -0
- mixpeek/health.py +167 -0
- mixpeek/httpclient.py +84 -0
- mixpeek/ingest.py +831 -0
- mixpeek/interactions.py +221 -0
- mixpeek/models/__init__.py +751 -0
- mixpeek/models/actionusage.py +16 -0
- mixpeek/models/apierror.py +22 -0
- mixpeek/models/apikey.py +25 -0
- mixpeek/models/apikeyupdate.py +49 -0
- mixpeek/models/assetfeatures.py +55 -0
- mixpeek/models/assetresponse.py +166 -0
- mixpeek/models/assets_model_searchquery.py +21 -0
- mixpeek/models/assetupdate.py +28 -0
- mixpeek/models/availableindexesresponse.py +23 -0
- mixpeek/models/availablemodels.py +12 -0
- mixpeek/models/boolindexparams.py +18 -0
- mixpeek/models/collectionmodel.py +70 -0
- mixpeek/models/collectionresult.py +73 -0
- mixpeek/models/create_api_key_organizations_users_user_email_api_keys_postop.py +23 -0
- mixpeek/models/create_collection_collections_postop.py +62 -0
- mixpeek/models/create_interaction_features_search_interactions_postop.py +59 -0
- mixpeek/models/createcollectionrequest.py +59 -0
- mixpeek/models/createnamespacerequest.py +62 -0
- mixpeek/models/datetimeindexparams.py +18 -0
- mixpeek/models/dateusage.py +22 -0
- mixpeek/models/db_model_paginationresponse.py +59 -0
- mixpeek/models/db_model_taskresponse.py +20 -0
- mixpeek/models/delete_api_key_organizations_users_user_email_api_keys_key_name_deleteop.py +23 -0
- mixpeek/models/delete_asset_assets_asset_id_deleteop.py +57 -0
- mixpeek/models/delete_collection_collections_collection_deleteop.py +59 -0
- mixpeek/models/delete_feature_features_feature_id_deleteop.py +57 -0
- mixpeek/models/delete_interaction_features_search_interactions_interaction_id_deleteop.py +59 -0
- mixpeek/models/delete_namespace_namespaces_namespace_deleteop.py +18 -0
- mixpeek/models/delete_user_organizations_users_user_email_deleteop.py +16 -0
- mixpeek/models/denseembedding.py +16 -0
- mixpeek/models/embeddingrequest.py +59 -0
- mixpeek/models/embeddingresponse.py +64 -0
- mixpeek/models/errormessage.py +13 -0
- mixpeek/models/errorresponse.py +21 -0
- mixpeek/models/facedetectsettings.py +52 -0
- mixpeek/models/featureextractionembeddingrequest.py +54 -0
- mixpeek/models/featureresponse.py +74 -0
- mixpeek/models/features_model_paginationresponse.py +59 -0
- mixpeek/models/featureupdaterequest.py +21 -0
- mixpeek/models/filtercondition.py +74 -0
- mixpeek/models/floatindexparams.py +18 -0
- mixpeek/models/full_asset_update_assets_asset_id_putop.py +69 -0
- mixpeek/models/full_feature_update_features_feature_id_putop.py +69 -0
- mixpeek/models/geoindexparams.py +18 -0
- mixpeek/models/get_asset_assets_asset_id_getop.py +73 -0
- mixpeek/models/get_asset_with_features_assets_asset_id_features_getop.py +73 -0
- mixpeek/models/get_collection_collections_collection_getop.py +59 -0
- mixpeek/models/get_feature_features_feature_id_getop.py +70 -0
- mixpeek/models/get_interaction_features_search_interactions_interaction_id_getop.py +59 -0
- mixpeek/models/get_namespace_namespaces_namespace_getop.py +18 -0
- mixpeek/models/get_task_tasks_task_id_getop.py +57 -0
- mixpeek/models/get_user_organizations_users_user_email_getop.py +16 -0
- mixpeek/models/groupbyoptions.py +71 -0
- mixpeek/models/groupbyoptionsasset.py +71 -0
- mixpeek/models/groupedassetdata.py +18 -0
- mixpeek/models/healthcheckresponse.py +13 -0
- mixpeek/models/httpvalidationerror.py +21 -0
- mixpeek/models/imagedescribesettings.py +82 -0
- mixpeek/models/imagedetectsettings.py +53 -0
- mixpeek/models/imagereadsettings.py +71 -0
- mixpeek/models/imagesettings.py +79 -0
- mixpeek/models/ingest_image_url_ingest_images_url_postop.py +59 -0
- mixpeek/models/ingest_text_ingest_text_postop.py +59 -0
- mixpeek/models/ingest_video_url_ingest_videos_url_postop.py +59 -0
- mixpeek/models/inputtype.py +11 -0
- mixpeek/models/integerindexparams.py +24 -0
- mixpeek/models/interactionresponse.py +87 -0
- mixpeek/models/interactiontype.py +11 -0
- mixpeek/models/jsonimageoutputsettings.py +55 -0
- mixpeek/models/jsontextoutputsettings.py +55 -0
- mixpeek/models/jsonvideooutputsettings.py +55 -0
- mixpeek/models/keywordindexparams.py +21 -0
- mixpeek/models/kill_task_tasks_task_id_deleteop.py +57 -0
- mixpeek/models/list_assets_assets_postop.py +77 -0
- mixpeek/models/list_collections_collections_getop.py +65 -0
- mixpeek/models/list_features_features_postop.py +79 -0
- mixpeek/models/list_interactions_features_search_interactions_getop.py +96 -0
- mixpeek/models/listassetsrequest.py +75 -0
- mixpeek/models/listassetsresponse.py +22 -0
- mixpeek/models/listcollectionsresponse.py +22 -0
- mixpeek/models/listfeaturesrequest.py +77 -0
- mixpeek/models/listfeaturesresponse.py +22 -0
- mixpeek/models/logicaloperator_input.py +88 -0
- mixpeek/models/logicaloperator_output.py +103 -0
- mixpeek/models/logodetectsettings.py +52 -0
- mixpeek/models/modality.py +13 -0
- mixpeek/models/modeldetails.py +57 -0
- mixpeek/models/namespaceresponse.py +54 -0
- mixpeek/models/organizationmodel.py +45 -0
- mixpeek/models/partial_asset_update_assets_asset_id_patchop.py +69 -0
- mixpeek/models/payloadindexconfig.py +94 -0
- mixpeek/models/payloadindextype.py +17 -0
- mixpeek/models/payloadschematype.py +15 -0
- mixpeek/models/percolaterequest.py +57 -0
- mixpeek/models/permission.py +10 -0
- mixpeek/models/processimageurlinput.py +99 -0
- mixpeek/models/processtextinput.py +94 -0
- mixpeek/models/processvideourlinput.py +99 -0
- mixpeek/models/querysettings.py +56 -0
- mixpeek/models/rerankingoptions.py +47 -0
- mixpeek/models/search_assets_assets_search_postop.py +59 -0
- mixpeek/models/search_features_features_search_postop.py +96 -0
- mixpeek/models/search_model_searchquery_input.py +76 -0
- mixpeek/models/searchassetsrequest.py +78 -0
- mixpeek/models/searchinteraction.py +82 -0
- mixpeek/models/searchquery_output.py +79 -0
- mixpeek/models/searchrequestfeatures_input.py +151 -0
- mixpeek/models/searchrequestfeatures_output.py +151 -0
- mixpeek/models/sortoption.py +28 -0
- mixpeek/models/sparseembedding.py +21 -0
- mixpeek/models/tasks_model_taskresponse.py +24 -0
- mixpeek/models/taskstatus.py +16 -0
- mixpeek/models/textindexparams.py +31 -0
- mixpeek/models/textsettings.py +61 -0
- mixpeek/models/tokenizertype.py +11 -0
- mixpeek/models/update_api_key_organizations_users_user_email_api_keys_key_name_patchop.py +30 -0
- mixpeek/models/update_collection_collections_collection_putop.py +74 -0
- mixpeek/models/update_namespace_namespaces_namespace_putop.py +28 -0
- mixpeek/models/updateassetrequest.py +60 -0
- mixpeek/models/updatenamespacerequest.py +26 -0
- mixpeek/models/usage.py +18 -0
- mixpeek/models/usermodel_input.py +36 -0
- mixpeek/models/usermodel_output.py +36 -0
- mixpeek/models/uuidindexparams.py +21 -0
- mixpeek/models/validationerror.py +26 -0
- mixpeek/models/vectormodel.py +11 -0
- mixpeek/models/vectortype.py +9 -0
- mixpeek/models/videodescribesettings.py +82 -0
- mixpeek/models/videodetectsettings.py +53 -0
- mixpeek/models/videoreadsettings.py +71 -0
- mixpeek/models/videosettings.py +101 -0
- mixpeek/models/videotranscriptionsettings.py +69 -0
- mixpeek/namespaces.py +1143 -0
- mixpeek/organizations.py +1508 -0
- mixpeek/py.typed +1 -0
- mixpeek/sdk.py +135 -0
- mixpeek/sdkconfiguration.py +45 -0
- mixpeek/searchinteractions.py +647 -0
- mixpeek/tasks.py +387 -0
- mixpeek/types/__init__.py +21 -0
- mixpeek/types/basemodel.py +39 -0
- mixpeek/utils/__init__.py +97 -0
- mixpeek/utils/annotations.py +55 -0
- mixpeek/utils/enums.py +34 -0
- mixpeek/utils/eventstreaming.py +238 -0
- mixpeek/utils/forms.py +202 -0
- mixpeek/utils/headers.py +136 -0
- mixpeek/utils/logger.py +27 -0
- mixpeek/utils/metadata.py +118 -0
- mixpeek/utils/queryparams.py +205 -0
- mixpeek/utils/requestbodies.py +66 -0
- mixpeek/utils/retries.py +217 -0
- mixpeek/utils/security.py +174 -0
- mixpeek/utils/serializers.py +215 -0
- mixpeek/utils/url.py +155 -0
- mixpeek/utils/values.py +134 -0
- mixpeek-0.13.dist-info/METADATA +439 -0
- mixpeek-0.13.dist-info/RECORD +176 -0
- {mixpeek-0.11.2.dist-info → mixpeek-0.13.dist-info}/WHEEL +1 -2
- py.typed +1 -0
- mixpeek/client.py +0 -27
- mixpeek/endpoints/__init__.py +0 -0
- mixpeek/endpoints/collections.py +0 -86
- mixpeek/endpoints/embed.py +0 -66
- mixpeek/endpoints/index.py +0 -51
- mixpeek/endpoints/register.py +0 -34
- mixpeek/endpoints/search.py +0 -44
- mixpeek/endpoints/tasks.py +0 -26
- mixpeek/endpoints/tools.py +0 -138
- mixpeek/exceptions.py +0 -13
- mixpeek-0.11.2.dist-info/METADATA +0 -375
- mixpeek-0.11.2.dist-info/RECORD +0 -15
- mixpeek-0.11.2.dist-info/top_level.txt +0 -1
@@ -0,0 +1,77 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .logicaloperator_input import LogicalOperatorInput, LogicalOperatorInputTypedDict
|
5
|
+
from .sortoption import SortOption, SortOptionTypedDict
|
6
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
7
|
+
from pydantic import model_serializer
|
8
|
+
from typing import Any, List, Optional
|
9
|
+
from typing_extensions import NotRequired, TypedDict
|
10
|
+
|
11
|
+
|
12
|
+
class ListFeaturesRequestTypedDict(TypedDict):
|
13
|
+
collections: List[str]
|
14
|
+
r"""Collection identifiers - can be either collection IDs or collection names"""
|
15
|
+
filters: NotRequired[Nullable[LogicalOperatorInputTypedDict]]
|
16
|
+
r"""Complex nested query filters"""
|
17
|
+
sort: NotRequired[Nullable[SortOptionTypedDict]]
|
18
|
+
r"""
|
19
|
+
List of fields to sort by, with direction (asc or desc).
|
20
|
+
NOTE: fields will require a specialty index to use this, consult with the team.
|
21
|
+
|
22
|
+
"""
|
23
|
+
select: NotRequired[Nullable[List[Any]]]
|
24
|
+
r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
|
25
|
+
return_urls: NotRequired[bool]
|
26
|
+
r"""When true, generates presigned URLs for assets"""
|
27
|
+
|
28
|
+
|
29
|
+
class ListFeaturesRequest(BaseModel):
|
30
|
+
collections: List[str]
|
31
|
+
r"""Collection identifiers - can be either collection IDs or collection names"""
|
32
|
+
|
33
|
+
filters: OptionalNullable[LogicalOperatorInput] = UNSET
|
34
|
+
r"""Complex nested query filters"""
|
35
|
+
|
36
|
+
sort: OptionalNullable[SortOption] = UNSET
|
37
|
+
r"""
|
38
|
+
List of fields to sort by, with direction (asc or desc).
|
39
|
+
NOTE: fields will require a specialty index to use this, consult with the team.
|
40
|
+
|
41
|
+
"""
|
42
|
+
|
43
|
+
select: OptionalNullable[List[Any]] = UNSET
|
44
|
+
r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
|
45
|
+
|
46
|
+
return_urls: Optional[bool] = False
|
47
|
+
r"""When true, generates presigned URLs for assets"""
|
48
|
+
|
49
|
+
@model_serializer(mode="wrap")
|
50
|
+
def serialize_model(self, handler):
|
51
|
+
optional_fields = ["filters", "sort", "select", "return_urls"]
|
52
|
+
nullable_fields = ["filters", "sort", "select"]
|
53
|
+
null_default_fields = []
|
54
|
+
|
55
|
+
serialized = handler(self)
|
56
|
+
|
57
|
+
m = {}
|
58
|
+
|
59
|
+
for n, f in self.model_fields.items():
|
60
|
+
k = f.alias or n
|
61
|
+
val = serialized.get(k)
|
62
|
+
serialized.pop(k, None)
|
63
|
+
|
64
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
65
|
+
is_set = (
|
66
|
+
self.__pydantic_fields_set__.intersection({n})
|
67
|
+
or k in null_default_fields
|
68
|
+
) # pylint: disable=no-member
|
69
|
+
|
70
|
+
if val is not None and val != UNSET_SENTINEL:
|
71
|
+
m[k] = val
|
72
|
+
elif val != UNSET_SENTINEL and (
|
73
|
+
not k in optional_fields or (optional_nullable and is_set)
|
74
|
+
):
|
75
|
+
m[k] = val
|
76
|
+
|
77
|
+
return m
|
@@ -0,0 +1,22 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .featureresponse import FeatureResponse, FeatureResponseTypedDict
|
5
|
+
from .features_model_paginationresponse import (
|
6
|
+
FeaturesModelPaginationResponse,
|
7
|
+
FeaturesModelPaginationResponseTypedDict,
|
8
|
+
)
|
9
|
+
from mixpeek.types import BaseModel
|
10
|
+
from typing import List
|
11
|
+
from typing_extensions import TypedDict
|
12
|
+
|
13
|
+
|
14
|
+
class ListFeaturesResponseTypedDict(TypedDict):
|
15
|
+
results: List[FeatureResponseTypedDict]
|
16
|
+
pagination: FeaturesModelPaginationResponseTypedDict
|
17
|
+
|
18
|
+
|
19
|
+
class ListFeaturesResponse(BaseModel):
|
20
|
+
results: List[FeatureResponse]
|
21
|
+
|
22
|
+
pagination: FeaturesModelPaginationResponse
|
@@ -0,0 +1,88 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .filtercondition import FilterCondition, FilterConditionTypedDict
|
5
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
6
|
+
import pydantic
|
7
|
+
from pydantic import model_serializer
|
8
|
+
from typing import List, Union
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
10
|
+
|
11
|
+
|
12
|
+
class LogicalOperatorInputTypedDict(TypedDict):
|
13
|
+
case_sensitive: NotRequired[Nullable[bool]]
|
14
|
+
r"""Whether to perform case-sensitive matching"""
|
15
|
+
and_: NotRequired[Nullable[List[AndTypedDict]]]
|
16
|
+
r"""Logical AND operation"""
|
17
|
+
or_: NotRequired[Nullable[List[OrTypedDict]]]
|
18
|
+
r"""Logical OR operation"""
|
19
|
+
nor: NotRequired[Nullable[List[NorTypedDict]]]
|
20
|
+
r"""Logical NOR operation"""
|
21
|
+
|
22
|
+
|
23
|
+
class LogicalOperatorInput(BaseModel):
|
24
|
+
case_sensitive: OptionalNullable[bool] = UNSET
|
25
|
+
r"""Whether to perform case-sensitive matching"""
|
26
|
+
|
27
|
+
and_: Annotated[OptionalNullable[List[And]], pydantic.Field(alias="AND")] = UNSET
|
28
|
+
r"""Logical AND operation"""
|
29
|
+
|
30
|
+
or_: Annotated[OptionalNullable[List[Or]], pydantic.Field(alias="OR")] = UNSET
|
31
|
+
r"""Logical OR operation"""
|
32
|
+
|
33
|
+
nor: Annotated[OptionalNullable[List[Nor]], pydantic.Field(alias="NOR")] = UNSET
|
34
|
+
r"""Logical NOR operation"""
|
35
|
+
|
36
|
+
@model_serializer(mode="wrap")
|
37
|
+
def serialize_model(self, handler):
|
38
|
+
optional_fields = ["case_sensitive", "AND", "OR", "NOR"]
|
39
|
+
nullable_fields = ["case_sensitive", "AND", "OR", "NOR"]
|
40
|
+
null_default_fields = []
|
41
|
+
|
42
|
+
serialized = handler(self)
|
43
|
+
|
44
|
+
m = {}
|
45
|
+
|
46
|
+
for n, f in self.model_fields.items():
|
47
|
+
k = f.alias or n
|
48
|
+
val = serialized.get(k)
|
49
|
+
serialized.pop(k, None)
|
50
|
+
|
51
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
52
|
+
is_set = (
|
53
|
+
self.__pydantic_fields_set__.intersection({n})
|
54
|
+
or k in null_default_fields
|
55
|
+
) # pylint: disable=no-member
|
56
|
+
|
57
|
+
if val is not None and val != UNSET_SENTINEL:
|
58
|
+
m[k] = val
|
59
|
+
elif val != UNSET_SENTINEL and (
|
60
|
+
not k in optional_fields or (optional_nullable and is_set)
|
61
|
+
):
|
62
|
+
m[k] = val
|
63
|
+
|
64
|
+
return m
|
65
|
+
|
66
|
+
|
67
|
+
AndTypedDict = TypeAliasType(
|
68
|
+
"AndTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
|
69
|
+
)
|
70
|
+
|
71
|
+
|
72
|
+
And = TypeAliasType("And", Union[FilterCondition, LogicalOperatorInput])
|
73
|
+
|
74
|
+
|
75
|
+
OrTypedDict = TypeAliasType(
|
76
|
+
"OrTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
|
77
|
+
)
|
78
|
+
|
79
|
+
|
80
|
+
Or = TypeAliasType("Or", Union[FilterCondition, LogicalOperatorInput])
|
81
|
+
|
82
|
+
|
83
|
+
NorTypedDict = TypeAliasType(
|
84
|
+
"NorTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
|
85
|
+
)
|
86
|
+
|
87
|
+
|
88
|
+
Nor = TypeAliasType("Nor", Union[FilterCondition, LogicalOperatorInput])
|
@@ -0,0 +1,103 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .filtercondition import FilterCondition, FilterConditionTypedDict
|
5
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
6
|
+
import pydantic
|
7
|
+
from pydantic import model_serializer
|
8
|
+
from typing import List, Union
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
10
|
+
|
11
|
+
|
12
|
+
class LogicalOperatorOutputTypedDict(TypedDict):
|
13
|
+
case_sensitive: NotRequired[Nullable[bool]]
|
14
|
+
r"""Whether to perform case-sensitive matching"""
|
15
|
+
and_: NotRequired[Nullable[List[LogicalOperatorOutputANDTypedDict]]]
|
16
|
+
r"""Logical AND operation"""
|
17
|
+
or_: NotRequired[Nullable[List[LogicalOperatorOutputORTypedDict]]]
|
18
|
+
r"""Logical OR operation"""
|
19
|
+
nor: NotRequired[Nullable[List[LogicalOperatorOutputNORTypedDict]]]
|
20
|
+
r"""Logical NOR operation"""
|
21
|
+
|
22
|
+
|
23
|
+
class LogicalOperatorOutput(BaseModel):
|
24
|
+
case_sensitive: OptionalNullable[bool] = UNSET
|
25
|
+
r"""Whether to perform case-sensitive matching"""
|
26
|
+
|
27
|
+
and_: Annotated[
|
28
|
+
OptionalNullable[List[LogicalOperatorOutputAND]], pydantic.Field(alias="AND")
|
29
|
+
] = UNSET
|
30
|
+
r"""Logical AND operation"""
|
31
|
+
|
32
|
+
or_: Annotated[
|
33
|
+
OptionalNullable[List[LogicalOperatorOutputOR]], pydantic.Field(alias="OR")
|
34
|
+
] = UNSET
|
35
|
+
r"""Logical OR operation"""
|
36
|
+
|
37
|
+
nor: Annotated[
|
38
|
+
OptionalNullable[List[LogicalOperatorOutputNOR]], pydantic.Field(alias="NOR")
|
39
|
+
] = UNSET
|
40
|
+
r"""Logical NOR operation"""
|
41
|
+
|
42
|
+
@model_serializer(mode="wrap")
|
43
|
+
def serialize_model(self, handler):
|
44
|
+
optional_fields = ["case_sensitive", "AND", "OR", "NOR"]
|
45
|
+
nullable_fields = ["case_sensitive", "AND", "OR", "NOR"]
|
46
|
+
null_default_fields = []
|
47
|
+
|
48
|
+
serialized = handler(self)
|
49
|
+
|
50
|
+
m = {}
|
51
|
+
|
52
|
+
for n, f in self.model_fields.items():
|
53
|
+
k = f.alias or n
|
54
|
+
val = serialized.get(k)
|
55
|
+
serialized.pop(k, None)
|
56
|
+
|
57
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
58
|
+
is_set = (
|
59
|
+
self.__pydantic_fields_set__.intersection({n})
|
60
|
+
or k in null_default_fields
|
61
|
+
) # pylint: disable=no-member
|
62
|
+
|
63
|
+
if val is not None and val != UNSET_SENTINEL:
|
64
|
+
m[k] = val
|
65
|
+
elif val != UNSET_SENTINEL and (
|
66
|
+
not k in optional_fields or (optional_nullable and is_set)
|
67
|
+
):
|
68
|
+
m[k] = val
|
69
|
+
|
70
|
+
return m
|
71
|
+
|
72
|
+
|
73
|
+
LogicalOperatorOutputANDTypedDict = TypeAliasType(
|
74
|
+
"LogicalOperatorOutputANDTypedDict",
|
75
|
+
Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
|
76
|
+
)
|
77
|
+
|
78
|
+
|
79
|
+
LogicalOperatorOutputAND = TypeAliasType(
|
80
|
+
"LogicalOperatorOutputAND", Union[FilterCondition, LogicalOperatorOutput]
|
81
|
+
)
|
82
|
+
|
83
|
+
|
84
|
+
LogicalOperatorOutputORTypedDict = TypeAliasType(
|
85
|
+
"LogicalOperatorOutputORTypedDict",
|
86
|
+
Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
|
87
|
+
)
|
88
|
+
|
89
|
+
|
90
|
+
LogicalOperatorOutputOR = TypeAliasType(
|
91
|
+
"LogicalOperatorOutputOR", Union[FilterCondition, LogicalOperatorOutput]
|
92
|
+
)
|
93
|
+
|
94
|
+
|
95
|
+
LogicalOperatorOutputNORTypedDict = TypeAliasType(
|
96
|
+
"LogicalOperatorOutputNORTypedDict",
|
97
|
+
Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
|
98
|
+
)
|
99
|
+
|
100
|
+
|
101
|
+
LogicalOperatorOutputNOR = TypeAliasType(
|
102
|
+
"LogicalOperatorOutputNOR", Union[FilterCondition, LogicalOperatorOutput]
|
103
|
+
)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
5
|
+
from pydantic import model_serializer
|
6
|
+
from typing import Optional
|
7
|
+
from typing_extensions import NotRequired, TypedDict
|
8
|
+
|
9
|
+
|
10
|
+
class LogoDetectSettingsTypedDict(TypedDict):
|
11
|
+
enabled: NotRequired[bool]
|
12
|
+
r"""Enable logo detection"""
|
13
|
+
confidence_threshold: NotRequired[Nullable[float]]
|
14
|
+
r"""Minimum confidence threshold for detected logos"""
|
15
|
+
|
16
|
+
|
17
|
+
class LogoDetectSettings(BaseModel):
|
18
|
+
enabled: Optional[bool] = True
|
19
|
+
r"""Enable logo detection"""
|
20
|
+
|
21
|
+
confidence_threshold: OptionalNullable[float] = UNSET
|
22
|
+
r"""Minimum confidence threshold for detected logos"""
|
23
|
+
|
24
|
+
@model_serializer(mode="wrap")
|
25
|
+
def serialize_model(self, handler):
|
26
|
+
optional_fields = ["enabled", "confidence_threshold"]
|
27
|
+
nullable_fields = ["confidence_threshold"]
|
28
|
+
null_default_fields = []
|
29
|
+
|
30
|
+
serialized = handler(self)
|
31
|
+
|
32
|
+
m = {}
|
33
|
+
|
34
|
+
for n, f in self.model_fields.items():
|
35
|
+
k = f.alias or n
|
36
|
+
val = serialized.get(k)
|
37
|
+
serialized.pop(k, None)
|
38
|
+
|
39
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
40
|
+
is_set = (
|
41
|
+
self.__pydantic_fields_set__.intersection({n})
|
42
|
+
or k in null_default_fields
|
43
|
+
) # pylint: disable=no-member
|
44
|
+
|
45
|
+
if val is not None and val != UNSET_SENTINEL:
|
46
|
+
m[k] = val
|
47
|
+
elif val != UNSET_SENTINEL and (
|
48
|
+
not k in optional_fields or (optional_nullable and is_set)
|
49
|
+
):
|
50
|
+
m[k] = val
|
51
|
+
|
52
|
+
return m
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from enum import Enum
|
5
|
+
|
6
|
+
|
7
|
+
class Modality(str, Enum):
|
8
|
+
VIDEO = "video"
|
9
|
+
AUDIO = "audio"
|
10
|
+
TEXT = "text"
|
11
|
+
IMAGE = "image"
|
12
|
+
KEYWORD = "keyword"
|
13
|
+
MULTIMODAL = "multimodal"
|
@@ -0,0 +1,57 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .modality import Modality
|
5
|
+
from .vectortype import VectorType
|
6
|
+
from mixpeek.types import BaseModel, Nullable, UNSET_SENTINEL
|
7
|
+
from pydantic import model_serializer
|
8
|
+
from typing import List
|
9
|
+
from typing_extensions import TypedDict
|
10
|
+
|
11
|
+
|
12
|
+
class ModelDetailsTypedDict(TypedDict):
|
13
|
+
r"""Details about a model in the registry"""
|
14
|
+
|
15
|
+
supported_modalities: List[Modality]
|
16
|
+
vector_type: VectorType
|
17
|
+
size: Nullable[int]
|
18
|
+
|
19
|
+
|
20
|
+
class ModelDetails(BaseModel):
|
21
|
+
r"""Details about a model in the registry"""
|
22
|
+
|
23
|
+
supported_modalities: List[Modality]
|
24
|
+
|
25
|
+
vector_type: VectorType
|
26
|
+
|
27
|
+
size: Nullable[int]
|
28
|
+
|
29
|
+
@model_serializer(mode="wrap")
|
30
|
+
def serialize_model(self, handler):
|
31
|
+
optional_fields = []
|
32
|
+
nullable_fields = ["size"]
|
33
|
+
null_default_fields = []
|
34
|
+
|
35
|
+
serialized = handler(self)
|
36
|
+
|
37
|
+
m = {}
|
38
|
+
|
39
|
+
for n, f in self.model_fields.items():
|
40
|
+
k = f.alias or n
|
41
|
+
val = serialized.get(k)
|
42
|
+
serialized.pop(k, None)
|
43
|
+
|
44
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
45
|
+
is_set = (
|
46
|
+
self.__pydantic_fields_set__.intersection({n})
|
47
|
+
or k in null_default_fields
|
48
|
+
) # pylint: disable=no-member
|
49
|
+
|
50
|
+
if val is not None and val != UNSET_SENTINEL:
|
51
|
+
m[k] = val
|
52
|
+
elif val != UNSET_SENTINEL and (
|
53
|
+
not k in optional_fields or (optional_nullable and is_set)
|
54
|
+
):
|
55
|
+
m[k] = val
|
56
|
+
|
57
|
+
return m
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from mixpeek.types import BaseModel, Nullable, UNSET_SENTINEL
|
5
|
+
from pydantic import model_serializer
|
6
|
+
from typing import Any, List
|
7
|
+
from typing_extensions import TypedDict
|
8
|
+
|
9
|
+
|
10
|
+
class NamespaceResponseTypedDict(TypedDict):
|
11
|
+
namespace_id: str
|
12
|
+
namespace_name: str
|
13
|
+
vector_indexes: List[str]
|
14
|
+
payload_indexes: Nullable[List[Any]]
|
15
|
+
|
16
|
+
|
17
|
+
class NamespaceResponse(BaseModel):
|
18
|
+
namespace_id: str
|
19
|
+
|
20
|
+
namespace_name: str
|
21
|
+
|
22
|
+
vector_indexes: List[str]
|
23
|
+
|
24
|
+
payload_indexes: Nullable[List[Any]]
|
25
|
+
|
26
|
+
@model_serializer(mode="wrap")
|
27
|
+
def serialize_model(self, handler):
|
28
|
+
optional_fields = []
|
29
|
+
nullable_fields = ["payload_indexes"]
|
30
|
+
null_default_fields = []
|
31
|
+
|
32
|
+
serialized = handler(self)
|
33
|
+
|
34
|
+
m = {}
|
35
|
+
|
36
|
+
for n, f in self.model_fields.items():
|
37
|
+
k = f.alias or n
|
38
|
+
val = serialized.get(k)
|
39
|
+
serialized.pop(k, None)
|
40
|
+
|
41
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
42
|
+
is_set = (
|
43
|
+
self.__pydantic_fields_set__.intersection({n})
|
44
|
+
or k in null_default_fields
|
45
|
+
) # pylint: disable=no-member
|
46
|
+
|
47
|
+
if val is not None and val != UNSET_SENTINEL:
|
48
|
+
m[k] = val
|
49
|
+
elif val != UNSET_SENTINEL and (
|
50
|
+
not k in optional_fields or (optional_nullable and is_set)
|
51
|
+
):
|
52
|
+
m[k] = val
|
53
|
+
|
54
|
+
return m
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .usermodel_output import UserModelOutput, UserModelOutputTypedDict
|
5
|
+
from datetime import datetime
|
6
|
+
from mixpeek.types import BaseModel
|
7
|
+
from typing import List, Optional
|
8
|
+
from typing_extensions import NotRequired, TypedDict
|
9
|
+
|
10
|
+
|
11
|
+
class OrganizationModelMetadataTypedDict(TypedDict):
|
12
|
+
pass
|
13
|
+
|
14
|
+
|
15
|
+
class OrganizationModelMetadata(BaseModel):
|
16
|
+
pass
|
17
|
+
|
18
|
+
|
19
|
+
class OrganizationModelTypedDict(TypedDict):
|
20
|
+
organization_name: str
|
21
|
+
organization_id: NotRequired[str]
|
22
|
+
internal_id: NotRequired[str]
|
23
|
+
created_at: NotRequired[datetime]
|
24
|
+
account_type: NotRequired[str]
|
25
|
+
credit_count: NotRequired[int]
|
26
|
+
metadata: NotRequired[OrganizationModelMetadataTypedDict]
|
27
|
+
users: NotRequired[List[UserModelOutputTypedDict]]
|
28
|
+
|
29
|
+
|
30
|
+
class OrganizationModel(BaseModel):
|
31
|
+
organization_name: str
|
32
|
+
|
33
|
+
organization_id: Optional[str] = None
|
34
|
+
|
35
|
+
internal_id: Optional[str] = None
|
36
|
+
|
37
|
+
created_at: Optional[datetime] = None
|
38
|
+
|
39
|
+
account_type: Optional[str] = "free"
|
40
|
+
|
41
|
+
credit_count: Optional[int] = 1000
|
42
|
+
|
43
|
+
metadata: Optional[OrganizationModelMetadata] = None
|
44
|
+
|
45
|
+
users: Optional[List[UserModelOutput]] = None
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .updateassetrequest import UpdateAssetRequest, UpdateAssetRequestTypedDict
|
5
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
6
|
+
from mixpeek.utils import (
|
7
|
+
FieldMetadata,
|
8
|
+
HeaderMetadata,
|
9
|
+
PathParamMetadata,
|
10
|
+
RequestMetadata,
|
11
|
+
)
|
12
|
+
import pydantic
|
13
|
+
from pydantic import model_serializer
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
15
|
+
|
16
|
+
|
17
|
+
class PartialAssetUpdateAssetsAssetIDPatchRequestTypedDict(TypedDict):
|
18
|
+
asset_id: str
|
19
|
+
update_asset_request: UpdateAssetRequestTypedDict
|
20
|
+
x_namespace: NotRequired[Nullable[str]]
|
21
|
+
r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
|
22
|
+
|
23
|
+
|
24
|
+
class PartialAssetUpdateAssetsAssetIDPatchRequest(BaseModel):
|
25
|
+
asset_id: Annotated[
|
26
|
+
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
|
27
|
+
]
|
28
|
+
|
29
|
+
update_asset_request: Annotated[
|
30
|
+
UpdateAssetRequest,
|
31
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
32
|
+
]
|
33
|
+
|
34
|
+
x_namespace: Annotated[
|
35
|
+
OptionalNullable[str],
|
36
|
+
pydantic.Field(alias="X-Namespace"),
|
37
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
38
|
+
] = UNSET
|
39
|
+
r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
|
40
|
+
|
41
|
+
@model_serializer(mode="wrap")
|
42
|
+
def serialize_model(self, handler):
|
43
|
+
optional_fields = ["X-Namespace"]
|
44
|
+
nullable_fields = ["X-Namespace"]
|
45
|
+
null_default_fields = []
|
46
|
+
|
47
|
+
serialized = handler(self)
|
48
|
+
|
49
|
+
m = {}
|
50
|
+
|
51
|
+
for n, f in self.model_fields.items():
|
52
|
+
k = f.alias or n
|
53
|
+
val = serialized.get(k)
|
54
|
+
serialized.pop(k, None)
|
55
|
+
|
56
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
57
|
+
is_set = (
|
58
|
+
self.__pydantic_fields_set__.intersection({n})
|
59
|
+
or k in null_default_fields
|
60
|
+
) # pylint: disable=no-member
|
61
|
+
|
62
|
+
if val is not None and val != UNSET_SENTINEL:
|
63
|
+
m[k] = val
|
64
|
+
elif val != UNSET_SENTINEL and (
|
65
|
+
not k in optional_fields or (optional_nullable and is_set)
|
66
|
+
):
|
67
|
+
m[k] = val
|
68
|
+
|
69
|
+
return m
|
@@ -0,0 +1,94 @@
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from .boolindexparams import BoolIndexParams, BoolIndexParamsTypedDict
|
5
|
+
from .datetimeindexparams import DatetimeIndexParams, DatetimeIndexParamsTypedDict
|
6
|
+
from .floatindexparams import FloatIndexParams, FloatIndexParamsTypedDict
|
7
|
+
from .geoindexparams import GeoIndexParams, GeoIndexParamsTypedDict
|
8
|
+
from .integerindexparams import IntegerIndexParams, IntegerIndexParamsTypedDict
|
9
|
+
from .keywordindexparams import KeywordIndexParams, KeywordIndexParamsTypedDict
|
10
|
+
from .payloadschematype import PayloadSchemaType
|
11
|
+
from .textindexparams import TextIndexParams, TextIndexParamsTypedDict
|
12
|
+
from .uuidindexparams import UUIDIndexParams, UUIDIndexParamsTypedDict
|
13
|
+
from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
14
|
+
from pydantic import model_serializer
|
15
|
+
from typing import Union
|
16
|
+
from typing_extensions import NotRequired, TypeAliasType, TypedDict
|
17
|
+
|
18
|
+
|
19
|
+
FieldSchemaTypedDict = TypeAliasType(
|
20
|
+
"FieldSchemaTypedDict",
|
21
|
+
Union[
|
22
|
+
FloatIndexParamsTypedDict,
|
23
|
+
GeoIndexParamsTypedDict,
|
24
|
+
DatetimeIndexParamsTypedDict,
|
25
|
+
BoolIndexParamsTypedDict,
|
26
|
+
KeywordIndexParamsTypedDict,
|
27
|
+
UUIDIndexParamsTypedDict,
|
28
|
+
IntegerIndexParamsTypedDict,
|
29
|
+
TextIndexParamsTypedDict,
|
30
|
+
],
|
31
|
+
)
|
32
|
+
|
33
|
+
|
34
|
+
FieldSchema = TypeAliasType(
|
35
|
+
"FieldSchema",
|
36
|
+
Union[
|
37
|
+
FloatIndexParams,
|
38
|
+
GeoIndexParams,
|
39
|
+
DatetimeIndexParams,
|
40
|
+
BoolIndexParams,
|
41
|
+
KeywordIndexParams,
|
42
|
+
UUIDIndexParams,
|
43
|
+
IntegerIndexParams,
|
44
|
+
TextIndexParams,
|
45
|
+
],
|
46
|
+
)
|
47
|
+
|
48
|
+
|
49
|
+
class PayloadIndexConfigTypedDict(TypedDict):
|
50
|
+
r"""Configuration for a payload index"""
|
51
|
+
|
52
|
+
field_name: str
|
53
|
+
type: PayloadSchemaType
|
54
|
+
field_schema: NotRequired[Nullable[FieldSchemaTypedDict]]
|
55
|
+
|
56
|
+
|
57
|
+
class PayloadIndexConfig(BaseModel):
|
58
|
+
r"""Configuration for a payload index"""
|
59
|
+
|
60
|
+
field_name: str
|
61
|
+
|
62
|
+
type: PayloadSchemaType
|
63
|
+
|
64
|
+
field_schema: OptionalNullable[FieldSchema] = UNSET
|
65
|
+
|
66
|
+
@model_serializer(mode="wrap")
|
67
|
+
def serialize_model(self, handler):
|
68
|
+
optional_fields = ["field_schema"]
|
69
|
+
nullable_fields = ["field_schema"]
|
70
|
+
null_default_fields = []
|
71
|
+
|
72
|
+
serialized = handler(self)
|
73
|
+
|
74
|
+
m = {}
|
75
|
+
|
76
|
+
for n, f in self.model_fields.items():
|
77
|
+
k = f.alias or n
|
78
|
+
val = serialized.get(k)
|
79
|
+
serialized.pop(k, None)
|
80
|
+
|
81
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
82
|
+
is_set = (
|
83
|
+
self.__pydantic_fields_set__.intersection({n})
|
84
|
+
or k in null_default_fields
|
85
|
+
) # pylint: disable=no-member
|
86
|
+
|
87
|
+
if val is not None and val != UNSET_SENTINEL:
|
88
|
+
m[k] = val
|
89
|
+
elif val != UNSET_SENTINEL and (
|
90
|
+
not k in optional_fields or (optional_nullable and is_set)
|
91
|
+
):
|
92
|
+
m[k] = val
|
93
|
+
|
94
|
+
return m
|