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