~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/directory_service.py

Initial commit for russian version of documents.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Directory service registration and usage.
18
18
 
21
21
"""
22
22
 
23
23
from bzrlib import errors, registry
24
 
from bzrlib.lazy_import import lazy_import
25
 
lazy_import(globals(), """
26
24
from bzrlib.branch import Branch
27
 
from bzrlib import urlutils
28
 
""")
29
 
 
30
25
 
31
26
class DirectoryServiceRegistry(registry.Registry):
32
27
    """This object maintains and uses a list of directory services.
77
72
            'push': branch.get_push_location,
78
73
            'this': lambda: branch.base
79
74
        }
80
 
        parts = url.split('/', 1)
81
 
        if len(parts) == 2:
82
 
            name, extra = parts
83
 
        else:
84
 
            (name,) = parts
85
 
            extra = None
86
75
        try:
87
 
            method = lookups[name[1:]]
 
76
            method = lookups[url[1:]]
88
77
        except KeyError:
89
78
            raise errors.InvalidLocationAlias(url)
90
79
        else:
91
80
            result = method()
92
81
        if result is None:
93
82
            raise errors.UnsetLocationAlias(url)
94
 
        if extra is not None:
95
 
            result = urlutils.join(result, extra)
96
83
        return result
97
84
 
98
85
directories.register(':', AliasDirectory,