some cleanup of unneeded imports and other small cleanups
This commit is contained in:
@ -1,25 +1,22 @@
|
|||||||
|
|
||||||
import copy
|
import copy
|
||||||
import hashlib
|
import hashlib
|
||||||
import inspect
|
|
||||||
import json
|
import json
|
||||||
import nbformat
|
import nbformat
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from multiprocessing.connection import Connection, wait as multi_wait
|
from multiprocessing.connection import Connection, wait as multi_wait
|
||||||
from multiprocessing.queues import Queue
|
from multiprocessing.queues import Queue
|
||||||
from papermill.translators import papermill_translators
|
from papermill.translators import papermill_translators
|
||||||
from typing import Any, Union
|
from typing import Any
|
||||||
from random import SystemRandom
|
from random import SystemRandom
|
||||||
|
|
||||||
#from core.meow import BasePattern, BaseRecipe, BaseRule
|
from core.correctness.validation import check_type, valid_existing_file_path, \
|
||||||
from core.correctness.validation import check_type, valid_dict, valid_list, \
|
valid_path
|
||||||
valid_existing_file_path, valid_path
|
|
||||||
from core.correctness.vars import CHAR_LOWERCASE, CHAR_UPPERCASE, \
|
from core.correctness.vars import CHAR_LOWERCASE, CHAR_UPPERCASE, \
|
||||||
VALID_CHANNELS, HASH_BUFFER_SIZE, SHA256, DEBUG_WARNING, DEBUG_ERROR, \
|
VALID_CHANNELS, HASH_BUFFER_SIZE, SHA256, DEBUG_WARNING, DEBUG_INFO, \
|
||||||
DEBUG_INFO, EVENT_TYPE
|
EVENT_TYPE
|
||||||
|
|
||||||
def generate_id(prefix:str="", length:int=16, existing_ids:list[str]=[],
|
def generate_id(prefix:str="", length:int=16, existing_ids:list[str]=[],
|
||||||
charset:str=CHAR_UPPERCASE+CHAR_LOWERCASE, attempts:int=24):
|
charset:str=CHAR_UPPERCASE+CHAR_LOWERCASE, attempts:int=24):
|
||||||
|
10
core/meow.py
10
core/meow.py
@ -8,7 +8,7 @@ from typing import Any, Union
|
|||||||
|
|
||||||
from core.correctness.vars import VALID_RECIPE_NAME_CHARS, \
|
from core.correctness.vars import VALID_RECIPE_NAME_CHARS, \
|
||||||
VALID_PATTERN_NAME_CHARS, VALID_RULE_NAME_CHARS, VALID_CHANNELS, \
|
VALID_PATTERN_NAME_CHARS, VALID_RULE_NAME_CHARS, VALID_CHANNELS, \
|
||||||
get_drt_imp_msg, DEBUG_WARNING, DEBUG_INFO, DEBUG_ERROR
|
get_drt_imp_msg, DEBUG_WARNING, DEBUG_INFO
|
||||||
from core.correctness.validation import valid_string, check_type, \
|
from core.correctness.validation import valid_string, check_type, \
|
||||||
check_implementation, valid_list, valid_dict, setup_debugging
|
check_implementation, valid_list, valid_dict, setup_debugging
|
||||||
from core.functionality import print_debug, wait, generate_id
|
from core.functionality import print_debug, wait, generate_id
|
||||||
@ -208,8 +208,8 @@ class MeowRunner:
|
|||||||
|
|
||||||
def start(self)->None:
|
def start(self)->None:
|
||||||
self.monitor.start()
|
self.monitor.start()
|
||||||
#if hasattr(self.handler, "start"):
|
if hasattr(self.handler, "start"):
|
||||||
# self.handler.start()
|
self.handler.start()
|
||||||
|
|
||||||
if self._worker is None:
|
if self._worker is None:
|
||||||
self._worker = threading.Thread(
|
self._worker = threading.Thread(
|
||||||
@ -228,8 +228,8 @@ class MeowRunner:
|
|||||||
|
|
||||||
def stop(self)->None:
|
def stop(self)->None:
|
||||||
self.monitor.stop()
|
self.monitor.stop()
|
||||||
#if hasattr(self.handler, "stop"):
|
if hasattr(self.handler, "stop"):
|
||||||
# self.handler.stop()
|
self.handler.stop()
|
||||||
|
|
||||||
if self._worker is None:
|
if self._worker is None:
|
||||||
msg = "Cannot stop thread that is not started."
|
msg = "Cannot stop thread that is not started."
|
||||||
|
@ -114,47 +114,6 @@ class PapermillHandler(BaseHandler):
|
|||||||
print_debug(self._print_target, self.debug_level,
|
print_debug(self._print_target, self.debug_level,
|
||||||
"Created new PapermillHandler instance", DEBUG_INFO)
|
"Created new PapermillHandler instance", DEBUG_INFO)
|
||||||
|
|
||||||
# def run(self)->None:
|
|
||||||
# all_inputs = self.inputs + [self._stop_pipe[0]]
|
|
||||||
# while True:
|
|
||||||
# ready = wait(all_inputs)
|
|
||||||
#
|
|
||||||
# if self._stop_pipe[0] in ready:
|
|
||||||
# return
|
|
||||||
# else:
|
|
||||||
# for input in self.inputs:
|
|
||||||
# if input in ready:
|
|
||||||
# message = input.recv()
|
|
||||||
# event = message
|
|
||||||
# self.handle(event)
|
|
||||||
#
|
|
||||||
# def start(self)->None:
|
|
||||||
# if self._worker is None:
|
|
||||||
# self._worker = threading.Thread(
|
|
||||||
# target=self.run,
|
|
||||||
# args=[])
|
|
||||||
# self._worker.daemon = True
|
|
||||||
# self._worker.start()
|
|
||||||
# print_debug(self._print_target, self.debug_level,
|
|
||||||
# "Starting PapermillHandler run...", DEBUG_INFO)
|
|
||||||
# else:
|
|
||||||
# msg = "Repeated calls to start have no effect."
|
|
||||||
# print_debug(self._print_target, self.debug_level,
|
|
||||||
# msg, DEBUG_WARNING)
|
|
||||||
# raise RuntimeWarning(msg)
|
|
||||||
#
|
|
||||||
# def stop(self)->None:
|
|
||||||
# if self._worker is None:
|
|
||||||
# msg = "Cannot stop thread that is not started."
|
|
||||||
# print_debug(self._print_target, self.debug_level,
|
|
||||||
# msg, DEBUG_WARNING)
|
|
||||||
# raise RuntimeWarning(msg)
|
|
||||||
# else:
|
|
||||||
# self._stop_pipe[1].send(1)
|
|
||||||
# self._worker.join()
|
|
||||||
# print_debug(self._print_target, self.debug_level,
|
|
||||||
# "Worker thread stopped", DEBUG_INFO)
|
|
||||||
|
|
||||||
def handle(self, event:dict[Any,Any])->None:
|
def handle(self, event:dict[Any,Any])->None:
|
||||||
# TODO finish implementation and test
|
# TODO finish implementation and test
|
||||||
|
|
||||||
|
@ -6,14 +6,10 @@ from multiprocessing import Pipe, Queue
|
|||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
from core.correctness.vars import CHAR_LOWERCASE, CHAR_UPPERCASE, \
|
from core.correctness.vars import CHAR_LOWERCASE, CHAR_UPPERCASE, \
|
||||||
BAREBONES_NOTEBOOK, SHA256, TEST_MONITOR_BASE, COMPLETE_NOTEBOOK, \
|
SHA256, TEST_MONITOR_BASE, COMPLETE_NOTEBOOK, EVENT_TYPE
|
||||||
EVENT_TYPE
|
|
||||||
from core.functionality import generate_id, wait, get_file_hash, rmtree, \
|
from core.functionality import generate_id, wait, get_file_hash, rmtree, \
|
||||||
make_dir, parameterize_jupyter_notebook, create_event
|
make_dir, parameterize_jupyter_notebook, create_event
|
||||||
from core.meow import BaseRule
|
|
||||||
from patterns.file_event_pattern import FileEventPattern
|
|
||||||
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe
|
|
||||||
|
|
||||||
|
|
||||||
class CorrectnessTests(unittest.TestCase):
|
class CorrectnessTests(unittest.TestCase):
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
import io
|
import io
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from multiprocessing import Pipe
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
@ -175,8 +174,6 @@ class MeowTests(unittest.TestCase):
|
|||||||
FullTestHandler()
|
FullTestHandler()
|
||||||
|
|
||||||
def testMeowRunner(self)->None:
|
def testMeowRunner(self)->None:
|
||||||
#monitor_to_handler_reader, monitor_to_handler_writer = Pipe()
|
|
||||||
|
|
||||||
pattern_one = FileEventPattern(
|
pattern_one = FileEventPattern(
|
||||||
"pattern_one", "start/A.txt", "recipe_one", "infile",
|
"pattern_one", "start/A.txt", "recipe_one", "infile",
|
||||||
parameters={
|
parameters={
|
||||||
@ -260,8 +257,6 @@ class MeowTests(unittest.TestCase):
|
|||||||
self.assertEqual(data, "Initial Data\nA line from a test Pattern")
|
self.assertEqual(data, "Initial Data\nA line from a test Pattern")
|
||||||
|
|
||||||
def testMeowRunnerLinkeExecution(self)->None:
|
def testMeowRunnerLinkeExecution(self)->None:
|
||||||
#monitor_to_handler_reader, monitor_to_handler_writer = Pipe()
|
|
||||||
|
|
||||||
pattern_one = FileEventPattern(
|
pattern_one = FileEventPattern(
|
||||||
"pattern_one", "start/A.txt", "recipe_one", "infile",
|
"pattern_one", "start/A.txt", "recipe_one", "infile",
|
||||||
parameters={
|
parameters={
|
||||||
|
@ -4,9 +4,9 @@ import unittest
|
|||||||
|
|
||||||
from multiprocessing import Pipe
|
from multiprocessing import Pipe
|
||||||
|
|
||||||
from core.correctness.vars import FILE_EVENTS, FILE_CREATE_EVENT, \
|
from core.correctness.vars import FILE_CREATE_EVENT, BAREBONES_NOTEBOOK, \
|
||||||
BAREBONES_NOTEBOOK, TEST_MONITOR_BASE, EVENT_TYPE, WATCHDOG_RULE, \
|
TEST_MONITOR_BASE, EVENT_TYPE, WATCHDOG_RULE, WATCHDOG_BASE, \
|
||||||
WATCHDOG_BASE, WATCHDOG_SRC, WATCHDOG_TYPE
|
WATCHDOG_SRC, WATCHDOG_TYPE
|
||||||
from core.functionality import rmtree, make_dir
|
from core.functionality import rmtree, make_dir
|
||||||
from core.meow import create_rules
|
from core.meow import create_rules
|
||||||
from patterns.file_event_pattern import FileEventPattern, WatchdogMonitor, \
|
from patterns.file_event_pattern import FileEventPattern, WatchdogMonitor, \
|
||||||
@ -171,7 +171,6 @@ class CorrectnessTests(unittest.TestCase):
|
|||||||
self.assertEqual(len(rules), 1)
|
self.assertEqual(len(rules), 1)
|
||||||
rule = rules[list(rules.keys())[0]]
|
rule = rules[list(rules.keys())[0]]
|
||||||
|
|
||||||
# TODO fix this test
|
|
||||||
wm.start()
|
wm.start()
|
||||||
|
|
||||||
open(os.path.join(TEST_MONITOR_BASE, "A"), "w")
|
open(os.path.join(TEST_MONITOR_BASE, "A"), "w")
|
||||||
|
@ -4,9 +4,7 @@ import jsonschema
|
|||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from multiprocessing import Pipe
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from watchdog.events import FileCreatedEvent
|
|
||||||
|
|
||||||
from patterns.file_event_pattern import FileEventPattern
|
from patterns.file_event_pattern import FileEventPattern
|
||||||
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe, \
|
from recipes.jupyter_notebook_recipe import JupyterNotebookRecipe, \
|
||||||
|
Reference in New Issue
Block a user