wand.compat — Compatibility layer

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

wand.compat.PY3 = True

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

wand.compat.abc = <module 'collections.abc' from '/home/docs/.asdf/installs/python/3.11.6/lib/python3.11/collections/abc.py'>

(module) Module containing abstract base classes. collections in Python 2 and collections.abc in Python 3.

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

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

  • string (bytes, str, unicode) – a string to cast it to binary_type

  • var (str) – an optional variable name to be used for error message


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


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

Changed in version 0.5.3: Added support for PEP-519 https://github.com/emcconville/wand/pull/339


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


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


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

wand.compat.to_bytes(value, string_pattern='{0}')

Short-cut method to allow mixed value types to be converted to bytes.

  • value (basestring, int, float) – Value to be cast to bytes

  • string_pattern (basestring) – String format to allow printf style control of bytes output.

New in version 0.6.4.


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