Skip to content

Commit 827b52e

Browse files
committed
clean up crash on modulenotfound, also code tidying and duckdb upgrade
1 parent 6f213bc commit 827b52e

5 files changed

Lines changed: 13 additions & 12 deletions

File tree

countess/core/cmd.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
import getopt
33
import logging
44
import logging.handlers
5-
import multiprocessing
65
import re
76
import sys
8-
import time
97
from typing import Iterable, Union
108

119
from countess import VERSION
@@ -95,5 +93,6 @@ def main() -> None:
9593

9694
run(sys.argv[1:])
9795

96+
9897
if __name__ == "__main__":
9998
main() # pragma: no cover

countess/core/config.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import logging
44
import os.path
55
import re
6-
import sys
76
from configparser import ConfigParser
87

98
from countess.core.pipeline import PipelineGraph, PipelineNode
@@ -69,7 +68,6 @@ def read_config(
6968

7069

7170
def config_to_graph(cp: ConfigParser, base_dir: str = ".") -> PipelineGraph:
72-
7371
pipeline_graph = PipelineGraph()
7472
nodes_by_name: dict[str, PipelineNode] = {}
7573

countess/core/plugins.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,15 @@ def get_plugin_classes() -> Iterable[Type["BasePlugin"]]:
6969
return plugin_classes
7070

7171

72-
def load_plugin(module_name: str, class_name: str, plugin_name: Optional[str] = None) -> "BasePlugin":
73-
module = importlib.import_module(module_name)
74-
plugin_class = getattr(module, class_name)
75-
assert issubclass(plugin_class, BasePlugin)
76-
return plugin_class(plugin_name)
72+
def load_plugin(module_name: str, class_name: str, plugin_name: Optional[str] = None) -> Optional["BasePlugin"]:
73+
try:
74+
module = importlib.import_module(module_name)
75+
plugin_class = getattr(module, class_name)
76+
assert issubclass(plugin_class, BasePlugin)
77+
return plugin_class(plugin_name)
78+
except ModuleNotFoundError:
79+
logger.error("Module Not Found: %s", module_name)
80+
return None
7781

7882

7983
class BasePlugin(HasSubParametersMixin):

countess/gui/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from duckdb import DuckDBPyRelation
1616

1717
from countess import VERSION
18-
from countess.core.config import export_config_graphviz, read_config, write_config, config_to_graph, graph_to_config
18+
from countess.core.config import config_to_graph, export_config_graphviz, graph_to_config, read_config, write_config
1919
from countess.core.pipeline import PipelineGraph
2020
from countess.core.plugins import get_plugin_classes
2121
from countess.gui.config import PluginConfigurator
@@ -345,7 +345,7 @@ def __init__(self, graph: PipelineGraph):
345345
self.button.grid(row=2, column=0, sticky=tk.EW)
346346

347347
config = graph_to_config(graph)
348-
self.process = multiprocessing.Process(target=runwindow_subprocess_target, args=[ config ])
348+
self.process = multiprocessing.Process(target=runwindow_subprocess_target, args=[config])
349349
self.process.start()
350350

351351
self.poll()

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ classifiers = [
1919
]
2020
dependencies = [
2121
'biobear~=0.23.2',
22-
'duckdb>=1.2.2',
22+
'duckdb>=1.3.1',
2323
'fqfa~=1.3.1',
2424
'more_itertools~=9.1.0',
2525
'numpy~=1.26',

0 commit comments

Comments
 (0)