]> git.proxmox.com Git - ceph.git/blame - ceph/src/mgr/PythonCompat.h
update download target update for octopus release
[ceph.git] / ceph / src / mgr / PythonCompat.h
CommitLineData
11fdf7f2
TL
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3
4#pragma once
5
6#include <Python.h>
7
8// Python's pyconfig-64.h conflicts with ceph's acconfig.h
9#undef HAVE_SYS_WAIT_H
10#undef HAVE_UNISTD_H
11#undef HAVE_UTIME_H
12#undef _POSIX_C_SOURCE
13#undef _XOPEN_SOURCE
14
15#if PY_MAJOR_VERSION >= 3
16inline PyObject* PyString_FromString(const char *v) {
17 return PyUnicode_FromFormat("%s", v);
18}
19inline const char* PyString_AsString(PyObject *string) {
20 return PyUnicode_AsUTF8(string);
21}
22inline long PyInt_AsLong(PyObject *io) {
23 return PyLong_AsLong(io);
24}
25inline PyObject* PyInt_FromLong(long ival) {
26 return PyLong_FromLong(ival);
27}
28inline int PyString_Check(PyObject *o) {
29 return PyUnicode_Check(o);
30}
31inline PyObject* PyFloat_FromString(PyObject *s, void *arg) {
32 return PyFloat_FromString(s);
33}
34inline PyObject* PyInt_FromString(const char *str, char **pend, int base) {
35 return PyLong_FromString(str, pend, base);
36}
37#define PyString_Type PyUnicode_Type
38#endif