Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
pybind11
Commits
53b26549
Commit
53b26549
authored
Jan 17, 2016
by
Wenzel Jakob
Browse files
python 3.2 compatiblity (closes #56)
parent
ba0732e7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
39 deletions
+42
-39
example/example2.py
example/example2.py
+2
-2
include/pybind11/common.h
include/pybind11/common.h
+38
-35
include/pybind11/pytypes.h
include/pybind11/pytypes.h
+2
-2
No files found.
example/example2.py
View file @
53b26549
...
...
@@ -30,11 +30,11 @@ dict_result['key2'] = 'value2'
instance
.
print_dict_2
(
dict_result
)
set_result
=
instance
.
get_set
()
set_result
.
add
(
u
'key3'
)
set_result
.
add
(
'key3'
)
instance
.
print_set
(
set_result
)
set_result
=
instance
.
get_set2
()
set_result
.
add
(
u
'key3'
)
set_result
.
add
(
'key3'
)
instance
.
print_set_2
(
set_result
)
list_result
=
instance
.
get_list
()
...
...
include/pybind11/common.h
View file @
53b26549
...
...
@@ -10,62 +10,65 @@
#pragma once
#if !defined(NAMESPACE_BEGIN)
#define NAMESPACE_BEGIN(name) namespace name {
#
define NAMESPACE_BEGIN(name) namespace name {
#endif
#if !defined(NAMESPACE_END)
#define NAMESPACE_END(name) }
#
define NAMESPACE_END(name) }
#endif
#if !defined(PYBIND11_EXPORT)
#if defined(WIN32) || defined(_WIN32)
#define PYBIND11_EXPORT __declspec(dllexport)
#else
#define PYBIND11_EXPORT __attribute__ ((visibility("default")))
#endif
#
if defined(WIN32) || defined(_WIN32)
#
define PYBIND11_EXPORT __declspec(dllexport)
#
else
#
define PYBIND11_EXPORT __attribute__ ((visibility("default")))
#
endif
#endif
#if defined(_MSC_VER)
#define PYBIND11_NOINLINE __declspec(noinline)
#
define PYBIND11_NOINLINE __declspec(noinline)
#else
#define PYBIND11_NOINLINE __attribute__ ((noinline))
#
define PYBIND11_NOINLINE __attribute__ ((noinline))
#endif
#include <vector>
#include <string>
#include <stdexcept>
#include <unordered_set>
#include <unordered_map>
#include <memory>
/// Include Python header, disable linking to pythonX_d.lib on Windows in debug mode
#if defined(_MSC_VER)
#define HAVE_ROUND
#pragma warning(push)
#pragma warning(disable: 4510 4610 4512 4005)
#if _DEBUG
#define _DEBUG_MARKER
#undef _DEBUG
#endif
#
define HAVE_ROUND
#
pragma warning(push)
#
pragma warning(disable: 4510 4610 4512 4005)
#
if _DEBUG
#
define _DEBUG_MARKER
#
undef _DEBUG
#
endif
#endif
#include <Python.h>
#include <frameobject.h>
#ifdef isalnum
#undef isalnum
#undef isalpha
#undef islower
#undef isspace
#undef isupper
#undef tolower
#undef toupper
#
undef isalnum
#
undef isalpha
#
undef islower
#
undef isspace
#
undef isupper
#
undef tolower
#
undef toupper
#endif
#if defined(_MSC_VER)
#if defined(_DEBUG_MARKER)
#define _DEBUG
#undef _DEBUG_MARKER
#
if defined(_DEBUG_MARKER)
#
define _DEBUG
#
undef _DEBUG_MARKER
#endif
#pragma warning(pop)
#
pragma warning(pop)
#endif
#include <vector>
#include <string>
#include <stdexcept>
#include <unordered_set>
#include <unordered_map>
#include <memory>
#if PY_MAJOR_VERSION >= 3 /// Compatibility macros for various Python versions
#define PYBIND11_BYTES_CHECK PyBytes_Check
#define PYBIND11_BYTES_FROM_STRING PyBytes_FromString
...
...
include/pybind11/pytypes.h
View file @
53b26549
...
...
@@ -248,13 +248,13 @@ public:
}
operator
std
::
string
()
const
{
#if PY_MAJOR_VERSION >= 3
#if PY_MAJOR_VERSION >= 3
&& PY_MINOR_VERSION >= 3
return
PyUnicode_AsUTF8
(
m_ptr
);
#else
object
temp
(
PyUnicode_AsUTF8String
(
m_ptr
),
false
);
if
(
temp
.
ptr
()
==
nullptr
)
pybind11_fail
(
"Unable to extract string contents!"
);
return
P
yString_AsString
(
temp
.
ptr
());
return
P
YBIND11_BYTES_AS_STRING
(
temp
.
ptr
());
#endif
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment