hgext/lfs/pointer.py
changeset 37942 32bc3815efae
parent 37926 fb6226c15e54
child 38161 aa10675c5dd6
equal deleted inserted replaced
37941:af83a0ed0afb 37942:32bc3815efae
    33     @classmethod
    33     @classmethod
    34     def deserialize(cls, text):
    34     def deserialize(cls, text):
    35         try:
    35         try:
    36             return cls(l.split(' ', 1) for l in text.splitlines()).validate()
    36             return cls(l.split(' ', 1) for l in text.splitlines()).validate()
    37         except ValueError: # l.split returns 1 item instead of 2
    37         except ValueError: # l.split returns 1 item instead of 2
    38             raise InvalidPointer(
    38             raise InvalidPointer(_('cannot parse git-lfs text: %s')
    39                 _('cannot parse git-lfs text: %s') % stringutil.pprint(
    39                                  % stringutil.pprint(text))
    40                     text, bprefix=False))
       
    41 
    40 
    42     def serialize(self):
    41     def serialize(self):
    43         sortkeyfunc = lambda x: (x[0] != 'version', x)
    42         sortkeyfunc = lambda x: (x[0] != 'version', x)
    44         items = sorted(self.validate().iteritems(), key=sortkeyfunc)
    43         items = sorted(self.validate().iteritems(), key=sortkeyfunc)
    45         return ''.join('%s %s\n' % (k, v) for k, v in items)
    44         return ''.join('%s %s\n' % (k, v) for k, v in items)
    64         """raise InvalidPointer on error. return self if there is no error"""
    63         """raise InvalidPointer on error. return self if there is no error"""
    65         requiredcount = 0
    64         requiredcount = 0
    66         for k, v in self.iteritems():
    65         for k, v in self.iteritems():
    67             if k in self._requiredre:
    66             if k in self._requiredre:
    68                 if not self._requiredre[k].match(v):
    67                 if not self._requiredre[k].match(v):
    69                     raise InvalidPointer(_('unexpected value: %s=%s') % (
    68                     raise InvalidPointer(_('unexpected value: %s=%s')
    70                         k, stringutil.pprint(v, bprefix=False)))
    69                                          % (k, stringutil.pprint(v)))
    71                 requiredcount += 1
    70                 requiredcount += 1
    72             elif not self._keyre.match(k):
    71             elif not self._keyre.match(k):
    73                 raise InvalidPointer(_('unexpected key: %s') % k)
    72                 raise InvalidPointer(_('unexpected key: %s') % k)
    74             if not self._valuere.match(v):
    73             if not self._valuere.match(v):
    75                 raise InvalidPointer(_('unexpected value: %s=%s') % (
    74                 raise InvalidPointer(_('unexpected value: %s=%s')
    76                     k, stringutil.pprint(v, bprefix=False)))
    75                                      % (k, stringutil.pprint(v)))
    77         if len(self._requiredre) != requiredcount:
    76         if len(self._requiredre) != requiredcount:
    78             miss = sorted(set(self._requiredre.keys()).difference(self.keys()))
    77             miss = sorted(set(self._requiredre.keys()).difference(self.keys()))
    79             raise InvalidPointer(_('missed keys: %s') % ', '.join(miss))
    78             raise InvalidPointer(_('missed keys: %s') % ', '.join(miss))
    80         return self
    79         return self
    81 
    80