google-genai 1.37.0__py3-none-any.whl → 1.39.0__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.
google/genai/types.py CHANGED
@@ -657,6 +657,19 @@ class FileSource(_common.CaseInSensitiveEnum):
657
657
  GENERATED = 'GENERATED'
658
658
 
659
659
 
660
+ class TurnCompleteReason(_common.CaseInSensitiveEnum):
661
+ """The reason why the turn is complete."""
662
+
663
+ TURN_COMPLETE_REASON_UNSPECIFIED = 'TURN_COMPLETE_REASON_UNSPECIFIED'
664
+ """Default value. Reason is unspecified."""
665
+ MALFORMED_FUNCTION_CALL = 'MALFORMED_FUNCTION_CALL'
666
+ """The function call generated by the model is invalid."""
667
+ RESPONSE_REJECTED = 'RESPONSE_REJECTED'
668
+ """The response is rejected by the model."""
669
+ NEED_MORE_INPUT = 'NEED_MORE_INPUT'
670
+ """Needs more input from the user."""
671
+
672
+
660
673
  class MediaModality(_common.CaseInSensitiveEnum):
661
674
  """Server content modalities."""
662
675
 
@@ -1008,6 +1021,112 @@ class ExecutableCodeDict(TypedDict, total=False):
1008
1021
  ExecutableCodeOrDict = Union[ExecutableCode, ExecutableCodeDict]
1009
1022
 
1010
1023
 
1024
+ class FunctionResponseBlob(_common.BaseModel):
1025
+ """Raw media bytes for function response.
1026
+
1027
+ Text should not be sent as raw bytes, use the FunctionResponse.response
1028
+ field.
1029
+ """
1030
+
1031
+ mime_type: Optional[str] = Field(
1032
+ default=None,
1033
+ description="""Required. The IANA standard MIME type of the source data.""",
1034
+ )
1035
+ data: Optional[bytes] = Field(
1036
+ default=None, description="""Required. Inline media bytes."""
1037
+ )
1038
+
1039
+
1040
+ class FunctionResponseBlobDict(TypedDict, total=False):
1041
+ """Raw media bytes for function response.
1042
+
1043
+ Text should not be sent as raw bytes, use the FunctionResponse.response
1044
+ field.
1045
+ """
1046
+
1047
+ mime_type: Optional[str]
1048
+ """Required. The IANA standard MIME type of the source data."""
1049
+
1050
+ data: Optional[bytes]
1051
+ """Required. Inline media bytes."""
1052
+
1053
+
1054
+ FunctionResponseBlobOrDict = Union[
1055
+ FunctionResponseBlob, FunctionResponseBlobDict
1056
+ ]
1057
+
1058
+
1059
+ class FunctionResponseFileData(_common.BaseModel):
1060
+ """URI based data for function response."""
1061
+
1062
+ file_uri: Optional[str] = Field(
1063
+ default=None, description="""Required. URI."""
1064
+ )
1065
+ mime_type: Optional[str] = Field(
1066
+ default=None,
1067
+ description="""Required. The IANA standard MIME type of the source data.""",
1068
+ )
1069
+
1070
+
1071
+ class FunctionResponseFileDataDict(TypedDict, total=False):
1072
+ """URI based data for function response."""
1073
+
1074
+ file_uri: Optional[str]
1075
+ """Required. URI."""
1076
+
1077
+ mime_type: Optional[str]
1078
+ """Required. The IANA standard MIME type of the source data."""
1079
+
1080
+
1081
+ FunctionResponseFileDataOrDict = Union[
1082
+ FunctionResponseFileData, FunctionResponseFileDataDict
1083
+ ]
1084
+
1085
+
1086
+ class FunctionResponsePart(_common.BaseModel):
1087
+ """A datatype containing media that is part of a `FunctionResponse` message.
1088
+
1089
+ A `FunctionResponsePart` consists of data which has an associated datatype. A
1090
+ `FunctionResponsePart` can only contain one of the accepted types in
1091
+ `FunctionResponsePart.data`.
1092
+
1093
+ A `FunctionResponsePart` must have a fixed IANA MIME type identifying the
1094
+ type and subtype of the media if the `inline_data` field is filled with raw
1095
+ bytes.
1096
+ """
1097
+
1098
+ inline_data: Optional[FunctionResponseBlob] = Field(
1099
+ default=None, description="""Optional. Inline media bytes."""
1100
+ )
1101
+ file_data: Optional[FunctionResponseFileData] = Field(
1102
+ default=None, description="""Optional. URI based data."""
1103
+ )
1104
+
1105
+
1106
+ class FunctionResponsePartDict(TypedDict, total=False):
1107
+ """A datatype containing media that is part of a `FunctionResponse` message.
1108
+
1109
+ A `FunctionResponsePart` consists of data which has an associated datatype. A
1110
+ `FunctionResponsePart` can only contain one of the accepted types in
1111
+ `FunctionResponsePart.data`.
1112
+
1113
+ A `FunctionResponsePart` must have a fixed IANA MIME type identifying the
1114
+ type and subtype of the media if the `inline_data` field is filled with raw
1115
+ bytes.
1116
+ """
1117
+
1118
+ inline_data: Optional[FunctionResponseBlobDict]
1119
+ """Optional. Inline media bytes."""
1120
+
1121
+ file_data: Optional[FunctionResponseFileDataDict]
1122
+ """Optional. URI based data."""
1123
+
1124
+
1125
+ FunctionResponsePartOrDict = Union[
1126
+ FunctionResponsePart, FunctionResponsePartDict
1127
+ ]
1128
+
1129
+
1011
1130
  class FunctionResponse(_common.BaseModel):
