summaryrefslogtreecommitdiff
path: root/continuedev/src
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev/src')
-rw-r--r--continuedev/src/continuedev/libs/util/step_name_to_steps.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/continuedev/src/continuedev/libs/util/step_name_to_steps.py b/continuedev/src/continuedev/libs/util/step_name_to_steps.py
new file mode 100644
index 00000000..baa25da6
--- /dev/null
+++ b/continuedev/src/continuedev/libs/util/step_name_to_steps.py
@@ -0,0 +1,43 @@
+from typing import Dict
+
+from ...core.main import Step
+from ...plugins.steps.core.core import UserInputStep
+from ...plugins.steps.main import EditHighlightedCodeStep
+from ...plugins.steps.chat import SimpleChatStep
+from ...plugins.steps.comment_code import CommentCodeStep
+from ...plugins.steps.feedback import FeedbackStep
+from ...plugins.recipes.AddTransformRecipe.main import AddTransformRecipe
+from ...plugins.recipes.CreatePipelineRecipe.main import CreatePipelineRecipe
+from ...plugins.recipes.DDtoBQRecipe.main import DDtoBQRecipe
+from ...plugins.recipes.DeployPipelineAirflowRecipe.main import DeployPipelineAirflowRecipe
+from ...plugins.steps.on_traceback import DefaultOnTracebackStep
+from ...plugins.steps.clear_history import ClearHistoryStep
+from ...plugins.steps.open_config import OpenConfigStep
+from ...plugins.steps.help import HelpStep
+
+# This mapping is used to convert from string in ContinueConfig json to corresponding Step class.
+# Used for example in slash_commands and steps_on_startup
+step_name_to_step_class = {
+ "UserInputStep": UserInputStep,
+ "EditHighlightedCodeStep": EditHighlightedCodeStep,
+ "SimpleChatStep": SimpleChatStep,
+ "CommentCodeStep": CommentCodeStep,
+ "FeedbackStep": FeedbackStep,
+ "AddTransformRecipe": AddTransformRecipe,
+ "CreatePipelineRecipe": CreatePipelineRecipe,
+ "DDtoBQRecipe": DDtoBQRecipe,
+ "DeployPipelineAirflowRecipe": DeployPipelineAirflowRecipe,
+ "DefaultOnTracebackStep": DefaultOnTracebackStep,
+ "ClearHistoryStep": ClearHistoryStep,
+ "OpenConfigStep": OpenConfigStep,
+ "HelpStep": HelpStep,
+}
+
+
+def get_step_from_name(step_name: str, params: Dict) -> Step:
+ try:
+ return step_name_to_step_class[step_name](**params)
+ except:
+ print(
+ f"Incorrect parameters for step {step_name}. Parameters provided were: {params}")
+ raise