Source code for mud_examples.utils

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import os
import types
import importlib


[docs]def check_dir(directory): if not os.path.exists(directory): os.makedirs(directory)
[docs]def make_2d_normal_mesh(N=50, window=1): """ Constructs mesh based on normal distribution to discretize each axis. >>> from mud_examples.utils import make_2d_normal_mesh >>> x, y, XX = make_2d_normal_mesh(3) >>> print(XX) [[-1. -1.] [ 0. -1.] [ 1. -1.] [-1. 0.] [ 0. 0.] [ 1. 0.] [-1. 1.] [ 0. 1.] [ 1. 1.]] """ X = np.linspace(-window, window, N) Y = np.linspace(-window, window, N) X, Y = np.meshgrid(X, Y) XX = np.vstack([X.ravel(), Y.ravel()]).T return (X, Y, XX)
[docs]def make_2d_unit_mesh(N=50, window=1): """ Constructs mesh based on uniform distribution to discretize each axis. >>> from mud_examples.utils import make_2d_unit_mesh >>> x, y, XX = make_2d_unit_mesh(3) >>> print(XX) [[0. 0. ] [0.5 0. ] [1. 0. ] [0. 0.5] [0.5 0.5] [1. 0.5] [0. 1. ] [0.5 1. ] [1. 1. ]] """ X = np.linspace(0, window, N) Y = np.linspace(0, window, N) X, Y = np.meshgrid(X, Y) XX = np.vstack([X.ravel(), Y.ravel()]).T return (X, Y, XX)
[docs]class LazyLoader(types.ModuleType): def __init__(self, module_name="utensor_cgen", submod_name=None): self._module_name = "{}{}".format( module_name, submod_name and ".{}".format(submod_name) or "" ) self._mod = None super(LazyLoader, self).__init__(self._module_name) def _load(self): if self._mod is None: self._mod = importlib.import_module(self._module_name) return self._mod def __getattr__(self, attrb): try: return getattr(self._load(), attrb) except ModuleNotFoundError: pass def __dir__(self): return dir(self._load())