1012
1131
  """A function response."""
1013
1132
 
@@ -1019,6 +1138,11 @@ class FunctionResponse(_common.BaseModel):
1019
1138
  default=None,
1020
1139
  description="""Specifies how the response should be scheduled in the conversation. Only applicable to NON_BLOCKING function calls, is ignored otherwise. Defaults to WHEN_IDLE.""",
1021
1140
  )
1141
+ parts: Optional[list[FunctionResponsePart]] = Field(
1142
+ default=None,
1143
+ description="""List of parts that constitute a function response. Each part may
1144
+ have a different IANA MIME type.""",
1145
+ )
1022
1146
  id: Optional[str] = Field(
1023
1147
  default=None,
1024
1148
  description="""Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`.""",
@@ -1057,6 +1181,10 @@ class FunctionResponseDict(TypedDict, total=False):
1057
1181
  scheduling: Optional[FunctionResponseScheduling]
1058
1182
  """Specifies how the response should be scheduled in the conversation. Only applicable to NON_BLOCKING function calls, is ignored otherwise. Defaults to WHEN_IDLE."""
1059
1183
 
1184
+ parts: Optional[list[FunctionResponsePartDict]]
1185
+ """List of parts that constitute a function response. Each part may
1186
+ have a different IANA MIME type."""
1187
+
1060
1188
  id: Optional[str]
1061
1189
  """Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`."""
1062
1190
 
@@ -1645,7 +1773,7 @@ class Schema(_common.BaseModel):
1645
1773
 
1646
1774
  def convert_schema(schema: Union['Schema', dict[str, Any]]) -> JSONSchema:
1647
1775
  if isinstance(schema, pydantic.BaseModel):
1648
- schema_dict = schema.model_dump()
1776
+ schema_dict = schema.model_dump(exclude_none=True)
1649
1777
  else:
1650
1778
  schema_dict = schema
1651
1779
  json_schema = JSONSchema()
@@ -1653,7 +1781,13 @@ class Schema(_common.BaseModel):
1653
1781
  if field_value is None:
1654
1782
  continue
1655
1783
  elif field_name == 'nullable':
1656
- json_schema.type = JSONSchemaType.NULL
1784
+ if json_schema.type is None:
1785
+ json_schema.type = JSONSchemaType.NULL
1786
+ elif isinstance(json_schema.type, JSONSchemaType):
1787
+ current_type: JSONSchemaType = json_schema.type
1788
+ json_schema.type = [current_type, JSONSchemaType.NULL]
1789
+ elif isinstance(json_schema.type, list):
1790
+ json_schema.type.append(JSONSchemaType.NULL)
1657
1791
  elif field_name not in json_schema_field_names:
1658
1792
  continue
1659
1793
  elif field_name == 'type':
@@ -2667,6 +2801,14 @@ class ToolComputerUse(_common.BaseModel):
2667
2801
  environment: Optional[Environment] = Field(
2668
2802
  default=None, description="""Required. The environment being operated."""
2669
2803
  )
2804
+ excluded_predefined_functions: Optional[list[str]] = Field(
2805
+ default=None,
2806
+ description="""By default, predefined functions are included in the final model call.
2807
+ Some of them can be explicitly excluded from being automatically included.
2808
+ This can serve two purposes:
2809
+ 1. Using a more restricted / different action space.
2810
+ 2. Improving the definitions / instructions of predefined functions.""",
2811
+ )
2670
2812
 
2671
2813
 
2672
2814
  class ToolComputerUseDict(TypedDict, total=False):
@@ -2675,6 +2817,13 @@ class ToolComputerUseDict(TypedDict, total=False):
2675
2817
  environment: Optional[Environment]
2676
2818
  """Required. The environment being operated."""
2677
2819
 
2820
+ excluded_predefined_functions: Optional[list[str]]
2821
+ """By default, predefined functions are included in the final model call.
2822
+ Some of them can be explicitly excluded from being automatically included.
2823
+ This can serve two purposes:
2824
+ 1. Using a more restricted / different action space.
2825
+ 2. Improving the definitions / instructions of predefined functions."""
2826
+
2678
2827
 
2679
2828
  ToolComputerUseOrDict = Union[ToolComputerUse, ToolComputerUseDict]
2680
2829
 
@@ -6786,7 +6935,7 @@ class _EditImageParameters(_common.BaseModel):
6786
6935
  description="""A text description of the edit to apply to the image.""",
6787
6936
  )
