summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Th?nault <sylvain.thenault@logilab.fr>2010-11-03 16:44:39 +0100
committerSylvain Th?nault <sylvain.thenault@logilab.fr>2010-11-03 16:44:39 +0100
commit553669e2fc8f8bcc8a5a72a514abb6405da1272c (patch)
tree26bc08b6dee04950dfd8e31b57d9b7d3ab2df452
parent5761ddccab78ee485e55f89d46a866da8bbcf577 (diff)
parent8cceca1baa01a39fb38c87757e36b7b0258bff55 (diff)
downloadlogilab-common-553669e2fc8f8bcc8a5a72a514abb6405da1272c.tar.gz
default is stable
-rw-r--r--__init__.py16
-rw-r--r--clcommands.py12
-rw-r--r--compat.py7
-rw-r--r--configuration.py2
-rw-r--r--fileutils.py2
-rw-r--r--graph.py9
-rw-r--r--testlib.py4
7 files changed, 34 insertions, 18 deletions
diff --git a/__init__.py b/__init__.py
index 558868e..d9c5e64 100644
--- a/__init__.py
+++ b/__init__.py
@@ -60,6 +60,22 @@ class nullobject(object):
def __nonzero__(self):
return False
+class tempattr(object):
+ def __init__(self, obj, attr, value):
+ self.obj = obj
+ self.attr = attr
+ self.value = value
+
+ def __enter__(self):
+ self.oldvalue = getattr(self.obj, self.attr)
+ setattr(self.obj, self.attr, self.value)
+ return self.obj
+
+ def __exit__(self, exctype, value, traceback):
+ setattr(self.obj, self.attr, self.oldvalue)
+
+
+
# flatten -----
# XXX move in a specific module and use yield instead
# do not mix flatten and translate
diff --git a/clcommands.py b/clcommands.py
index 1f08c0e..19a6c07 100644
--- a/clcommands.py
+++ b/clcommands.py
@@ -29,6 +29,7 @@ import logging
from os.path import basename
from logilab.common.configuration import Configuration
+from logilab.common.logging_ext import init_log, get_threshold
from logilab.common.deprecation import deprecated
@@ -99,10 +100,9 @@ class CommandLine(dict):
Terminate by :exc:`SystemExit`
"""
- from logilab.common import logging_ext
- logging_ext.init_log(debug=True, # so that we use StreamHandler
- logthreshold=self.logthreshold,
- logformat='%(levelname)s: %(message)s')
+ init_log(debug=True, # so that we use StreamHandler
+ logthreshold=self.logthreshold,
+ logformat='%(levelname)s: %(message)s')
try:
arg = args.pop(0)
except IndexError:
@@ -139,7 +139,7 @@ class CommandLine(dict):
logger = logging.Logger(self.pgm)
logger.handlers = [handler]
if logthreshold is None:
- logthreshold = self.logthreshold
+ logthreshold = get_threshold(self.logthreshold)
logger.setLevel(logthreshold)
return logger
@@ -148,7 +148,7 @@ class CommandLine(dict):
logger = self.logger
if logger is None:
logger = self.logger = logging.getLogger(self.pgm)
- logger.setLevel(self.logthreshold)
+ logger.setLevel(get_threshold(self.logthreshold))
return self[cmd](logger)
def usage(self):
diff --git a/compat.py b/compat.py
index 46bb496..7325087 100644
--- a/compat.py
+++ b/compat.py
@@ -69,8 +69,10 @@ if sys.version_info < (3, 0):
from cStringIO import StringIO
FileIO = file
BytesIO = StringIO
+ reload = reload
else:
from io import FileIO, BytesIO, StringIO
+ from imp import reload
# Where do pickles come from?
try:
@@ -87,8 +89,9 @@ except NameError:# Python 2.3 doesn't have `set`
from logilab.common.deprecation import deprecated
from itertools import izip, chain, imap
-izip = deprecated('izip exists in itertools since py2.3')(izip)
-imap = deprecated('imap exists in itertools since py2.3')(imap)
+if sys.version_info < (3, 0):# 2to3 will remove the imports
+ izip = deprecated('izip exists in itertools since py2.3')(izip)
+ imap = deprecated('imap exists in itertools since py2.3')(imap)
chain = deprecated('chain exists in itertools since py2.3')(chain)
sum = deprecated('sum exists in builtins since py2.3')(sum)
diff --git a/configuration.py b/configuration.py
index 4006813..8606de5 100644
--- a/configuration.py
+++ b/configuration.py
@@ -859,7 +859,7 @@ class OptionsProviderMixIn(object):
if option[0] == opt:
return option[1]
raise OptionError('no such option %s in section %r'
- % (self.name, opt), opt)
+ % (opt, self.name), opt)
def all_options(self):
diff --git a/fileutils.py b/fileutils.py
index aacd801..3d030e9 100644
--- a/fileutils.py
+++ b/fileutils.py
@@ -378,7 +378,7 @@ def export(from_dir, to_dir,
for filename in filenames:
# don't include binary files
# endswith does not accept tuple in 2.4
- if any(filename.endswith(ext) for ext in ignore_ext):
+ if any([filename.endswith(ext) for ext in ignore_ext]):
continue
src = join(directory, filename)
dest = to_dir + src[len(from_dir):]
diff --git a/graph.py b/graph.py
index 8c02016..908bb71 100644
--- a/graph.py
+++ b/graph.py
@@ -28,7 +28,7 @@ import os.path as osp
import os
import sys
import tempfile
-from logilab.common.compat import sorted, reversed
+from logilab.common.compat import sorted, reversed, str_encode
def escape(value):
"""Make <value> usable in a dot file."""
@@ -107,10 +107,7 @@ class DotBackend:
os.close(pdot)
os.close(ppng)
pdot = open(dot_sourcepath,'w')
- if isinstance(self.source, unicode):
- pdot.write(self.source.encode('UTF8'))
- else:
- pdot.write(self.source)
+ pdot.write(str_encode(self.source, 'utf8'))
pdot.close()
if target != 'dot':
if mapfile:
@@ -189,7 +186,7 @@ def ordered_nodes(graph):
ordered = []
while graph:
# sorted to get predictable results
- for node, deps in sorted(graph.items()):
+ for node, deps in sorted(graph.items(), key=id):
if not deps:
ordered.append(node)
del graph[node]
diff --git a/testlib.py b/testlib.py
index e17b427..58f32d6 100644
--- a/testlib.py
+++ b/testlib.py
@@ -52,9 +52,9 @@ import difflib
import types
import tempfile
import math
+import warnings
from shutil import rmtree
from operator import itemgetter
-import warnings
from ConfigParser import ConfigParser
from logilab.common.deprecation import deprecated
from itertools import dropwhile
@@ -1935,7 +1935,7 @@ def create_files(paths, chroot):
if not osp.isdir(dirpath):
os.makedirs(dirpath)
for filepath in files:
- file(filepath, 'w').close()
+ open(filepath, 'w').close()
def enable_dbc(*args):
"""