diff options
Diffstat (limited to 'freebase-api')
| -rw-r--r-- | freebase-api/freebase/api/httpclients.py | 9 | ||||
| -rw-r--r-- | freebase-api/freebase/api/session.py | 9 |
2 files changed, 13 insertions, 5 deletions
diff --git a/freebase-api/freebase/api/httpclients.py b/freebase-api/freebase/api/httpclients.py index 3375113..48af9b6 100644 --- a/freebase-api/freebase/api/httpclients.py +++ b/freebase-api/freebase/api/httpclients.py @@ -20,9 +20,10 @@ import logging import re class Urllib2Client(object): - def __init__(self, cookiejar): + def __init__(self, cookiejar, rse): cookiespy = urllib2.HTTPCookieProcessor(cookiejar) self.opener = urllib2.build_opener(cookiespy) + self._raise_service_error = rse self.log = logging.getLogger() def __call__(self, url, method, body, headers): @@ -48,8 +49,9 @@ class Urllib2Client(object): return (resp, resp.read()) class Httplib2Client(object): - def __init__(self, cookiejar): + def __init__(self, cookiejar, rse): self.cookiejar = cookiejar + self._raise_service_error = rse self.httpclient = CookiefulHttp(cookiejar=self.cookiejar) def __call__(self, url, method, body, headers): @@ -74,8 +76,9 @@ class Httplib2Client(object): class UrlfetchClient(object): - def __init__(self, cookiejar): + def __init__(self, cookiejar, rse): self.cookiejar = cookiejar + self._raise_service_error = rse self.httpclient = CookiefulUrlfetch(cookiejar=self.cookiejar) def __call__(self, url, method, body, headers): diff --git a/freebase-api/freebase/api/session.py b/freebase-api/freebase/api/session.py index 3d96ddd..1492f7c 100644 --- a/freebase-api/freebase/api/session.py +++ b/freebase-api/freebase/api/session.py @@ -214,7 +214,7 @@ class HTTPMetawebSession(MetawebSession): else: self.cookiejar = self._default_cookiejar - self._http_request = http_client(self.cookiejar) + self._http_request = http_client(self.cookiejar, self._raise_service_error) def open_cookie_file(self, cookiefile=None): @@ -529,7 +529,7 @@ class HTTPMetawebSession(MetawebSession): def touch(self): return self.mqlflush() - def upload(self, body, content_type, document_id=False): + def upload(self, body, content_type, document_id=False, permission_of=False): """upload to the metaweb""" service = '/api/service/upload' @@ -548,6 +548,11 @@ class HTTPMetawebSession(MetawebSession): form = { 'document': '' } else: form = { 'document': document_id } + if permission_of is not False: + if form: + form['permission_of'] = permission_of + else: + form = { 'permission_of' : permission_of } # note the use of both body and form. # form parameters get encoded into the URL in this case |
