Mercurial > hg
comparison hgext/phabricator.py @ 41900:47125193bad0
py3: convert indexes into bytes when enumerating lists in urlencodenested
Otherwise it'll try to insert them them into a %s slot in a b'' later and fail.
Differential Revision: https://phab.mercurial-scm.org/D6105
author | Ian Moody <moz-ian@perix.co.uk> |
---|---|
date | Fri, 08 Mar 2019 23:45:12 +0000 |
parents | 9a8c7c17d816 |
children | a98dabdb5a7b |
comparison
equal
deleted
inserted
replaced
41899:9a8c7c17d816 | 41900:47125193bad0 |
---|---|
159 """ | 159 """ |
160 flatparams = util.sortdict() | 160 flatparams = util.sortdict() |
161 def process(prefix, obj): | 161 def process(prefix, obj): |
162 if isinstance(obj, bool): | 162 if isinstance(obj, bool): |
163 obj = {True: b'true', False: b'false'}[obj] # Python -> PHP form | 163 obj = {True: b'true', False: b'false'}[obj] # Python -> PHP form |
164 items = {list: enumerate, dict: lambda x: x.items()}.get(type(obj)) | 164 lister = lambda l: [(b'%d' % k, v) for k, v in enumerate(l)] |
165 items = {list: lister, dict: lambda x: x.items()}.get(type(obj)) | |
165 if items is None: | 166 if items is None: |
166 flatparams[prefix] = obj | 167 flatparams[prefix] = obj |
167 else: | 168 else: |
168 for k, v in items(obj): | 169 for k, v in items(obj): |
169 if prefix: | 170 if prefix: |