Source code for ollin.movement_models
from importlib import import_module
import os
import glob
try:
from functools import lru_cache
except ImportError:
from backports.functools_lru_cache import lru_cache
@lru_cache()
def load_movement_model(model):
model_path = os.path.dirname(
os.path.dirname(os.path.abspath(__file__)))
model_path = os.path.join(
model_path, 'movement_models', '{}.py'.format(model))
if os.path.exists(model_path):
try:
cls = import_module(
'ollin.movement_models.{}'.format(model)).Model
return cls
except Exception as e:
print('Unexpected exception occured while loading model file')
raise e
def get_movement_model(model, parameters=None):
cls = load_movement_model(model)
return cls(parameters)
[docs]def get_movement_model_list():
"""Return all movement models in library."""
path = os.path.dirname(os.path.abspath(__file__))
python_files = [
os.path.basename(module)[:-3]
for module in glob.glob(os.path.join(path, '*.py'))]
movement_models = [
module for module in python_files
if (module != '__init__') and (module != 'base')]
return movement_models