Compare commits
72 Commits
svn-branch
...
boost-1.58
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1e9eb303a | ||
|
|
9eee9ef461 | ||
|
|
fe24ab9dd5 | ||
|
|
a911c17fd6 | ||
|
|
8d5d777ebb | ||
|
|
17a7655c74 | ||
|
|
832a1edd79 | ||
|
|
ca18dc9daa | ||
|
|
8cc149f4f4 | ||
|
|
a3f478e9af | ||
|
|
46796f3413 | ||
|
|
0b8b88abc7 | ||
|
|
76db3311ed | ||
|
|
7acb544b47 | ||
|
|
f054b64315 | ||
|
|
9064a063b2 | ||
|
|
fa24dbb88f | ||
|
|
49e8699b9f | ||
|
|
cfa2baf8c9 | ||
|
|
faf3cd0b78 | ||
|
|
a5e564be83 | ||
|
|
dcc3590907 | ||
|
|
74daea3d88 | ||
|
|
e28f0509d8 | ||
|
|
0a211a746d | ||
|
|
ba213663b6 | ||
|
|
736ba48c2b | ||
|
|
6066ffef9a | ||
|
|
f759e9eb0e | ||
|
|
846c5d9914 | ||
|
|
65b3aadc63 | ||
|
|
e13ebcd0e8 | ||
|
|
63a3f188b8 | ||
|
|
34b162738f | ||
|
|
569b395cdd | ||
|
|
4b9cb5337d | ||
|
|
86db60255a | ||
|
|
37b45d2baf | ||
|
|
471be524f4 | ||
|
|
e485244886 | ||
|
|
b9cd3ff109 | ||
|
|
d804f1250e | ||
|
|
89100353db | ||
|
|
46be73387c | ||
|
|
d685a5e8c5 | ||
|
|
e80224b1ad | ||
|
|
03fdf5b992 | ||
|
|
73b4cd3325 | ||
|
|
f7d31f6ead | ||
|
|
47bb3f55a7 | ||
|
|
6296bd5bc4 | ||
|
|
217250f078 | ||
|
|
29152af56c | ||
|
|
19846f5d79 | ||
|
|
a1924a2a72 | ||
|
|
c205cd86c6 | ||
|
|
8d86dc199c | ||
|
|
55e9ff14a1 | ||
|
|
4fea58f634 | ||
|
|
694ae13063 | ||
|
|
5168895803 | ||
|
|
c8bf94663c | ||
|
|
928a9389ce | ||
|
|
7d22435994 | ||
|
|
96dd880146 | ||
|
|
63f8e9f3d7 | ||
|
|
d9b4ada654 | ||
|
|
f5df393360 | ||
|
|
bf33b54638 | ||
|
|
87451007b9 | ||
|
|
2392a6a3e2 | ||
|
|
6c1e7decfa |
BIN
build/Attic/python_v1.zip
Normal file
0
doc/PyConDC_2003/bpl.html
Normal file → Executable file
0
doc/PyConDC_2003/bpl.pdf
Normal file → Executable file
0
doc/PyConDC_2003/python_cpp_mix.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
0
doc/PyConDC_2003/python_cpp_mix.png
Normal file → Executable file
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
0
doc/internals.html
Normal file → Executable file
0
doc/internals.rst
Normal file → Executable file
0
doc/tutorial/doc/html/images/alert.png
Normal file → Executable file
|
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
0
doc/tutorial/doc/html/images/home.png
Normal file → Executable file
|
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 358 B |
0
doc/tutorial/doc/html/images/next.png
Normal file → Executable file
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
0
doc/tutorial/doc/html/images/note.png
Normal file → Executable file
|
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 658 B |
0
doc/tutorial/doc/html/images/prev.png
Normal file → Executable file
|
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 334 B |
0
doc/tutorial/doc/html/images/tip.png
Normal file → Executable file
|
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 640 B |
0
doc/tutorial/doc/html/images/up.png
Normal file → Executable file
|
Before Width: | Height: | Size: 370 B After Width: | Height: | Size: 370 B |
0
doc/v2/instance_holder.html
Normal file → Executable file
0
doc/v2/lvalue_from_pytype.html
Normal file → Executable file
0
doc/v2/operators.html
Normal file → Executable file
0
doc/v2/raw_function.html
Normal file → Executable file
0
doc/v2/return_arg.html
Normal file → Executable file
0
doc/v2/stl_iterator.html
Normal file → Executable file
0
doc/v2/type_id.html
Normal file → Executable file
0
doc/v2/wrapper.html
Normal file → Executable file
0
example/boost-build.jam
Normal file → Executable file
@@ -53,7 +53,6 @@
|
||||
# include <boost/python/pointee.hpp>
|
||||
# include <boost/python/pure_virtual.hpp>
|
||||
# include <boost/python/ptr.hpp>
|
||||
# include <boost/python/raw_function.hpp>
|
||||
# include <boost/python/reference_existing_object.hpp>
|
||||
# include <boost/python/register_ptr_to_python.hpp>
|
||||
# include <boost/python/return_arg.hpp>
|
||||
@@ -62,9 +61,7 @@
|
||||
# include <boost/python/return_value_policy.hpp>
|
||||
# include <boost/python/scope.hpp>
|
||||
# include <boost/python/self.hpp>
|
||||
# include <boost/python/slice.hpp>
|
||||
# include <boost/python/slice_nil.hpp>
|
||||
# include <boost/python/stl_iterator.hpp>
|
||||
# include <boost/python/str.hpp>
|
||||
# include <boost/python/to_python_converter.hpp>
|
||||
# include <boost/python/to_python_indirect.hpp>
|
||||
|
||||
0
include/boost/python/arg_from_python.hpp
Normal file → Executable file
0
include/boost/python/base_type_traits.hpp
Normal file → Executable file
0
include/boost/python/borrowed.hpp
Normal file → Executable file
0
include/boost/python/cast.hpp
Normal file → Executable file
0
include/boost/python/converter/arg_from_python.hpp
Normal file → Executable file
0
include/boost/python/converter/arg_to_python.hpp
Normal file → Executable file
0
include/boost/python/converter/arg_to_python_base.hpp
Normal file → Executable file
0
include/boost/python/converter/context_result_converter.hpp
Normal file → Executable file
0
include/boost/python/converter/object_manager.hpp
Normal file → Executable file
0
include/boost/python/converter/pytype_function.hpp
Normal file → Executable file
0
include/boost/python/converter/return_from_python.hpp
Normal file → Executable file
0
include/boost/python/def_visitor.hpp
Normal file → Executable file
0
include/boost/python/detail/borrowed_ptr.hpp
Normal file → Executable file
0
include/boost/python/detail/convertible.hpp
Normal file → Executable file
0
include/boost/python/detail/copy_ctor_mutates_rhs.hpp
Normal file → Executable file
0
include/boost/python/detail/def_helper_fwd.hpp
Normal file → Executable file
0
include/boost/python/detail/enable_if.hpp
Normal file → Executable file
0
include/boost/python/detail/force_instantiate.hpp
Normal file → Executable file
0
include/boost/python/detail/is_shared_ptr.hpp
Normal file → Executable file
0
include/boost/python/detail/is_wrapper.hpp
Normal file → Executable file
0
include/boost/python/detail/nullary_function_adaptor.hpp
Normal file → Executable file
0
include/boost/python/detail/prefix.hpp
Normal file → Executable file
0
include/boost/python/detail/python_type.hpp
Normal file → Executable file
0
include/boost/python/detail/sfinae.hpp
Normal file → Executable file
0
include/boost/python/detail/unwind_type.hpp
Normal file → Executable file
0
include/boost/python/detail/unwrap_type_id.hpp
Normal file → Executable file
0
include/boost/python/detail/unwrap_wrapper.hpp
Normal file → Executable file
0
include/boost/python/detail/value_arg.hpp
Normal file → Executable file
0
include/boost/python/detail/wrapper_base.hpp
Normal file → Executable file
0
include/boost/python/docstring_options.hpp
Normal file → Executable file
@@ -8,6 +8,7 @@
|
||||
# include <boost/python/detail/prefix.hpp>
|
||||
|
||||
# include <boost/bind.hpp>
|
||||
# include <boost/bind/placeholders.hpp>
|
||||
# include <boost/type.hpp>
|
||||
# include <boost/python/detail/translate_exception.hpp>
|
||||
# include <boost/python/detail/exception_handler.hpp>
|
||||
|
||||
0
include/boost/python/handle.hpp
Normal file → Executable file
0
include/boost/python/handle_fwd.hpp
Normal file → Executable file
0
include/boost/python/object.hpp
Normal file → Executable file
0
include/boost/python/object/function_doc_signature.hpp
Normal file → Executable file
0
include/boost/python/object/inheritance_query.hpp
Normal file → Executable file
0
include/boost/python/object/stl_iterator_core.hpp
Normal file → Executable file
@@ -348,7 +348,7 @@ namespace api
|
||||
// Macros for forwarding constructors in classes derived from
|
||||
// object. Derived classes will usually want these as an
|
||||
// implementation detail
|
||||
# define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(derived, base) \
|
||||
# define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_(derived, base) \
|
||||
inline explicit derived(::boost::python::detail::borrowed_reference p) \
|
||||
: base(p) {} \
|
||||
inline explicit derived(::boost::python::detail::new_reference p) \
|
||||
@@ -356,6 +356,23 @@ namespace api
|
||||
inline explicit derived(::boost::python::detail::new_non_null_reference p) \
|
||||
: base(p) {}
|
||||
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
|
||||
# define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_
|
||||
# else
|
||||
// MSVC6 has a bug which causes an explicit template constructor to
|
||||
// be preferred over an appropriate implicit conversion operator
|
||||
// declared on the argument type. Normally, that would cause a
|
||||
// runtime failure when using extract<T> to extract a type with a
|
||||
// templated constructor. This additional constructor will turn that
|
||||
// runtime failure into an ambiguity error at compile-time due to
|
||||
// the lack of partial ordering, or at least a link-time error if no
|
||||
// generalized template constructor is declared.
|
||||
# define BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(derived, base) \
|
||||
BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS_(derived, base) \
|
||||
template <class T> \
|
||||
explicit derived(extract<T> const&);
|
||||
# endif
|
||||
|
||||
//
|
||||
// object_initializer -- get the handle to construct the object with,
|
||||
// based on whether T is a proxy or derived from object
|
||||
|
||||
0
include/boost/python/object_items.hpp
Normal file → Executable file
0
include/boost/python/object_protocol_core.hpp
Normal file → Executable file
@@ -182,12 +182,13 @@ PyTypeObject opaque<Pointee>::type_object =
|
||||
# define BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID(Pointee) \
|
||||
namespace boost { namespace python { \
|
||||
template<> \
|
||||
inline type_info type_id<Pointee>() \
|
||||
inline type_info type_id<Pointee>(BOOST_PYTHON_EXPLICIT_TT_DEF(Pointee)) \
|
||||
{ \
|
||||
return type_info (typeid (Pointee *)); \
|
||||
} \
|
||||
template<> \
|
||||
inline type_info type_id<const volatile Pointee&>() \
|
||||
inline type_info type_id<const volatile Pointee&>( \
|
||||
BOOST_PYTHON_EXPLICIT_TT_DEF(const volatile Pointee&)) \
|
||||
{ \
|
||||
return type_info (typeid (Pointee *)); \
|
||||
} \
|
||||
|
||||
0
include/boost/python/other.hpp
Normal file → Executable file
0
include/boost/python/proxy.hpp
Normal file → Executable file
0
include/boost/python/pure_virtual.hpp
Normal file → Executable file
0
include/boost/python/raw_function.hpp
Normal file → Executable file
0
include/boost/python/refcount.hpp
Normal file → Executable file
0
include/boost/python/return_arg.hpp
Normal file → Executable file
0
include/boost/python/self.hpp
Normal file → Executable file
0
include/boost/python/stl_iterator.hpp
Normal file → Executable file
@@ -69,9 +69,11 @@ struct type_info : private totally_ordered<type_info>
|
||||
base_id_t m_base_type;
|
||||
};
|
||||
|
||||
|
||||
// This macro is obsolete. Port away and remove.
|
||||
# define BOOST_PYTHON_EXPLICIT_TT_DEF(T)
|
||||
# ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
# define BOOST_PYTHON_EXPLICIT_TT_DEF(T) ::boost::type<T>*
|
||||
# else
|
||||
# define BOOST_PYTHON_EXPLICIT_TT_DEF(T)
|
||||
# endif
|
||||
|
||||
template <class T>
|
||||
inline type_info type_id(BOOST_EXPLICIT_TEMPLATE_TYPE(T))
|
||||
@@ -97,7 +99,7 @@ inline type_info type_id(BOOST_EXPLICIT_TEMPLATE_TYPE(T))
|
||||
|
||||
# define BOOST_PYTHON_SIGNED_INTEGRAL_TYPE_ID(T) \
|
||||
template <> \
|
||||
inline type_info type_id<T>() \
|
||||
inline type_info type_id<T>(BOOST_PYTHON_EXPLICIT_TT_DEF(T)) \
|
||||
{ \
|
||||
return type_info(typeid(T)); \
|
||||
}
|
||||
@@ -171,13 +173,13 @@ BOOST_PYTHON_DECL std::ostream& operator<<(std::ostream&, type_info const&);
|
||||
|
||||
# if !BOOST_WORKAROUND(BOOST_MSVC, == 1200)
|
||||
template<>
|
||||
inline type_info type_id<void>()
|
||||
inline type_info type_id<void>(BOOST_PYTHON_EXPLICIT_TT_DEF(void))
|
||||
{
|
||||
return type_info (typeid (void *));
|
||||
}
|
||||
# ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
template<>
|
||||
inline type_info type_id<const volatile void>()
|
||||
inline type_info type_id<const volatile void>(BOOST_PYTHON_EXPLICIT_TT_DEF(const volatile void))
|
||||
{
|
||||
return type_info (typeid (void *));
|
||||
}
|
||||
|
||||
0
include/boost/python/wrapper.hpp
Normal file → Executable file
15
meta/libraries.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"key": "python",
|
||||
"name": "Python",
|
||||
"authors": [
|
||||
"Dave Abrahams"
|
||||
],
|
||||
"description": "The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes functions and objects to Python, and vice-versa, using no special tools -- just your C++ compiler.",
|
||||
"category": [
|
||||
"Inter-language"
|
||||
],
|
||||
"maintainers": [
|
||||
"Ralf Grosse-Kunstleve <rwgrosse-kunstleve -at- lbl.gov>",
|
||||
"Ravi Rajagopal <lists_ravi -at- lavabit.com>"
|
||||
]
|
||||
}
|
||||
18
src/exec.cpp
@@ -84,22 +84,24 @@ object BOOST_PYTHON_DECL exec_file(str filename, object global, object local)
|
||||
if (local.is_none()) local = global;
|
||||
// should be 'char const *' but older python versions don't use 'const' yet.
|
||||
char *f = python::extract<char *>(filename);
|
||||
#if PY_VERSION_HEX >= 0x03000000
|
||||
// TODO(bhy) temporary workaround for Python 3.
|
||||
// should figure out a way to avoid binary incompatibilities as the Python 2
|
||||
// version did.
|
||||
FILE *fs = fopen(f, "r");
|
||||
#else
|
||||
|
||||
// Let python open the file to avoid potential binary incompatibilities.
|
||||
#if PY_VERSION_HEX >= 0x03000000
|
||||
// See http://www.codeproject.com/Articles/820116/Embedding-Python-program-in-a-C-Cplusplus-code
|
||||
FILE *fs = _Py_fopen(f, "r");
|
||||
#else
|
||||
PyObject *pyfile = PyFile_FromString(f, const_cast<char*>("r"));
|
||||
if (!pyfile) throw std::invalid_argument(std::string(f) + " : no such file");
|
||||
python::handle<> file(pyfile);
|
||||
FILE *fs = PyFile_AsFile(file.get());
|
||||
#endif
|
||||
PyObject* result = PyRun_File(fs,
|
||||
|
||||
int closeit = 1; // Close file before PyRun returns
|
||||
PyObject* result = PyRun_FileEx(fs,
|
||||
f,
|
||||
Py_file_input,
|
||||
global.ptr(), local.ptr());
|
||||
global.ptr(), local.ptr(),
|
||||
closeit);
|
||||
if (!result) throw_error_already_set();
|
||||
return object(detail::new_reference(result));
|
||||
}
|
||||
|
||||