webhelpers.misc
¶
Helpers that are neither text, numeric, container, or date.
Data processing¶
- webhelpers.misc.all(seq[, pred])¶
Is
pred(elm)
true for all elements?With the default predicate, this is the same as Python 2.5’s
all()
function; i.e., it returns true if all elements are true.>>> all(["A", "B"]) True >>> all(["A", ""]) False >>> all(["", ""]) False >>> all(["A", "B", "C"], lambda x: x <= "C") True >>> all(["A", "B", "C"], lambda x: x < "C") False
From recipe in itertools docs.
- webhelpers.misc.any(seq[, pred])¶
Is
pred(elm)
is true for any element?With the default predicate, this is the same as Python 2.5’s
any()
function; i.e., it returns true if any element is true.>>> any(["A", "B"]) True >>> any(["A", ""]) True >>> any(["", ""]) False >>> any(["A", "B", "C"], lambda x: x <= "C") True >>> any(["A", "B", "C"], lambda x: x < "C") True
From recipe in itertools docs.
- webhelpers.misc.no(seq[, pred])¶
Is
pred(elm)
false for all elements?With the default predicate, this returns true if all elements are false.
>>> no(["A", "B"]) False >>> no(["A", ""]) False >>> no(["", ""]) True >>> no(["A", "B", "C"], lambda x: x <= "C") False >>> no(["X", "Y", "Z"], lambda x: x <="C") True
From recipe in itertools docs.
- webhelpers.misc.count_true(seq[, pred])¶
How many elements is
pred(elm)
true for?With the default predicate, this counts the number of true elements.
>>> count_true([1, 2, 0, "A", ""]) 3 >>> count_true([1, "A", 2], lambda x: isinstance(x, int)) 2
This is equivalent to the
itertools.quantify
recipe, which I couldn’t get to work.
- webhelpers.misc.convert_or_none(value, type_)¶
Return the value converted to the type, or None if error.
type_
may be a Python type or any function taking one argument.>>> print convert_or_none("5", int) 5 >>> print convert_or_none("A", int) None
- webhelpers.misc.flatten(iterable)¶
Recursively iterate lists and tuples.
Examples:
>>> list(flatten([1, [2, 3], 4])) [1, 2, 3, 4] >>> list(flatten([1, (2, 3, [4]), 5])) [1, 2, 3, 4, 5]
Exceptions and deprecation¶
- webhelpers.misc.deprecate(message, pending=False, stacklevel=2)¶
Issue a deprecation warning.
message
: the deprecation message.pending
: if true, usePendingDeprecationWarning
. If false (default), useDeprecationWarning
. Python displays deprecations and ignores pending deprecations by default.stacklevel
: passed towarnings.warn
. The default level 2 makes the traceback end at the caller’s level. Higher numbers make it end at higher levels.
- webhelpers.misc.format_exception(exc=None)¶
Format the exception type and value for display, without the traceback.
This is the function you always wished were in the
traceback
module but isn’t. It’s different fromtraceback.format_exception
, which includes the traceback, returns a list of lines, and has a trailing newline.If you don’t provide an exception object as an argument, it will call
sys.exc_info()
to get the current exception.
- class webhelpers.misc.DeclarativeException(message=None)¶
A simpler way to define an exception with a fixed message.
Subclasses have a class attribute
.message
, which is used if no message is passed to the constructor. The default message is the empty string.Example:
>>> class MyException(DeclarativeException): ... message="can't frob the bar when foo is enabled" ... >>> try: ... raise MyException() ... except Exception, e: ... print e ... can't frob the bar when foo is enabled
- message = ''¶
- class webhelpers.misc.OverwriteError(filename, message="not overwriting '%s'")¶
Refusing to overwrite an existing file or directory.