def detect_source(uri, verify_ssl, progress, timeout=5):
    """Return a `rows.Source` with information for a given URI

    If URI starts with "http" or "https" the file will be downloaded.

    This function should only be used if the URI already exists because it's
    going to download/open the file to detect its encoding and MIME type.
    """

    # TODO: should also supporte other schemes, like file://, sqlite:// etc.

    if uri.lower().startswith("http://") or uri.lower().startswith("https://"):
        return download_file(
            uri, verify_ssl=verify_ssl, timeout=timeout, progress=progress, detect=True
        )

    elif uri.startswith("postgres://"):
        return Source(
            should_delete=False,
            encoding=None,
            plugin_name="postgresql",
            uri=uri,
            is_file=False,
            local=None,
        )
    else:
        return local_file(uri)
def detect_source ( uri , verify_ssl , progress , timeout = 5 ) : if uri . lower ( ) . startswith ( "http://" ) or uri . lower ( ) . startswith ( "https://" ) : return download_file ( uri , verify_ssl = verify_ssl , timeout = timeout , progress = progress , detect = True ) elif uri . startswith ( "postgres://" ) : return Source ( should_delete = False , encoding = None , plugin_name = "postgresql" , uri = uri , is_file = False , local = None , ) else : return local_file ( uri )
Return a `rows.Source` with information for a given URI

    If URI starts with "http" or "https" the file will be downloaded.

    This function should only be used if the URI already exists because it's
    going to download/open the file to detect its encoding and MIME type.