google-genai 1.24.0__py3-none-any.whl → 1.26.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
@@ -15,6 +15,7 @@
15
15
 
16
16
  # Code generated by the Google Gen AI SDK generator DO NOT EDIT.
17
17
 
18
+ from abc import ABC, abstractmethod
18
19
  import datetime
19
20
  from enum import Enum, EnumMeta
20
21
  import inspect
@@ -26,7 +27,7 @@ import typing
26
27
  from typing import Any, Callable, Literal, Optional, Sequence, Union, _UnionGenericAlias # type: ignore
27
28
  import pydantic
28
29
  from pydantic import Field
29
- from typing_extensions import TypedDict
30
+ from typing_extensions import Self, TypedDict
30
31
  from . import _common
31
32
 
32
33
  if sys.version_info >= (3, 10):
@@ -480,10 +481,21 @@ class ImagePromptLanguage(_common.CaseInSensitiveEnum):
480
481
  """Enum that specifies the language of the text in the prompt."""
481
482
 
482
483
  auto = 'auto'
484
+ """Auto-detect the language."""
483
485
  en = 'en'
486
+ """English"""
484
487
  ja = 'ja'
488
+ """Japanese"""
485
489
  ko = 'ko'
490
+ """Korean"""
486
491
  hi = 'hi'
492
+ """Hindi"""
493
+ zh = 'zh'
494
+ """Chinese"""
495
+ pt = 'pt'
496
+ """Portuguese"""
497
+ es = 'es'
498
+ """Spanish"""
487
499
 
488
500
 
489
501
  class MaskReferenceMode(_common.CaseInSensitiveEnum):
@@ -5242,6 +5254,12 @@ class GenerateContentResponse(_common.BaseModel):
5242
5254
  response_schema = _common.get_value_by_path(
5243
5255
  kwargs, ['config', 'response_schema']
5244
5256
  )
5257
+ # Handles response_json_schema. Backend will throw error if both
5258
+ # response_schema and response_json_schema are set.
5259
+ if response_schema is None:
5260
+ response_schema = _common.get_value_by_path(
5261
+ kwargs, ['config', 'response_json_schema']
5262
+ )
5245
5263
  if (
5246
5264
  inspect.isclass(response_schema)
5247
5265
  and not (
@@ -6364,6 +6382,11 @@ class EditImageConfig(_common.BaseModel):
6364
6382
  only).
6365
6383
  """,
6366
6384
  )
6385
+ add_watermark: Optional[bool] = Field(
6386
+ default=None,
6387
+ description="""Whether to add a watermark to the generated images.
6388
+ """,
6389
+ )
6367
6390
  edit_mode: Optional[EditMode] = Field(
6368
6391
  default=None,
6369
6392
  description="""Describes the editing mode for the request.""",
@@ -6440,6 +6463,10 @@ class EditImageConfigDict(TypedDict, total=False):
6440
6463
  only).
6441
6464
  """
6442
6465
 
6466
+ add_watermark: Optional[bool]
6467
+ """Whether to add a watermark to the generated images.
6468
+ """
6469
+
6443
6470
  edit_mode: Optional[EditMode]
6444
6471
  """Describes the editing mode for the request."""
6445
6472
 
@@ -7596,7 +7623,7 @@ class GenerateVideosConfig(_common.BaseModel):
7596
7623
  )
7597
7624
  resolution: Optional[str] = Field(
7598
7625
  default=None,
7599
- description="""The resolution for the generated video. 1280x720, 1920x1080 are supported.""",
7626
+ description="""The resolution for the generated video. 720p and 1080p are supported.""",
7600
7627
  )
7601
7628
  person_generation: Optional[str] = Field(
7602
7629
  default=None,
@@ -7652,7 +7679,7 @@ class GenerateVideosConfigDict(TypedDict, total=False):
7652
7679
  """The aspect ratio for the generated video. 16:9 (landscape) and 9:16 (portrait) are supported."""
7653
7680
 
7654
7681
  resolution: Optional[str]
7655
- """The resolution for the generated video. 1280x720, 1920x1080 are supported."""
7682
+ """The resolution for the generated video. 720p and 1080p are supported."""
7656
7683
 
7657
7684
  person_generation: Optional[str]
7658
7685
  """Whether allow to generate person videos, and restrict to specific ages. Supported values are: dont_allow, allow_adult."""
@@ -7768,26 +7795,8 @@ class GenerateVideosResponse(_common.BaseModel):
7768
7795
  )
