Skip to content
Snippets Groups Projects
Commit a1902413 authored by Timo Koch's avatar Timo Koch
Browse files

[python][cleanup][common] Mark internal helper functions as internal (won't be added to __all__)

parent 22aaa9ce
Branches
Tags
1 merge request!1050Cleanup/python
import logging
import os
import numpy as np
logger = logging.getLogger(__name__)
# default log level is INFO
loglevel = logging.INFO
try:
loglevel = getattr(logging, os.environ['DUNE_LOG_LEVEL'].upper())
......@@ -26,32 +28,44 @@ from ._common import *
from .deprecated import DeprecatedObject
from .externalmodule import registerExternalModule
import numpy
def fvgetitem(self,index):
def _fieldVectorGetItem(self,index):
try:
return self._getitem(index)
except TypeError:
return numpy.array(self,copy=False)[index]
finished = False
nr = 1
while not finished:
try:
cls = globals()["FieldVector_"+str(nr)]
setattr(cls, "_getitem", cls.__getitem__)
setattr(cls, "__getitem__", fvgetitem)
nr += 1
except KeyError:
finished = True
return np.array(self, copy=False)[index]
def _initializeFieldVector():
finished = False
nr = 1
while not finished:
try:
cls = globals()["FieldVector_" + str(nr)]
setattr(cls, "_getitem", cls.__getitem__)
setattr(cls, "__getitem__", _fieldVectorGetItem)
nr += 1
except KeyError:
finished = True
def loadvec(includes ,typeName ,constructors=None, methods=None):
_initializeFieldVector()
def _loadVec(includes ,typeName ,constructors=None, methods=None):
from dune.generator.generator import SimpleGenerator
from dune.common.hashit import hashIt
generatorvec = SimpleGenerator("FieldVector","Dune::Python")
generator = SimpleGenerator("FieldVector", "Dune::Python")
includes = includes + ["dune/python/common/fvector.hh"]
typeHash = "fieldvector_" + hashIt(typeName)
return generatorvec.load(includes ,typeName ,typeHash,
constructors ,methods, bufferProtocol=True)
return generator.load(
includes, typeName, typeHash,
constructors, methods, bufferProtocol=True
)
def FieldVector(values):
"""Construct a new FieldVector"""
values = list(values)
fv = "FieldVector_" + str(len(values))
try:
......@@ -59,10 +73,10 @@ def FieldVector(values):
except KeyError:
typeName = "Dune::FieldVector< double ," + str(len(values)) + " >"
includes = []
cls = loadvec(includes, typeName).FieldVector
cls = _loadVec(includes, typeName).FieldVector
setattr(cls, "_getitem", cls.__getitem__)
setattr(cls, "__getitem__", fvgetitem)
globals().update({fv:cls})
setattr(cls, "__getitem__", _fieldVectorGetItem)
globals().update({fv: cls})
return globals()[fv](values)
# implementation needs to be completed similar to the FV above
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment