//- 💫 DOCS > API > TOP-LEVEL > COMPATIBILITY p | All Python code is written in an | #[strong intersection of Python 2 and Python 3]. This is easy in Cython, | but somewhat ugly in Python. Logic that deals with Python or platform | compatibility only lives in #[code spacy.compat]. To distinguish them from | the builtin functions, replacement functions are suffixed with an | underscore, e.e #[code unicode_]. +aside-code("Example"). from spacy.compat import unicode_, json_dumps compatible_unicode = unicode_('hello world') compatible_json = json_dumps({'key': 'value'}) +table(["Name", "Python 2", "Python 3"]) +row +cell #[code compat.bytes_] +cell #[code str] +cell #[code bytes] +row +cell #[code compat.unicode_] +cell #[code unicode] +cell #[code str] +row +cell #[code compat.basestring_] +cell #[code basestring] +cell #[code str] +row +cell #[code compat.input_] +cell #[code raw_input] +cell #[code input] +row +cell #[code compat.json_dumps] +cell #[code ujson.dumps] with #[code .decode('utf8')] +cell #[code ujson.dumps] +row +cell #[code compat.path2str] +cell #[code str(path)] with #[code .decode('utf8')] +cell #[code str(path)] +h(3, "is_config") compat.is_config +tag function p | Check if a specific configuration of Python version and operating system | matches the user's setup. Mostly used to display targeted error messages. +aside-code("Example"). from spacy.compat import is_config if is_config(python2=True, windows=True): print("You are using Python 2 on Windows.") +table(["Name", "Type", "Description"]) +row +cell #[code python2] +cell bool +cell spaCy is executed with Python 2.x. +row +cell #[code python3] +cell bool +cell spaCy is executed with Python 3.x. +row +cell #[code windows] +cell bool +cell spaCy is executed on Windows. +row +cell #[code linux] +cell bool +cell spaCy is executed on Linux. +row +cell #[code osx] +cell bool +cell spaCy is executed on OS X or macOS. +row("foot") +cell returns +cell bool +cell Whether the specified configuration matches the user's platform.