Drop uritemplate.
The `uritemplate` module was only used in one place, for what amounted mostly to a string replace, so we can simply drop it. Unfortunately the `META` variable in that file is part of the public interface, so we need to keep it around as-is.
This commit is contained in:
@@ -21,7 +21,7 @@ __author__ = 'jcgregorio@google.com (Joe Gregorio)'
|
||||
|
||||
import json
|
||||
import logging
|
||||
import uritemplate
|
||||
import urllib
|
||||
|
||||
from oauth2client import util
|
||||
from oauth2client.client import AccessTokenRefreshError
|
||||
@@ -78,7 +78,8 @@ class AppAssertionCredentials(AssertionCredentials):
|
||||
Raises:
|
||||
AccessTokenRefreshError: When the refresh fails.
|
||||
"""
|
||||
uri = uritemplate.expand(META, {'scope': self.scope})
|
||||
query = '?scope=%s' % urllib.quote(self.scope, '')
|
||||
uri = META.replace('{?scope}', query)
|
||||
response, content = http_request(uri)
|
||||
if response.status == 200:
|
||||
try:
|
||||
@@ -101,5 +102,4 @@ class AppAssertionCredentials(AssertionCredentials):
|
||||
return not self.scope
|
||||
|
||||
def create_scoped(self, scopes):
|
||||
return AppAssertionCredentials(scopes,
|
||||
**self.kwargs)
|
||||
return AppAssertionCredentials(scopes, **self.kwargs)
|
||||
|
||||
1
setup.py
1
setup.py
@@ -29,7 +29,6 @@ from setuptools import setup
|
||||
|
||||
packages = [
|
||||
'oauth2client',
|
||||
'uritemplate',
|
||||
]
|
||||
|
||||
install_requires = [
|
||||
|
||||
@@ -1,147 +0,0 @@
|
||||
# Early, and incomplete implementation of -04.
|
||||
#
|
||||
import re
|
||||
import urllib
|
||||
|
||||
RESERVED = ":/?#[]@!$&'()*+,;="
|
||||
OPERATOR = "+./;?|!@"
|
||||
EXPLODE = "*+"
|
||||
MODIFIER = ":^"
|
||||
TEMPLATE = re.compile(r"{(?P<operator>[\+\./;\?|!@])?(?P<varlist>[^}]+)}", re.UNICODE)
|
||||
VAR = re.compile(r"^(?P<varname>[^=\+\*:\^]+)((?P<explode>[\+\*])|(?P<partial>[:\^]-?[0-9]+))?(=(?P<default>.*))?$", re.UNICODE)
|
||||
|
||||
def _tostring(varname, value, explode, operator, safe=""):
|
||||
if type(value) == type([]):
|
||||
if explode == "+":
|
||||
return ",".join([varname + "." + urllib.quote(x, safe) for x in value])
|
||||
else:
|
||||
return ",".join([urllib.quote(x, safe) for x in value])
|
||||
if type(value) == type({}):
|
||||
keys = value.keys()
|
||||
keys.sort()
|
||||
if explode == "+":
|
||||
return ",".join([varname + "." + urllib.quote(key, safe) + "," + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
return ",".join([urllib.quote(key, safe) + "," + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
return urllib.quote(value, safe)
|
||||
|
||||
|
||||
def _tostring_path(varname, value, explode, operator, safe=""):
|
||||
joiner = operator
|
||||
if type(value) == type([]):
|
||||
if explode == "+":
|
||||
return joiner.join([varname + "." + urllib.quote(x, safe) for x in value])
|
||||
elif explode == "*":
|
||||
return joiner.join([urllib.quote(x, safe) for x in value])
|
||||
else:
|
||||
return ",".join([urllib.quote(x, safe) for x in value])
|
||||
elif type(value) == type({}):
|
||||
keys = value.keys()
|
||||
keys.sort()
|
||||
if explode == "+":
|
||||
return joiner.join([varname + "." + urllib.quote(key, safe) + joiner + urllib.quote(value[key], safe) for key in keys])
|
||||
elif explode == "*":
|
||||
return joiner.join([urllib.quote(key, safe) + joiner + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
return ",".join([urllib.quote(key, safe) + "," + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
if value:
|
||||
return urllib.quote(value, safe)
|
||||
else:
|
||||
return ""
|
||||
|
||||
def _tostring_query(varname, value, explode, operator, safe=""):
|
||||
joiner = operator
|
||||
varprefix = ""
|
||||
if operator == "?":
|
||||
joiner = "&"
|
||||
varprefix = varname + "="
|
||||
if type(value) == type([]):
|
||||
if 0 == len(value):
|
||||
return ""
|
||||
if explode == "+":
|
||||
return joiner.join([varname + "=" + urllib.quote(x, safe) for x in value])
|
||||
elif explode == "*":
|
||||
return joiner.join([urllib.quote(x, safe) for x in value])
|
||||
else:
|
||||
return varprefix + ",".join([urllib.quote(x, safe) for x in value])
|
||||
elif type(value) == type({}):
|
||||
if 0 == len(value):
|
||||
return ""
|
||||
keys = value.keys()
|
||||
keys.sort()
|
||||
if explode == "+":
|
||||
return joiner.join([varname + "." + urllib.quote(key, safe) + "=" + urllib.quote(value[key], safe) for key in keys])
|
||||
elif explode == "*":
|
||||
return joiner.join([urllib.quote(key, safe) + "=" + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
return varprefix + ",".join([urllib.quote(key, safe) + "," + urllib.quote(value[key], safe) for key in keys])
|
||||
else:
|
||||
if value:
|
||||
return varname + "=" + urllib.quote(value, safe)
|
||||
else:
|
||||
return varname
|
||||
|
||||
TOSTRING = {
|
||||
"" : _tostring,
|
||||
"+": _tostring,
|
||||
";": _tostring_query,
|
||||
"?": _tostring_query,
|
||||
"/": _tostring_path,
|
||||
".": _tostring_path,
|
||||
}
|
||||
|
||||
|
||||
def expand(template, vars):
|
||||
def _sub(match):
|
||||
groupdict = match.groupdict()
|
||||
operator = groupdict.get('operator')
|
||||
if operator is None:
|
||||
operator = ''
|
||||
varlist = groupdict.get('varlist')
|
||||
|
||||
safe = "@"
|
||||
if operator == '+':
|
||||
safe = RESERVED
|
||||
varspecs = varlist.split(",")
|
||||
varnames = []
|
||||
defaults = {}
|
||||
for varspec in varspecs:
|
||||
m = VAR.search(varspec)
|
||||
groupdict = m.groupdict()
|
||||
varname = groupdict.get('varname')
|
||||
explode = groupdict.get('explode')
|
||||
partial = groupdict.get('partial')
|
||||
default = groupdict.get('default')
|
||||
if default:
|
||||
defaults[varname] = default
|
||||
varnames.append((varname, explode, partial))
|
||||
|
||||
retval = []
|
||||
joiner = operator
|
||||
prefix = operator
|
||||
if operator == "+":
|
||||
prefix = ""
|
||||
joiner = ","
|
||||
if operator == "?":
|
||||
joiner = "&"
|
||||
if operator == "":
|
||||
joiner = ","
|
||||
for varname, explode, partial in varnames:
|
||||
if varname in vars:
|
||||
value = vars[varname]
|
||||
#if not value and (type(value) == type({}) or type(value) == type([])) and varname in defaults:
|
||||
if not value and value != "" and varname in defaults:
|
||||
value = defaults[varname]
|
||||
elif varname in defaults:
|
||||
value = defaults[varname]
|
||||
else:
|
||||
continue
|
||||
retval.append(TOSTRING[operator](varname, value, explode, operator, safe=safe))
|
||||
if "".join(retval):
|
||||
return prefix + joiner.join(retval)
|
||||
else:
|
||||
return ""
|
||||
|
||||
return TEMPLATE.sub(_sub, template)
|
||||
Reference in New Issue
Block a user