Skip to content
Snippets Groups Projects
Commit 62500c15 authored by Dr. Felix Tobias Schindler's avatar Dr. Felix Tobias Schindler
Browse files

[python] streamline

* prefix most .so with _mod_name, to identify cmake targets
* use same import mechanism
parent 7dbb63ea
No related branches found
No related tags found
2 merge requests!20Update bindings,!11WIP: Update bindings
Showing
with 70 additions and 85 deletions
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# Tobias Leibner (2019) # Tobias Leibner (2019)
# ~~~ # ~~~
add_subdirectory(grid)
add_subdirectory(common) add_subdirectory(common)
add_subdirectory(la)
add_subdirectory(functions) add_subdirectory(functions)
add_subdirectory(grid)
add_subdirectory(la)
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
dune_pybindxi_add_module(logging EXCLUDE_FROM_ALL logging.cc) dune_pybindxi_add_module(logging EXCLUDE_FROM_ALL logging.cc)
dune_pybindxi_add_module(timedlogging EXCLUDE_FROM_ALL timedlogging.cc) dune_pybindxi_add_module(timedlogging EXCLUDE_FROM_ALL timedlogging.cc)
dune_pybindxi_add_module(_empty EXCLUDE_FROM_ALL empty.cc) dune_pybindxi_add_module(_common_empty EXCLUDE_FROM_ALL empty.cc)
dune_pybindxi_add_module(_exceptions EXCLUDE_FROM_ALL exceptions.cc) dune_pybindxi_add_module(_common_exceptions EXCLUDE_FROM_ALL exceptions.cc)
dune_pybindxi_add_module(_mpi EXCLUDE_FROM_ALL mpi.cc) dune_pybindxi_add_module(_common_mpi EXCLUDE_FROM_ALL mpi.cc)
dune_pybindxi_add_module(_timings EXCLUDE_FROM_ALL timings.cc) dune_pybindxi_add_module(_common_timings EXCLUDE_FROM_ALL timings.cc)
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
from dune.xt import guarded_import from dune.xt import guarded_import
for mod_name in ( for mod_name in (
'_exceptions', '_common_exceptions',
'_mpi', '_common_mpi',
): ):
guarded_import(globals(), 'dune.xt.common', mod_name) guarded_import(globals(), 'dune.xt.common', mod_name)
...@@ -57,7 +57,8 @@ struct Terrier : Dog ...@@ -57,7 +57,8 @@ struct Terrier : Dog
{} {}
}; };
PYBIND11_MODULE(_empty, m)
PYBIND11_MODULE(_common_empty, m)
{ {
namespace py = pybind11; namespace py = pybind11;
using namespace pybind11::literals; using namespace pybind11::literals;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <dune/pybindxi/stl.h> #include <dune/pybindxi/stl.h>
PYBIND11_MODULE(_exceptions, m) PYBIND11_MODULE(_common_exceptions, m)
{ {
namespace py = pybind11; namespace py = pybind11;
using namespace pybind11::literals; using namespace pybind11::literals;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include <dune/xt/common/string.hh> #include <dune/xt/common/string.hh>
PYBIND11_MODULE(_mpi, m) PYBIND11_MODULE(_common_mpi, m)
{ {
using namespace Dune; using namespace Dune;
namespace py = pybind11; namespace py = pybind11;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <dune/common/parallel/mpihelper.hh> #include <dune/common/parallel/mpihelper.hh>
PYBIND11_MODULE(_timings, m) PYBIND11_MODULE(_common_timings, m)
{ {
namespace py = pybind11; namespace py = pybind11;
using namespace pybind11::literals; using namespace pybind11::literals;
......
...@@ -13,6 +13,6 @@ ...@@ -13,6 +13,6 @@
from dune.xt import guarded_import from dune.xt import guarded_import
guarded_import(globals(), 'dune.xt.common', '_timings') guarded_import(globals(), 'dune.xt.common', '_common_timings')
instance() instance()
...@@ -12,15 +12,15 @@ ...@@ -12,15 +12,15 @@
# Tobias Leibner (2019) # Tobias Leibner (2019)
# ~~~ # ~~~
dune_pybindxi_add_module(_function_interface_1d EXCLUDE_FROM_ALL function-interface-1d.cc) dune_pybindxi_add_module(_functions_function_interface_1d EXCLUDE_FROM_ALL function-interface-1d.cc)
dune_pybindxi_add_module(_function_interface_2d EXCLUDE_FROM_ALL function-interface-2d.cc) dune_pybindxi_add_module(_functions_function_interface_2d EXCLUDE_FROM_ALL function-interface-2d.cc)
dune_pybindxi_add_module(_function_interface_3d EXCLUDE_FROM_ALL function-interface-3d.cc) dune_pybindxi_add_module(_functions_function_interface_3d EXCLUDE_FROM_ALL function-interface-3d.cc)
dune_pybindxi_add_module(_gridfunction_interface_1d EXCLUDE_FROM_ALL gridfunction-interface-1d.cc) dune_pybindxi_add_module(_functions_gridfunction_interface_1d EXCLUDE_FROM_ALL gridfunction-interface-1d.cc)
dune_pybindxi_add_module(_gridfunction_interface_2d EXCLUDE_FROM_ALL gridfunction-interface-2d.cc) dune_pybindxi_add_module(_functions_gridfunction_interface_2d EXCLUDE_FROM_ALL gridfunction-interface-2d.cc)
dune_pybindxi_add_module(_gridfunction_interface_3d EXCLUDE_FROM_ALL gridfunction-interface-3d.cc) dune_pybindxi_add_module(_functions_gridfunction_interface_3d EXCLUDE_FROM_ALL gridfunction-interface-3d.cc)
dune_pybindxi_add_module(_checkerboard EXCLUDE_FROM_ALL checkerboard.cc) dune_pybindxi_add_module(_functions_checkerboard EXCLUDE_FROM_ALL checkerboard.cc)
dune_pybindxi_add_module(_constant EXCLUDE_FROM_ALL constant.cc) dune_pybindxi_add_module(_functions_constant EXCLUDE_FROM_ALL constant.cc)
dune_pybindxi_add_module(_expression EXCLUDE_FROM_ALL expression.cc) dune_pybindxi_add_module(_functions_expression EXCLUDE_FROM_ALL expression.cc)
dune_pybindxi_add_module(_function_as_grid_function EXCLUDE_FROM_ALL function-as-grid-function.cc) dune_pybindxi_add_module(_functions_function_as_grid_function EXCLUDE_FROM_ALL function-as-grid-function.cc)
dune_pybindxi_add_module(_indicator EXCLUDE_FROM_ALL indicator.cc) dune_pybindxi_add_module(_functions_indicator EXCLUDE_FROM_ALL indicator.cc)
dune_pybindxi_add_module(_spe10 EXCLUDE_FROM_ALL spe10.cc) dune_pybindxi_add_module(_functions_spe10 EXCLUDE_FROM_ALL spe10.cc)
...@@ -12,40 +12,21 @@ ...@@ -12,40 +12,21 @@
# Tobias Leibner (2019) # Tobias Leibner (2019)
# ~~~ # ~~~
from importlib import import_module from dune.xt import guarded_import
import dune.xt.common for mod_name in (
import dune.xt.la '_functions_function_interface_1d',
import dune.xt.grid '_functions_function_interface_2d',
'_functions_function_interface_3d',
'_functions_gridfunction_interface_1d',
'_functions_gridfunction_interface_2d',
'_functions_gridfunction_interface_3d',
'_functions_checkerboard',
'_functions_constant',
'_functions_expression',
'_functions_function_as_grid_function',
'_functions_indicator',
'_functions_spe10',
):
guarded_import(globals(), 'dune.xt.functions', mod_name)
_modules = (
'_function_interface_1d',
'_function_interface_2d',
'_function_interface_3d',
'_gridfunction_interface_1d',
'_gridfunction_interface_2d',
'_gridfunction_interface_3d',
'_checkerboard',
'_constant',
'_expression',
'_function_as_grid_function',
'_indicator',
'_spe10',
)
# see https://stackoverflow.com/questions/43059267/how-to-do-from-module-import-using-importlib
for mod_name in _modules:
try:
mod = import_module('.{}'.format(mod_name), 'dune.xt.functions')
if "__all__" in mod.__dict__:
names = mod.__dict__["__all__"]
else:
# otherwise we import all names that don't begin with _
names = [x for x in mod.__dict__ if not x.startswith("_")]
globals().update({k: getattr(mod, k) for k in names})
except ImportError as e:
import os
import logging
if os.environ.get('DXT_PYTHON_DEBUG', False):
raise e
logging.error('dune-xt-functions: could not import {} module'.format(mod_name))
...@@ -54,16 +54,16 @@ void all_grids<boost::tuples::null_type>(pybind11::module&) ...@@ -54,16 +54,16 @@ void all_grids<boost::tuples::null_type>(pybind11::module&)
{} {}
PYBIND11_MODULE(_checkerboard, m) PYBIND11_MODULE(_functions_checkerboard, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.grid"); py::module::import("dune.xt.grid");
py::module::import("dune.xt.functions._gridfunction_interface_1d"); py::module::import("dune.xt.functions._functions_gridfunction_interface_1d");
py::module::import("dune.xt.functions._gridfunction_interface_2d"); py::module::import("dune.xt.functions._functions_gridfunction_interface_2d");
py::module::import("dune.xt.functions._gridfunction_interface_3d"); py::module::import("dune.xt.functions._functions_gridfunction_interface_3d");
all_grids(m); all_grids(m);
} // PYBIND11_MODULE(...) } // PYBIND11_MODULE(...)
...@@ -23,15 +23,15 @@ ...@@ -23,15 +23,15 @@
#include "constant.hh" #include "constant.hh"
PYBIND11_MODULE(_constant, m) PYBIND11_MODULE(_functions_constant, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.functions._function_interface_1d"); py::module::import("dune.xt.functions._functions_function_interface_1d");
py::module::import("dune.xt.functions._function_interface_2d"); py::module::import("dune.xt.functions._functions_function_interface_2d");
py::module::import("dune.xt.functions._function_interface_3d"); py::module::import("dune.xt.functions._functions_function_interface_3d");
using namespace Dune::XT::Functions; using namespace Dune::XT::Functions;
......
...@@ -23,15 +23,15 @@ ...@@ -23,15 +23,15 @@
#include "expression.hh" #include "expression.hh"
PYBIND11_MODULE(_expression, m) PYBIND11_MODULE(_functions_expression, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.functions._function_interface_1d"); py::module::import("dune.xt.functions._functions_function_interface_1d");
py::module::import("dune.xt.functions._function_interface_2d"); py::module::import("dune.xt.functions._functions_function_interface_2d");
py::module::import("dune.xt.functions._function_interface_3d"); py::module::import("dune.xt.functions._functions_function_interface_3d");
using namespace Dune::XT::Functions; using namespace Dune::XT::Functions;
......
...@@ -54,16 +54,19 @@ void all_grids<boost::tuples::null_type>(pybind11::module&) ...@@ -54,16 +54,19 @@ void all_grids<boost::tuples::null_type>(pybind11::module&)
{} {}
PYBIND11_MODULE(_function_as_grid_function, m) PYBIND11_MODULE(_functions_function_as_grid_function, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.grid"); py::module::import("dune.xt.grid");
py::module::import("dune.xt.functions._gridfunction_interface_1d"); py::module::import("dune.xt.functions._functions_function_interface_1d");
py::module::import("dune.xt.functions._gridfunction_interface_2d"); py::module::import("dune.xt.functions._functions_function_interface_2d");
py::module::import("dune.xt.functions._gridfunction_interface_3d"); py::module::import("dune.xt.functions._functions_function_interface_3d");
py::module::import("dune.xt.functions._functions_gridfunction_interface_1d");
py::module::import("dune.xt.functions._functions_gridfunction_interface_2d");
py::module::import("dune.xt.functions._functions_gridfunction_interface_3d");
all_grids(m); all_grids(m);
} }
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "function-interface.hh" #include "function-interface.hh"
PYBIND11_MODULE(_function_interface_1d, m) PYBIND11_MODULE(_functions_function_interface_1d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "function-interface.hh" #include "function-interface.hh"
PYBIND11_MODULE(_function_interface_2d, m) PYBIND11_MODULE(_functions_function_interface_2d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "function-interface.hh" #include "function-interface.hh"
PYBIND11_MODULE(_function_interface_3d, m) PYBIND11_MODULE(_functions_function_interface_3d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
......
...@@ -38,14 +38,14 @@ void bind_all_1d_grids<boost::tuples::null_type>(pybind11::module&) ...@@ -38,14 +38,14 @@ void bind_all_1d_grids<boost::tuples::null_type>(pybind11::module&)
{} {}
PYBIND11_MODULE(_gridfunction_interface_1d, m) PYBIND11_MODULE(_functions_gridfunction_interface_1d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.grid"); py::module::import("dune.xt.grid");
py::module::import("dune.xt.functions._function_interface_1d"); py::module::import("dune.xt.functions._functions_function_interface_1d");
bind_all_1d_grids(m); bind_all_1d_grids(m);
} // PYBIND11_MODULE(...) } // PYBIND11_MODULE(...)
...@@ -38,14 +38,14 @@ void bind_all_2d_grids<boost::tuples::null_type>(pybind11::module&) ...@@ -38,14 +38,14 @@ void bind_all_2d_grids<boost::tuples::null_type>(pybind11::module&)
{} {}
PYBIND11_MODULE(_gridfunction_interface_2d, m) PYBIND11_MODULE(_functions_gridfunction_interface_2d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.grid"); py::module::import("dune.xt.grid");
py::module::import("dune.xt.functions._function_interface_2d"); py::module::import("dune.xt.functions._functions_function_interface_2d");
bind_all_2d_grids(m); bind_all_2d_grids(m);
} // PYBIND11_MODULE(...) } // PYBIND11_MODULE(...)
...@@ -38,14 +38,14 @@ void bind_all_3d_grids<boost::tuples::null_type>(pybind11::module&) ...@@ -38,14 +38,14 @@ void bind_all_3d_grids<boost::tuples::null_type>(pybind11::module&)
{} {}
PYBIND11_MODULE(_gridfunction_interface_3d, m) PYBIND11_MODULE(_functions_gridfunction_interface_3d, m)
{ {
namespace py = pybind11; namespace py = pybind11;
py::module::import("dune.xt.common"); py::module::import("dune.xt.common");
py::module::import("dune.xt.la"); py::module::import("dune.xt.la");
py::module::import("dune.xt.grid"); py::module::import("dune.xt.grid");
py::module::import("dune.xt.functions._function_interface_3d"); py::module::import("dune.xt.functions._functions_function_interface_3d");
bind_all_3d_grids(m); bind_all_3d_grids(m);
} // PYBIND11_MODULE(...) } // PYBIND11_MODULE(...)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment