72 lines
No EOL
1.9 KiB
Python
72 lines
No EOL
1.9 KiB
Python
import random
|
|
import time
|
|
import os
|
|
import json
|
|
from openflexure_microscope.devel import MicroscopePlugin
|
|
|
|
from .api import DoAPI, TaskAPI
|
|
|
|
HERE = os.path.dirname(os.path.realpath(__file__))
|
|
FORM_PATH = os.path.join(HERE, "forms.json")
|
|
|
|
class ExamplePlugin(MicroscopePlugin):
|
|
"""
|
|
An example plugin using a comprehensive form
|
|
"""
|
|
global FORM_PATH
|
|
|
|
with open(FORM_PATH, 'r') as sc:
|
|
api_form = json.load(sc)
|
|
|
|
api_views = {
|
|
'/do': DoAPI,
|
|
'/task': TaskAPI
|
|
}
|
|
|
|
def __init__(self):
|
|
self.val_int = 10
|
|
self.val_str = "Hello"
|
|
self.val_radio = "First"
|
|
self.val_check = ["Foo", "Bar"]
|
|
self.val_select = "Most"
|
|
self.val_unused = "I'm an unused string, here to confuse the form parsing"
|
|
|
|
self.run_time = 5
|
|
|
|
def set_values(self, val_int, val_str, val_radio, val_check, val_select, val_disposable):
|
|
"""
|
|
Demonstrate a plugin with form
|
|
"""
|
|
if val_int:
|
|
self.val_int = int(val_int)
|
|
if val_str:
|
|
self.val_str = str(val_str)
|
|
if val_radio:
|
|
self.val_radio = val_radio
|
|
if val_check is not None:
|
|
print(val_check)
|
|
self.val_check = val_check if (type(val_check) is list) else [val_check]
|
|
if val_select:
|
|
self.val_select = val_select
|
|
|
|
if val_disposable:
|
|
print("DISPOSABLE VALUE: {}".format(val_disposable))
|
|
|
|
def get_values_dict(self):
|
|
return {
|
|
'val_int': self.val_int,
|
|
'val_str': self.val_str,
|
|
'val_radio': self.val_radio,
|
|
'val_check': self.val_check,
|
|
'val_select': self.val_select,
|
|
'val_unused': self.val_unused
|
|
}
|
|
|
|
def generate_random_numbers_for_a_while(self, run_time: int):
|
|
self.run_time = run_time
|
|
vals = []
|
|
for _ in range(run_time):
|
|
vals.append(random.random())
|
|
time.sleep(1)
|
|
|
|
return vals |