23 'tags': [('cmd', ['tags'])], |
23 'tags': [('cmd', ['tags'])], |
24 'tip': [('cmd', ['changeset']), ('node', ['tip'])], |
24 'tip': [('cmd', ['changeset']), ('node', ['tip'])], |
25 'static': [('cmd', ['static']), ('file', None)] |
25 'static': [('cmd', ['static']), ('file', None)] |
26 } |
26 } |
27 |
27 |
28 def expand(form): |
28 def normalize(form): |
|
29 # first expand the shortcuts |
29 for k in shortcuts.iterkeys(): |
30 for k in shortcuts.iterkeys(): |
30 if k in form: |
31 if k in form: |
31 for name, value in shortcuts[k]: |
32 for name, value in shortcuts[k]: |
32 if value is None: |
33 if value is None: |
33 value = form[k] |
34 value = form[k] |
34 form[name] = value |
35 form[name] = value |
35 del form[k] |
36 del form[k] |
|
37 # And strip the values |
|
38 for k, v in form.iteritems(): |
|
39 form[k] = [i.strip() for i in v] |
36 return form |
40 return form |
37 |
41 |
38 class wsgirequest(object): |
42 class wsgirequest(object): |
39 def __init__(self, wsgienv, start_response): |
43 def __init__(self, wsgienv, start_response): |
40 version = wsgienv['wsgi.version'] |
44 version = wsgienv['wsgi.version'] |
45 self.err = wsgienv['wsgi.errors'] |
49 self.err = wsgienv['wsgi.errors'] |
46 self.threaded = wsgienv['wsgi.multithread'] |
50 self.threaded = wsgienv['wsgi.multithread'] |
47 self.multiprocess = wsgienv['wsgi.multiprocess'] |
51 self.multiprocess = wsgienv['wsgi.multiprocess'] |
48 self.run_once = wsgienv['wsgi.run_once'] |
52 self.run_once = wsgienv['wsgi.run_once'] |
49 self.env = wsgienv |
53 self.env = wsgienv |
50 self.form = expand(cgi.parse(self.inp, self.env, keep_blank_values=1)) |
54 self.form = normalize(cgi.parse(self.inp, |
|
55 self.env, |
|
56 keep_blank_values=1)) |
51 self._start_response = start_response |
57 self._start_response = start_response |
52 self.server_write = None |
58 self.server_write = None |
53 self.headers = [] |
59 self.headers = [] |
54 |
60 |
55 def __iter__(self): |
61 def __iter__(self): |