6788
6937
  reference_images: Optional[list[_ReferenceImageAPI]] = Field(
6789
- default=None, description="""The reference images for Imagen 3 editing."""
6938
+ default=None, description="""The reference images for editing."""
6790
6939
  )
6791
6940
  config: Optional[EditImageConfig] = Field(
6792
6941
  default=None, description="""Configuration for editing."""
@@ -6803,7 +6952,7 @@ class _EditImageParametersDict(TypedDict, total=False):
6803
6952
  """A text description of the edit to apply to the image."""
6804
6953
 
6805
6954
  reference_images: Optional[list[_ReferenceImageAPIDict]]
6806
- """The reference images for Imagen 3 editing."""
6955
+ """The reference images for editing."""
6807
6956
 
6808
6957
  config: Optional[EditImageConfigDict]
6809
6958
  """Configuration for editing."""
@@ -13137,6 +13286,58 @@ SubjectReferenceImageOrDict = Union[
13137
13286
  ]
13138
13287
 
13139
13288
 
13289
+ class ContentReferenceImage(_common.BaseModel):
13290
+ """A content reference image.
13291
+
13292
+ A content reference image represents a subject to reference (ex. person,
13293
+ product, animal) provided by the user. It can optionally be provided in
13294
+ addition to a style reference image (ex. background, style reference).
13295
+ """
13296
+
13297
+ reference_image: Optional[Image] = Field(
13298
+ default=None,
13299
+ description="""The reference image for the editing operation.""",
13300
+ )
13301
+ reference_id: Optional[int] = Field(
13302
+ default=None, description="""The id of the reference image."""
13303
+ )
13304
+ reference_type: Optional[str] = Field(
13305
+ default=None,
13306
+ description="""The type of the reference image. Only set by the SDK.""",
13307
+ )
13308
+
13309
+ @pydantic.model_validator(mode='before')
13310
+ @classmethod
13311
+ def _validate_mask_image_config(self, values: Any) -> Any:
13312
+ if 'reference_type' in values:
13313
+ raise ValueError('Cannot set internal reference_type field directly.')
13314
+ values['reference_type'] = 'REFERENCE_TYPE_CONTENT'
13315
+ return values
13316
+
13317
+
13318
+ class ContentReferenceImageDict(TypedDict, total=False):
13319
+ """A content reference image.
13320
+
13321
+ A content reference image represents a subject to reference (ex. person,
13322
+ product, animal) provided by the user. It can optionally be provided in
13323
+ addition to a style reference image (ex. background, style reference).
13324
+ """
13325
+
13326
+ reference_image: Optional[ImageDict]
13327
+ """The reference image for the editing operation."""
13328
+
13329
+ reference_id: Optional[int]
13330
+ """The id of the reference image."""
13331
+
13332
+ reference_type: Optional[str]
13333
+ """The type of the reference image. Only set by the SDK."""
13334
+
13335
+
13336
+ ContentReferenceImageOrDict = Union[
13337
+ ContentReferenceImage, ContentReferenceImageDict
13338
+ ]
13339
+
13340
+
13140
13341
  class LiveServerSetupComplete(_common.BaseModel):
13141
13342
  """Sent in response to a `LiveGenerateContentSetup` message from the client."""
13142
13343
 
@@ -13238,6 +13439,15 @@ class LiveServerContent(_common.BaseModel):
13238
13439
  default=None,
13239
13440
  description="""Metadata related to url context retrieval tool.""",
13240
13441
  )
