From 5bce4ce9834c0e9d24135ac429bc99ec1f2b5701 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Thu, 12 Oct 2023 14:33:38 +0200 Subject: [PATCH] fixed modules --- morbidissimo/__init__.py | 6 +++ morbidissimo/modman/__init__.py | 4 ++ morbidissimo/modman/modman.py | 4 +- morbidissimo/modman/module.py | 6 +-- morbidissimo/modman/run.py | 2 +- morbidissimo/modman/task.py | 2 +- morbidissimo/morioc/__init__.py | 4 ++ morbidissimo/morioc/morioc.py | 8 ++-- morbidissimo/morioc/pvinfoset.py | 4 +- morbidissimo/morioc/run.py | 2 +- morbidissimo/morioc/test_infer_type.py | 2 +- run-modman.py | 11 +++++ run-morioc.py | 63 ++++++++++++++++++++++++++ 13 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 morbidissimo/__init__.py create mode 100644 morbidissimo/modman/__init__.py create mode 100644 morbidissimo/morioc/__init__.py create mode 100755 run-modman.py create mode 100755 run-morioc.py diff --git a/morbidissimo/__init__.py b/morbidissimo/__init__.py new file mode 100644 index 0000000..5ba45ad --- /dev/null +++ b/morbidissimo/__init__.py @@ -0,0 +1,6 @@ + +from .modman import ModuleManager +from .morioc import MorIOC +from .sendmail import sendmail, Message, SendMailError + + diff --git a/morbidissimo/modman/__init__.py b/morbidissimo/modman/__init__.py new file mode 100644 index 0000000..3d17feb --- /dev/null +++ b/morbidissimo/modman/__init__.py @@ -0,0 +1,4 @@ + +from .modman import ModuleManager + + diff --git a/morbidissimo/modman/modman.py b/morbidissimo/modman/modman.py index 076593b..626e9b5 100644 --- a/morbidissimo/modman/modman.py +++ b/morbidissimo/modman/modman.py @@ -1,8 +1,8 @@ from time import sleep from pathlib import Path -from module import Module, ModuleLoadError, MissingEntryFunctionError -from utils import printable_exception +from .module import Module, ModuleLoadError, MissingEntryFunctionError +from .utils import printable_exception class ModuleManager: diff --git a/morbidissimo/modman/module.py b/morbidissimo/modman/module.py index 90a58cc..08e7938 100644 --- a/morbidissimo/modman/module.py +++ b/morbidissimo/modman/module.py @@ -1,8 +1,8 @@ from pathlib import Path -from importing import load_module -from task import Task -from utils import printable_exception +from .importing import load_module +from .task import Task +from .utils import printable_exception class Module: diff --git a/morbidissimo/modman/run.py b/morbidissimo/modman/run.py index 4d1c6b9..4780592 100755 --- a/morbidissimo/modman/run.py +++ b/morbidissimo/modman/run.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -from modman import ModuleManager +from .modman import ModuleManager folder = "scripts" diff --git a/morbidissimo/modman/task.py b/morbidissimo/modman/task.py index c4db38a..56bef80 100644 --- a/morbidissimo/modman/task.py +++ b/morbidissimo/modman/task.py @@ -1,6 +1,6 @@ from threading import Thread -from killthread import killthread +from .killthread import killthread class Task(Thread): diff --git a/morbidissimo/morioc/__init__.py b/morbidissimo/morioc/__init__.py new file mode 100644 index 0000000..1bb027a --- /dev/null +++ b/morbidissimo/morioc/__init__.py @@ -0,0 +1,4 @@ + +from .morioc import MorIOC + + diff --git a/morbidissimo/morioc/morioc.py b/morbidissimo/morioc/morioc.py index 6cef3d8..1ae7f61 100644 --- a/morbidissimo/morioc/morioc.py +++ b/morbidissimo/morioc/morioc.py @@ -3,10 +3,10 @@ from datetime import datetime from threading import Thread from pcaspy import SimpleServer, Driver -from channels import PV, Image -from context import Context -from pvinfoset import PVInfoSet -from managed import delete_managed +from .channels import PV, Image +from .context import Context +from .pvinfoset import PVInfoSet +from .managed import delete_managed INITIAL_PVDB = { #TODO make wait_time caput-able diff --git a/morbidissimo/morioc/pvinfoset.py b/morbidissimo/morioc/pvinfoset.py index 71a6e28..da46060 100644 --- a/morbidissimo/morioc/pvinfoset.py +++ b/morbidissimo/morioc/pvinfoset.py @@ -1,5 +1,5 @@ -from pvinfo import PVInfo -from managed import is_managed, get_managed_dtype +from .pvinfo import PVInfo +from .managed import is_managed, get_managed_dtype class PVInfoSet(set): diff --git a/morbidissimo/morioc/run.py b/morbidissimo/morioc/run.py index 29c79cd..ca6c9eb 100755 --- a/morbidissimo/morioc/run.py +++ b/morbidissimo/morioc/run.py @@ -5,7 +5,7 @@ from random import random, randint, choice from numpy.random import normal import numpy as np -from morioc import MorIOC +from .morioc import MorIOC if __name__ == "__main__": diff --git a/morbidissimo/morioc/test_infer_type.py b/morbidissimo/morioc/test_infer_type.py index 51ffd75..11ae977 100755 --- a/morbidissimo/morioc/test_infer_type.py +++ b/morbidissimo/morioc/test_infer_type.py @@ -6,7 +6,7 @@ import numpy as np import pytest -from pvinfo import infer_type as it +from .pvinfo import infer_type as it psfalse = partial(it, parse_string=False) pstrue = partial(it, parse_string=True) diff --git a/run-modman.py b/run-modman.py new file mode 100755 index 0000000..9de2912 --- /dev/null +++ b/run-modman.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +from morbidissimo import ModuleManager + + +folder = "morbidissimo/modman/scripts" +mm = ModuleManager(folder) +mm.run() + + + diff --git a/run-morioc.py b/run-morioc.py new file mode 100755 index 0000000..2c244f6 --- /dev/null +++ b/run-morioc.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python + +from time import sleep +from random import random, randint, choice +from numpy.random import normal +import numpy as np + +from morbidissimo import MorIOC + + +if __name__ == "__main__": + with MorIOC("mtest") as mor: + + ch_pv = mor.PV("chan-PV") + ch_img = mor.Image("chan-Image") + + for i in range(1000): + + ch_pv.put(random()) + + img = np.random.random(200).reshape(10, 20) + ch_img.put(img) + + + img = np.random.random(200).reshape(10, 20) + width, height = img.shape + mor.serve(**{ + "IMG:FPICTURE": img, + "IMG:WIDTH": width, + "IMG:HEIGHT": height, + }) + + arr = np.random.random(20).reshape(2, 10) + mor.serve( + arr = arr + ) + + mor.serve( + rand2 = 1.23, + ) + + mor.serve( + rand0 = normal(), + rand1 = random(), + rand2 = randint(100, 200), + rand3 = random() + 10, + rand4 = choice(["test", "bla", "blabla"]), + rand5 = "float" + ) + + mor.host( + bucket1 = int, + bucket2 = "float", + bucket3 = str + ) + + v = mor.get("bucket1") + mor.serve(test = v*2) + + sleep(0.5) + + +