diff options
Diffstat (limited to 'continuedev')
-rw-r--r-- | continuedev/src/continuedev/recipes/README.md | 8 | ||||
-rw-r--r-- | continuedev/src/continuedev/steps/draft/migration.py | 11 | ||||
-rw-r--r-- | continuedev/src/continuedev/steps/main.py | 25 |
3 files changed, 16 insertions, 28 deletions
diff --git a/continuedev/src/continuedev/recipes/README.md b/continuedev/src/continuedev/recipes/README.md index 5e01cc97..d5a006fb 100644 --- a/continuedev/src/continuedev/recipes/README.md +++ b/continuedev/src/continuedev/recipes/README.md @@ -7,3 +7,11 @@ The `recipes` folder contains all recipes, each with the same structure. **If yo 1. Create a new subfolder in `recipes`, with the name of your recipe (for example `MyNewRecipe`). 2. Make 2 files in this folder: 1) a `README.md` describing your recipe and how to use it and 2) a `main.py` including a single class with the name of your recipe (e.g. `MyNewRecipe`). 3. Write any utility code other than the main recipe class in a separate file, which you can import in `main.py`. Particularly if you decide to break the recipe into multiple sub-steps, try to keep these separate. + +# Existing Recipes + +`ContinueRecipeRecipe` - Write a Continue recipe with Continue. + +`CreatePipelineRecipe` - Build a dlt pipeline from scratch for an API of your choice. + +`WritePytestsRecipe` - Write Pytest unit tests in a folder adjacent to your Python file. diff --git a/continuedev/src/continuedev/steps/draft/migration.py b/continuedev/src/continuedev/steps/draft/migration.py index ea538bb7..b386bed8 100644 --- a/continuedev/src/continuedev/steps/draft/migration.py +++ b/continuedev/src/continuedev/steps/draft/migration.py @@ -1,7 +1,6 @@ # When an edit is made to an existing class or a new sqlalchemy class is created, # this should be kicked off. -from ..main import EditCodeStep, RunCommandStep from ...core.main import Step @@ -15,11 +14,17 @@ class MigrationStep(Step): recent_edits_string = "\n\n".join( map(lambda x: x.to_string(), recent_edits)) description = await (await sdk.models.gpt35()).complete(f"{recent_edits_string}\n\nGenerate a short description of the migration made in the above changes:\n") - await sdk.run_step(RunCommandStep(cmd=f"cd libs && poetry run alembic revision --autogenerate -m {description}")) + await sdk.run([ + "cd libs", + "poetry run alembic revision --autogenerate -m " + description, + ]) migration_file = f"libs/alembic/versions/{?}.py" contents = await sdk.ide.readFile(migration_file) await sdk.run_step(EditCodeStep( range_in_files=[RangeInFile.from_entire_file(migration_file, contents)], prompt=f"Here are the changes made to the sqlalchemy classes:\n\n{recent_edits_string}\n\nThis is the generated migration file:\n\n{{code}}\n\nReview the migration file to make sure it correctly reflects the changes made to the sqlalchemy classes.", )) - await sdk.run_step(RunCommandStep(cmd="cd libs && poetry run alembic upgrade head")) + await sdk.run([ + "cd libs", + "poetry run alembic upgrade head", + ]) diff --git a/continuedev/src/continuedev/steps/main.py b/continuedev/src/continuedev/steps/main.py index a0872564..bb720b20 100644 --- a/continuedev/src/continuedev/steps/main.py +++ b/continuedev/src/continuedev/steps/main.py @@ -54,31 +54,6 @@ class RunPolicyUntilDoneStep(Step): return observation -class RunCommandStep(Step): - cmd: str - name: str = "Run command" - _description: str = None - - async def describe(self, models: Models) -> Coroutine[str, None, None]: - if self._description is not None: - return self._description - return self.cmd - - async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]: - cwd = await sdk.ide.getWorkspaceDirectory() - result = subprocess.run( - self.cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd) - stdout = result.stdout.decode("utf-8") - stderr = result.stderr.decode("utf-8") - print(stdout, stderr) - - # If it fails, return the error - if result.returncode != 0: - return TextObservation(text=stderr) - else: - return TextObservation(text=stdout) - - class FasterEditHighlightedCodeStep(Step): user_input: str hide = True |