13442
+ turn_complete_reason: Optional[TurnCompleteReason] = Field(
13443
+ default=None, description="""Reason for the turn is complete."""
13444
+ )
13445
+ waiting_for_input: Optional[bool] = Field(
13446
+ default=None,
13447
+ description="""If true, indicates that the model is not generating content because
13448
+ it is waiting for more input from the user, e.g. because it expects the
13449
+ user to continue talking.""",
13450
+ )
13241
13451
 
13242
13452
 
13243
13453
  class LiveServerContentDict(TypedDict, total=False):
@@ -13283,6 +13493,14 @@ class LiveServerContentDict(TypedDict, total=False):
13283
13493
  url_context_metadata: Optional[UrlContextMetadataDict]
13284
13494
  """Metadata related to url context retrieval tool."""
13285
13495
 
13496
+ turn_complete_reason: Optional[TurnCompleteReason]
13497
+ """Reason for the turn is complete."""
13498
+
13499
+ waiting_for_input: Optional[bool]
13500
+ """If true, indicates that the model is not generating content because
13501
+ it is waiting for more input from the user, e.g. because it expects the
13502
+ user to continue talking."""
13503
+
13286
13504
 
13287
13505
  LiveServerContentOrDict = Union[LiveServerContent, LiveServerContentDict]
13288
13506
 
google/genai/version.py CHANGED
@@ -13,4 +13,4 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
- __version__ = '1.37.0' # x-release-please-version
16
+ __version__ = '1.39.0' # x-release-please-version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-genai
3
- Version: 1.37.0
3
+ Version: 1.39.0
4
4
  Summary: GenAI Python SDK
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  License: Apache-2.0
@@ -122,6 +122,87 @@ from google import genai
122
122
  client = genai.Client()
