dayhoff-tools 1.9.16__py3-none-any.whl → 1.9.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -514,9 +514,7 @@ def engine_status(
514
514
  return f" - {label:15} {status}"
515
515
 
516
516
  status_lines.append(_setting_line("Idle Start", "SLACK_NOTIFY_IDLE_START"))
517
- status_lines.append(
518
- _setting_line("IDE Disconnect", "SLACK_NOTIFY_IDE_DISCONNECT")
519
- )
517
+ status_lines.append(_setting_line("Idle Exit", "SLACK_NOTIFY_IDLE_EXIT"))
520
518
  status_lines.append(_setting_line("Warnings", "SLACK_NOTIFY_WARNINGS"))
521
519
  status_lines.append(_setting_line("Shutdown", "SLACK_NOTIFY_SHUTDOWN"))
522
520
  except Exception:
@@ -526,7 +524,10 @@ def engine_status(
526
524
  if idle_detector.get("available"):
527
525
  status_lines.append("")
528
526
  status_lines.append("[bold]Activity Sensors:[/bold]")
529
- reasons_raw = idle_detector.get("_reasons_raw", []) or []
527
+ reasons_raw = idle_detector.get("_reasons_raw", [])
528
+ # Ensure reasons_raw is actually a list (fix linter error)
529
+ if not isinstance(reasons_raw, list):
530
+ reasons_raw = []
530
531
  by_sensor: Dict[str, Dict[str, Any]] = {}
531
532
  for r in reasons_raw:
532
533
  nm = r.get("sensor")
@@ -149,21 +149,21 @@ def idle_timeout_cmd(
149
149
  settings = {
150
150
  "SLACK_NOTIFY_WARNINGS": "false",
151
151
  "SLACK_NOTIFY_IDLE_START": "false",
152
- "SLACK_NOTIFY_IDE_DISCONNECT": "false",
152
+ "SLACK_NOTIFY_IDLE_EXIT": "false",
153
153
  "SLACK_NOTIFY_SHUTDOWN": "false",
154
154
  }
155
155
  elif slack == "default":
156
156
  settings = {
157
157
  "SLACK_NOTIFY_WARNINGS": "true",
158
158
  "SLACK_NOTIFY_IDLE_START": "false",
159
- "SLACK_NOTIFY_IDE_DISCONNECT": "false",
159
+ "SLACK_NOTIFY_IDLE_EXIT": "false",
160
160
  "SLACK_NOTIFY_SHUTDOWN": "true",
161
161
  }
162
162
  else: # all
163
163
  settings = {
164
164
  "SLACK_NOTIFY_WARNINGS": "true",
165
165
  "SLACK_NOTIFY_IDLE_START": "true",
166
- "SLACK_NOTIFY_IDE_DISCONNECT": "true",
166
+ "SLACK_NOTIFY_IDLE_EXIT": "true",
167
167
  "SLACK_NOTIFY_SHUTDOWN": "true",
168
168
  }
169
169
 
@@ -174,7 +174,10 @@ def idle_timeout_cmd(
174
174
  f"grep -q '^{key}=' /etc/engine.env && sudo sed -i 's|^{key}=.*|{key}={value}|' /etc/engine.env || echo '{key}={value}' | sudo tee -a /etc/engine.env > /dev/null"
175
175
  )
176
176
 
177
- commands.append("sudo systemctl restart engine-idle-detector.service")
177
+ # Instead of restarting service, send SIGHUP to reload config
178
+ commands.append(
179
+ "sudo pkill -HUP -f engine-idle-detector.py || sudo systemctl restart engine-idle-detector.service"
180
+ )
178
181
 
179
182
  resp = ssm.send_command(
180
183
  InstanceIds=[engine["instance_id"]],
@@ -184,6 +187,7 @@ def idle_timeout_cmd(
184
187
  cid = resp["Command"]["CommandId"]
185
188
  time.sleep(2) # Give it a moment to process
186
189
  console.print(f"[green]✓ Slack notifications updated to '{slack}'[/green]")
190
+ console.print("[dim]Note: Settings updated without resetting idle timer[/dim]")
187
191
 
188
192
  # Handle setting new timeout value
189
193
  if set is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dayhoff-tools
3
- Version: 1.9.16
3
+ Version: 1.9.18
4
4
  Summary: Common tools for all the repos at Dayhoff Labs
5
5
  Author: Daniel Martin-Alarcon
6
6
  Author-email: dma@dayhofflabs.com
@@ -4,9 +4,9 @@ dayhoff_tools/chemistry/utils.py,sha256=jt-7JgF-GeeVC421acX-bobKbLU_X94KNOW24p_P
4
4
  dayhoff_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  dayhoff_tools/cli/cloud_commands.py,sha256=33qcWLmq-FwEXMdL3F0OHm-5Stlh2r65CldyEZgQ1no,40904
6
6
  dayhoff_tools/cli/engine/__init__.py,sha256=RE45X2IPCNUvQp6_OHI2lbjwoqexkH3roUPccIHkeJo,9540
7
- dayhoff_tools/cli/engine/engine_core.py,sha256=ItfqW3ZWoHEWLOgtWPYT-SO1idxk5RBBCIe8w9xxf3w,26959
7
+ dayhoff_tools/cli/engine/engine_core.py,sha256=k2vZo3QowvNQ54V0u5Z6FjkMLcBlkW1-6ys2V-pc8p8,27055
8
8
  dayhoff_tools/cli/engine/engine_lifecycle.py,sha256=_Dk-EZs_qbm8APdOuGOuxhlbK6RgkkoLk2nrwKoo1-A,4519
9
- dayhoff_tools/cli/engine/engine_maintenance.py,sha256=GxKjb44h6Rzxbd1ycLOzB39Lzo-YZ2s3XhlWygV5BF4,16093
9
+ dayhoff_tools/cli/engine/engine_maintenance.py,sha256=6LGBH8iAc6OQfwA4i6rvEv34UKXGFPdB5XcRJSEnGfs,16304
10
10
  dayhoff_tools/cli/engine/engine_management.py,sha256=s_H3FtMlKsdfzR8pwV-j2W2QX-Fypkqj2kPC0aTqC1A,19072
11
11
  dayhoff_tools/cli/engine/shared.py,sha256=Ecx6I1jtzmxQDn3BezKpgpQ4SJeZf4SZjUCLg-67p80,16844
12
12
  dayhoff_tools/cli/engine/studio_commands.py,sha256=VwTQujz32-uMcYusDRE73SdzRpgvIkv7ZAF4zRv6AzA,30266
@@ -33,7 +33,7 @@ dayhoff_tools/intake/uniprot.py,sha256=BZYJQF63OtPcBBnQ7_P9gulxzJtqyorgyuDiPeOJq
33
33
  dayhoff_tools/logs.py,sha256=DKdeP0k0kliRcilwvX0mUB2eipO5BdWUeHwh-VnsICs,838
34
34
  dayhoff_tools/sqlite.py,sha256=jV55ikF8VpTfeQqqlHSbY8OgfyfHj8zgHNpZjBLos_E,18672
35
35
  dayhoff_tools/warehouse.py,sha256=UETBtZD3r7WgvURqfGbyHlT7cxoiVq8isjzMuerKw8I,24475
36
- dayhoff_tools-1.9.16.dist-info/METADATA,sha256=11SUuC_t8w2szZPpSIEg4Tb4Wc4JCrd0UcAhymNfqJM,2915
37
- dayhoff_tools-1.9.16.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
38
- dayhoff_tools-1.9.16.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
39
- dayhoff_tools-1.9.16.dist-info/RECORD,,
36
+ dayhoff_tools-1.9.18.dist-info/METADATA,sha256=fb80JzfXNDIBNoYZeHGgkl7lfRNOvtDC1C9ukPAVMpA,2915
37
+ dayhoff_tools-1.9.18.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
38
+ dayhoff_tools-1.9.18.dist-info/entry_points.txt,sha256=iAf4jteNqW3cJm6CO6czLxjW3vxYKsyGLZ8WGmxamSc,49
39
+ dayhoff_tools-1.9.18.dist-info/RECORD,,