PyAlgoEngine 0.7.6.post1__tar.gz → 0.7.6.post2__tar.gz

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.
Files changed (53) hide show
  1. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PKG-INFO +1 -1
  2. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PyAlgoEngine.egg-info/PKG-INFO +1 -1
  3. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/__init__.py +1 -1
  4. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/sim_input/client.py +15 -6
  5. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/LICENSE +0 -0
  6. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PyAlgoEngine.egg-info/SOURCES.txt +0 -0
  7. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PyAlgoEngine.egg-info/dependency_links.txt +0 -0
  8. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PyAlgoEngine.egg-info/requires.txt +0 -0
  9. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/PyAlgoEngine.egg-info/top_level.txt +0 -0
  10. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/README.md +0 -0
  11. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/__init__.py +0 -0
  12. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/backtest/__init__.py +0 -0
  13. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/backtest/doc_server.py +0 -0
  14. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/backtest/tester.py +0 -0
  15. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/backtest/web_app.py +0 -0
  16. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/bokeh_server.py +0 -0
  17. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/demo/__init__.py +0 -0
  18. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/demo/test.py +0 -0
  19. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/sim_input/__init__.py +0 -0
  20. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/sim_input/sim_keyboard.py +0 -0
  21. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/sim_input/sim_mouse.py +0 -0
  22. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/apps/sim_input/window.py +0 -0
  23. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/backtest/__init__.py +0 -0
  24. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/backtest/__main__.py +0 -0
  25. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/backtest/metrics.py +0 -0
  26. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/backtest/replay.py +0 -0
  27. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/backtest/sim_match.py +0 -0
  28. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/__init__.py +0 -0
  29. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/console_utils.py +0 -0
  30. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/finance_decimal.py +0 -0
  31. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/market_buffer.py +0 -0
  32. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/market_utils.py +0 -0
  33. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/market_utils_nt.py +0 -0
  34. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/market_utils_posix.py +0 -0
  35. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/technical_analysis.py +0 -0
  36. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/telemetrics.py +0 -0
  37. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/base/trade_utils.py +0 -0
  38. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/engine/__init__.py +0 -0
  39. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/engine/algo_engine.py +0 -0
  40. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/engine/event_engine.py +0 -0
  41. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/engine/market_engine.py +0 -0
  42. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/engine/trade_engine.py +0 -0
  43. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/monitor/__init__.py +0 -0
  44. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/monitor/advanced_data_interface.py +0 -0
  45. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/profile/__init__.py +0 -0
  46. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/profile/cn.py +0 -0
  47. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/strategy/__init__.py +0 -0
  48. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/strategy/strategy_engine.py +0 -0
  49. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/utils/__init__.py +0 -0
  50. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/utils/commit_regularizer.py +0 -0
  51. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/algo_engine/utils/data_utils.py +0 -0
  52. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/setup.cfg +0 -0
  53. {pyalgoengine-0.7.6.post1 → pyalgoengine-0.7.6.post2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.7.6.post1
3
+ Version: 0.7.6.post2
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.7.6.post1
3
+ Version: 0.7.6.post2
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -1,4 +1,4 @@
1
- __version__ = "0.7.6.post1"
1
+ __version__ = "0.7.6.post2"
2
2
 
3
3
  import logging
4
4
  import os
@@ -90,9 +90,6 @@ class AutoWorkClient(object, metaclass=abc.ABCMeta):
90
90
 
91
91
  self.actions: dict[int, list[Action]] = {}
92
92
 
93
- # self.style = ttk.Style()
94
- # self.style.theme_use("vista") # Choose a modern theme like 'clam', 'vista', or 'alt'
95
-
96
93
  @abc.abstractmethod
97
94
  def listen_signal(self) -> int:
98
95
  ...
@@ -124,10 +121,17 @@ class AutoWorkClient(object, metaclass=abc.ABCMeta):
124
121
  self.update_table(actions)
125
122
 
126
123
  for action_idx, action in enumerate(actions):
124
+ if not self.running:
125
+ break
126
+
127
127
  # Update action status to "Executing"
128
128
  self.update_status(parent_id=action_idx, status="Executing")
129
+ action_done = False
129
130
 
130
131
  for step_idx, step in enumerate(action.steps):
132
+ if not self.running:
133
+ break
134
+
131
135
  # Update step status to "Executing"
132
136
  self.update_status(parent_id=action_idx, child_id=step_idx, status="Executing")
133
137
 
@@ -136,9 +140,13 @@ class AutoWorkClient(object, metaclass=abc.ABCMeta):
136
140
 
137
141
  # Mark step as "Done"
138
142
  self.update_status(parent_id=action_idx, child_id=step_idx, status="Done")
143
+ else:
144
+ # Mark action as "Done" after all steps
145
+ self.update_status(parent_id=action_idx, status="Done")
146
+ action_done = True
139
147
 
140
- # Mark action as "Done" after all steps
141
- self.update_status(parent_id=action_idx, status="Done")
148
+ if not action_done:
149
+ self.update_status(parent_id=action_idx, status="Stopped")
142
150
 
143
151
  def update_table(self, actions: list[Action]):
144
152
  """Render the table based on the provided actions."""
@@ -241,4 +249,5 @@ def main():
241
249
 
242
250
 
243
251
  if __name__ == "__main__":
244
- main()
252
+ t = threading.Thread(target=main, daemon=False)
253
+ t.start()