zenx 0.8.9__tar.gz → 0.9.2__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 (31) hide show
  1. {zenx-0.8.9 → zenx-0.9.2}/PKG-INFO +1 -1
  2. {zenx-0.8.9 → zenx-0.9.2}/pyproject.toml +1 -1
  3. {zenx-0.8.9 → zenx-0.9.2}/zenx/clients/http.py +12 -4
  4. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/PKG-INFO +1 -1
  5. {zenx-0.8.9 → zenx-0.9.2}/setup.cfg +0 -0
  6. {zenx-0.8.9 → zenx-0.9.2}/zenx/cli.py +0 -0
  7. {zenx-0.8.9 → zenx-0.9.2}/zenx/clients/__init__.py +0 -0
  8. {zenx-0.8.9 → zenx-0.9.2}/zenx/clients/database.py +0 -0
  9. {zenx-0.8.9 → zenx-0.9.2}/zenx/debug_runner.py +0 -0
  10. {zenx-0.8.9 → zenx-0.9.2}/zenx/discovery.py +0 -0
  11. {zenx-0.8.9 → zenx-0.9.2}/zenx/engine.py +0 -0
  12. {zenx-0.8.9 → zenx-0.9.2}/zenx/exceptions.py +0 -0
  13. {zenx-0.8.9 → zenx-0.9.2}/zenx/logger.py +0 -0
  14. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/__init__.py +0 -0
  15. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/base.py +0 -0
  16. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/google_rpc.py +0 -0
  17. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/manager.py +0 -0
  18. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/preprocess.py +0 -0
  19. {zenx-0.8.9 → zenx-0.9.2}/zenx/pipelines/websocket.py +0 -0
  20. {zenx-0.8.9 → zenx-0.9.2}/zenx/resources/proto/__init__.py +0 -0
  21. {zenx-0.8.9 → zenx-0.9.2}/zenx/resources/proto/feed_pb2.py +0 -0
  22. {zenx-0.8.9 → zenx-0.9.2}/zenx/resources/proto/feed_pb2_grpc.py +0 -0
  23. {zenx-0.8.9 → zenx-0.9.2}/zenx/settings.py +0 -0
  24. {zenx-0.8.9 → zenx-0.9.2}/zenx/spiders/__init__.py +0 -0
  25. {zenx-0.8.9 → zenx-0.9.2}/zenx/spiders/base.py +0 -0
  26. {zenx-0.8.9 → zenx-0.9.2}/zenx/utils.py +0 -0
  27. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/SOURCES.txt +0 -0
  28. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/dependency_links.txt +0 -0
  29. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/entry_points.txt +0 -0
  30. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/requires.txt +0 -0
  31. {zenx-0.8.9 → zenx-0.9.2}/zenx.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenx
3
- Version: 0.8.9
3
+ Version: 0.9.2
4
4
  Summary: mini-framework
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: curl-cffi>=0.12.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zenx"
3
- version = "0.8.9"
3
+ version = "0.9.2"
4
4
  description = "mini-framework"
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [
@@ -113,7 +113,7 @@ class CurlCffi(HttpClient):
113
113
  async with AsyncSession() as session:
114
114
  try:
115
115
  req_at = get_time()
116
- response: CurlResponse = await session.request(
116
+ response: CurlResponse = await asyncio.wait_for(session.request(
117
117
  url=url,
118
118
  method=method,
119
119
  headers=headers,
@@ -121,30 +121,38 @@ class CurlCffi(HttpClient):
121
121
  verify=False,
122
122
  impersonate=impersonate,
123
123
  **kwargs,
124
- )
124
+ ), timeout=10)
125
125
  recv_at = get_time()
126
126
  latency = recv_at - req_at
127
127
  self.logger.debug("response", status=response.status_code, url=url, impersonate=impersonate, client=self.name, requested_at=req_at, responded_at=recv_at, latency_ms=latency)
128
+ except TimeoutError:
129
+ self.logger.error("timeout", url=url, impersonate=impersonate, client=self.name)
130
+ raise
128
131
  except Exception:
129
132
  self.logger.exception("request", url=url, client=self.name)
130
133
  raise
131
134
  else:
132
135
  # each session has its own fingerprint set
133
136
  kwargs.pop("impersonate", None)
137
+ self.logger.debug("acquire_session", client=self.name)
134
138
  session: AsyncSession = await self._session_pool.get()
139
+ self.logger.debug("acquired_session", impersonate=session.impersonate, client=self.name)
135
140
  try:
136
141
  req_at = get_time()
137
- response: CurlResponse = await session.request(
142
+ response: CurlResponse = await asyncio.wait_for(session.request(
138
143
  url=url,
139
144
  method=method,
140
145
  headers=headers,
141
146
  proxy=proxy,
142
147
  verify=False,
143
148
  **kwargs,
144
- )
149
+ ), timeout=10)
145
150
  recv_at = get_time()
146
151
  latency = recv_at - req_at
147
152
  self.logger.debug("response", status=response.status_code, url=url, impersonate=session.impersonate, client=self.name, requested_at=req_at, responded_at=recv_at, latency_ms=latency)
153
+ except TimeoutError:
154
+ self.logger.error("timeout", url=url, impersonate=session.impersonate, client=self.name)
155
+ raise
148
156
  except Exception:
149
157
  self.logger.exception("request", url=url, client=self.name)
150
158
  raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenx
3
- Version: 0.8.9
3
+ Version: 0.9.2
4
4
  Summary: mini-framework
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: curl-cffi>=0.12.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes