Example #1
0
File: net.py Project: abit2/sunpy
def slugify(text, delim=u"_", encoding="ascii"):
    """ Slugify given unicode text. """
    text = normalize("NFKD", text)

    period = u"."

    name_and_extension = text.rsplit(period, 1)
    name = name_and_extension[0]

    name = six.text_type(delim).join(filter(None, (word for word in _punct_re.split(name.lower()))))

    if len(name_and_extension) == 2:
        extension = name_and_extension[1]
        return six.text_type(period).join([name, extension])
    else:
        return name
Example #2
0
def slugify(text, delim=u'_', encoding="ascii"):
    """ Slugify given unicode text. """
    text = normalize('NFKD', text)

    period = u'.'

    name_and_extension = text.rsplit(period, 1)
    name = name_and_extension[0]

    name = six.text_type(delim).join(
        filter(None, (word for word in _punct_re.split(name.lower()))))

    if len(name_and_extension) == 2:
        extension = name_and_extension[1]
        return six.text_type(period).join([name, extension])
    else:
        return name
Example #3
0
def get_system_filename(sock, url, default="file"):
    """ Get filename from given urllib2.urlopen object and URL.
    First, attempts to extract Content-Disposition, second, extract
    from URL, eventually fall back to default. Returns bytestring
    in file system encoding. """
    name = get_filename(sock, url)
    if not name:
        name = six.text_type(default)
    return name.encode(sys.getfilesystemencoding(), 'ignore')
Example #4
0
def get_filename(sock, url):
    """ Get filename from given urllib2.urlopen object and URL.
    First, tries Content-Disposition, if unavailable, extracts
    name from URL. """
    name = None
    # NOTE: This gives bytes on 2 and unicode on 3.
    # How does 3.x know the encoding?
    cd = sock.headers.get('Content-Disposition', None)
    if cd is not None:
        try:
            name = get_content_disposition(cd)
        except IndexError:
            pass

    if not name:
        parsed = urlparse(url)
        name = parsed.path.rstrip('/').rsplit('/', 1)[-1]
    return six.text_type(name)
Example #5
0
def get_filename(sock, url):
    """ Get filename from given urllib2.urlopen object and URL.
    First, tries Content-Disposition, if unavailable, extracts
    name from URL. """
    name = None
    # NOTE: This gives bytes on 2 and unicode on 3.
    # How does 3.x know the encoding?
    cd = sock.headers.get('Content-Disposition', None)
    if cd is not None:
        try:
            name = get_content_disposition(cd)
        except IndexError:
            pass

    if not name:
        parsed = urlparse.urlparse(url)
        name = parsed.path.rstrip('/').rsplit('/', 1)[-1]
    return six.text_type(name)