aboutsummaryrefslogtreecommitdiff
path: root/uritemplate/template.py
diff options
context:
space:
mode:
authorIan Cordasco <graffatcolmingov@gmail.com>2013-04-14 23:32:25 -0400
committerIan Cordasco <graffatcolmingov@gmail.com>2013-04-14 23:32:25 -0400
commitb234a526135573887081644a8094bdcba321b905 (patch)
treec08687367414f4ba52ce9f494cb6d5868fe86a2d /uritemplate/template.py
parentb39cd0968b5e5178b1285fd571c8648adf4d0741 (diff)
downloaduritemplates-b234a526135573887081644a8094bdcba321b905.tar.gz
A little more work
Diffstat (limited to 'uritemplate/template.py')
-rw-r--r--uritemplate/template.py21
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())