summaryrefslogtreecommitdiff
path: root/freebase-api
diff options
context:
space:
mode:
authoralex.boterolowry <alex.boterolowry@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2008-10-10 06:48:12 +0000
committeralex.boterolowry <alex.boterolowry@5914aa95-5b3a-0410-a3b5-7b719e7fe9b2>2008-10-10 06:48:12 +0000
commitdefe8ae2797fefe2d04e9e4458361f5d0bd083e5 (patch)
treea364bcb42d9550081ce648f717f029c31f68e841 /freebase-api
parentbcc336ae61d7abf13ca9529540ad9d41bf662511 (diff)
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
Diffstat (limited to 'freebase-api')
-rw-r--r--freebase-api/freebase/api/httpclients.py9
-rw-r--r--freebase-api/freebase/api/session.py9
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