本文整理汇总了Python中qisys.ui.error函数的典型用法代码示例。如果您正苦于以下问题:Python error函数的具体用法?Python error怎么用?Python error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_log
def get_log(self, before_ref, after_ref):
""" Return a list of commits between two refspecs, in
natural order (most recent commits last)
Each commit is a dict containing, 'sha1' and 'message'
FIXME: parse author and date ?
"""
# old git does not support -z and inists on adding \n
# between log entries, so we have no choice but choose
# a custom separator. '\f' looks safe enough
res = list()
rc, out = self.call("log", "--reverse",
"--format=%H%n%B\f",
"%s..%s" % (before_ref, after_ref),
raises=False)
if rc != 0:
ui.error(out)
return res
for log_chunk in out.split('\f'):
if not log_chunk:
continue
log_chunk = log_chunk.strip()
sha1, message = log_chunk.split('\n', 1)
message = message.strip()
commit = {
"sha1" : sha1,
"message" : message,
}
res.append(commit)
return res
示例2: configure_virtualenv
def configure_virtualenv(config, python_worktree, build_worktree=None,
remote_packages=None, site_packages=True):
if not remote_packages:
remote_packages = list()
# create a new virtualenv
python_worktree.config = config
venv_path = python_worktree.venv_path
pip = python_worktree.pip
try:
virtualenv.create_environment(python_worktree.venv_path,
site_packages=site_packages)
except:
ui.error("Failed to create virtualenv")
return
# Install all Python projects using pip install -e .
python_projects = python_worktree.python_projects
for i, project in enumerate(python_projects):
ui.info_count(i, len(python_projects),
ui.green, "Configuring", ui.reset, ui.blue, project.src)
cmd = [pip, "install", "--editable", "."]
qisys.command.call(cmd, cwd=project.path)
# Write a qi.pth file containing path to C/C++ extensions
if build_worktree:
handle_extensions(venv_path, python_worktree, build_worktree)
# Install the extension in the virtualenv
binaries_path = virtualenv.path_locations(venv_path)[-1]
pip_binary = os.path.join(binaries_path, "pip")
if remote_packages:
cmd = [pip_binary, "install"] + remote_packages
subprocess.check_call(cmd)
示例3: main_wrapper
def main_wrapper(module, args):
"""This wraps the main method of an action so that:
- backtrace is not printed by default
- backtrace is printed is --backtrace was given
- a pdb session is run if --pdb was given
"""
try:
module.do(args)
except Exception as e:
if args.pdb:
traceback = sys.exc_info()[2]
print ""
print "### Exception:", e
print "### Starting a debugger"
try:
import ipdb
ipdb.post_mortem(traceback)
sys.exit(0)
except ImportError:
import pdb
pdb.post_mortem(traceback)
sys.exit(0)
if args.backtrace:
raise
ui.error(e)
sys.exit(2)
示例4: generate_mo_file
def generate_mo_file(self, locale):
""" Generate .mo file for the given locale
"""
ui.info(ui.green, "Generating translation for", ui.reset,
ui.bold, locale)
input_file = self.get_po_file(locale)
if not os.path.exists(input_file):
ui.error("No .po found for locale: ", locale, "\n",
"(looked in %s)" % input_file, "\n",
"Did you run qilinguist update?")
return
output_file = os.path.join(self.mo_path, locale, "LC_MESSAGES",
self.domain + ".mo")
to_make = os.path.dirname(output_file)
qisys.sh.mkdir(to_make, recursive=True)
cmd = ["msgfmt", "--check", "--statistics"]
# required by libqi:
conf_file = os.path.join(self.mo_path, ".confintl")
with open(conf_file, "w") as fp:
fp.write("# THIS FILE IS AUTOGENERATED\n"
"#Do not delete or modify it\n"
"# This file is used to find translation dictionaries\n")
cmd.extend(["--output-file", output_file])
cmd.extend(["--directory", self.po_path])
cmd.append(input_file)
qisys.command.call(cmd)
示例5: do
def do(args):
""" Main entry point """
git_worktree = qisrc.parsers.get_git_worktree(args)
git_project = qisrc.parsers.get_one_git_project(git_worktree, args)
git = qisrc.git.Git(git_project.path)
current_branch = git.get_current_branch()
if not current_branch:
ui.error("Not currently on any branch")
sys.exit(2)
if git_project.review:
maintainers = qisrc.maintainers.get(git_project, warn_if_none=True)
reviewers = [x['email'] for x in maintainers]
reviewers.extend(args.reviewers or list())
# Prefer gerrit logins or groups instead of e-mails
reviewers = [x.split("@")[0] for x in reviewers]
qisrc.review.push(git_project, current_branch,
bypass_review=(not args.review),
dry_run=args.dry_run, reviewers=reviewers,
topic=args.topic)
else:
if args.dry_run:
git.push("-n")
else:
if args.review and not args.yes:
mess = """\
The project is not under code review.
Are you sure you want to run `git push` ?
This action cannot be undone\
"""
answer = qisys.interact.ask_yes_no(mess, default=False)
if answer:
git.push()
else:
git.push()
示例6: checkout
def checkout(self, branch, force=False):
""" Called by ``qisrc checkout``
For each project, checkout the branch if it is different than
the default branch of the manifest.
"""
ui.info(ui.green, ":: Checkout projects ...")
errors = list()
manifest_xml = os.path.join(self._syncer.manifest_repo, "manifest.xml")
manifest = qisrc.manifest.Manifest(manifest_xml)
max_src = max([len(x.src) for x in self.git_projects])
n = len(self.git_projects)
for i, project in enumerate(self.git_projects):
ui.info_count(i, n, ui.bold, "Checkout",
ui.reset, ui.blue, project.src.ljust(max_src), end="\r")
if project.default_branch is None:
continue
branch_name = project.default_branch.name
remote_name = project.default_remote.name
git = qisrc.git.Git(project.path)
ok, err = git.safe_checkout(branch_name, remote_name, force=force)
if not ok:
errors.append((project.src, err))
if not errors:
return
ui.error("Failed to checkout some projects")
for (project, error) in errors:
ui.info(project, ":", error)
示例7: push_projects
def push_projects(git_projects, dry_run=False):
""" Push Projects """
if not git_projects:
return
ui.info(ui.green, "Pushing ", len(git_projects), "projects")
for i, git_project in enumerate(git_projects):
default_branch = git_project.default_branch.name
remote_branch = git_project.default_branch.remote_branch
ui.info_count(i, len(git_projects), git_project.src)
git = qisrc.git.Git(git_project.path)
if git_project.review:
push_remote = git_project.review_remote
else:
push_remote = git_project.default_remote
remote_ref = "%s/%s" % (push_remote.name, remote_branch)
display_changes(git, default_branch, remote_ref)
answer = qisys.interact.ask_yes_no("OK to push?", default=False)
if not answer:
return
to_push = "%s:%s" % (default_branch, remote_branch)
push_args = [push_remote.name, to_push]
push_args.append("--force")
if dry_run:
push_args.append("--dry-run")
rc, out = git.push(*push_args, raises=False)
if rc == 0:
ui.info(out)
else:
ui.error(out)
示例8: do
def do(args):
""" Main entry point """
git_worktree = qisrc.parsers.get_git_worktree(args)
git_projects = qisrc.parsers.get_git_projects(git_worktree, args)
for git_project in git_projects:
maintainers = qisrc.maintainers.get(git_project)
if not maintainers:
mess = """\
The project in {src} has no maintainer.
Please edit {qiproject_xml} to silence this warning
"""
ui.warning(mess.format(src=git_project.src, qiproject_xml=git_project.qiproject_xml), end="")
reviewers = [x["email"] for x in maintainers]
reviewers.extend(args.reviewers or list())
git = qisrc.git.Git(git_project.path)
current_branch = git.get_current_branch()
if not current_branch:
ui.error("Not currently on any branch")
sys.exit(2)
if git_project.review:
qisrc.review.push(
git_project,
current_branch,
bypass_review=(not args.review),
dry_run=args.dry_run,
reviewers=reviewers,
topic=args.topic,
)
else:
if args.dry_run:
git.push("-n")
else:
git.push()
示例9: main_wrapper
def main_wrapper(module, args):
"""This wraps the main method of an action so that:
- backtrace is not printed by default
- backtrace is printed is --backtrace was given
- a pdb session is run if --pdb was given
"""
try:
module.do(args)
except Exception as e:
if args.pdb:
traceback = sys.exc_info()[2]
print ""
print "### Exception:", e
print "### Starting a debugger"
try:
#pylint: disable-msg=F0401
import ipdb
ipdb.post_mortem(traceback)
sys.exit(0)
except ImportError:
import pdb
pdb.post_mortem(traceback)
sys.exit(0)
if args.backtrace:
raise
message = str(e)
if message.endswith("\n"):
message = message[:-1]
ui.error(e.__class__.__name__, message)
sys.exit(2)
示例10: _run
def _run(self, num_jobs=1):
""" Helper function for ._run """
if not self.launcher:
ui.error("test launcher not set, cannot run tests")
return
for i, test in enumerate(self.tests):
self.task_queue.put((test, i))
if num_jobs == 1:
self.test_logger.single_job = True
threads = list()
for i in range(0, num_jobs):
worker = TestWorker(self.task_queue, i)
worker.launcher = self.launcher
worker.launcher.worker_index = i
worker.test_logger = self.test_logger
worker.results = self.results
threads.append(worker)
worker.start()
# Do not use .join() so that this can be interrupted:
while self.task_queue.unfinished_tasks and \
not self._interrupted:
time.sleep(0.1)
for worker_thread in threads:
worker_thread.stop()
worker_thread.join()
示例11: jar
def jar(jar_path, files, paths):
""" Search each files using qibuild find and
add them into a jar using qisys
"""
# Create command line
jar_path = qisys.sh.to_native_path(jar_path)
args = ["cvfM"]
args += [jar_path]
if not files:
raise Exception("Missing arguments : Files to package")
for wanted_file in files:
ui.info("Searching for " + wanted_file + "...")
path = qibuild.find.find(paths, wanted_file, expect_one=False)[0]
if not path:
ui.error("Cannot find " + wanted_file + " in worktree")
return None
ui.debug("Found : " + path)
dirname = os.path.dirname(path)
basename = os.path.basename(path)
args += ["-C", dirname, basename]
ui.debug("Added -C " + dirname + " " + wanted_file + " to command line")
qisys.command.call(["jar"] + args, ignore_ret_code=False)
return jar_path
示例12: commit_all
def commit_all(self, message):
""" Commit All """
__rc, out = self.call("status", raises=False)
for line in out.splitlines():
line = line.strip()
filename = line[8:]
if line.startswith("!"):
self.call("remove", filename)
if line.startswith("?"):
self.call("add", filename)
# Prevent 'Node has unexpectedly changed kind' error
# when a file is replaced by a symlink.
# see http://antoniolorusso.com/blog/2008/09/29/svn-entry-has-unexpectedly-changed-special-status/
if line.startswith("~"):
full_path = os.path.join(self.path, filename)
if os.path.islink(full_path):
target = os.readlink(full_path) # pylint:disable=no-member
os.remove(full_path)
self.call("remove", filename)
os.symlink(target, full_path) # pylint:disable=no-member
self.call("add", filename)
else:
ui.error("Could not deal with", filename, "\n",
"Please open a bug report")
self.call("commit", "--message", message)
示例13: clever_reset_ref
def clever_reset_ref(git_project, ref, raises=True):
""" Resets only if needed, fetches only if needed """
try:
remote_name = git_project.default_remote.name
except AttributeError:
error_msg = "Project {} has no default remote, defaulting to origin"
ui.error(error_msg.format(git_project.name))
remote_name = "origin"
git = qisrc.git.Git(git_project.path)
# Deals with "refs/" prefixed ref first
if ref.startswith("refs/"):
return _reset_hard_to_refs_prefixed_ref(git, remote_name, ref, raises=raises)
# Else, ref format is a local name (branch or tag)
# Check if this ref exists and if we are already in the expected state
rc, ref_sha1 = git.call("rev-parse", ref, "--", raises=False)
if rc != 0:
# Maybe this is a newly pushed tag, try to fetch:
git.fetch(remote_name)
rc, ref_sha1 = git.call("rev-parse", ref, "--", raises=False)
if rc != 0:
return False, "Could not parse %s as a valid ref" % ref
_, actual_sha1 = git.call("rev-parse", "HEAD", raises=False)
if actual_sha1 == ref_sha1: # Nothing to do
return None if raises else True, ""
# Reset to the ref local name
return _reset_hard_to_local_refs_name(git, remote_name, ref, raises=raises)
示例14: dump_symbols_from_binary
def dump_symbols_from_binary(binary, pool_dir, dump_syms_executable=None):
""" Dump sympobls from the binary.
Results can be found in
<pool_dir>/<binary name>/<id>/<binary name>.sym
"""
cmd = [dump_syms_executable, binary]
ui.debug(cmd)
process = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(out, err) = process.communicate()
if process.returncode != 0:
ui.error("Failed to dump symbols", err)
return
# First line looks like:
# MODULE Linux x86_64 ID binary
lines = out.splitlines()
first_line = lines[0]
uuid = first_line.split()[3]
name = first_line.split()[4]
to_make = os.path.join(pool_dir, name, uuid)
qisys.sh.mkdir(to_make, recursive=True)
with open(os.path.join(to_make, name + ".sym"), "w") as fp:
fp.write(out)
示例15: _run
def _run(self, num_jobs=1):
""" Helper function for ._run """
if not self.launcher:
ui.error("test launcher not set, cannot run tests")
return
for i, test in enumerate(self.tests):
self.task_queue.put((test, i))
if num_jobs == 1:
self.test_logger.single_job = True
for i in range(0, num_jobs):
worker = TestWorker(self.task_queue, i)
worker.launcher = self.launcher
worker.launcher.worker_index = i
worker.test_logger = self.test_logger
worker.results = self.results
self._workers.append(worker)
worker.start()
while not self.task_queue.empty() and \
not self._interrupted:
time.sleep(0.1)
for worker_thread in self._workers:
worker_thread.join()