From 0373a8436060fc5192cb1a2161b76fd7d71f247b Mon Sep 17 00:00:00 2001 From: Rob Lanphier Date: Sat, 20 Dec 2014 13:25:36 -0800 Subject: [PATCH 1/2] Reading default host as set by phabricator.uri or default config option --- phabricator/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/phabricator/__init__.py b/phabricator/__init__.py index 40fb669..9173eda 100644 --- a/phabricator/__init__.py +++ b/phabricator/__init__.py @@ -292,7 +292,17 @@ def __init__(self, username=None, certificate=None, host=None, # Set values in ~/.arcrc as defaults if ARCRC: - self.host = host if host else ARCRC['hosts'].keys()[0] + if host: + self.host = host + else: + hostbase = (ARCRC.get('config', {}).get('phabricator.uri') or + ARCRC.get('config', {}).get('default')) + if hostbase: + # Hardcoding the path info to '/api/' to match arcanist.php + # behavior. + self.host = urlparse.urljoin(hostbase, "/api/") + else: + self.host = ARCRC['hosts'].keys()[0] self.username = username if username else ARCRC['hosts'][self.host]['user'] self.certificate = certificate if certificate else ARCRC['hosts'][self.host]['cert'] else: From c98c450e48e77067ff578276bed173c052dea966 Mon Sep 17 00:00:00 2001 From: Rob Lanphier Date: Sat, 27 Dec 2014 12:55:59 -0800 Subject: [PATCH 2/2] Added __getstate__ and __setstate__ to enable pickling --- phabricator/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/phabricator/__init__.py b/phabricator/__init__.py index 9173eda..330b740 100644 --- a/phabricator/__init__.py +++ b/phabricator/__init__.py @@ -178,6 +178,12 @@ def __getitem__(self, key): def __getattr__(self, key): return self.response[key] + def __getstate__(self): + return self.response + + def __setstate__(self, state): + self.response = state + def __len__(self): return len(self.response.keys())