~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/rio.py

  • Committer: Martin Pool
  • Date: 2008-04-24 07:22:53 UTC
  • mto: This revision was merged to the branch mainline in revision 3415.
  • Revision ID: mbp@sourcefrog.net-20080424072253-opmjij7xfy38w27f
Remove every assert statement from bzrlib!

Depending on the context they are:

 * turned into an explicit if/raise of either AssertionError 
   or something more specific -- particularly where they protect
   programming interfaces, complex invariants, or data file integrity
 * removed, if they're redundant with a later check, not protecting
   a meaningful invariant
 * turned into a selftest method on tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
 
117
117
    def add(self, tag, value):
118
118
        """Append a name and value to the stanza."""
119
 
        assert valid_tag(tag), \
120
 
            ("invalid tag %r" % tag)
 
119
        if not valid_tag(tag):
 
120
            raise ValueError("invalid tag %r" % (tag,))
121
121
        if isinstance(value, str):
122
122
            value = unicode(value)
123
123
        elif isinstance(value, unicode):
165
165
            return []
166
166
        result = []
167
167
        for tag, value in self.items:
168
 
            assert isinstance(tag, str), type(tag)
169
 
            assert isinstance(value, unicode)
170
168
            if value == '':
171
169
                result.append(tag + ': \n')
172
170
            elif '\n' in value:
235
233
        """
236
234
        d = {}
237
235
        for tag, value in self.items:
238
 
            assert tag not in d
239
236
            d[tag] = value
240
237
        return d
241
238
         
291
288
            break       # end of file
292
289
        if line == '\n':
293
290
            break       # end of stanza
294
 
        assert line.endswith('\n')
295
291
        real_l = line
296
292
        if line[0] == '\t': # continues previous value
297
293
            if tag is None:
306
302
                raise ValueError('tag/value separator not found in line %r'
307
303
                                 % real_l)
308
304
            tag = str(line[:colon_index])
309
 
            assert valid_tag(tag), \
310
 
                    "invalid rio tag %r" % tag
 
305
            if not valid_tag(tag):
 
306
                raise ValueError("invalid rio tag %r" % (tag,))
311
307
            accum_value = line[colon_index+2:-1]
312
308
 
313
309
    if tag is not None: # add last tag-value
327
323
    :param max_width: The maximum number of characters per physical line.
328
324
    :return: a list of lines
329
325
    """
330
 
    assert max_width > 6
 
326
    if max_width <= 6:
 
327
        raise ValueError(max_width)
331
328
    max_rio_width = max_width - 4
332
329
    lines = []
333
330
    for pline in stanza.to_lines():
373
370
    for line in line_iter:
374
371
        if line.startswith('# '):
375
372
            line = line[2:]
376
 
        else:
377
 
            assert line.startswith('#')
 
373
        elif line.startswith('#'):
378
374
            line = line[1:]
 
375
        else:
 
376
            raise ValueError("bad line %r" % (line,))
379
377
        if last_line is not None and len(line) > 2:
380
378
            line = line[2:]
381
379
        line = re.sub('\r', '', line)