123
123
  ```
124
124
 
125
+ ## Close a client
126
+
127
+ Explicitly close the sync client to ensure that resources, such as the
128
+ underlying HTTP connections, are properly cleaned up and closed.
129
+
130
+ ```python
131
+
132
+ from google.genai import Client
133
+
134
+ client = Client()
135
+ response_1 = client.models.generate_content(
136
+ model=MODEL_ID,
137
+ contents='Hello',
138
+ )
139
+ response_2 = client.models.generate_content(
140
+ model=MODEL_ID,
141
+ contents='Ask a question',
142
+ )
143
+ # Close the sync client to release resources.
144
+ client.close()
145
+ ```
146
+
147
+ To explicitly close the async client:
148
+
149
+ ```python
150
+
151
+ from google.genai import Client
152
+
153
+ aclient = Client(
154
+ vertexai=True, project='my-project-id', location='us-central1'
155
+ ).aio
156
+ response_1 = await aclient.models.generate_content(
157
+ model=MODEL_ID,
158
+ contents='Hello',
159
+ )
160
+ response_2 = await aclient.models.generate_content(
161
+ model=MODEL_ID,
162
+ contents='Ask a question',
163
+ )
164
+ # Close the async client to release resources.
165
+ await aclient.aclose()
166
+ ```
167
+
168
+ ## Client context managers
169
+
170
+ By using the sync client context manager, it will close the underlying
171
+ sync client when exiting the with block.
172
+
173
+ ```python
174
+ from google.genai import Client
175
+
176
+ with Client() as client:
177
+ response_1 = client.models.generate_content(
178
+ model=MODEL_ID,
179
+ contents='Hello',
180
+ )
181
+ response_2 = client.models.generate_content(
182
+ model=MODEL_ID,
183
+ contents='Ask a question',
184
+ )
185
+
186
+ ```
187
+
188
+ By using the async client context manager, it will close the underlying
189
+ async client when exiting the with block.
190
+
191
+ ```python
192
+ from google.genai import Client
193
+
194
+ async with Client().aio as aclient:
195
+ response_1 = await aclient.models.generate_content(
196
+ model=MODEL_ID,
197
+ contents='Hello',
198
+ )
199
+ response_2 = await aclient.models.generate_content(
200
+ model=MODEL_ID,
201
+ contents='Ask a question',
202
+ )
203
+
204
+ ```
205
+
125
206
  ### API Selection
126
207
 
127
208
  By default, the SDK uses the beta API endpoints provided by Google to support
@@ -0,0 +1,39 @@
1
+ google/genai/__init__.py,sha256=SKz_9WQKA3R4OpJIDJlgssVfizLNDG2tuWtOD9pxrPE,729
2
+ google/genai/_adapters.py,sha256=Kok38miNYJff2n--l0zEK_hbq0y2rWOH7k75J7SMYbQ,1744
3
+ google/genai/_api_client.py,sha256=nYn0nHR5FvZrNpO8cKCd1OqwtelIaS1tTaR9pSsrBo8,61630
4
+ google/genai/_api_module.py,sha256=lj8eUWx8_LBGBz-49qz6_ywWm3GYp3d8Bg5JoOHbtbI,902
5
+ google/genai/_automatic_function_calling_util.py,sha256=xXNkJR-pzSMkeSXMz3Jw-kMHFbTJEiRJ3wocuwtWW4I,11627
6
+ google/genai/_base_transformers.py,sha256=wljA6m4tLl4XLGlBC2DNOls5N9-X9tffBq0M7i8jgpw,1034
7
+ google/genai/_base_url.py,sha256=E5H4dew14Y16qfnB3XRnjSCi19cJVlkaMNoM_8ip-PM,1597
8
+ google/genai/_common.py,sha256=YU5842SoZOW0usJRnz58Wi8hqJ1f-Dd01flGTsqI8-U,20653
9
+ google/genai/_extra_utils.py,sha256=myEPyU_-RXExXtMGitJUKEMWUPiDudScgTN9LqFC8h4,20468
10
+ google/genai/_live_converters.py,sha256=zsYlIE6b7VKuwkW7blgmxyCNqXOuSiDz8H2b1kd3USs,108032
11
+ google/genai/_local_tokenizer_loader.py,sha256=cGN1F0f7hNjRIGCGTLeox7IGAZf_YcvZjSp2rCyhUak,7465
12
+ google/genai/_mcp_utils.py,sha256=HuWJ8FUjquv40Mf_QjcL5r5yXWrS-JjINsjlOSbbyAc,3870
13
+ google/genai/_operations_converters.py,sha256=hPmrlU_yJWT4di2arA0VKaoQIB1MbCPglmAZ4D8M-Ds,8744
14
+ google/genai/_replay_api_client.py,sha256=MmpzqE5AxVeyvCahEnmukYGIZqN8lxS-suSgUszvLSw,22555
15
+ google/genai/_test_api_client.py,sha256=4ruFIy5_1qcbKqqIBu3HSQbpSOBrxiecBtDZaTGFR1s,4797
16
+ google/genai/_tokens_converters.py,sha256=yZx_RXgoYuSC2uyXYw0RXR5LRsykJ_0mxMs67L5piRw,25173
17
+ google/genai/_transformers.py,sha256=-1GIrDNS4fH6Qx2jNm-VhcmlTSjWxanna7N7Tp_ctQ8,40861
18
+ google/genai/batches.py,sha256=x0KyOuj98NABrnZ4SNpGolNIsod6VB92NhGVM1dTnlY,102044
19
+ google/genai/caches.py,sha256=-0TIzBDlVSCZNKR1PQb7q7pNQ0kwnRbb2MQYRwALMAc,67187
20
+ google/genai/chats.py,sha256=pIBw8d13llupLn4a7vP6vnpbzDcvCCrZZ-Q2r8Cvo7g,16652
21
+ google/genai/client.py,sha256=Ps5chw6BJc6F2CjNO_SjsOatepYrNxZa6-weIJxBPWw,13070
22
+ google/genai/errors.py,sha256=zaPEs_GrtZuypvSPnOe32CTHO6nEVtshvc3Av2ug2Ac,5822
23
+ google/genai/files.py,sha256=wNM0k9Hab8I7STThiZtA8BdRDaj6fNIdN7DxMr8zzxc,40211
24
+ google/genai/live.py,sha256=BUyIOt-PON4SuJtKXA6l3ujzA3GUbYWMGSgZvsyKjrg,39674
25
+ google/genai/live_music.py,sha256=3GG9nsto8Vhkohcs-4CPMS4DFp1ZtMuLYzHfvEPYAeg,6971
26
+ google/genai/local_tokenizer.py,sha256=EKZ72cV2Zfutlo_efMOPnLRNZN4WQe57rD3G80cF340,14109
27
+ google/genai/models.py,sha256=FlP9HgR-uaNBXXmDmZ8OQjoTnyT1wmiBhoDGIjKC0jg,266642
28
+ google/genai/operations.py,sha256=mgRuVCoqUf7z0RfB84W9x7S839VCttmIQZkXovHAMrE,17061
29
+ google/genai/pagers.py,sha256=m0SfWWn1EJs2k1On3DZx371qb8g2BRm_188ExsicIRc,7098
30
+ google/genai/py.typed,sha256=RsMFoLwBkAvY05t6izop4UHZtqOPLiKp3GkIEizzmQY,40
31
+ google/genai/tokens.py,sha256=8RbZ0kgvyKT3SwbgIUOHr6TTZL24v4fqYarhlA8r1ac,12503
32
+ google/genai/tunings.py,sha256=_VzlKhlqFQHB7Lt4vU1HfGD11E5iolDfPdWrnigu5pw,62885
33
+ google/genai/types.py,sha256=WfXL6BFOYhuHMLZKoVnPwvNoi0s73ajwtoW-0jK8C88,550882
34
+ google/genai/version.py,sha256=oCGQ5OGKyiE6IO3Y5csyCr5Tksusrb17BGSSo0HZn28,627
35
+ google_genai-1.39.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
36
+ google_genai-1.39.0.dist-info/METADATA,sha256=cH1U0b3lbxWeig3S3UUbUK_yBufjSsFwfzvw-f9eNfE,45381
37
+ google_genai-1.39.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
38
+ google_genai-1.39.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
39
+ google_genai-1.39.0.dist-info/RECORD,,
@@ -1,39 +0,0 @@
1
- google/genai/__init__.py,sha256=SKz_9WQKA3R4OpJIDJlgssVfizLNDG2tuWtOD9pxrPE,729
2
- google/genai/_adapters.py,sha256=Kok38miNYJff2n--l0zEK_hbq0y2rWOH7k75J7SMYbQ,1744
3
- google/genai/_api_client.py,sha256=j3NJI7lfQbe6KqyoC6FvLTnWzzskZJdmjIGGzUslRsY,61331
4
- google/genai/_api_module.py,sha256=lj8eUWx8_LBGBz-49qz6_ywWm3GYp3d8Bg5JoOHbtbI,902
5
- google/genai/_automatic_function_calling_util.py,sha256=xXNkJR-pzSMkeSXMz3Jw-kMHFbTJEiRJ3wocuwtWW4I,11627
6
- google/genai/_base_transformers.py,sha256=wljA6m4tLl4XLGlBC2DNOls5N9-X9tffBq0M7i8jgpw,1034
7
- google/genai/_base_url.py,sha256=E5H4dew14Y16qfnB3XRnjSCi19cJVlkaMNoM_8ip-PM,1597
8
- google/genai/_common.py,sha256=VziliVbesmNtke6Fh2wk-kQlCOxEpmkqYb0y4qfKIo4,20074
9
- google/genai/_extra_utils.py,sha256=myEPyU_-RXExXtMGitJUKEMWUPiDudScgTN9LqFC8h4,20468
10
- google/genai/_live_converters.py,sha256=MMyDkferhBJiR3-dI8k8Rqr9LVzONtf4ibGq9FNzoew,103278
11
- google/genai/_local_tokenizer_loader.py,sha256=cGN1F0f7hNjRIGCGTLeox7IGAZf_YcvZjSp2rCyhUak,7465
12
- google/genai/_mcp_utils.py,sha256=HuWJ8FUjquv40Mf_QjcL5r5yXWrS-JjINsjlOSbbyAc,3870
13
- google/genai/_operations_converters.py,sha256=I1b46qhGCeB5uHNuyrMxpFqmzWuvSFQ5pS52csd1J4E,9080
14
- google/genai/_replay_api_client.py,sha256=REKFmX0d8mEgMCf1mhy-bRa-hWOqbqZrBpwpMnzQLFw,22370
15
- google/genai/_test_api_client.py,sha256=4ruFIy5_1qcbKqqIBu3HSQbpSOBrxiecBtDZaTGFR1s,4797
16
- google/genai/_tokens_converters.py,sha256=42xx5Inv3YMqEdarb3lmt-w54D2tpb9QEBy0DSUATQk,24963
17
- google/genai/_transformers.py,sha256=0r3lv77ZcxpkfaGWSw-DMXEGmEbZ4aRfUOrSyqTvnEo,40304
18
- google/genai/batches.py,sha256=UJ-zc2UXqQfej8bqqtgeNrepc7zDQBzRlmkRf4Wlr4U,102880
19
- google/genai/caches.py,sha256=OuWOomIf7McQk0_jKivA-aBv__5vDc249rBEPqOh_XE,67637
20
- google/genai/chats.py,sha256=pIBw8d13llupLn4a7vP6vnpbzDcvCCrZZ-Q2r8Cvo7g,16652
21
- google/genai/client.py,sha256=wXnfZBSv9p-yKtX_gabUrfBXoYHuqHhzK_VgwRttMgY,10777
22
- google/genai/errors.py,sha256=zaPEs_GrtZuypvSPnOe32CTHO6nEVtshvc3Av2ug2Ac,5822
23
- google/genai/files.py,sha256=T8uDgqCQheFwYYYJdN4lax4NOR_q6bJyr0jQf079VeE,40607
24
- google/genai/live.py,sha256=BUyIOt-PON4SuJtKXA6l3ujzA3GUbYWMGSgZvsyKjrg,39674
25
- google/genai/live_music.py,sha256=3GG9nsto8Vhkohcs-4CPMS4DFp1ZtMuLYzHfvEPYAeg,6971
26
- google/genai/local_tokenizer.py,sha256=ZYOdZFS2nJbgDGOMrVzn2hZ_1G8I4_PuVsh6HU8jEgo,14055
27
- google/genai/models.py,sha256=eyvuAh7Ky-rpWYBFNnXz8cjgGjvP08EYxgHBY8VInBM,268195
28
- google/genai/operations.py,sha256=B0NSu6XNZwMIBTU7Wz_YU9KY64kJvmu5wY7TThyh2uQ,17509
29
- google/genai/pagers.py,sha256=m0SfWWn1EJs2k1On3DZx371qb8g2BRm_188ExsicIRc,7098
30
- google/genai/py.typed,sha256=RsMFoLwBkAvY05t6izop4UHZtqOPLiKp3GkIEizzmQY,40
31
- google/genai/tokens.py,sha256=8RbZ0kgvyKT3SwbgIUOHr6TTZL24v4fqYarhlA8r1ac,12503
32
- google/genai/tunings.py,sha256=TVohav5pT5jOj4RgnPdvLI6iDdOVGnPRB8XRBNuyP2E,63513
33
- google/genai/types.py,sha256=Fo_wnZfJpN8II_BakdMeZF_fdVr9LS1uN6adt5G3fOw,543397
34
- google/genai/version.py,sha256=nlusqdJdDN7Uqli6saNEL815P5TiJPD6kdJtRRoRHdA,627
35
- google_genai-1.37.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
36
- google_genai-1.37.0.dist-info/METADATA,sha256=4EpWee9gsOSGvyHGzMC2xqJ0fYOwvgbA2f8fGUh2YjY,43622
37
- google_genai-1.37.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
38
- google_genai-1.37.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
39
- google_genai-1.37.0.dist-info/RECORD,,