Skip to content

Commit 9d91910

Browse files
Merge pull request #64 from nmpowell/rename-interface-attribute
resolve conflict between Resource .interface attr and Almanac interface endpoints
2 parents a922ba4 + afe257c commit 9d91910

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

CHANGES

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
0.8.1
2+
3+
* Fixed bug where built-in interface dict overwrote `interface` methods from Almanac (`interface.search`, `interface.edit`). The `Resource` attribute `interface` is renamed `_interface`.
4+
15
0.8.0
26

37
* Switch to using requests

phabricator/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -224,15 +224,15 @@ def __repr__(self):
224224
class Resource(object):
225225
def __init__(self, api, interface=None, endpoint=None, method=None, nested=False):
226226
self.api = api
227-
self.interface = interface or copy.deepcopy(parse_interfaces(INTERFACES))
227+
self._interface = interface or copy.deepcopy(parse_interfaces(INTERFACES))
228228
self.endpoint = endpoint
229229
self.method = method
230230
self.nested = nested
231231

232232
def __getattr__(self, attr):
233233
if attr in getattr(self, '__dict__'):
234234
return getattr(self, attr)
235-
interface = self.interface
235+
interface = self._interface
236236
if self.nested:
237237
attr = "%s.%s" % (self.endpoint, attr)
238238
submethod_exists = False
@@ -254,7 +254,7 @@ def __call__(self, **kwargs):
254254

255255
def _request(self, **kwargs):
256256
# Check for missing variables
257-
resource = self.interface
257+
resource = self._interface
258258

259259
def validate_kwarg(key, target):
260260
# Always allow list
@@ -391,4 +391,4 @@ def update_interfaces(self):
391391

392392
interfaces = query()
393393

394-
self.interface = parse_interfaces(interfaces)
394+
self._interface = parse_interfaces(interfaces)

phabricator/tests/test_phabricator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def test_map_param_type(self):
163163

164164

165165
def test_endpoint_shadowing(self):
166-
shadowed_endpoints = [e for e in self.api.interface.keys() if e in self.api.__dict__]
166+
shadowed_endpoints = [e for e in self.api._interface.keys() if e in self.api.__dict__]
167167
self.assertEqual(
168168
shadowed_endpoints,
169169
[],

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
setup(
1616
name='phabricator',
17-
version='0.8.0',
17+
version='0.8.1',
1818
author='Disqus',
1919
author_email='[email protected]',
2020
url='http://github.com/disqus/python-phabricator',

0 commit comments

Comments
 (0)