1
# Copyright (C) 2005-2010 Canonical Ltd
1
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
31
31
import bzrlib.lazy_regex
32
32
bzrlib.lazy_regex.install_lazy_compile()
34
from bzrlib.osutils import get_user_encoding
35
37
IGNORE_FILENAME = ".bzrignore"
38
__copyright__ = "Copyright 2005-2010 Canonical Ltd."
40
# XXX: Deprecated as of bzr-1.17 use osutils.get_user_encoding() directly
41
user_encoding = get_user_encoding()
44
__copyright__ = "Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd."
40
46
# same format as sys.version_info: "A tuple containing the five components of
41
47
# the version number: major, minor, micro, releaselevel, and serial. All
44
50
# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a
45
51
# releaselevel of 'dev' for unreleased under-development code.
47
version_info = (2, 2, 0, 'dev', 1)
49
# API compatibility version
50
api_minimum_version = (2, 2, 0)
53
version_info = (2, 0, 4, 'dev', 0)
55
# API compatibility version: bzrlib is currently API compatible with 1.15.
56
api_minimum_version = (1, 17, 0)
53
58
def _format_version_tuple(version_info):
54
59
"""Turn a version number 2, 3 or 5-tuple into a short string.
68
73
>>> print _format_version_tuple((1, 1, 1, 'candidate', 2))
70
75
>>> print bzrlib._format_version_tuple((2, 1, 0, 'beta', 1))
72
77
>>> print _format_version_tuple((1, 4, 0))
74
79
>>> print _format_version_tuple((1, 4))
100
105
elif release_type == 'dev':
101
106
sub_string = 'dev' + str(sub)
102
107
elif release_type in ('alpha', 'beta'):
103
if version_info[2] == 0:
104
main_version = '%d.%d' % version_info[:2]
105
108
sub_string = release_type[0] + str(sub)
106
109
elif release_type == 'candidate':
107
110
sub_string = 'rc' + str(sub)
118
121
def test_suite():
120
123
return tests.test_suite()
125
stdin=None, stdout=None, stderr=None):
126
"""Set up everything needed for normal use of bzrlib.
128
Most applications that embed bzrlib, including bzr itself, should call
129
this function to initialize various subsystems.
131
More options may be added in future so callers should use named arguments.
133
:param setup_ui: If true (default) use a terminal UI; otherwise
134
something else must be put into `bzrlib.ui.ui_factory`.
135
:param stdin, stdout, stderr: If provided, use these for terminal IO;
136
otherwise use the files in `sys`.
138
# TODO: mention this in a guide to embedding bzrlib
140
# NB: This function tweaks so much global state it's hard to test it in
141
# isolation within the same interpreter. It's not reached on normal
142
# in-process run_bzr calls. If it's broken, we expect that
143
# TestRunBzrSubprocess may fail.
148
bzrlib.trace.enable_default_logging()
149
atexit.register(bzrlib.trace._flush_stdout_stderr)
150
atexit.register(bzrlib.trace._flush_trace)
161
bzrlib.ui.ui_factory = bzrlib.ui.make_ui_for_terminal(
162
stdin, stdout, stderr)
164
if bzrlib.version_info[3] == 'final':
165
from bzrlib.symbol_versioning import suppress_deprecation_warnings
166
suppress_deprecation_warnings(override=True)
168
import bzrlib.osutils
169
atexit.register(osutils.report_extension_load_failures)