diff --git a/docs/faq.md b/docs/faq.md index 75c08cb6473..bd8bee44a5d 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -152,3 +152,16 @@ This is done so to be compliant with the broader Python ecosystem. For example, if Poetry builds a distribution for a project that uses a version that is not valid according to [PEP 440](https://peps.python.org/pep-0440), third party tools will be unable to parse the version correctly. + + +### My requests are timing out! + +Poetry's default HTTP request time out is 15 seconds, the same as `pip`. +Similar to `PIP_REQUESTS_TIMEOUT`, the experimental environment variable `POETRY_REQUESTS_TIMEOUT` +can be set to alter this value. As this environment variable is **unstable**, it may be removed in the future, but +not before being replaced with a permanent alternative. + +Note that it is almost always better to debug network stability than to blindly increase +the request timeout -- the timeout controls how long it Poetry waits to establish a HTTP +request/connection, and not how long Poetry will wait for a response to finish +(Poetry will keep on waiting as long as the response is unfinished). diff --git a/src/poetry/utils/constants.py b/src/poetry/utils/constants.py index 0f799b16d7d..00cedb09345 100644 --- a/src/poetry/utils/constants.py +++ b/src/poetry/utils/constants.py @@ -1,5 +1,7 @@ from __future__ import annotations +import os + # Timeout for HTTP requests using the requests library. -REQUESTS_TIMEOUT = 15 +REQUESTS_TIMEOUT = int(os.getenv("POETRY_REQUESTS_TIMEOUT", 15))