diff --git a/src/crewai/cli/create_pipeline.py b/src/crewai/cli/create_pipeline.py index 59936fbc7..cc39839dd 100644 --- a/src/crewai/cli/create_pipeline.py +++ b/src/crewai/cli/create_pipeline.py @@ -1,4 +1,3 @@ -import os import shutil from pathlib import Path @@ -19,6 +18,7 @@ def create_pipeline(name, router=False): # Create directory structure (project_root / "src" / folder_name).mkdir(parents=True) + (project_root / "src" / folder_name / "pipelines").mkdir(parents=True) (project_root / "src" / folder_name / "crews").mkdir(parents=True) (project_root / "src" / folder_name / "tools").mkdir(parents=True) (project_root / "tests").mkdir(exist_ok=True) @@ -33,9 +33,10 @@ def create_pipeline(name, router=False): # List of template files to copy root_template_files = [".gitignore", "pyproject.toml", "README.md"] - src_template_files = ["__init__.py", "main.py", "pipeline.py"] + src_template_files = ["__init__.py", "main.py"] tools_template_files = ["tools/__init__.py", "tools/custom_tool.py"] crew_folders = ["research_crew", "write_x_crew", "write_linkedin_crew"] + pipelines_folders = ["pipelines/__init__.py", "pipelines/pipeline.py"] def process_file(src_file, dst_file): with open(src_file, "r") as file: @@ -67,6 +68,12 @@ def create_pipeline(name, router=False): dst_file = project_root / "src" / folder_name / file_name shutil.copy(src_file, dst_file) + # Copy pipelines folders + for file_name in pipelines_folders: + src_file = templates_dir / file_name + dst_file = project_root / "src" / folder_name / file_name + process_file(src_file, dst_file) + # Copy crew folders for crew_folder in crew_folders: src_crew_folder = templates_dir / "crews" / crew_folder diff --git a/src/crewai/cli/templates/pipeline/main.py b/src/crewai/cli/templates/pipeline/main.py index 9a4505619..376693330 100644 --- a/src/crewai/cli/templates/pipeline/main.py +++ b/src/crewai/cli/templates/pipeline/main.py @@ -1,6 +1,6 @@ #!/usr/bin/env python import asyncio -from {{folder_name}}.pipeline import {{pipeline_name}}Pipeline +from {{folder_name}}.pipelines.pipeline import {{pipeline_name}}Pipeline async def run(): """ diff --git a/src/crewai/cli/templates/pipeline/pipelines/__init__.py b/src/crewai/cli/templates/pipeline/pipelines/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/crewai/cli/templates/pipeline/pipeline.py b/src/crewai/cli/templates/pipeline/pipelines/pipeline.py similarity index 96% rename from src/crewai/cli/templates/pipeline/pipeline.py rename to src/crewai/cli/templates/pipeline/pipelines/pipeline.py index 9e9510983..8ca8dfa44 100644 --- a/src/crewai/cli/templates/pipeline/pipeline.py +++ b/src/crewai/cli/templates/pipeline/pipelines/pipeline.py @@ -32,8 +32,8 @@ from crewai import Pipeline # Uncomment the crews you need for your chosen example -from .crews.research_crew.research_crew import ResearchCrew -from .crews.write_x_crew.write_x_crew import WriteXCrew +from ..crews.research_crew.research_crew import ResearchCrew +from ..crews.write_x_crew.write_x_crew import WriteXCrew # from .crews.write_linkedin_crew.write_linkedin_crew import WriteLinkedInCrew # Uncomment for Example 2 # EXAMPLE 1: Two-Stage Pipeline diff --git a/src/crewai/cli/templates/pipeline/pipelines/todo.md b/src/crewai/cli/templates/pipeline/pipelines/todo.md deleted file mode 100644 index 3737bf375..000000000 --- a/src/crewai/cli/templates/pipeline/pipelines/todo.md +++ /dev/null @@ -1,5 +0,0 @@ -1. move pipeline.py into this folder - -2. Hard code pipeline that you want to use in main.py - -3. Pipeline and file naming diff --git a/src/crewai/cli/templates/pipeline/pyproject.toml b/src/crewai/cli/templates/pipeline/pyproject.toml index e000b39a7..2e53a1633 100644 --- a/src/crewai/cli/templates/pipeline/pyproject.toml +++ b/src/crewai/cli/templates/pipeline/pyproject.toml @@ -6,8 +6,7 @@ authors = ["Your Name "] [tool.poetry.dependencies] python = ">=3.10,<=3.13" -#crewai = { extras = ["tools"], version = "^0.41.1" } -crewai = { extras = ["tools"], path = "/Users/brandonhancock/Code/crewai/crewAI" } +crewai = { extras = ["tools"], version = "^0.41.1" } asyncio = "*" [tool.poetry.scripts]