Skip to content

Commit 965395b

Browse files
MarkDaoustcopybara-github
authored andcommitted
feat: Add registerFiles for you can use gcs files with mldev.
How does this all work? - Web and node need to have __identical__ interfaces. - We overload the public registerFiles method in NodeFiles - The generator generates registerFilesInternal as private. the generator doesn't have a protected option. so we use an additional `protected async _registerFiles` wrapper so that registerFiles can call through to internalRegisterFiles. - The public RegisterFilesParameters type uses `any` for the type of auth, because web can't access the GoogleAuth types. - Renamed the old RegisterFilesParameters to InternalRegisterFilesParameters to abvoid conflict. this is backwards compatible - it wasn't publicly used. PiperOrigin-RevId: 861969178
1 parent a0240d9 commit 965395b

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

google/genai/files.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,17 @@ def _GetFileParameters_to_mldev(
101101
return to_object
102102

103103

104+
def _InternalRegisterFilesParameters_to_mldev(
105+
from_object: Union[dict[str, Any], object],
106+
parent_object: Optional[dict[str, Any]] = None,
107+
) -> dict[str, Any]:
108+
to_object: dict[str, Any] = {}
109+
if getv(from_object, ['uris']) is not None:
110+
setv(to_object, ['uris'], getv(from_object, ['uris']))
111+
112+
return to_object
113+
114+
104115
def _ListFilesConfig_to_mldev(
105116
from_object: Union[dict[str, Any], object],
106117
parent_object: Optional[dict[str, Any]] = None,
@@ -152,17 +163,6 @@ def _ListFilesResponse_from_mldev(
152163
return to_object
153164

154165

155-
def _RegisterFilesParameters_to_mldev(
156-
from_object: Union[dict[str, Any], object],
157-
parent_object: Optional[dict[str, Any]] = None,
158-
) -> dict[str, Any]:
159-
to_object: dict[str, Any] = {}
160-
if getv(from_object, ['uris']) is not None:
161-
setv(to_object, ['uris'], getv(from_object, ['uris']))
162-
163-
return to_object
164-
165-
166166
def _RegisterFilesResponse_from_mldev(
167167
from_object: Union[dict[str, Any], object],
168168
parent_object: Optional[dict[str, Any]] = None,
@@ -438,7 +438,7 @@ def _register_files(
438438
uris: list[str],
439439
config: Optional[types.RegisterFilesConfigOrDict] = None,
440440
) -> types.RegisterFilesResponse:
441-
parameter_model = types._RegisterFilesParameters(
441+
parameter_model = types._InternalRegisterFilesParameters(
442442
uris=uris,
443443
config=config,
444444
)
@@ -449,7 +449,7 @@ def _register_files(
449449
'This method is only supported in the Gemini Developer client.'
450450
)
451451
else:
452-
request_dict = _RegisterFilesParameters_to_mldev(parameter_model)
452+
request_dict = _InternalRegisterFilesParameters_to_mldev(parameter_model)
453453
request_url_dict = request_dict.get('_url')
454454
if request_url_dict:
455455
path = 'files:register'.format_map(request_url_dict)
@@ -977,7 +977,7 @@ async def _register_files(
977977
uris: list[str],
978978
config: Optional[types.RegisterFilesConfigOrDict] = None,
979979
) -> types.RegisterFilesResponse:
980-
parameter_model = types._RegisterFilesParameters(
980+
parameter_model = types._InternalRegisterFilesParameters(
981981
uris=uris,
982982
config=config,
983983
)
@@ -988,7 +988,7 @@ async def _register_files(
988988
'This method is only supported in the Gemini Developer client.'
989989
)
990990
else:
991-
request_dict = _RegisterFilesParameters_to_mldev(parameter_model)
991+
request_dict = _InternalRegisterFilesParameters_to_mldev(parameter_model)
992992
request_url_dict = request_dict.get('_url')
993993
if request_url_dict:
994994
path = 'files:register'.format_map(request_url_dict)

google/genai/tests/files/test_register_table.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def get_headers():
4242
test_table: list[pytest_helper.TestTableItem] = [
4343
pytest_helper.TestTableItem(
4444
name='test_register',
45-
parameters=types._RegisterFilesParameters(uris=['gs://unified-genai-dev/image.jpg']),
45+
parameters=types._InternalRegisterFilesParameters(uris=['gs://unified-genai-dev/image.jpg']),
4646
exception_if_vertex='only supported in the Gemini Developer client',
4747
skip_in_api_mode=(
4848
'The files have a TTL, they cannot be reliably retrieved for a long'

google/genai/types.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14026,8 +14026,8 @@ class RegisterFilesConfigDict(TypedDict, total=False):
1402614026
RegisterFilesConfigOrDict = Union[RegisterFilesConfig, RegisterFilesConfigDict]
1402714027

1402814028

14029-
class _RegisterFilesParameters(_common.BaseModel):
14030-
"""Generates the parameters for the private _Register method."""
14029+
class _InternalRegisterFilesParameters(_common.BaseModel):
14030+
"""Parameters for the private _Register method."""
1403114031

1403214032
uris: Optional[list[str]] = Field(
1403314033
default=None,
@@ -14039,8 +14039,8 @@ class _RegisterFilesParameters(_common.BaseModel):
1403914039
)
1404014040

1404114041

14042-
class _RegisterFilesParametersDict(TypedDict, total=False):
14043-
"""Generates the parameters for the private _Register method."""
14042+
class _InternalRegisterFilesParametersDict(TypedDict, total=False):
14043+
"""Parameters for the private _Register method."""
1404414044

1404514045
uris: Optional[list[str]]
1404614046
"""The Google Cloud Storage URIs to register. Example: `gs://bucket/object`."""
@@ -14049,8 +14049,8 @@ class _RegisterFilesParametersDict(TypedDict, total=False):
1404914049
"""Used to override the default configuration."""
1405014050

1405114051

14052-
_RegisterFilesParametersOrDict = Union[
14053-
_RegisterFilesParameters, _RegisterFilesParametersDict
14052+
_InternalRegisterFilesParametersOrDict = Union[
14053+
_InternalRegisterFilesParameters, _InternalRegisterFilesParametersDict
1405414054
]
1405514055

1405614056

0 commit comments

Comments
 (0)