Fix for a temporary problem with discovery documents. Now query vs path parameters are inferred from the restPath.
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index db042f7..1660288 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -35,6 +35,9 @@
from apiclient.http import HttpRequest
from apiclient.json import simplejson
+URITEMPLATE = re.compile('{[^}]*}')
+VARNAME = re.compile('[a-zA-Z0-9_-]+')
+
class Error(Exception):
"""Base error for this module."""
pass
@@ -215,6 +218,13 @@
if desc.get('restParameterType') == 'path':
path_params[param] = param
+ for match in URITEMPLATE.finditer(pathUrl):
+ for namematch in VARNAME.finditer(match.group(0)):
+ name = key2param(namematch.group(0))
+ path_params[name] = name
+ if name in query_params:
+ query_params.remove(name)
+
def method(self, **kwargs):
for name in kwargs.iterkeys():
if name not in argmap: