mirror of
https://github.com/pybind/pybind11.git
synced 2026-04-19 22:39:09 +00:00
Support raw string literals as input for py::eval (#766)
* Support raw string literals as input for py::eval * Dedent only when needed
This commit is contained in:
committed by
Wenzel Jakob
parent
6db60cd945
commit
194d8b99b3
@@ -20,11 +20,21 @@ test_initializer eval([](py::module &m) {
|
||||
return 42;
|
||||
});
|
||||
|
||||
auto result = py::eval<py::eval_statements>(
|
||||
"print('Hello World!');\n"
|
||||
"x = call_test();",
|
||||
// Regular string literal
|
||||
py::eval<py::eval_statements>(
|
||||
"message = 'Hello World!'\n"
|
||||
"x = call_test()",
|
||||
global, local
|
||||
);
|
||||
|
||||
// Multi-line raw string literal
|
||||
auto result = py::eval<py::eval_statements>(R"(
|
||||
if x == 42:
|
||||
print(message)
|
||||
else:
|
||||
raise RuntimeError
|
||||
)", global, local
|
||||
);
|
||||
auto x = local["x"].cast<int>();
|
||||
|
||||
return result == py::none() && x == 42;
|
||||
|
||||
Reference in New Issue
Block a user