Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(911)

Unified Diff: swarm_client/utils/tools.py

Issue 69143004: Delete swarm_client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « swarm_client/utils/threading_utils.py ('k') | swarm_client/utils/zip_package.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: swarm_client/utils/tools.py
===================================================================
--- swarm_client/utils/tools.py (revision 235167)
+++ swarm_client/utils/tools.py (working copy)
@@ -1,135 +0,0 @@
-# Copyright 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Various utility functions and classes not specific to any single area."""
-
-import logging
-import logging.handlers
-import optparse
-import os
-import sys
-import time
-import traceback
-
-
-class OptionParserWithLogging(optparse.OptionParser):
- """Adds --verbose option."""
-
- # Set to True to enable --log-file options.
- enable_log_file = True
-
- def __init__(self, verbose=0, log_file=None, **kwargs):
- kwargs.setdefault('description', sys.modules['__main__'].__doc__)
- optparse.OptionParser.__init__(self, **kwargs)
- self.add_option(
- '-v', '--verbose',
- action='count',
- default=verbose,
- help='Use multiple times to increase verbosity')
- if self.enable_log_file:
- self.add_option(
- '-l', '--log-file',
- default=log_file,
- help='The name of the file to store rotating log details')
- self.add_option(
- '--no-log', action='store_const', const='', dest='log_file',
- help='Disable log file')
-
- def parse_args(self, *args, **kwargs):
- options, args = optparse.OptionParser.parse_args(self, *args, **kwargs)
- levels = [logging.ERROR, logging.INFO, logging.DEBUG]
- level = levels[min(len(levels) - 1, options.verbose)]
-
- logging_console = logging.StreamHandler()
- logging_console.setFormatter(logging.Formatter(
- '%(levelname)5s %(module)15s(%(lineno)3d): %(message)s'))
- logging_console.setLevel(level)
- logging.getLogger().setLevel(level)
- logging.getLogger().addHandler(logging_console)
-
- if self.enable_log_file and options.log_file:
- # This is necessary otherwise attached handler will miss the messages.
- logging.getLogger().setLevel(logging.DEBUG)
-
- logging_rotating_file = logging.handlers.RotatingFileHandler(
- options.log_file,
- maxBytes=10 * 1024 * 1024,
- backupCount=5,
- encoding='utf-8')
- # log files are always at DEBUG level.
- logging_rotating_file.setLevel(logging.DEBUG)
- logging_rotating_file.setFormatter(logging.Formatter(
- '%(asctime)s %(levelname)-8s %(module)15s(%(lineno)3d): %(message)s'))
- logging.getLogger().addHandler(logging_rotating_file)
-
- return options, args
-
-
-class Profiler(object):
- """Context manager that records time spend inside its body."""
- def __init__(self, name):
- self.name = name
- self.start_time = None
-
- def __enter__(self):
- self.start_time = time.time()
- return self
-
- def __exit__(self, _exc_type, _exec_value, _traceback):
- time_taken = time.time() - self.start_time
- logging.info('Profiling: Section %s took %3.3f seconds',
- self.name, time_taken)
-
-
-class Unbuffered(object):
- """Disable buffering on a file object."""
- def __init__(self, stream):
- self.stream = stream
-
- def write(self, data):
- self.stream.write(data)
- if '\n' in data:
- self.stream.flush()
-
- def __getattr__(self, attr):
- return getattr(self.stream, attr)
-
-
-def disable_buffering():
- """Makes this process and child processes stdout unbuffered."""
- if not os.environ.get('PYTHONUNBUFFERED'):
- # Since sys.stdout is a C++ object, it's impossible to do
- # sys.stdout.write = lambda...
- sys.stdout = Unbuffered(sys.stdout)
- os.environ['PYTHONUNBUFFERED'] = 'x'
-
-
-def fix_python_path(cmd):
- """Returns the fixed command line to call the right python executable."""
- out = cmd[:]
- if out[0] == 'python':
- out[0] = sys.executable
- elif out[0].endswith('.py'):
- out.insert(0, sys.executable)
- return out
-
-
-def report_error(error):
- """Prints a error to stderr, wrapping it into header and footer.
-
- That way errors can be reliably extracted from logs. It's indented to be used
- only for non recoverable unexpected errors. Is should NOT be used for input
- validation, command line argument errors, etc.
-
- Arguments:
- error: error message string (possibly multiple lines) or an instance of
- Exception subclass. In the later case a traceback will also be
- reported. It's assumed that |report_error| is called in an except
- block where |error| was caught.
- """
- print >> sys.stderr, '[------ Swarming Error ------]'
- print >> sys.stderr, str(error)
- if isinstance(error, Exception):
- print >> sys.stderr, traceback.format_exc(),
- print >> sys.stderr, '[----------------------------]'
« no previous file with comments | « swarm_client/utils/threading_utils.py ('k') | swarm_client/utils/zip_package.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698