Files
mixly3/boards/default/micropython/build/lib/urllib.py

33 lines
1.1 KiB
Python

from ucollections import namedtuple
URI = namedtuple('URI', ('cheme', 'netloc', 'path', 'params', 'query', 'fragment'))
def quote(string, safe='_.-~+'):
""" A simple implementation of URL quoting"""
string = string.replace(' ', '+')
result = ""
for char in string:
if ('a' <= char <= 'z') or ('A' <= char <= 'Z') or ('0' <= char<= '9') or (char in safe):
result += char
else:
result += "%{:02X}".format(ord(char))
return result
def urlencode(query, safe='_.-~+'):
"""A simple urlencode function"""
return '&'.join('{}={}'.format(quote(k, safe), quote(v, safe)) for k, v in query.items())
def urlparse(url):
"""A simple urlparse (cheme, netloc, path, params, query, fragment)"""
parts = [''] * 6
for i, sep in enumerate(['://', '#', '?', ';']):
if sep in url:
left, right = url.split(sep, 1)
parts[i], url = left, right
if '/' in url:
parts[1], parts[2] = url.split('/', 1)
parts[2] = '/' + parts[2]
else:
parts[1] = url
return URI(*parts)