google-genai 1.38.0__py3-none-any.whl → 1.39.1__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
@@ -1021,6 +1021,112 @@ class ExecutableCodeDict(TypedDict, total=False):
1021
1021
  ExecutableCodeOrDict = Union[ExecutableCode, ExecutableCodeDict]
1022
1022
 
1023
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
+
1024
1130
  class FunctionResponse(_common.BaseModel):
1025
1131
  """A function response."""
1026
1132
 
@@ -1032,6 +1138,11 @@ class FunctionResponse(_common.BaseModel):
1032
1138
  default=None,
1033
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.""",
1034
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
+ )
1035
1146
  id: Optional[str] = Field(
1036
1147
  default=None,
1037
1148
  description="""Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`.""",
@@ -1070,6 +1181,10 @@ class FunctionResponseDict(TypedDict, total=False):
1070
1181
  scheduling: Optional[FunctionResponseScheduling]
1071
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."""
1072
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
+
1073
1188
  id: Optional[str]
1074
1189
  """Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`."""
1075
1190
 
@@ -1658,7 +1773,7 @@ class Schema(_common.BaseModel):
1658
1773
 
1659
1774
  def convert_schema(schema: Union['Schema', dict[str, Any]]) -> JSONSchema:
1660
1775
  if isinstance(schema, pydantic.BaseModel):
1661
- schema_dict = schema.model_dump()
1776
+ schema_dict = schema.model_dump(exclude_none=True)
1662
1777
  else:
1663
1778
  schema_dict = schema
1664
1779
  json_schema = JSONSchema()
@@ -1666,7 +1781,13 @@ class Schema(_common.BaseModel):
1666
1781
  if field_value is None:
1667
1782
  continue
1668
1783
  elif field_name == 'nullable':
1669
- 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)
1670
1791
  elif field_name not in json_schema_field_names:
1671
1792
  continue
1672
1793
  elif field_name == 'type':
@@ -2680,6 +2801,14 @@ class ToolComputerUse(_common.BaseModel):
2680
2801
  environment: Optional[Environment] = Field(
2681
2802
  default=None, description="""Required. The environment being operated."""
2682
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
+ )
2683
2812
 
2684
2813
 
2685
2814
  class ToolComputerUseDict(TypedDict, total=False):
@@ -2688,6 +2817,13 @@ class ToolComputerUseDict(TypedDict, total=False):
2688
2817
  environment: Optional[Environment]
2689
2818
  """Required. The environment being operated."""
2690
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
+
2691
2827
 
2692
2828
  ToolComputerUseOrDict = Union[ToolComputerUse, ToolComputerUseDict]
2693
2829
 
@@ -6799,7 +6935,7 @@ class _EditImageParameters(_common.BaseModel):
6799
6935
  description="""A text description of the edit to apply to the image.""",
6800
6936
  )
6801
6937
  reference_images: Optional[list[_ReferenceImageAPI]] = Field(
6802
- default=None, description="""The reference images for Imagen 3 editing."""
6938
+ default=None, description="""The reference images for editing."""
6803
6939
  )
6804
6940
  config: Optional[EditImageConfig] = Field(
6805
6941
  default=None, description="""Configuration for editing."""
@@ -6816,7 +6952,7 @@ class _EditImageParametersDict(TypedDict, total=False):
6816
6952
  """A text description of the edit to apply to the image."""
6817
6953
 
6818
6954
  reference_images: Optional[list[_ReferenceImageAPIDict]]
6819
- """The reference images for Imagen 3 editing."""
6955
+ """The reference images for editing."""
6820
6956
 
6821
6957
  config: Optional[EditImageConfigDict]
6822
6958
  """Configuration for editing."""
@@ -13150,6 +13286,58 @@ SubjectReferenceImageOrDict = Union[
13150
13286
  ]
13151
13287
 
13152
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
+
13153
13341
  class LiveServerSetupComplete(_common.BaseModel):
13154
13342
  """Sent in response to a `LiveGenerateContentSetup` message from the client."""
13155
13343
 
google/genai/version.py CHANGED
@@ -13,4 +13,4 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
- __version__ = '1.38.0' # x-release-please-version
16
+ __version__ = '1.39.1' # x-release-please-version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-genai
3
- Version: 1.38.0
3
+ Version: 1.39.1
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=MjXU31z7dtbix5hSVM0dkM_TFvpUfonyvRhEdQ-NX-k,62056
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=bwKV5gHKpxzmfFTtoudQ_hEz5QfUzKYMJHYT-AnQfNU,13066
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=9kaezsq7iGydw527Yusdh0fiol0CTkWV4TaMWjGEbww,627
35
+ google_genai-1.39.1.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
36
+ google_genai-1.39.1.dist-info/METADATA,sha256=VzVw-MudwcrpSVi0l1SaSda3t1StnVuJ6qxoxm-cdRI,45381
37
+ google_genai-1.39.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
38
+ google_genai-1.39.1.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
39
+ google_genai-1.39.1.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=5yndouhtCw3WkEIWEcf1k8HywaGrnJpuuTuFKvXaA5M,103950
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=rfC7XHOj0gY623h6o2OYkgG5qwdx3XnIqNbflsKVhiU,544627
34
- google/genai/version.py,sha256=KuRCODgoTTXMoEmnCuEy6FnYuAvHgdE5EVPAkRRmjYc,627
35
- google_genai-1.38.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
36
- google_genai-1.38.0.dist-info/METADATA,sha256=XPd0ingxVwk3XGZkgkU7szy0DonWV6ge4NYAfVKTO0g,43622
37
- google_genai-1.38.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
38
- google_genai-1.38.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
39
- google_genai-1.38.0.dist-info/RECORD,,