added module::import statement
diff --git a/example/example9.cpp b/example/example9.cpp
index 81b6edc..f64b539 100644
--- a/example/example9.cpp
+++ b/example/example9.cpp
@@ -1,5 +1,6 @@
/*
- example/example9.cpp -- nested modules and internal references
+ example/example9.cpp -- nested modules, importing modules, and
+ internal references
Copyright (c) 2015 Wenzel Jakob <wenzel@inf.ethz.ch>
@@ -49,4 +50,6 @@
.def("get_a2", &B::get_a2, "Return the internal A 2", py::return_value_policy::reference_internal)
.def_readwrite("a1", &B::a1) // def_readonly uses an internal reference return policy by default
.def_readwrite("a2", &B::a2);
+
+ m.attr("OD") = py::module::import("collections").attr("OrderedDict");
}
diff --git a/example/example9.py b/example/example9.py
index 9a29353..2262fcf 100755
--- a/example/example9.py
+++ b/example/example9.py
@@ -9,6 +9,7 @@
print(example.submodule.__name__)
from example.submodule import *
+from example import OD
submodule_func()
@@ -26,3 +27,4 @@
print(b.get_a2())
print(b.a2)
+print(OD([(1, 'a'), (2, 'b')]))
diff --git a/example/example9.ref b/example/example9.ref
index c498077..9c78313 100644
--- a/example/example9.ref
+++ b/example/example9.ref
@@ -16,6 +16,7 @@
A[42]
A[43]
A[43]
+OrderedDict([(1, 'a'), (2, 'b')])
B destructor
A destructor
A destructor
diff --git a/include/pybind/pybind.h b/include/pybind/pybind.h
index 9ca1929..86fc609 100644
--- a/include/pybind/pybind.h
+++ b/include/pybind/pybind.h
@@ -466,6 +466,10 @@
attr(name) = result;
return result;
}
+
+ static module import(const char *name) {
+ return module(PyImport_ImportModule(name), false);
+ }
};
NAMESPACE_BEGIN(detail)