comparison mercurial/wireprotoserver.py @ 42041:3e47d1ec9da5

util: extract compression code in `mercurial.utils.compression` The code seems large enough to be worth extracting. This is similar to what was done for various module in `mercurial/utils/`. Since None of the compression logic takes a `ui` objet, issuing deprecation warning is tricky. Luckly the logic does not seems to have many external users.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 27 Mar 2019 16:45:14 +0100
parents cf8677cd7286
children 2c4f656c8e9f
comparison
equal deleted inserted replaced
42040:02fa567f8a3c 42041:3e47d1ec9da5
21 wireprotov1server, 21 wireprotov1server,
22 wireprotov2server, 22 wireprotov2server,
23 ) 23 )
24 from .utils import ( 24 from .utils import (
25 cborutil, 25 cborutil,
26 compression,
26 interfaceutil, 27 interfaceutil,
27 ) 28 )
28 29
29 stringio = util.stringio 30 stringio = util.stringio
30 31
142 # FUTURE advertise 0.2rx once support is implemented 143 # FUTURE advertise 0.2rx once support is implemented
143 # FUTURE advertise minrx and mintx after consulting config option 144 # FUTURE advertise minrx and mintx after consulting config option
144 caps.append('httpmediatype=0.1rx,0.1tx,0.2tx') 145 caps.append('httpmediatype=0.1rx,0.1tx,0.2tx')
145 146
146 compengines = wireprototypes.supportedcompengines(repo.ui, 147 compengines = wireprototypes.supportedcompengines(repo.ui,
147 util.SERVERROLE) 148 compression.SERVERROLE)
148 if compengines: 149 if compengines:
149 comptypes = ','.join(urlreq.quote(e.wireprotosupport().name) 150 comptypes = ','.join(urlreq.quote(e.wireprotosupport().name)
150 for e in compengines) 151 for e in compengines)
151 caps.append('compression=%s' % comptypes) 152 caps.append('compression=%s' % comptypes)
152 153
318 # on the request parameters. 319 # on the request parameters.
319 320
320 if '0.2' in proto.getprotocaps(): 321 if '0.2' in proto.getprotocaps():
321 # All clients are expected to support uncompressed data. 322 # All clients are expected to support uncompressed data.
322 if prefer_uncompressed: 323 if prefer_uncompressed:
323 return HGTYPE2, util._noopengine(), {} 324 return HGTYPE2, compression._noopengine(), {}
324 325
325 # Now find an agreed upon compression format. 326 # Now find an agreed upon compression format.
326 compformats = wireprotov1server.clientcompressionsupport(proto) 327 compformats = wireprotov1server.clientcompressionsupport(proto)
327 for engine in wireprototypes.supportedcompengines(ui, util.SERVERROLE): 328 for engine in wireprototypes.supportedcompengines(ui,
329 compression.SERVERROLE):
328 if engine.wireprotosupport().name in compformats: 330 if engine.wireprotosupport().name in compformats:
329 opts = {} 331 opts = {}
330 level = ui.configint('server', '%slevel' % engine.name()) 332 level = ui.configint('server', '%slevel' % engine.name())
331 if level is not None: 333 if level is not None:
332 opts['level'] = level 334 opts['level'] = level