gemini-webapi 1.17.2__tar.gz → 1.17.3__tar.gz

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.
Files changed (43) hide show
  1. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/PKG-INFO +2 -2
  2. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/pyproject.toml +1 -1
  3. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/client.py +0 -1
  4. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/constants.py +1 -0
  5. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/image.py +1 -1
  6. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/get_access_token.py +1 -7
  7. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/parsing.py +3 -2
  8. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/rotate_1psidts.py +1 -1
  9. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/upload_file.py +1 -1
  10. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi.egg-info/PKG-INFO +2 -2
  11. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi.egg-info/requires.txt +1 -1
  12. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.github/dependabot.yml +0 -0
  13. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.github/workflows/github-release.yml +0 -0
  14. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.github/workflows/pypi-publish.yml +0 -0
  15. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.gitignore +0 -0
  16. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.vscode/launch.json +0 -0
  17. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/.vscode/settings.json +0 -0
  18. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/LICENSE +0 -0
  19. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/README.md +0 -0
  20. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/assets/banner.png +0 -0
  21. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/assets/favicon.png +0 -0
  22. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/assets/logo.svg +0 -0
  23. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/assets/sample.pdf +0 -0
  24. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/setup.cfg +0 -0
  25. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/__init__.py +0 -0
  26. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/components/__init__.py +0 -0
  27. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/components/gem_mixin.py +0 -0
  28. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/exceptions.py +0 -0
  29. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/__init__.py +0 -0
  30. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/candidate.py +0 -0
  31. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/gem.py +0 -0
  32. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/grpc.py +0 -0
  33. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/types/modeloutput.py +0 -0
  34. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/__init__.py +0 -0
  35. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/decorators.py +0 -0
  36. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/load_browser_cookies.py +0 -0
  37. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi/utils/logger.py +0 -0
  38. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi.egg-info/SOURCES.txt +0 -0
  39. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi.egg-info/dependency_links.txt +0 -0
  40. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/src/gemini_webapi.egg-info/top_level.txt +0 -0
  41. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/tests/test_client_features.py +0 -0
  42. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/tests/test_gem_mixin.py +0 -0
  43. {gemini_webapi-1.17.2 → gemini_webapi-1.17.3}/tests/test_save_image.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gemini-webapi
3
- Version: 1.17.2
3
+ Version: 1.17.3
4
4
  Summary: ✨ An elegant async Python wrapper for Google Gemini web app
5
5
  Author: UZQueen
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -676,7 +676,7 @@ Classifier: Programming Language :: Python :: 3.12
676
676
  Requires-Python: >=3.10
677
677
  Description-Content-Type: text/markdown
678
678
  License-File: LICENSE
679
- Requires-Dist: httpx[http2]~=0.28.1
679
+ Requires-Dist: httpx~=0.28.1
680
680
  Requires-Dist: loguru~=0.7.3
681
681
  Requires-Dist: orjson~=3.11.1
682
682
  Requires-Dist: pydantic~=2.12.2
@@ -20,7 +20,7 @@ classifiers = [
20
20
  ]
21
21
  requires-python = ">=3.10"
22
22
  dependencies = [
23
- "httpx[http2]~=0.28.1",
23
+ "httpx~=0.28.1",
24
24
  "loguru~=0.7.3",
25
25
  "orjson~=3.11.1",
26
26
  "pydantic~=2.12.2",
@@ -142,7 +142,6 @@ class GeminiClient(GemMixin):
142
142
  )
143
143
 
