wand.compat — Compatibility layer

This module provides several subtle things to support multiple Python versions (2.6, 2.7, 3.2, 3.3) and VM implementations (CPython, PyPy).

wand.compat.PY3 = False

(bool) Whether it is Python 3.x or not.

wand.compat.binary(string, var=None)

Makes string to str in Python 2. Makes string to bytes in Python 3.

Parameters:
  • string (bytes, str, unicode) – a string to cast it to binary_type
  • var (str) – an optional variable name to be used for error message
wand.compat.binary_type

(type) Type for representing binary data. str in Python 2 and bytes in Python 3.

alias of str

wand.compat.encode_filename(filename)

If filename is a text_type, encode it to binary_type according to filesystem’s default encoding.

wand.compat.file_types = (<class 'io.RawIOBase'>, <type 'file'>)

(type, tuple) Types for file objects that have fileno().

wand.compat.nested(*args, **kwds)

Combine multiple context managers into a single nested context manager.

This function has been deprecated in favour of the multiple manager form of the with statement.

The one advantage of this function over the multiple manager form of the with statement is that argument unpacking allows it to be used with a variable number of context managers as follows:

with nested(*managers):
do_something()
wand.compat.string_type

(type) Type for text data. basestring in Python 2 and str in Python 3.

alias of basestring

wand.compat.text(string)

Makes string to str in Python 3. Does nothing in Python 2.

Parameters:string (bytes, str, unicode) – a string to cast it to text_type
wand.compat.text_type

(type) Type for representing Unicode textual data. unicode in Python 2 and str in Python 3.

alias of unicode

class wand.compat.xrange

The xrange() function. Alias for range() in Python 3.