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/checkouts/readthedocs.org/user_builds/wand/envs/0.6.4/lib/python3.7/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

alias of builtins.bytes


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


alias of io.RawIOBase


alias of builtins.str


alias of builtins.str

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.


alias of builtins.range