timeout_strategy
appimage_updater.core.timeout_strategy
¶
Timeout strategies for different types of HTTP operations.
ProgressiveTimeoutClient(timeout_strategy)
¶
HTTP client that tries operations with progressively longer timeouts.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
timeout_strategy
|
TimeoutStrategy
|
Timeout strategy to use |
required |
Source code in src/appimage_updater/core/timeout_strategy.py
timeout_strategy = timeout_strategy
instance-attribute
¶
get_with_progressive_timeout(url, operation_types=None, **kwargs)
async
¶
Attempt GET request with progressively longer timeouts.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url
|
str
|
URL to request |
required |
operation_types
|
list[str] | None
|
List of operation types to try in order (default: ["quick_check", "fallback"]) |
None
|
**kwargs
|
Any
|
Additional httpx client parameters |
{}
|
Returns:
Type | Description |
---|---|
Response
|
HTTP response |
Raises:
Type | Description |
---|---|
HTTPError
|
If all timeout attempts fail |
Source code in src/appimage_updater/core/timeout_strategy.py
TimeoutStrategy(base_timeout=30)
¶
Manages different timeout strategies for different types of HTTP operations.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_timeout
|
int
|
Base timeout in seconds for normal operations |
30
|
Source code in src/appimage_updater/core/timeout_strategy.py
base_timeout = base_timeout
instance-attribute
¶
timeouts = {'quick_check': 5, 'page_scraping': 10, 'api_request': 15, 'download': base_timeout * 10, 'fallback': base_timeout}
instance-attribute
¶
create_client_config(operation_type='fallback', **kwargs)
¶
Create httpx client configuration with appropriate timeout.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
operation_type
|
str
|
Type of operation |
'fallback'
|
**kwargs
|
Any
|
Additional client configuration |
{}
|
Returns:
Type | Description |
---|---|
dict[str, Any]
|
Dictionary of client configuration parameters |
Source code in src/appimage_updater/core/timeout_strategy.py
get_timeout(operation_type='fallback')
¶
Get timeout for a specific operation type.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
operation_type
|
str
|
Type of operation (quick_check, page_scraping, api_request, download, fallback) |
'fallback'
|
Returns:
Type | Description |
---|---|
float
|
Timeout in seconds |
Source code in src/appimage_updater/core/timeout_strategy.py
create_progressive_client(base_timeout=30)
¶
Create a progressive timeout client with default strategy.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_timeout
|
int
|
Base timeout in seconds |
30
|
Returns:
Type | Description |
---|---|
ProgressiveTimeoutClient
|
Progressive timeout client |
Source code in src/appimage_updater/core/timeout_strategy.py
get_default_timeout_strategy(base_timeout=30)
¶
Get the default timeout strategy instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
base_timeout
|
int
|
Base timeout in seconds |
30
|
Returns:
Type | Description |
---|---|
TimeoutStrategy
|
Default timeout strategy |