~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bundle/serializer/v08.py

  • Committer: Martin Pool
  • Date: 2006-10-15 11:57:58 UTC
  • mto: This revision was merged to the branch mainline in revision 2119.
  • Revision ID: mbp@sourcefrog.net-20061015115758-041391cf08503621
Clean up BzrNewError, other exception classes and users.

This cleans up the probably-mistaken BzrNewError behaviour of using error
class docstrings as their format string.  Instead errors can define a _fmt
attribute with the same meaning.  The docstring is now reserved for its
regular purpose of documentation for programmers.  This behaviour is added to
BzrError.  BzrNewError is left in place for compatibility but no builtin
errors use it anymore and it gives a deprecation warning on construction.

BzrError now accepts either a single preformatted string, or a set of named
parameters to be substituted in to a format string for that class.  This 
behaviour is cleaned up and a couple of callers that depended on the
Python2.4-style exception args tuple are fixed.

Display of unprintable errors is slightly more robust.

errors.IncompatibleFormat was defined twice (shadowing the first
definition), so one use was disambiguated to IncompatibleBundleFormat.

UnsupportedEOLMarker called the wrong superclass constructor.

test_time_creates_benchmark_in_result was too dependent on benchmark
timing and has been loosened.

Some error representations changed slightly because of this (e.g. in use
of punctuation.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
 
97
97
    def check_compatible(self):
98
98
        if self.source.supports_rich_root():
99
 
            raise errors.IncompatibleFormat('0.8', repr(self.source))
 
99
            raise errors.IncompatibleBundleFormat('0.8', repr(self.source))
100
100
 
101
101
    def write(self, source, revision_ids, forced_bases, f):
102
102
        """Write the bundless to the supplied files.