comparison mercurial/bundle2.py @ 21610:d6056805f8f4

bundle2: introduce a ``params`` dictionary on unbundled parts This exposes all parameters the part received into a ``part.params`` dictionary. This should be much easier to use. This dictionary itself does not expose the mandatory or advisory aspect of parameters, but no current users of bundle2 actually enforce any of this logic. Coming changesets will improve this aspect.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 23 May 2014 17:26:57 -0700
parents 63cc2594ef8a
children 71b7b3f79a3c
comparison
equal deleted inserted replaced
21609:63cc2594ef8a 21610:d6056805f8f4
687 # part data 687 # part data
688 self.id = None 688 self.id = None
689 self.type = None 689 self.type = None
690 self.mandatoryparams = None 690 self.mandatoryparams = None
691 self.advisoryparams = None 691 self.advisoryparams = None
692 self.params = None
692 self._payloadstream = None 693 self._payloadstream = None
693 self._readheader() 694 self._readheader()
694 695
695 def _fromheader(self, size): 696 def _fromheader(self, size):
696 """return the next <size> byte from the header""" 697 """return the next <size> byte from the header"""
709 def _initparams(self, mandatoryparams, advisoryparams): 710 def _initparams(self, mandatoryparams, advisoryparams):
710 """internal function to setup all logic related parameters""" 711 """internal function to setup all logic related parameters"""
711 # make it read only to prevent people touching it by mistake. 712 # make it read only to prevent people touching it by mistake.
712 self.mandatoryparams = tuple(mandatoryparams) 713 self.mandatoryparams = tuple(mandatoryparams)
713 self.advisoryparams = tuple(advisoryparams) 714 self.advisoryparams = tuple(advisoryparams)
715 # user friendly UI
716 self.params = dict(self.mandatoryparams)
717 self.params.update(dict(self.advisoryparams))
714 718
715 def _readheader(self): 719 def _readheader(self):
716 """read the header and setup the object""" 720 """read the header and setup the object"""
717 typesize = self._unpackheader(_fparttypesize)[0] 721 typesize = self._unpackheader(_fparttypesize)[0]
718 self.type = self._fromheader(typesize) 722 self.type = self._fromheader(typesize)