From 52114534f01cfea96dbed8121a64ed2ec1855d4d Mon Sep 17 00:00:00 2001 From: edvan_microsoft Date: Tue, 12 Dec 2023 15:54:34 +0100 Subject: [PATCH 1/6] import typeddict from typing_extentions --- google/generativeai/types/citation_types.py | 9 ++++++--- google/generativeai/types/discuss_types.py | 8 +++++++- google/generativeai/types/model_types.py | 12 +++++++++--- google/generativeai/types/safety_types.py | 9 +++++++-- google/generativeai/types/text_types.py | 8 +++++++- 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/google/generativeai/types/citation_types.py b/google/generativeai/types/citation_types.py index e720fcd88..0fc212023 100644 --- a/google/generativeai/types/citation_types.py +++ b/google/generativeai/types/citation_types.py @@ -13,13 +13,16 @@ # See the License for the specific language governing permissions and # limitations under the License. from __future__ import annotations - -from typing import Optional, List +import sys +from typing import List from google.ai import generativelanguage as glm from google.generativeai import string_utils -from typing import TypedDict +if sys.version < "3.11": + from typing_extensions import TypedDict +else: + from typing import TypedDict __all__ = [ "CitationMetadataDict", diff --git a/google/generativeai/types/discuss_types.py b/google/generativeai/types/discuss_types.py index b6e1f6a36..1f91db554 100644 --- a/google/generativeai/types/discuss_types.py +++ b/google/generativeai/types/discuss_types.py @@ -14,9 +14,15 @@ # limitations under the License. """Type definitions for the discuss service.""" +import sys import abc import dataclasses -from typing import Any, Dict, TypedDict, Union, Iterable, Optional, Tuple, List +from typing import Any, Dict, Union, Iterable, Optional, Tuple, List + +if sys.version < "3.11": + from typing_extensions import TypedDict +else: + from typing import TypedDict import google.ai.generativelanguage as glm from google.generativeai import string_utils diff --git a/google/generativeai/types/model_types.py b/google/generativeai/types/model_types.py index d628b5ef3..cc8743668 100644 --- a/google/generativeai/types/model_types.py +++ b/google/generativeai/types/model_types.py @@ -22,7 +22,13 @@ import json import pathlib import re -from typing import Any, Iterable, TypedDict, Union +import sys +from typing import Any, Iterable, Union + +if sys.version < "3.11": + from typing_extensions import TypedDict +else: + from typing import TypedDict import urllib.request import google.ai.generativelanguage as glm @@ -266,12 +272,12 @@ def _convert_dict(data, input_key, output_key): try: inputs = data[input_key] - except KeyError as e: + except KeyError: raise KeyError(f'input_key is "{input_key}", but data has keys: {sorted(data.keys())}') try: outputs = data[output_key] - except KeyError as e: + except KeyError: raise KeyError(f'output_key is "{output_key}", but data has keys: {sorted(data.keys())}') for i, o in zip(inputs, outputs): diff --git a/google/generativeai/types/safety_types.py b/google/generativeai/types/safety_types.py index bedd65317..6ff8671df 100644 --- a/google/generativeai/types/safety_types.py +++ b/google/generativeai/types/safety_types.py @@ -15,12 +15,17 @@ from __future__ import annotations from collections.abc import Mapping - +import sys from google.ai import generativelanguage as glm from google.generativeai import string_utils import typing -from typing import Iterable, Dict, Iterable, List, TypedDict, Union +from typing import Iterable, Dict, Iterable, List, Union + +if sys.version < "3.11": + from typing_extensions import TypedDict +else: + from typing import TypedDict __all__ = [ "HarmCategory", diff --git a/google/generativeai/types/text_types.py b/google/generativeai/types/text_types.py index a8fa507eb..67768695d 100644 --- a/google/generativeai/types/text_types.py +++ b/google/generativeai/types/text_types.py @@ -14,9 +14,15 @@ # limitations under the License. from __future__ import annotations +import sys import abc import dataclasses -from typing import Any, Dict, List, TypedDict +from typing import Any, Dict, List + +if sys.version < "3.11": + from typing_extensions import TypedDict +else: + from typing import TypedDict from google.generativeai import string_utils from google.generativeai.types import safety_types From 8901e653c44af374c5076928a19a007f52d41782 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 19 Dec 2023 16:08:24 -0800 Subject: [PATCH 2/6] Add typing-extensions --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 6cfa220dd..3d19c1a24 100644 --- a/setup.py +++ b/setup.py @@ -46,6 +46,7 @@ def get_version(): "google-ai-generativelanguage==0.3.3", "google-auth", "google-api-core", + 'typing-extensions; python_version<"3.11"', "protobuf", "tqdm", ] From 96fd7fa5edc962145e5131fc0c5b1a2bd36305dc Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 19 Dec 2023 16:18:36 -0800 Subject: [PATCH 3/6] Move shim logic to one file. --- google/generativeai/types/citation_types.py | 7 ++----- google/generativeai/types/discuss_types.py | 7 +------ google/generativeai/types/model_types.py | 5 +---- google/generativeai/types/safety_types.py | 8 ++------ google/generativeai/types/shims.py | 21 +++++++++++++++++++++ google/generativeai/types/text_types.py | 6 +----- 6 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 google/generativeai/types/shims.py diff --git a/google/generativeai/types/citation_types.py b/google/generativeai/types/citation_types.py index 0fc212023..681f04b3b 100644 --- a/google/generativeai/types/citation_types.py +++ b/google/generativeai/types/citation_types.py @@ -13,16 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. from __future__ import annotations -import sys from typing import List from google.ai import generativelanguage as glm from google.generativeai import string_utils -if sys.version < "3.11": - from typing_extensions import TypedDict -else: - from typing import TypedDict +from google.generativeai.types.shims import TypedDict + __all__ = [ "CitationMetadataDict", diff --git a/google/generativeai/types/discuss_types.py b/google/generativeai/types/discuss_types.py index 1f91db554..c29b3f2ac 100644 --- a/google/generativeai/types/discuss_types.py +++ b/google/generativeai/types/discuss_types.py @@ -14,21 +14,16 @@ # limitations under the License. """Type definitions for the discuss service.""" -import sys import abc import dataclasses from typing import Any, Dict, Union, Iterable, Optional, Tuple, List -if sys.version < "3.11": - from typing_extensions import TypedDict -else: - from typing import TypedDict - import google.ai.generativelanguage as glm from google.generativeai import string_utils from google.generativeai.types import safety_types from google.generativeai.types import citation_types +from google.generativeai.types.shims import TypedDict __all__ = [ "MessageDict", diff --git a/google/generativeai/types/model_types.py b/google/generativeai/types/model_types.py index cc8743668..6bc686645 100644 --- a/google/generativeai/types/model_types.py +++ b/google/generativeai/types/model_types.py @@ -25,14 +25,11 @@ import sys from typing import Any, Iterable, Union -if sys.version < "3.11": - from typing_extensions import TypedDict -else: - from typing import TypedDict import urllib.request import google.ai.generativelanguage as glm from google.generativeai import string_utils +from google.generativeai.types.shims import TypedDict __all__ = [ "Model", diff --git a/google/generativeai/types/safety_types.py b/google/generativeai/types/safety_types.py index 6ff8671df..21c673715 100644 --- a/google/generativeai/types/safety_types.py +++ b/google/generativeai/types/safety_types.py @@ -15,17 +15,13 @@ from __future__ import annotations from collections.abc import Mapping -import sys from google.ai import generativelanguage as glm from google.generativeai import string_utils +from google.generativeai.types.shims import TypedDict import typing -from typing import Iterable, Dict, Iterable, List, Union +from typing import Dict, Iterable, List, Union -if sys.version < "3.11": - from typing_extensions import TypedDict -else: - from typing import TypedDict __all__ = [ "HarmCategory", diff --git a/google/generativeai/types/shims.py b/google/generativeai/types/shims.py new file mode 100644 index 000000000..24a5c9ea5 --- /dev/null +++ b/google/generativeai/types/shims.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys + +if sys.version_info.maor <= 3 and sys.version_info.minor < 11: + from typing_extensions import TypedDict +else: + from typing import TypedDict diff --git a/google/generativeai/types/text_types.py b/google/generativeai/types/text_types.py index 67768695d..663dbf546 100644 --- a/google/generativeai/types/text_types.py +++ b/google/generativeai/types/text_types.py @@ -19,14 +19,10 @@ import dataclasses from typing import Any, Dict, List -if sys.version < "3.11": - from typing_extensions import TypedDict -else: - from typing import TypedDict - from google.generativeai import string_utils from google.generativeai.types import safety_types from google.generativeai.types import citation_types +from google.generativeai.types.shims import TypedDict __all__ = ["Completion"] From 57f6a6f469a0c1ef81fd907d883df686eb51f001 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 19 Dec 2023 16:21:43 -0800 Subject: [PATCH 4/6] typo --- google/generativeai/types/shims.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/generativeai/types/shims.py b/google/generativeai/types/shims.py index 24a5c9ea5..51c7abbf9 100644 --- a/google/generativeai/types/shims.py +++ b/google/generativeai/types/shims.py @@ -15,7 +15,7 @@ import sys -if sys.version_info.maor <= 3 and sys.version_info.minor < 11: +if sys.version_info.major <= 3 and sys.version_info.minor < 11: from typing_extensions import TypedDict else: from typing import TypedDict From b84bed7654b2a82fb1500e3c86aac2eb1d0dd74d Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 19 Dec 2023 16:31:38 -0800 Subject: [PATCH 5/6] simpilfy --- google/generativeai/types/citation_types.py | 4 ++-- google/generativeai/types/discuss_types.py | 3 ++- google/generativeai/types/model_types.py | 5 +++-- google/generativeai/types/safety_types.py | 9 ++++++--- google/generativeai/types/shims.py | 2 ++ setup.py | 2 +- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/google/generativeai/types/citation_types.py b/google/generativeai/types/citation_types.py index 681f04b3b..ae857c35b 100644 --- a/google/generativeai/types/citation_types.py +++ b/google/generativeai/types/citation_types.py @@ -15,11 +15,11 @@ from __future__ import annotations from typing import List +from typing_extensions import TypedDict + from google.ai import generativelanguage as glm from google.generativeai import string_utils -from google.generativeai.types.shims import TypedDict - __all__ = [ "CitationMetadataDict", diff --git a/google/generativeai/types/discuss_types.py b/google/generativeai/types/discuss_types.py index c29b3f2ac..0cb393e5c 100644 --- a/google/generativeai/types/discuss_types.py +++ b/google/generativeai/types/discuss_types.py @@ -17,13 +17,14 @@ import abc import dataclasses from typing import Any, Dict, Union, Iterable, Optional, Tuple, List +from typing_extensions import TypedDict import google.ai.generativelanguage as glm from google.generativeai import string_utils from google.generativeai.types import safety_types from google.generativeai.types import citation_types -from google.generativeai.types.shims import TypedDict + __all__ = [ "MessageDict", diff --git a/google/generativeai/types/model_types.py b/google/generativeai/types/model_types.py index 6bc686645..1aaac4beb 100644 --- a/google/generativeai/types/model_types.py +++ b/google/generativeai/types/model_types.py @@ -22,14 +22,15 @@ import json import pathlib import re -import sys + from typing import Any, Iterable, Union import urllib.request +from typing_extensions import TypedDict import google.ai.generativelanguage as glm from google.generativeai import string_utils -from google.generativeai.types.shims import TypedDict + __all__ = [ "Model", diff --git a/google/generativeai/types/safety_types.py b/google/generativeai/types/safety_types.py index 21c673715..07eea24dc 100644 --- a/google/generativeai/types/safety_types.py +++ b/google/generativeai/types/safety_types.py @@ -15,13 +15,16 @@ from __future__ import annotations from collections.abc import Mapping -from google.ai import generativelanguage as glm -from google.generativeai import string_utils -from google.generativeai.types.shims import TypedDict import typing from typing import Dict, Iterable, List, Union +from typing_extensions import TypedDict + + +from google.ai import generativelanguage as glm +from google.generativeai import string_utils + __all__ = [ "HarmCategory", diff --git a/google/generativeai/types/shims.py b/google/generativeai/types/shims.py index 51c7abbf9..7c18333fb 100644 --- a/google/generativeai/types/shims.py +++ b/google/generativeai/types/shims.py @@ -19,3 +19,5 @@ from typing_extensions import TypedDict else: from typing import TypedDict + +z = 1 diff --git a/setup.py b/setup.py index 3d19c1a24..3b0b9c144 100644 --- a/setup.py +++ b/setup.py @@ -46,7 +46,7 @@ def get_version(): "google-ai-generativelanguage==0.3.3", "google-auth", "google-api-core", - 'typing-extensions; python_version<"3.11"', + "typing-extensions", "protobuf", "tqdm", ] From eeeaf85147c8a943c5a64024eebed33aee611257 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 19 Dec 2023 16:44:13 -0800 Subject: [PATCH 6/6] order --- google/generativeai/types/shims.py | 23 ----------------------- google/generativeai/types/text_types.py | 2 +- 2 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 google/generativeai/types/shims.py diff --git a/google/generativeai/types/shims.py b/google/generativeai/types/shims.py deleted file mode 100644 index 7c18333fb..000000000 --- a/google/generativeai/types/shims.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys - -if sys.version_info.major <= 3 and sys.version_info.minor < 11: - from typing_extensions import TypedDict -else: - from typing import TypedDict - -z = 1 diff --git a/google/generativeai/types/text_types.py b/google/generativeai/types/text_types.py index 663dbf546..f66c0fb32 100644 --- a/google/generativeai/types/text_types.py +++ b/google/generativeai/types/text_types.py @@ -18,11 +18,11 @@ import abc import dataclasses from typing import Any, Dict, List +from typing_extensions import TypedDict from google.generativeai import string_utils from google.generativeai.types import safety_types from google.generativeai.types import citation_types -from google.generativeai.types.shims import TypedDict __all__ = ["Completion"]