From defe8ae2797fefe2d04e9e4458361f5d0bd083e5 Mon Sep 17 00:00:00 2001 From: "alex.boterolowry" Date: Fri, 10 Oct 2008 06:48:12 +0000 Subject: add permission_of to upload, and fix a bug with error handling git-svn-id: http://freebase-python.googlecode.com/svn/trunk@51 5914aa95-5b3a-0410-a3b5-7b719e7fe9b2 --- freebase-api/freebase/api/httpclients.py | 9 ++++++--- freebase-api/freebase/api/session.py | 9 +++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'freebase-api/freebase/api') 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 -- cgit v1.3.1