144
144
  self.client = AsyncClient(
145
- http2=True,
146
145
  timeout=timeout,
147
146
  proxy=self.proxy,
148
147
  follow_redirects=True,
@@ -103,6 +103,7 @@ class ErrorCode(IntEnum):
103
103
  Known error codes returned from server.
104
104
  """
105
105
 
106
+ TEMPORARY_ERROR_1013 = 1013 # Randomly raised when generating with certain models, but disappears soon after
106
107
  USAGE_LIMIT_EXCEEDED = 1037
107
108
  MODEL_INCONSISTENT = 1050
108
109
  MODEL_HEADER_INVALID = 1052
@@ -81,7 +81,7 @@ class Image(BaseModel):
81
81
  return None
82
82
 
83
83
  async with AsyncClient(
84
- http2=True, follow_redirects=True, cookies=cookies, proxy=self.proxy
84
+ follow_redirects=True, cookies=cookies, proxy=self.proxy
85
85
  ) as client:
86
86
  response = await client.get(self.url)
87
87
  if response.status_code == 200:
@@ -20,7 +20,6 @@ async def send_request(
20
20
  """
21
21
 
22
22
  async with AsyncClient(
23
- http2=True,
24
23
  proxy=proxy,
25
24
  headers=Headers.GEMINI.value,
26
25
  cookies=cookies,
@@ -66,12 +65,7 @@ async def get_access_token(
66
65
  If all requests failed.
67
66
  """
68
67
 
69
- async with AsyncClient(
70
- http2=True,
71
- proxy=proxy,
72
- follow_redirects=True,
73
- verify=False,
74
- ) as client:
68
+ async with AsyncClient(proxy=proxy, follow_redirects=True, verify=False) as client:
75
69
  response = await client.get(Endpoint.GOOGLE.value)
76
70
 
77
71
  extra_cookies = {}
@@ -24,15 +24,16 @@ def get_nested_value(data: list, path: list[int], default: Any = None) -> Any:
24
24
  for i, key in enumerate(path):
25
25
  try:
26
26
  current = current[key]
27
- except (IndexError, TypeError, KeyError) as e:
27
+ except (IndexError, TypeError, KeyError):
28
28
  current_repr = repr(current)
29
29
  if len(current_repr) > 200:
30
30
  current_repr = f"{current_repr[:197]}..."
31
31
 
32
32
  logger.debug(
33
33
  f"Safe navigation: path {path} ended at index {i} (key '{key}'), "
34
- f"returning default. <Debug: {type(e).__name__}; Context: {current_repr}>"
34
+ f"returning default. Context: {current_repr}"
35
35
  )
36
+
36
37
  return default
37
38
 
38
39
  if current is None and default is not None:
@@ -43,7 +43,7 @@ async def rotate_1psidts(cookies: dict, proxy: str | None = None) -> str:
43
43
 
44
44
  # Check if the cache file was modified in the last minute to avoid 429 Too Many Requests
45
45
  if not (path.is_file() and time.time() - os.path.getmtime(path) <= 60):
46
- async with AsyncClient(http2=True, proxy=proxy) as client:
46
+ async with AsyncClient(proxy=proxy) as client:
47
47
  response = await client.post(
48
48
  url=Endpoint.ROTATE_COOKIES.value,
49
49
  headers=Headers.ROTATE_COOKIES.value,
@@ -33,7 +33,7 @@ async def upload_file(file: str | Path, proxy: str | None = None) -> str:
33
33
  with open(file, "rb") as f:
34
34
  file = f.read()
35
35
 
36
- async with AsyncClient(http2=True, proxy=proxy) as client:
36
+ async with AsyncClient(proxy=proxy) as client:
37
37
  response = await client.post(
38
38
  url=Endpoint.UPLOAD.value,
39
39
  headers=Headers.UPLOAD.value,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gemini-webapi
3
- Version: 1.17.2
3
+ Version: 1.17.3
4
4
  Summary: ✨ An elegant async Python wrapper for Google Gemini web app
5
5
  Author: UZQueen
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -676,7 +676,7 @@ Classifier: Programming Language :: Python :: 3.12
676
676
  Requires-Python: >=3.10
677
677
  Description-Content-Type: text/markdown
678
678
  License-File: LICENSE
679
- Requires-Dist: httpx[http2]~=0.28.1
679
+ Requires-Dist: httpx~=0.28.1
680
680
  Requires-Dist: loguru~=0.7.3
681
681
  Requires-Dist: orjson~=3.11.1
682
682
  Requires-Dist: pydantic~=2.12.2
@@ -1,4 +1,4 @@
1
- httpx[http2]~=0.28.1
1
+ httpx~=0.28.1
2
2
  loguru~=0.7.3
3
3
  orjson~=3.11.1
4
4
  pydantic~=2.12.2
File without changes
File without changes
File without changes