Mercurial > public > mercurial-scm > hg
comparison mercurial/bundle2.py @ 28883:032c4c2f802a
pycompat: switch to util.urlreq/util.urlerr for py3 compat
author | timeless <timeless@mozdev.org> |
---|---|
date | Wed, 06 Apr 2016 23:22:12 +0000 |
parents | ca4896110011 |
children | 077d0535f51f |
comparison
equal
deleted
inserted
replaced
28882:800ec7c048b0 | 28883:032c4c2f802a |
---|---|
150 import errno | 150 import errno |
151 import re | 151 import re |
152 import string | 152 import string |
153 import struct | 153 import struct |
154 import sys | 154 import sys |
155 import urllib | |
156 | 155 |
157 from .i18n import _ | 156 from .i18n import _ |
158 from . import ( | 157 from . import ( |
159 changegroup, | 158 changegroup, |
160 error, | 159 error, |
162 pushkey, | 161 pushkey, |
163 tags, | 162 tags, |
164 url, | 163 url, |
165 util, | 164 util, |
166 ) | 165 ) |
166 | |
167 urlerr = util.urlerr | |
168 urlreq = util.urlreq | |
167 | 169 |
168 _pack = struct.pack | 170 _pack = struct.pack |
169 _unpack = struct.unpack | 171 _unpack = struct.unpack |
170 | 172 |
171 _fstreamparamsize = '>i' | 173 _fstreamparamsize = '>i' |
455 if '=' not in line: | 457 if '=' not in line: |
456 key, vals = line, () | 458 key, vals = line, () |
457 else: | 459 else: |
458 key, vals = line.split('=', 1) | 460 key, vals = line.split('=', 1) |
459 vals = vals.split(',') | 461 vals = vals.split(',') |
460 key = urllib.unquote(key) | 462 key = urlreq.unquote(key) |
461 vals = [urllib.unquote(v) for v in vals] | 463 vals = [urlreq.unquote(v) for v in vals] |
462 caps[key] = vals | 464 caps[key] = vals |
463 return caps | 465 return caps |
464 | 466 |
465 def encodecaps(caps): | 467 def encodecaps(caps): |
466 """encode a bundle2 caps dictionary into a bytes blob""" | 468 """encode a bundle2 caps dictionary into a bytes blob""" |
467 chunks = [] | 469 chunks = [] |
468 for ca in sorted(caps): | 470 for ca in sorted(caps): |
469 vals = caps[ca] | 471 vals = caps[ca] |
470 ca = urllib.quote(ca) | 472 ca = urlreq.quote(ca) |
471 vals = [urllib.quote(v) for v in vals] | 473 vals = [urlreq.quote(v) for v in vals] |
472 if vals: | 474 if vals: |
473 ca = "%s=%s" % (ca, ','.join(vals)) | 475 ca = "%s=%s" % (ca, ','.join(vals)) |
474 chunks.append(ca) | 476 chunks.append(ca) |
475 return '\n'.join(chunks) | 477 return '\n'.join(chunks) |
476 | 478 |
568 | 570 |
569 def _paramchunk(self): | 571 def _paramchunk(self): |
570 """return a encoded version of all stream parameters""" | 572 """return a encoded version of all stream parameters""" |
571 blocks = [] | 573 blocks = [] |
572 for par, value in self._params: | 574 for par, value in self._params: |
573 par = urllib.quote(par) | 575 par = urlreq.quote(par) |
574 if value is not None: | 576 if value is not None: |
575 value = urllib.quote(value) | 577 value = urlreq.quote(value) |
576 par = '%s=%s' % (par, value) | 578 par = '%s=%s' % (par, value) |
577 blocks.append(par) | 579 blocks.append(par) |
578 return ' '.join(blocks) | 580 return ' '.join(blocks) |
579 | 581 |
580 def _getcorechunk(self): | 582 def _getcorechunk(self): |
689 def _processallparams(self, paramsblock): | 691 def _processallparams(self, paramsblock): |
690 """""" | 692 """""" |
691 params = {} | 693 params = {} |
692 for p in paramsblock.split(' '): | 694 for p in paramsblock.split(' '): |
693 p = p.split('=', 1) | 695 p = p.split('=', 1) |
694 p = [urllib.unquote(i) for i in p] | 696 p = [urlreq.unquote(i) for i in p] |
695 if len(p) < 2: | 697 if len(p) < 2: |
696 p.append(None) | 698 p.append(None) |
697 self._processparam(*p) | 699 self._processparam(*p) |
698 params[p[0]] = p[1] | 700 params[p[0]] = p[1] |
699 return params | 701 return params |
1267 def bundle2caps(remote): | 1269 def bundle2caps(remote): |
1268 """return the bundle capabilities of a peer as dict""" | 1270 """return the bundle capabilities of a peer as dict""" |
1269 raw = remote.capable('bundle2') | 1271 raw = remote.capable('bundle2') |
1270 if not raw and raw != '': | 1272 if not raw and raw != '': |
1271 return {} | 1273 return {} |
1272 capsblob = urllib.unquote(remote.capable('bundle2')) | 1274 capsblob = urlreq.unquote(remote.capable('bundle2')) |
1273 return decodecaps(capsblob) | 1275 return decodecaps(capsblob) |
1274 | 1276 |
1275 def obsmarkersversion(caps): | 1277 def obsmarkersversion(caps): |
1276 """extract the list of supported obsmarkers versions from a bundle2caps dict | 1278 """extract the list of supported obsmarkers versions from a bundle2caps dict |
1277 """ | 1279 """ |