def _encode_url(self, data): query = self.query if data: data = native_str(data) if isinstance(data, str): data = parse_qsl(data) else: data = mapping_iterator(data) query = parse_qsl(query) query.extend(data) query = urlencode(query) self.query = query
def _encode_url(self, body): query = self.query if body: body = native_str(body) if isinstance(body, str): body = parse_qsl(body) else: body = mapping_iterator(body) query = parse_qsl(query) query.extend(body) self.data = query query = urlencode(query) self.query = query
def parse_store_url(url): assert url, 'No url given' scheme, host, path, query, fr = urlsplit(url) assert not fr, 'store url must not have fragment, found %s' % fr assert scheme, 'Scheme not provided' # pulsar:// if scheme == 'pulsar' and not host: host = '127.0.0.1:0' bits = host.split('@') assert len(bits) <= 2, 'Too many @ in %s' % url params = dict(parse_qsl(query)) if path: database = path[1:] assert '/' not in database, 'Unsupported database %s' % database params['database'] = database if len(bits) == 2: userpass, host = bits userpass = userpass.split(':') assert len(userpass) <= 2,\ 'User and password not in user:password format' params['user'] = userpass[0] if len(userpass) == 2: params['password'] = userpass[1] if ':' in host: host = tuple(host.split(':')) host = host[0], int(host[1]) return scheme, host, params
def _gen_query(query_string, encoding): # keep_blank_values=True for key, value in parse_qsl((query_string or ''), True): yield (to_string(key, encoding, errors='replace'), to_string(value, encoding, errors='replace'))