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
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
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')
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)
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)