diff options
author | Ian Cordasco <graffatcolmingov@gmail.com> | 2013-04-14 23:32:25 -0400 |
---|---|---|
committer | Ian Cordasco <graffatcolmingov@gmail.com> | 2013-04-14 23:32:25 -0400 |
commit | b234a526135573887081644a8094bdcba321b905 (patch) | |
tree | c08687367414f4ba52ce9f494cb6d5868fe86a2d /uritemplate/template.py | |
parent | b39cd0968b5e5178b1285fd571c8648adf4d0741 (diff) | |
download | uritemplates-b234a526135573887081644a8094bdcba321b905.tar.gz |
A little more work
Diffstat (limited to 'uritemplate/template.py')
-rw-r--r-- | uritemplate/template.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/uritemplate/template.py b/uritemplate/template.py index b1297c8..c37f45b 100644 --- a/uritemplate/template.py +++ b/uritemplate/template.py @@ -67,6 +67,7 @@ class URIVariable(object): self.original = var self.operator = None self.safe = '/' + self.vars = [] #self.parse() def __repr__(self): @@ -82,9 +83,25 @@ class URIVariable(object): else: var_list = self.original.split(',') + self.defaults = {} for var in var_list: - pass + default_val = None + name = var + if '=' in var: + name, default_val = tuple(var.split('=', 1)) - def substitute(self, *args, **kwargs): + explode = True if name.endswith('*') else False + + prefix_index = name.index(':') + if prefix_index > 0: + prefix = int(name[prefix_index + 1:]) + name = name[:prefix_index] + + if default_val: + self.defaults[name] = default_val + + self.vars.append((name, {'explode': explode, 'prefix': prefix})) + + def expand(self, *args, **kwargs): args = [quote(a, self.safe) for a in args] kwargs = dict((k, quote(v)) for k, v in kwargs.items()) |