7769
7796
 
7770
7797
 
7771
- class GenerateVideosResponseDict(TypedDict, total=False):
7772
- """Response with generated videos."""
7773
-
7774
- generated_videos: Optional[list[GeneratedVideoDict]]
7775
- """List of the generated videos"""
7776
-
7777
- rai_media_filtered_count: Optional[int]
7778
- """Returns if any videos were filtered due to RAI policies."""
7779
-
7780
- rai_media_filtered_reasons: Optional[list[str]]
7781
- """Returns rai failure reasons if any."""
7782
-
7783
-
7784
- GenerateVideosResponseOrDict = Union[
7785
- GenerateVideosResponse, GenerateVideosResponseDict
7786
- ]
7787
-
7788
-
7789
- class GenerateVideosOperation(_common.BaseModel):
7790
- """A video generation operation."""
7798
+ class Operation(ABC):
7799
+ """A long-running operation."""
7791
7800
 
7792
7801
  name: Optional[str] = Field(
7793
7802
  default=None,
@@ -7805,38 +7814,101 @@ class GenerateVideosOperation(_common.BaseModel):
7805
7814
  default=None,
7806
7815
  description="""The error result of the operation in case of failure or cancellation.""",
7807
7816
  )
7817
+
7818
+ @classmethod
7819
+ @abstractmethod
7820
+ def from_api_response(
7821
+ cls, api_response: Any, is_vertex_ai: bool = False
7822
+ ) -> Self:
7823
+ """Creates an Operation from an API response."""
7824
+ pass
7825
+
7826
+
7827
+ class GenerateVideosOperation(_common.BaseModel, Operation):
7828
+ """A video generation operation."""
7829
+
7808
7830
  response: Optional[GenerateVideosResponse] = Field(
7809
7831
  default=None, description="""The generated videos."""
7810
7832
  )
7833
+
7811
7834
  result: Optional[GenerateVideosResponse] = Field(
7812
7835
  default=None, description="""The generated videos."""
7813
7836
  )
7814
7837
 
7838
+ @classmethod
7839
+ def from_api_response(
7840
+ cls, api_response: Any, is_vertex_ai: bool = False
7841
+ ) -> Self:
7842
+ """Instantiates a GenerateVideosOperation from an API response."""
7843
+ new_operation = cls()
7844
+ new_operation.name = api_response.get('name', None)
7845
+ new_operation.metadata = api_response.get('metadata', None)
7846
+ new_operation.done = api_response.get('done', None)
7847
+ new_operation.error = api_response.get('error', None)
7848
+
7849
+ if is_vertex_ai:
7850
+ if api_response.get('response', None) is not None:
7851
+ new_operation.response = GenerateVideosResponse(
7852
+ generated_videos=[
7853
+ GeneratedVideo(
7854
+ video=Video(
7855
+ uri=video.get('gcsUri', None),
7856
+ video_bytes=video.get('bytesBase64Encoded', None),
7857
+ mime_type=video.get('mimeType', None),
7858
+ )
7859
+ )
7860
+ for video in api_response.get('response', {}).get('videos', [])
7861
+ ],
7862
+ rai_media_filtered_count=api_response.get('response', {}).get(
7863
+ 'raiMediaFilteredCount', None
7864
+ ),
7865
+ rai_media_filtered_reasons=api_response.get('response', {}).get(
7866
+ 'raiMediaFilteredReasons', None
7867
+ ),
7868
+ )
7869
+ else:
7870
+ if api_response.get('response', None) is not None:
7871
+ new_operation.response = GenerateVideosResponse(
7872
+ generated_videos=[
7873
+ GeneratedVideo(
7874
+ video=Video(
7875
+ uri=video.get('video', {}).get('uri', None),
7876
+ video_bytes=video.get('video', {}).get(
7877
+ 'encodedVideo', None
7878
+ ),
7879
+ mime_type=video.get('encoding', None),
7880
+ )
7881
+ )
7882
+ for video in api_response.get('response', {})
7883
+ .get('generateVideoResponse', {})
7884
+ .get('generatedSamples', [])
7885
+ ],
7886
+ rai_media_filtered_count=api_response.get('response', {})
7887
+ .get('generateVideoResponse', {})
7888
+ .get('raiMediaFilteredCount', None),
7889
+ rai_media_filtered_reasons=api_response.get('response', {})
7890
+ .get('generateVideoResponse', {})
7891
+ .get('raiMediaFilteredReasons', None),
7892
+ )
7893
+ new_operation.result = new_operation.response
7894
+ return new_operation
7815
7895
 
