Skip to content

Commit 14f873f

Browse files
committed
Merge pull request #7 from dctrwatson/uni-type
Use isinstance to validation
2 parents ccb23b6 + 9185efb commit 14f873f

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

phabricator/__init__.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,34 +41,34 @@
4141
# Map Phabricator types to Python types
4242
PARAM_TYPE_MAP = {
4343
# int types
44-
'int': 'int',
45-
'uint': 'int',
46-
'revisionid': 'int',
47-
'revision_id': 'int',
48-
'diffid': 'int',
49-
'diff_id': 'int',
50-
'id': 'int',
51-
'enum': 'int',
44+
'int': int,
45+
'uint': int,
46+
'revisionid': int,
47+
'revision_id': int,
48+
'diffid': int,
49+
'diff_id': int,
50+
'id': int,
51+
'enum': int,
5252

5353
# bool types
54-
'bool': 'bool',
54+
'bool': bool,
5555

5656
# dict types
57-
'map': 'dict',
58-
'dict': 'dict',
57+
'map': dict,
58+
'dict': dict,
5959

6060
# list types
61-
'list': 'list',
61+
'list': list,
6262

6363
# tuple types
64-
'pair': 'tuple',
64+
'pair': tuple,
6565

6666
# str types
67-
'str': 'str',
68-
'string': 'str',
69-
'phid': 'str',
70-
'guids': 'str',
71-
'type': 'str',
67+
'str': basestring,
68+
'string': basestring,
69+
'phid': basestring,
70+
'guids': basestring,
71+
'type': basestring,
7272
}
7373

7474
STR_RE = re.compile(r'([a-zA-Z_]+)')
@@ -93,9 +93,9 @@ def map_param_type(param_type):
9393
sub_match = STR_RE.match(sub_type)
9494
sub_type = sub_match.group(0).lower()
9595

96-
return [PARAM_TYPE_MAP.setdefault(sub_type, 'str')]
96+
return [PARAM_TYPE_MAP.setdefault(sub_type, basestring)]
9797

98-
return PARAM_TYPE_MAP.setdefault(main_type, 'str')
98+
return PARAM_TYPE_MAP.setdefault(main_type, basestring)
9999

100100

101101
def parse_interfaces(interfaces):
@@ -219,7 +219,7 @@ def validate_kwarg(key, target):
219219
# Always allow list
220220
if isinstance(key, list):
221221
return all([validate_kwarg(x, target[0]) for x in key])
222-
return type(key).__name__ == target
222+
return isinstance(key, target)
223223

224224
for k in resource.get('required', []):
225225
if k not in [x.split(':')[0] for x in kwargs.keys()]:

0 commit comments

Comments
 (0)