iwfm.util.url_fetch¶
- iwfm.util.url_fetch(url, filename, verbose=False, timeout=30)[source]¶
Download file at url to filename.
This function downloads content from a URL and saves it to a local file. It includes comprehensive error handling for network issues, HTTP errors, and file I/O problems.
- Parameters:
url (str) – URL of file to be downloaded. Must start with http://, https://, or ftp://
filename (str) – Name of local file to save downloaded content
verbose (bool, default=False) – If True, print status messages during download
timeout (int, default=30) – Request timeout in seconds. Increase for large files or slow connections.
- Return type:
nothing
- Raises:
ValueError – If url or filename is invalid or empty
requests.exceptions.Timeout – If request exceeds timeout period
requests.exceptions.ConnectionError – If connection to server fails
requests.exceptions.HTTPError – If HTTP request returns error status
requests.exceptions.RequestException – If other request errors occur
IOError – If file cannot be written to disk
Examples
>>> url_fetch('https://example.com/data.csv', 'local_data.csv', verbose=True) Downloading from https://example.com/data.csv Saved to local_data.csv (1,234 bytes)
>>> # Handle timeout for large file >>> url_fetch('https://example.com/large.zip', 'data.zip', timeout=120)
Notes
SSL certificate verification is enabled for security
HTTP error status codes (4xx, 5xx) will raise HTTPError
Connection errors are reported with helpful messages