|
17 | 17 | from poetry.repositories.exceptions import PackageNotFound
|
18 | 18 | from poetry.repositories.http import HTTPRepository
|
19 | 19 | from poetry.utils._compat import to_str
|
| 20 | +from poetry.utils.constants import REQUESTS_TIMEOUT |
20 | 21 |
|
21 | 22 |
|
22 | 23 | cache_control_logger.setLevel(logging.ERROR)
|
@@ -103,7 +104,9 @@ def search(self, query: str) -> list[Package]:
|
103 | 104 |
|
104 | 105 | search = {"q": query}
|
105 | 106 |
|
106 |
| - response = requests.session().get(self._base_url + "search", params=search) |
| 107 | + response = requests.session().get( |
| 108 | + self._base_url + "search", params=search, timeout=REQUESTS_TIMEOUT |
| 109 | + ) |
107 | 110 | content = parse(response.content, namespaceHTMLElements=False)
|
108 | 111 | for result in content.findall(".//*[@class='package-snippet']"):
|
109 | 112 | name_element = result.find("h3/*[@class='package-snippet__name']")
|
@@ -244,14 +247,18 @@ def _get_release_info(
|
244 | 247 | def _get(self, endpoint: str) -> dict[str, Any] | None:
|
245 | 248 | try:
|
246 | 249 | json_response = self.session.get(
|
247 |
| - self._base_url + endpoint, raise_for_status=False |
| 250 | + self._base_url + endpoint, |
| 251 | + raise_for_status=False, |
| 252 | + timeout=REQUESTS_TIMEOUT, |
248 | 253 | )
|
249 | 254 | except requests.exceptions.TooManyRedirects:
|
250 | 255 | # Cache control redirect loop.
|
251 | 256 | # We try to remove the cache and try again
|
252 | 257 | self.session.delete_cache(self._base_url + endpoint)
|
253 | 258 | json_response = self.session.get(
|
254 |
| - self._base_url + endpoint, raise_for_status=False |
| 259 | + self._base_url + endpoint, |
| 260 | + raise_for_status=False, |
| 261 | + timeout=REQUESTS_TIMEOUT, |
255 | 262 | )
|
256 | 263 |
|
257 | 264 | if json_response.status_code != 200:
|
|
0 commit comments