diff --git a/README.md b/README.md index c8277d55e..1432b27ee 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,14 @@ # Usage: metagpt "" metagpt "Create a 2048 game" ``` +or you can use it as library + +```python +from metagpt.software_company import generate_repo, ProjectRepo +repo: ProjectRepo = generate_repo("Create a 2048 game") # or ProjectRepo("") +print(repo) # it will print the repo structure with files +``` + detail installation please refer to [cli_install](https://docs.deepwisdom.ai/main/en/guide/get_started/installation.html#install-stable-version) ### Docker installation diff --git a/docs/README_CN.md b/docs/README_CN.md index 52e781560..254bff5c6 100644 --- a/docs/README_CN.md +++ b/docs/README_CN.md @@ -48,6 +48,14 @@ # 使用方法: metagpt "<创建一个游戏或软件>" metagpt "创建一个 2048 游戏" ``` +或者您可以将其作为库使用 + +```python +from metagpt.software_company import generate_repo, ProjectRepo +repo: ProjectRepo = generate_repo("创建一个 2048 游戏") # 或 ProjectRepo("<您的仓库路径>") +print(repo) # 它将打印出仓库结构及其文件 +``` + 详细的安装请参考 [cli_install](https://docs.deepwisdom.ai/guide/get_started/installation.html#install-stable-version) ### Docker安装 diff --git a/docs/README_JA.md b/docs/README_JA.md index 26db0498f..a665b7f76 100644 --- a/docs/README_JA.md +++ b/docs/README_JA.md @@ -59,22 +59,22 @@ ### インストールビデオガイド ### 伝統的なインストール ```bash -# ステップ 1: Python 3.9+ がシステムにインストールされていることを確認してください。これを確認するには: -python3 --version +# 新しいPython環境を初期化するためにcondaを使用できます +# conda create -n metagpt python=3.9 +# conda activate metagpt +pip install metagpt +metagpt --init-config # これにより、config/config2.yaml から ~/.metagpt/config2.yaml が作成されます。自分の設定に合わせて変更してください -# ステップ 2: リポジトリをローカルマシンにクローンし、インストールする。 -git clone https://github.com/geekan/MetaGPT.git -cd MetaGPT -pip install -e. +# 使用方法:metagpt "<ゲームまたはソフトウェアを作成する>" +metagpt "2048ゲームを作成する" +``` -# ステップ 3: metagpt を実行する -# config/config2.yaml を ~/.metagpt/config2.yaml にコピーし、独自の api_key を設定します -metagpt "Write a cli snake game" +また、ライブラリとして使用することもできます。 -# ステップ 4 [オプション]: 実行中に PRD ファイルなどのアーティファクトを保存する場合は、ステップ 3 の前にこのステップを実行できます。デフォルトでは、フレームワークには互換性があり、この手順を実行しなくてもプロセス全体を完了できます。 -# NPM がシステムにインストールされていることを確認してください。次に mermaid-js をインストールします。(お使いのコンピューターに npm がない場合は、Node.js 公式サイトで Node.js https://nodejs.org/ をインストールしてください。) -npm --version -sudo npm install -g @mermaid-js/mermaid-cli +```python +from metagpt.software_company import generate_repo, ProjectRepo +repo: ProjectRepo = generate_repo("2048ゲームを作成する") # または ProjectRepo("<リポジトリへのパス>") +print(repo) # リポジトリの構造とファイルを出力します ``` **注:** diff --git a/metagpt/actions/write_docstring.py b/metagpt/actions/write_docstring.py index 79204e6a4..5cc4cafb8 100644 --- a/metagpt/actions/write_docstring.py +++ b/metagpt/actions/write_docstring.py @@ -16,7 +16,7 @@ Options: Default: 'google' Example: - python3 -m metagpt.actions.write_docstring ./metagpt/startup.py --overwrite False --style=numpy + python3 -m metagpt.actions.write_docstring ./metagpt/software_company.py --overwrite False --style=numpy This script uses the 'fire' library to create a command-line interface. It generates docstrings for the given Python code using the specified docstring style and adds them to the code. diff --git a/metagpt/startup.py b/metagpt/software_company.py similarity index 100% rename from metagpt/startup.py rename to metagpt/software_company.py diff --git a/metagpt/utils/project_repo.py b/metagpt/utils/project_repo.py index 72bca7ea0..c1f98e1ec 100644 --- a/metagpt/utils/project_repo.py +++ b/metagpt/utils/project_repo.py @@ -99,6 +99,13 @@ class ProjectRepo(FileRepository): self.tests = self._git_repo.new_file_repository(relative_path=TEST_CODES_FILE_REPO) self.test_outputs = self._git_repo.new_file_repository(relative_path=TEST_OUTPUTS_FILE_REPO) self._srcs_path = None + self.code_files_exists() + + def __str__(self): + repo_str = f"ProjectRepo({self._git_repo.workdir})" + docs_str = f"Docs({self.docs.all_files})" + srcs_str = f"Srcs({self.srcs.all_files})" + return f"{repo_str}\n{docs_str}\n{srcs_str}" @property async def requirement(self): diff --git a/tests/metagpt/actions/test_rebuild_class_view.py b/tests/metagpt/actions/test_rebuild_class_view.py index 04b7d91fc..403109cc0 100644 --- a/tests/metagpt/actions/test_rebuild_class_view.py +++ b/tests/metagpt/actions/test_rebuild_class_view.py @@ -29,9 +29,9 @@ async def test_rebuild(context): @pytest.mark.parametrize( ("path", "direction", "diff", "want"), [ - ("metagpt/startup.py", "=", ".", "metagpt/startup.py"), - ("metagpt/startup.py", "+", "MetaGPT", "MetaGPT/metagpt/startup.py"), - ("metagpt/startup.py", "-", "metagpt", "startup.py"), + ("metagpt/software_company.py", "=", ".", "metagpt/software_company.py"), + ("metagpt/software_company.py", "+", "MetaGPT", "MetaGPT/metagpt/software_company.py"), + ("metagpt/software_company.py", "-", "metagpt", "software_company.py"), ], ) def test_align_path(path, direction, diff, want): diff --git a/tests/metagpt/test_incremental_dev.py b/tests/metagpt/test_incremental_dev.py index 3e4a1b901..964d4c757 100644 --- a/tests/metagpt/test_incremental_dev.py +++ b/tests/metagpt/test_incremental_dev.py @@ -14,7 +14,7 @@ from typer.testing import CliRunner from metagpt.const import TEST_DATA_PATH from metagpt.logs import logger -from metagpt.startup import app +from metagpt.software_company import app runner = CliRunner() diff --git a/tests/metagpt/test_startup.py b/tests/metagpt/test_startup.py index 095a74e3b..d690d6f3f 100644 --- a/tests/metagpt/test_startup.py +++ b/tests/metagpt/test_startup.py @@ -9,7 +9,7 @@ import pytest from typer.testing import CliRunner from metagpt.logs import logger -from metagpt.startup import app +from metagpt.software_company import app from metagpt.team import Team runner = CliRunner()