Skip to content

Instantly share code, notes, and snippets.

Created May 5, 2012 15:02
Show Gist options
  • Save anonymous/2603120 to your computer and use it in GitHub Desktop.
Save anonymous/2603120 to your computer and use it in GitHub Desktop.
diff --git a/gspread/client.py b/gspread/client.py
index c7ac0ff..1746684 100644
--- a/gspread/client.py
+++ b/gspread/client.py
@@ -85,7 +85,7 @@ class Client(object):
auth_header = "GoogleLogin auth=%s" % token
self.session.add_header('Authorization', auth_header)
- except HTTPError as ex:
+ except HTTPError, ex:
if ex.code == 403:
content = ex.read().decode()
if content.strip() == 'Error=BadAuthentication':
@@ -230,7 +230,7 @@ class Client(object):
try:
r = self.session.put(url, data, headers=headers)
- except HTTPError as ex:
+ except HTTPError, ex:
if ex.code == 403:
message = ex.read().decode()
raise UpdateCellError(message)
@@ -245,7 +245,7 @@ class Client(object):
try:
r = self.session.post(url, data, headers=headers)
- except HTTPError as ex:
+ except HTTPError, ex:
message = ex.read().decode()
raise RequestError(message)
diff --git a/gspread/httpsession.py b/gspread/httpsession.py
index 8793099..e403d79 100644
--- a/gspread/httpsession.py
+++ b/gspread/httpsession.py
@@ -55,7 +55,7 @@ class HTTPSession(object):
try:
return request.urlopen(req)
- except HTTPError as e:
+ except HTTPError, e:
raise e
def get(self, url, **kwargs):
diff --git a/gspread/models.py b/gspread/models.py
index bf6396e..b1a8a35 100644
--- a/gspread/models.py
+++ b/gspread/models.py
@@ -352,7 +352,8 @@ class Worksheet(object):
<Cell R1C1 "I'm cell A1">
"""
- return self.update_cell(*(self.get_int_addr(label)), val=val)
+ [one,two] = self.get_int_addr(label)
+ return self.update_cell(one, two, val=val)
def update_cell(self, row, col, val):
"""Sets the new value to a cell.
diff --git a/gspread/urls.py b/gspread/urls.py
index 967f869..737f42c 100644
--- a/gspread/urls.py
+++ b/gspread/urls.py
@@ -42,6 +42,25 @@ _fields_cache = {}
_field_re = re.compile(r'{(\w+)}')
+
+def format(txt, dic):
+ '''spreadsheets/{visibility}/{projection}
+ spreadsheets/, [visibility, /], [projection]
+ tx = 'spreadsheets/{visibility}/{projection}'
+ params = {'projection': 'full', 'visibility': 'private'}
+ '''
+
+ tx = [x.split('}') for x in txt.split('{')]
+
+ if len(tx) > 1:
+ tx_final = ["".join(tx[0])]
+ for i in range(1,len(tx)):
+ [key, endtxt] = tx[i]
+ if key in dic.keys():
+ key = dic[key]
+ tx_final.append(key+endtxt)
+ return "".join(tx_final)
+
def _extract_fields(patternstr):
return _field_re.findall(patternstr)
@@ -60,7 +79,7 @@ def construct_url(feedtype=None,
if fields is None:
fields = _extract_fields(urlpattern)
_fields_cache[feedtype] = fields
- except KeyError as e:
+ except KeyError, e:
raise UnsupportedFeedTypeError(e)
obj_fields = obj.get_id_fields() if obj is not None else {}
@@ -77,6 +96,6 @@ def construct_url(feedtype=None,
try:
return '%s%s' % (SPREADSHEETS_FEED_URL,
- urlpattern.format(**params))
- except KeyError as e:
+ format(urlpattern, params))
+ except KeyError, e:
raise UrlParameterMissing(e)
diff --git a/gspread/utils.py b/gspread/utils.py
index b2aa90b..56a5343 100644
--- a/gspread/utils.py
+++ b/gspread/utils.py
@@ -10,6 +10,9 @@ This module contains utility functions.
from xml.etree import ElementTree
+try: next
+except NameError:
+ def next (obj): return obj.next()
def finditem(func, seq):
"""Finds and returns first item in iterable for which func(item) is True.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment