airflow/contrib/hooks/gcs_hook.py
def _parse_gcs_url(gsurl):
    """
    Given a Google Cloud Storage URL (gs://<bucket>/<blob>), returns a
    tuple containing the corresponding bucket and blob.
    """

    parsed_url = urlparse(gsurl)
    if not parsed_url.netloc:
        raise AirflowException('Please provide a bucket name')
    else:
        bucket = parsed_url.netloc
        # Remove leading '/' but NOT trailing one
        blob = parsed_url.path.lstrip('/')
        return bucket, blob
def _parse_gcs_url(gsurl):
    """
    Given a Google Cloud Storage URL (gs://<bucket>/<blob>), returns a
    tuple containing the corresponding bucket and blob.
    """

    parsed_url = urlparse(gsurl)
    if not parsed_url.netloc:
        raise AirflowException('Please provide a bucket name')
    else:
        bucket = parsed_url.netloc
        # Remove leading '/' but NOT trailing one
        blob = parsed_url.path.lstrip('/')
        return bucket, blob
def _parse_gcs_url ( gsurl ) : parsed_url = urlparse ( gsurl ) if not parsed_url . netloc : raise AirflowException ( 'Please provide a bucket name' ) else : bucket = parsed_url . netloc # Remove leading '/' but NOT trailing one blob = parsed_url . path . lstrip ( '/' ) return bucket , blob
Given a Google Cloud Storage URL (gs://<bucket>/<blob>), returns a
    tuple containing the corresponding bucket and blob.
Given a Google Cloud Storage URL ( gs : // <bucket > / <blob > ) returns a tuple containing the corresponding bucket and blob .