~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/controldir.py

(jelmer) Use the absolute_import feature everywhere in bzrlib,
 and add a source test to make sure it's used everywhere. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
"""
24
24
 
 
25
from __future__ import absolute_import
 
26
 
25
27
from bzrlib.lazy_import import lazy_import
26
28
lazy_import(globals(), """
27
29
import textwrap
106
108
        """Return a sequence of all branches local to this control directory.
107
109
 
108
110
        """
 
111
        return self.get_branches().values()
 
112
 
 
113
    def get_branches(self):
 
114
        """Get all branches in this control directory, as a dictionary.
 
115
        
 
116
        :return: Dictionary mapping branch names to instances.
 
117
        """
109
118
        try:
110
 
            return [self.open_branch()]
 
119
           return { None: self.open_branch() }
111
120
        except (errors.NotBranchError, errors.NoRepositoryPresent):
112
 
            return []
 
121
           return {}
113
122
 
114
123
    def is_control_filename(self, filename):
115
124
        """True if filename is the name of a path which is reserved for
321
330
        raise NotImplementedError(self.cloning_metadir)
322
331
 
323
332
    def checkout_metadir(self):
324
 
        """Produce a metadir suitable for checkouts of this controldir."""
 
333
        """Produce a metadir suitable for checkouts of this controldir.
 
334
 
 
335
        :returns: A ControlDirFormat with all component formats
 
336
            either set appropriately or set to None if that component
 
337
            should not be created.
 
338
        """
325
339
        return self.cloning_metadir()
326
340
 
327
341
    def sprout(self, url, revision_id=None, force_new_repo=False,
726
740
                return result, urlutils.unescape(a_transport.relpath(url))
727
741
            except errors.NotBranchError, e:
728
742
                pass
 
743
            except errors.PermissionDenied:
 
744
                pass
729
745
            try:
730
746
                new_t = a_transport.clone('..')
731
747
            except errors.InvalidURLJoin:
830
846
 
831
847
    upgrade_recommended = False
832
848
 
833
 
    def get_format_string(self):
834
 
        """Return the format of this format, if usable in meta directories."""
835
 
        raise NotImplementedError(self.get_format_string)
836
 
 
837
849
    def get_format_description(self):
838
850
        """Return the short description for this format."""
839
851
        raise NotImplementedError(self.get_format_description)
866
878
            ui.ui_factory.recommend_upgrade(
867
879
                self.get_format_description(), basedir)
868
880
 
 
881
    @classmethod
 
882
    def get_format_string(cls):
 
883
        raise NotImplementedError(cls.get_format_string)
 
884
 
869
885
 
870
886
class ControlComponentFormatRegistry(registry.FormatRegistry):
871
887
    """A registry for control components (branch, workingtree, repository)."""