7816
- class GenerateVideosOperationDict(TypedDict, total=False):
7817
- """A video generation operation."""
7818
-
7819
- name: Optional[str]
7820
- """The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`."""
7821
-
7822
- metadata: Optional[dict[str, Any]]
7823
- """Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any."""
7824
7896
 
7825
- done: Optional[bool]
7826
- """If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available."""
7897
+ class GenerateVideosResponseDict(TypedDict, total=False):
7898
+ """Response with generated videos."""
7827
7899
 
7828
- error: Optional[dict[str, Any]]
7829
- """The error result of the operation in case of failure or cancellation."""
7900
+ generated_videos: Optional[list[GeneratedVideoDict]]
7901
+ """List of the generated videos"""
7830
7902
 
7831
- response: Optional[GenerateVideosResponseDict]
7832
- """The generated videos."""
7903
+ rai_media_filtered_count: Optional[int]
7904
+ """Returns if any videos were filtered due to RAI policies."""
7833
7905
 
7834
- result: Optional[GenerateVideosResponseDict]
7835
- """The generated videos."""
7906
+ rai_media_filtered_reasons: Optional[list[str]]
7907
+ """Returns rai failure reasons if any."""
7836
7908
 
7837
7909
 
7838
- GenerateVideosOperationOrDict = Union[
7839
- GenerateVideosOperation, GenerateVideosOperationDict
7910
+ GenerateVideosResponseOrDict = Union[
7911
+ GenerateVideosResponse, GenerateVideosResponseDict
7840
7912
  ]
7841
7913
 
7842
7914
 
@@ -9124,7 +9196,7 @@ _CreateTuningJobParametersOrDict = Union[
9124
9196
  ]
9125
9197
 
9126
9198
 
9127
- class Operation(_common.BaseModel):
9199
+ class TuningOperation(_common.BaseModel):
9128
9200
  """A long-running operation."""
9129
9201
 
9130
9202
  name: Optional[str] = Field(
@@ -9145,7 +9217,7 @@ class Operation(_common.BaseModel):
9145
9217
  )
9146
9218
 
9147
9219
 
9148
- class OperationDict(TypedDict, total=False):
9220
+ class TuningOperationDict(TypedDict, total=False):
9149
9221
  """A long-running operation."""
9150
9222
 
9151
9223
  name: Optional[str]
@@ -9161,7 +9233,7 @@ class OperationDict(TypedDict, total=False):
9161
9233
  """The error result of the operation in case of failure or cancellation."""
9162
9234
 
9163
9235
 
9164
- OperationOrDict = Union[Operation, OperationDict]
9236
+ TuningOperationOrDict = Union[TuningOperation, TuningOperationDict]
9165
9237
 
9166
9238
 
9167
9239
  class CreateCachedContentConfig(_common.BaseModel):
@@ -10149,6 +10221,14 @@ class BatchJobDestinationDict(TypedDict, total=False):
10149
10221
  BatchJobDestinationOrDict = Union[BatchJobDestination, BatchJobDestinationDict]
10150
10222
 
10151
10223
 
10224
+ BatchJobDestinationUnion = Union[BatchJobDestination, str]
10225
+
10226
+
10227
+ BatchJobDestinationUnionDict = Union[
10228
+ BatchJobDestinationUnion, BatchJobDestinationDict
10229
+ ]
10230
+
10231
+
10152
10232
  class CreateBatchJobConfig(_common.BaseModel):
10153
10233
  """Config for optional parameters."""
10154
10234
 
@@ -10160,7 +10240,7 @@ class CreateBatchJobConfig(_common.BaseModel):
10160
10240
  description="""The user-defined name of this BatchJob.
10161
10241
  """,
10162
10242
  )
