File: vtkPythonCompatibility.h

package info (click to toggle)
vtk9 9.5.2%2Bdfsg3-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 205,916 kB
  • sloc: cpp: 2,336,565; ansic: 327,116; python: 111,200; yacc: 4,104; java: 3,977; sh: 3,032; xml: 2,771; perl: 2,189; lex: 1,787; makefile: 178; javascript: 165; objc: 153; tcl: 59
file content (47 lines) | stat: -rw-r--r-- 1,912 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/*-----------------------------------------------------------------------
  This header contains macros to make Python 3 play nice.
  It must be included after vtkPython.h.
-----------------------------------------------------------------------*/
#ifndef vtkPythonCompatibility_h
#define vtkPythonCompatibility_h

// define our main check macro VTK_PY3K
#if PY_MAJOR_VERSION >= 3
#define VTK_PY3K
#endif

// Use this for PyUnicode_EncodeLocale, see PEP 383
#define VTK_PYUNICODE_ENC "surrogateescape"

// Buffer initialization
#define VTK_PYBUFFER_INITIALIZER                                                                   \
  {                                                                                                \
    nullptr, nullptr, 0, 0, 0, 0, nullptr, nullptr, nullptr, nullptr, nullptr                      \
  }

// PyTypeObject compatibility
#if PY_VERSION_HEX >= 0x030D0000
#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED nullptr, 0, nullptr, nullptr, 0, 0,
#elif PY_VERSION_HEX >= 0x030C0000
#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED nullptr, 0, nullptr, nullptr, 0,
#elif PY_VERSION_HEX >= 0x03090000
#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED nullptr, 0, nullptr, nullptr,
#elif PY_VERSION_HEX >= 0x03080000
#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED 0, 0, 0, 0, 0,
#else
#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED 0, 0, 0,
#endif

// Python 3.8 contains a deprecation marker on the `tp_print` field. Since some
// compilers are very touchy about this situation, just suppress the warning.
#if PY_VERSION_HEX < 0x03090000
// GCC-alike (but not Intel) need this.
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
#define VTK_PYTHON_NEEDS_DEPRECATION_WARNING_SUPPRESSION
#endif
#endif

#endif
// VTK-HeaderTest-Exclude: vtkPythonCompatibility.h