Skip to content

Commit 73f711d

Browse files
committed
Crash module proper
1 parent 6a6f14a commit 73f711d

File tree

2 files changed

+91
-260
lines changed

2 files changed

+91
-260
lines changed

CP5/active_plugins/crashmodule.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
import logging
2+
3+
from cellprofiler_core.module import ImageProcessing
4+
from cellprofiler_core.object import Objects
5+
from cellprofiler_core.setting.choice import Choice
6+
7+
LOGGER = logging.getLogger(__name__)
8+
9+
__doc__ = f"""\
10+
CrashModule
11+
===========
12+
13+
**CrashModule** crashes
14+
15+
============ ============ ===============
16+
Supports 2D? Supports 3D? Respects masks?
17+
============ ============ ===============
18+
YES YES NO
19+
============ ============ ===============
20+
21+
"""
22+
23+
DOCKER_IMAGE_NAME = "cellprofiler/crashdocker:0.0.1"
24+
25+
class CrashModule(ImageProcessing):
26+
category = "Image Processing"
27+
28+
module_name = "CrashModule"
29+
30+
variable_revision_number = 1
31+
32+
def create_settings(self):
33+
super(CrashModule, self).create_settings()
34+
35+
self.y_name.set_value("OutputImage")
36+
37+
self.do_crash = Choice(
38+
text="Crash the run",
39+
choices=["Yes", "No"],
40+
value="Yes",
41+
doc="""\
42+
Cause this module to crash or succeed
43+
""",
44+
)
45+
46+
def settings(self):
47+
return super().settings() + [
48+
self.do_crash,
49+
]
50+
51+
def visible_settings(self):
52+
vis_settings = super().visible_settings() + [
53+
self.do_crash,
54+
]
55+
56+
return vis_settings
57+
58+
def run(self, workspace):
59+
print("CrashModule - I am running")
60+
self.function = self.do_run
61+
62+
measurements = workspace.measurements
63+
for i in range(100):
64+
feature = "Blah%d" % i
65+
measurements.add_measurement(
66+
"Image", feature, i
67+
)
68+
69+
if self.do_crash == "Yes":
70+
super().run(workspace)
71+
raise Exception("I am crashing - run")
72+
else:
73+
super().run(workspace)
74+
75+
def do_run(self, x_data, *args):
76+
return x_data
77+
78+
def post_run(self, workspace):
79+
print("CrashModule - I am running post run")
80+
if self.do_crash == "Yes":
81+
raise Exception("I am crashing - post run")
82+
else:
83+
super().post_run(workspace)
84+
85+
def display(self, workspace, figure):
86+
super().display(workspace, figure)
87+
88+
def upgrade_settings(self, setting_values, variable_revision_number, module_name):
89+
return setting_values, variable_revision_number
90+
91+

active_plugins/crashdocker.py

Lines changed: 0 additions & 260 deletions
This file was deleted.

0 commit comments

Comments
 (0)