10163
- dest: Optional[str] = Field(
10243
+ dest: Optional[BatchJobDestinationUnion] = Field(
10164
10244
  default=None,
10165
10245
  description="""GCS or BigQuery URI prefix for the output predictions. Example:
10166
10246
  "gs://path/to/output/data" or "bq://projectId.bqDatasetId.bqTableId".
@@ -10178,7 +10258,7 @@ class CreateBatchJobConfigDict(TypedDict, total=False):
10178
10258
  """The user-defined name of this BatchJob.
10179
10259
  """
10180
10260
 
10181
- dest: Optional[str]
10261
+ dest: Optional[BatchJobDestinationUnionDict]
10182
10262
  """GCS or BigQuery URI prefix for the output predictions. Example:
10183
10263
  "gs://path/to/output/data" or "bq://projectId.bqDatasetId.bqTableId".
10184
10264
  """
google/genai/version.py CHANGED
@@ -13,4 +13,4 @@
13
13
  # limitations under the License.
14
14
  #
15
15
 
16
- __version__ = '1.24.0' # x-release-please-version
16
+ __version__ = '1.26.0' # x-release-please-version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-genai
3
- Version: 1.24.0
3
+ Version: 1.26.0
4
4
  Summary: GenAI Python SDK
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  License: Apache-2.0
@@ -89,10 +89,13 @@ You can create a client by configuring the necessary environment variables.
89
89
  Configuration setup instructions depends on whether you're using the Gemini
90
90
  Developer API or the Gemini API in Vertex AI.
91
91
 
92
- **Gemini Developer API:** Set `GOOGLE_API_KEY` as shown below:
92
+ **Gemini Developer API:** Set the `GEMINI_API_KEY` or `GOOGLE_API_KEY`.
93
+ It will automatically be picked up by the client. It's recommended that you
94
+ set only one of those variables, but if both are set, `GOOGLE_API_KEY` takes
95
+ precedence.
93
96
 
94
97
  ```bash
95
- export GOOGLE_API_KEY='your-api-key'
98
+ export GEMINI_API_KEY='your-api-key'
96
99
  ```
97
100
 
98
101
  **Gemini API on Vertex AI:** Set `GOOGLE_GENAI_USE_VERTEXAI`,
@@ -606,16 +609,16 @@ from google.genai import types
606
609
  function = types.FunctionDeclaration(
607
610
  name='get_current_weather',
608
611
  description='Get the current weather in a given location',
609
- parameters=types.Schema(
610
- type='OBJECT',
611
- properties={
612
- 'location': types.Schema(
613
- type='STRING',
614
- description='The city and state, e.g. San Francisco, CA',
615
- ),
612
+ parameters_json_schema={
613
+ 'type': 'object',
614
+ 'properties': {
615
+ 'location': {
616
+ 'type': 'string',
617
+ 'description': 'The city and state, e.g. San Francisco, CA',
618
+ }
616
619
  },
617
- required=['location'],
618
- ),
620
+ 'required': ['location'],
621
+ },
619
622
  )
620
623
 
621
624
  tool = types.Tool(function_declarations=[function])
@@ -796,6 +799,40 @@ However you define your schema, don't duplicate it in your input prompt,
796
799
  including by giving examples of expected JSON output. If you do, the generated
797
800
  output might be lower in quality.
798
801
 
802
+ #### JSON Schema support
803
+ Schemas can be provided as standard JSON schema.
804
+ ```python
805
+ user_profile = {
806
+ 'properties': {
807
+ 'age': {
808
+ 'anyOf': [
809
+ {'maximum': 20, 'minimum': 0, 'type': 'integer'},
810
+ {'type': 'null'},
811
+ ],
812
+ 'title': 'Age',
813
+ },
814
+ 'username': {
815
+ 'description': "User's unique name",
816
+ 'title': 'Username',
817
+ 'type': 'string',
818
+ },
819
+ },
820
+ 'required': ['username', 'age'],
821
+ 'title': 'User Schema',
822
+ 'type': 'object',
823
+ }
824
+
825
+ response = client.models.generate_content(
826
+ model='gemini-2.0-flash',
827
+ contents='Give me information of the United States.',
828
+ config={
829
+ 'response_mime_type': 'application/json',
830
+ 'response_json_schema': userProfile
831
+ },
832
+ )
833
+ print(response.parsed)
834
+ ```
835
+
799
836
  #### Pydantic Model Schema support
800
837
 
801
838
  Schemas can be provided as Pydantic Models.
@@ -1633,3 +1670,24 @@ except errors.APIError as e:
1633
1670
  print(e.code) # 404
1634
1671
  print(e.message)
1635
1672
  ```
1673
+
1674
+ ## Extra Request Body
1675
+
1676
+ The `extra_body` field in `HttpOptions` accepts a dictionary of additional JSON
1677
+ properties to include in the request body. This can be used to access new or
1678
+ experimental backend features that are not yet formally supported in the SDK.
1679
+ The structure of the dictionary must match the backend API's request structure.
1680
+
1681
+ - VertexAI backend API docs: https://cloud.google.com/vertex-ai/docs/reference/rest
1682
+ - GeminiAPI backend API docs: https://ai.google.dev/api/rest
1683
+
1684
+ ```python
1685
+ response = client.models.generate_content(
1686
+ model="gemini-2.5-pro",
1687
+ contents="What is the weather in Boston? and how about Sunnyvale?",
1688
+ config=types.GenerateContentConfig(
1689
+ tools=[get_current_weather],
1690
+ http_options=types.HttpOptions(extra_body={'tool_config': {'function_calling_config': {'mode': 'COMPOSITIONAL'}}}),
1691
+ ),
1692
+ )
1693
+ ```
@@ -0,0 +1,35 @@
1
+ google/genai/__init__.py,sha256=SYTxz3Ho06pP2TBlvDU0FkUJz8ytbR3MgEpS9HvVYq4,709
2
+ google/genai/_adapters.py,sha256=Kok38miNYJff2n--l0zEK_hbq0y2rWOH7k75J7SMYbQ,1744
3
+ google/genai/_api_client.py,sha256=X9JVR_XBnedZgkOKbBcvJjMuHupA75XXJkmlrVZqTw0,53102
4
+ google/genai/_api_module.py,sha256=lj8eUWx8_LBGBz-49qz6_ywWm3GYp3d8Bg5JoOHbtbI,902
5
+ google/genai/_automatic_function_calling_util.py,sha256=IJkPq2fT9pYxYm5Pbu5-e0nBoZKoZla7yT4_txWRKLs,10324
6
+ google/genai/_base_url.py,sha256=E5H4dew14Y16qfnB3XRnjSCi19cJVlkaMNoM_8ip-PM,1597
7
+ google/genai/_common.py,sha256=sJpzeoEJ6dZSPPfHb2Dsar-F5KmpwLjFqNSkxxxVfS8,19876
8
+ google/genai/_extra_utils.py,sha256=jWhJIdaFoVsrvExl6L7of3Bu8miSKvVidx4pbQ6EO2A,20571
9
+ google/genai/_live_converters.py,sha256=pIcEfsAxjV1zeWmxMNigDD7ETHiuutp-a2y0HQThdmU,100162
10
+ google/genai/_mcp_utils.py,sha256=khECx-DMuHemKzOQQ3msWp7FivPeEOnl3n1lvWc_b5o,3833
11
+ google/genai/_replay_api_client.py,sha256=2ndavmUMySvjLIdYEvjPZIOPfc-IA5rbWQgEwWuWpfc,21567
12
+ google/genai/_test_api_client.py,sha256=4ruFIy5_1qcbKqqIBu3HSQbpSOBrxiecBtDZaTGFR1s,4797
13
+ google/genai/_tokens_converters.py,sha256=ClWTsgcqn91zSw_qTqLPTNSP1-_G8s-NlBCD8-DQniw,23803
14
+ google/genai/_transformers.py,sha256=uTRSd9qrUZbJoFzLEWy3wGR_j1KqVg5cypGzQM1Mc4w,37357
15
+ google/genai/batches.py,sha256=rat60rGEza3QIu4ExyUl0RAzQiyFZkcJ4excxpiq8FA,80594
16
+ google/genai/caches.py,sha256=oL7vb_G1__Q1I4jdhLNNe20KJK6nRwZ7WeiQ8S1-oVg,64173
17
+ google/genai/chats.py,sha256=0QdOUeWEYDQgAWBy1f7a3z3yY9S8tXSowUzNrzazzj4,16651
18
+ google/genai/client.py,sha256=wXnfZBSv9p-yKtX_gabUrfBXoYHuqHhzK_VgwRttMgY,10777
19
+ google/genai/errors.py,sha256=IdSymOuUJDprfPRBhBtFDkc_XX81UvgNbWrOLR8L2GU,5582
20
+ google/genai/files.py,sha256=mz3sZ6F90Kh5ftqq0uv8gcqJfRuwfoZGBFsmDmpAt9k,39809
21
+ google/genai/live.py,sha256=WvOPBFDwD2eyUx89XCW6oudKtlK7960RqQuk5-SY1Ac,39482
22
+ google/genai/live_music.py,sha256=3GG9nsto8Vhkohcs-4CPMS4DFp1ZtMuLYzHfvEPYAeg,6971
23
+ google/genai/models.py,sha256=0QkjP8oXmWcOvyFZFZZc4LMsEOqYdoS5hwAkhQtDF70,234958
24
+ google/genai/operations.py,sha256=3eudPaItN6_JJKMWNT9lLIJLUGyAQfFK1xken7Rv8vQ,12814
25
+ google/genai/pagers.py,sha256=nyVYxp92rS-UaewO_oBgP593knofeLU6yOn6RolNoGQ,6797
26
+ google/genai/py.typed,sha256=RsMFoLwBkAvY05t6izop4UHZtqOPLiKp3GkIEizzmQY,40
27
+ google/genai/tokens.py,sha256=QGW1jI0Y5wXqiaad0-N6Utgh9sK4TK0todHf5h0GLeI,12490
28
+ google/genai/tunings.py,sha256=-_Fti-aX8NyDg4FxWtABUPuc5wmxNm6f_l98KXUKa1s,48461
29
+ google/genai/types.py,sha256=8etqHluvZ_FQh4ZZTkJhMCbRe_41szi7YI_AVyQglE0,472335
30
+ google/genai/version.py,sha256=4aazDDnUY1hmPYa17XYQCaoZRiBorYIq6V0oRcsfpYU,627
31
+ google_genai-1.26.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
32
+ google_genai-1.26.0.dist-info/METADATA,sha256=1cD530ebUHsbi0RM5576qQCC8qTphGLlx-Rd5JZINvI,42400
33
+ google_genai-1.26.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
34
+ google_genai-1.26.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
35
+ google_genai-1.26.0.dist-info/RECORD,,
@@ -1,35 +0,0 @@
1
- google/genai/__init__.py,sha256=SYTxz3Ho06pP2TBlvDU0FkUJz8ytbR3MgEpS9HvVYq4,709
2
- google/genai/_adapters.py,sha256=Kok38miNYJff2n--l0zEK_hbq0y2rWOH7k75J7SMYbQ,1744
3
- google/genai/_api_client.py,sha256=ISgrtT7-XVOdyv3Dtwz2Eve9w3C3RO4ylEY1bND8ElY,52757
4
- google/genai/_api_module.py,sha256=lj8eUWx8_LBGBz-49qz6_ywWm3GYp3d8Bg5JoOHbtbI,902
5
- google/genai/_automatic_function_calling_util.py,sha256=IJkPq2fT9pYxYm5Pbu5-e0nBoZKoZla7yT4_txWRKLs,10324
6
- google/genai/_base_url.py,sha256=E5H4dew14Y16qfnB3XRnjSCi19cJVlkaMNoM_8ip-PM,1597
7
- google/genai/_common.py,sha256=CuG7wvroFu9kV0Im-asXJGmfbaFCAjCocZyRxYDss5g,19849
8
- google/genai/_extra_utils.py,sha256=GoIh_SxB5nf_0sjErYkjm8wdg93sfemLKrU_5QhlcBo,20562
9
- google/genai/_live_converters.py,sha256=mkxudlXXXAxuK6eWMj_-jVLQs9eOr4EX0GYCBvhIZAw,108962
10
- google/genai/_mcp_utils.py,sha256=khECx-DMuHemKzOQQ3msWp7FivPeEOnl3n1lvWc_b5o,3833
11
- google/genai/_replay_api_client.py,sha256=0IXroewCZbyZ01qN3ZQwW5OUZRMzCrf2-3nyfTerqNY,21363
12
- google/genai/_test_api_client.py,sha256=4ruFIy5_1qcbKqqIBu3HSQbpSOBrxiecBtDZaTGFR1s,4797
13
- google/genai/_tokens_converters.py,sha256=jQlwRZU4mlIBv6i8Lu62e6u9dvgNtOnko5WEYnjkU_A,49159
14
- google/genai/_transformers.py,sha256=Nd_h_zYVOkWN1XTSnM9r3IR7R_qg3tPe2mE9jozaX-Q,36935
15
- google/genai/batches.py,sha256=qnyWQ1RfAdSVQgV7vGor9BIWmRwUilJ0wfqOvxUwpq8,172745
16
- google/genai/caches.py,sha256=q8N3YIpgJYWrLWSy-zUZ6w9CPRjH113E8ff4MyykYA8,66169
17
- google/genai/chats.py,sha256=0QdOUeWEYDQgAWBy1f7a3z3yY9S8tXSowUzNrzazzj4,16651
18
- google/genai/client.py,sha256=wXnfZBSv9p-yKtX_gabUrfBXoYHuqHhzK_VgwRttMgY,10777
19
- google/genai/errors.py,sha256=UebysH1cDeIdtp1O06CW7lQjnNrWtuqZTeVgEJylX48,5589
20
- google/genai/files.py,sha256=MCcHRXiMFKjbnt78yVPejszEgGz_MHRXfJyDi5-07Gs,39655
21
- google/genai/live.py,sha256=8Vts1bX8ZWOa0PiS3zmYhG1QMhLtBPC_ATLTSAIrazs,38945
22
- google/genai/live_music.py,sha256=3GG9nsto8Vhkohcs-4CPMS4DFp1ZtMuLYzHfvEPYAeg,6971
23
- google/genai/models.py,sha256=DQx31b43CxVg2YCWHVGGKBzcuB-AfBApmPm9zPVLq6o,239567
24
- google/genai/operations.py,sha256=99zs__fTWsyQu7rMGmBI1_4tuAJxLR0g3yp7ymsUsBA,19609
25
- google/genai/pagers.py,sha256=nyVYxp92rS-UaewO_oBgP593knofeLU6yOn6RolNoGQ,6797
26
- google/genai/py.typed,sha256=RsMFoLwBkAvY05t6izop4UHZtqOPLiKp3GkIEizzmQY,40
27
- google/genai/tokens.py,sha256=oew9I0fGuGLlXMdCn2Ot9Lv_herHMnvZOYjjdOz2CAM,12324
28
- google/genai/tunings.py,sha256=fSiD4RQZI8YsFaPbBoXOIoSDA0BIuJwGg2Ac_uy5_kM,49596
29
- google/genai/types.py,sha256=dj1Va75V8kLkrtFPIiIYXQNukE5xuogoJmqo0nu0-N4,469923
30
- google/genai/version.py,sha256=3V_J-TpVrcSp70_3LzpCOt3SQpDmFAXnGSiq5eVjSrU,627
31
- google_genai-1.24.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
32
- google_genai-1.24.0.dist-info/METADATA,sha256=yxyVgjMGvqGuGrRM8HO9fO35MTuewHnGMQYohChHULs,40539
33
- google_genai-1.24.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
34
- google_genai-1.24.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
35
- google_genai-1.24.0.dist-info/RECORD,,