Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Olivier B.
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
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
Supports
Markdown
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