diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 8f89de4c6..4910796ae 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -55,7 +55,7 @@ jobs: - name: Generate changelog env: OPEN_AI_TOKEN: ${{ secrets.OPEN_AI_TOKEN }} - run: uv run python src/codegen/gscli/cli.py generate changelog --openai-key ${{ secrets.OPEN_AI_TOKEN }} + run: uv run python src/gscli/cli.py generate changelog --openai-key ${{ secrets.OPEN_AI_TOKEN }} - name: Commit changes run: | diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml index 26a0c6853..c86c1a64e 100644 --- a/.github/workflows/generate-docs.yml +++ b/.github/workflows/generate-docs.yml @@ -22,10 +22,10 @@ jobs: uses: ./.github/actions/setup-environment - name: Generate API reference - run: uv run python src/codegen/gscli/cli.py generate docs + run: uv run python src/gscli/cli.py generate docs - name: Generate System Prompt - run: uv run python src/codegen/gscli/cli.py generate system-prompt + run: uv run python src/gscli/cli.py generate system-prompt - name: Commit changes run: | diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 52ad11a37..ad27c460b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,6 @@ default_language_version: python: python3.13 repos: - - repo: https://github.com/ComPWA/taplo-pre-commit rev: v0.9.3 hooks: @@ -24,7 +23,7 @@ repos: - id: biome-check language: node additional_dependencies: ["@biomejs/biome@1.9.4"] - exclude: (src/codemods/eval)|(tests/unit/skills/snapshots)|(tests/unit/codegen/sdk/output)|(tests/integration/verified_codemods)|(docs/samples) + exclude: (src/codemods/eval)|(tests/unit/skills/snapshots)|(tests/unit/sdk/output)|(tests/integration/verified_codemods)|(docs/samples) - repo: https://github.com/MarcoGorelli/cython-lint rev: v0.16.6 hooks: @@ -88,13 +87,13 @@ repos: args: ["--frozen", "--all-packages", "--all-extras"] - repo: https://github.com/hukkin/mdformat - rev: 0.7.22 # Use the ref you want to point at + rev: 0.7.22 # Use the ref you want to point at hooks: - - id: mdformat - language: python - # Optionally add plugins - additional_dependencies: - - mdformat-gfm - - mdformat-ruff - - mdformat-config - - mdformat-pyproject + - id: mdformat + language: python + # Optionally add plugins + additional_dependencies: + - mdformat-gfm + - mdformat-ruff + - mdformat-config + - mdformat-pyproject diff --git a/codegen-examples/README.md b/codegen-examples/README.md index 3e430024c..ec2ae6cf8 100644 --- a/codegen-examples/README.md +++ b/codegen-examples/README.md @@ -10,7 +10,7 @@ We recommend using [`uv`](https://github.com/astral-sh/uv) with Python 3.13 for To install Codegen, please follow the [official installation guide](https://docs.codegen.com/introduction/installation). Once Codegen is installed, use these steps to run the examples in this repository: -Install the Codegen CLI globally +Install the graph_sitter.cli globally ```bash uv tool install codegen diff --git a/codegen-examples/STRUCTURE.md b/codegen-examples/STRUCTURE.md index f4695135d..7a0c470c8 100644 --- a/codegen-examples/STRUCTURE.md +++ b/codegen-examples/STRUCTURE.md @@ -26,7 +26,7 @@ Your `run.py` should follow this structure, demonstrated well in the `generate_t ```python import codegen - from codegen import Codebase + from graph_sitter import Codebase from codegen.sdk.core import Function # ... other imports ``` diff --git a/codegen-examples/examples/ai_impact_analysis/dashboard/backend/api.py b/codegen-examples/examples/ai_impact_analysis/dashboard/backend/api.py index ddb08115d..634e7893f 100644 --- a/codegen-examples/examples/ai_impact_analysis/dashboard/backend/api.py +++ b/codegen-examples/examples/ai_impact_analysis/dashboard/backend/api.py @@ -1,5 +1,5 @@ -from codegen import Codebase -from codegen.extensions.attribution.main import ( +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import ( add_attribution_to_symbols, analyze_ai_impact, ) diff --git a/codegen-examples/examples/ai_impact_analysis/run.py b/codegen-examples/examples/ai_impact_analysis/run.py index 819b30c71..dd8460214 100644 --- a/codegen-examples/examples/ai_impact_analysis/run.py +++ b/codegen-examples/examples/ai_impact_analysis/run.py @@ -2,10 +2,10 @@ import traceback import os -from codegen import Codebase -from codegen.extensions.attribution.cli import run -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.cli import run +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.codebase.config import ProjectConfig from graph_sitter.shared.enums.programming_language import ProgrammingLanguage diff --git a/codegen-examples/examples/codegen-mcp-server/server.py b/codegen-examples/examples/codegen-mcp-server/server.py index fe5fed083..85ba209e2 100644 --- a/codegen-examples/examples/codegen-mcp-server/server.py +++ b/codegen-examples/examples/codegen-mcp-server/server.py @@ -7,13 +7,13 @@ from typing import Annotated, Any, Dict, List, Optional import requests -from codegen import Codebase -from codegen.cli.api.client import RestAPI -from codegen.cli.api.endpoints import CODEGEN_SYSTEM_PROMPT_URL -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.codemod.convert import convert_to_cli -from codegen.cli.utils.default_code import DEFAULT_CODEMOD -from codegen.extensions.tools.reveal_symbol import reveal_symbol +from graph_sitter import Codebase +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.api.endpoints import CODEGEN_SYSTEM_PROMPT_URL +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.codemod.convert import convert_to_cli +from graph_sitter.cli.utils.default_code import DEFAULT_CODEMOD +from graph_sitter.extensions.tools.reveal_symbol import reveal_symbol from mcp.server.fastmcp import FastMCP logger = getLogger(__name__) @@ -168,7 +168,7 @@ def codegen_system_prompt(): For example, consider the following script: ```python -from codegen import Codebase +from graph_sitter import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships @@ -195,7 +195,7 @@ def codegen_system_prompt(): They live in the `.codegen/codemods/{name}/{name.py}` directory, and take the following form: ```python -from codegen import Codebase +from graph_sitter import Codebase @codegen.function('{name}') def codemod(codebase: Codebase): @@ -364,7 +364,7 @@ async def run_codemod( try: # Get the codemod using CodemodManager try: - from codegen.cli.utils.codemod_manager import CodemodManager + from graph_sitter.cli.utils.codemod_manager import CodemodManager codemod = CodemodManager.get_codemod(name, start_path=state.parsed_codebase.repo_path) except Exception as e: @@ -378,7 +378,7 @@ async def run_codemod( # Validate arguments if schema exists if codemod.arguments_type_schema: - from codegen.cli.utils.json_schema import validate_json + from graph_sitter.cli.utils.json_schema import validate_json if not validate_json(codemod.arguments_type_schema, args_dict): return {"error": f"Invalid arguments format. Expected schema: {codemod.arguments_type_schema}"} @@ -386,7 +386,7 @@ async def run_codemod( return {"error": "Invalid JSON in arguments parameter"} # Create a session for the codemod - from codegen.cli.auth.session import CodegenSession + from graph_sitter.cli.auth.session import CodegenSession session = CodegenSession(state.parsed_codebase.repo_path) session.codebase = state.parsed_codebase @@ -417,8 +417,8 @@ async def run_codemod( async def reset() -> Dict[str, Any]: try: # Import necessary functions from reset command - from codegen.cli.commands.reset.main import backup_codegen_files, remove_untracked_files, restore_codegen_files - from codegen.cli.git.repo import get_git_repo + from graph_sitter.cli.commands.reset.main import backup_codegen_files, remove_untracked_files, restore_codegen_files + from graph_sitter.cli.git.repo import get_git_repo from pygit2.enums import ResetMode # Get the git repository diff --git a/codegen-examples/examples/cyclomatic_complexity/run.py b/codegen-examples/examples/cyclomatic_complexity/run.py index a54dbb04c..04f1e4b5f 100644 --- a/codegen-examples/examples/cyclomatic_complexity/run.py +++ b/codegen-examples/examples/cyclomatic_complexity/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.statements.for_loop_statement import ForLoopStatement from graph_sitter.core.statements.if_block_statement import IfBlockStatement from graph_sitter.core.statements.try_catch_statement import TryCatchStatement diff --git a/codegen-examples/examples/delete_dead_code/run.py b/codegen-examples/examples/delete_dead_code/run.py index 3d43827cf..95c6e8c8f 100644 --- a/codegen-examples/examples/delete_dead_code/run.py +++ b/codegen-examples/examples/delete_dead_code/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("delete-dead-code") diff --git a/codegen-examples/examples/dict_to_schema/run.py b/codegen-examples/examples/dict_to_schema/run.py index 69ae8a3cf..ba9f86f7c 100644 --- a/codegen-examples/examples/dict_to_schema/run.py +++ b/codegen-examples/examples/dict_to_schema/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("dict-to-pydantic-schema") diff --git a/codegen-examples/examples/document_functions/run.py b/codegen-examples/examples/document_functions/run.py index 91de2c3ea..f2ad132f9 100644 --- a/codegen-examples/examples/document_functions/run.py +++ b/codegen-examples/examples/document_functions/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.import_resolution import Import from graph_sitter.core.symbol import Symbol diff --git a/codegen-examples/examples/flask_to_fastapi_migration/run.py b/codegen-examples/examples/flask_to_fastapi_migration/run.py index ea8823a9a..a6c14448d 100644 --- a/codegen-examples/examples/flask_to_fastapi_migration/run.py +++ b/codegen-examples/examples/flask_to_fastapi_migration/run.py @@ -1,5 +1,5 @@ import codebase -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase diff --git a/codegen-examples/examples/fragment_to_shorthand/run.py b/codegen-examples/examples/fragment_to_shorthand/run.py index 95dfd3e5e..861d9f5a7 100644 --- a/codegen-examples/examples/fragment_to_shorthand/run.py +++ b/codegen-examples/examples/fragment_to_shorthand/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("fragment_to_shorthand") diff --git a/codegen-examples/examples/freezegun_to_timemachine_migration/run.py b/codegen-examples/examples/freezegun_to_timemachine_migration/run.py index 5e1272464..74dd00264 100644 --- a/codegen-examples/examples/freezegun_to_timemachine_migration/run.py +++ b/codegen-examples/examples/freezegun_to_timemachine_migration/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("freezegun-to-timemachine") diff --git a/codegen-examples/examples/generate_training_data/run.py b/codegen-examples/examples/generate_training_data/run.py index 9367c8f1d..57ac60980 100644 --- a/codegen-examples/examples/generate_training_data/run.py +++ b/codegen-examples/examples/generate_training_data/run.py @@ -1,7 +1,7 @@ import json import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.import_resolution import Import from graph_sitter.core.symbol import Symbol diff --git a/codegen-examples/examples/github_checks/app.py b/codegen-examples/examples/github_checks/app.py index 8166e5d31..45c914cda 100644 --- a/codegen-examples/examples/github_checks/app.py +++ b/codegen-examples/examples/github_checks/app.py @@ -2,8 +2,8 @@ import modal from codegen import CodegenApp, Codebase -from codegen.extensions.github.types.events.pull_request import PullRequestLabeledEvent -from codegen.extensions.tools.github.create_pr_comment import create_pr_comment +from graph_sitter.extensions.github.types.events.pull_request import PullRequestLabeledEvent +from graph_sitter.extensions.tools.github.create_pr_comment import create_pr_comment from dotenv import load_dotenv import networkx as nx diff --git a/codegen-examples/examples/linear_webhooks/webhooks.py b/codegen-examples/examples/linear_webhooks/webhooks.py index 823aa4323..0b2e3b813 100644 --- a/codegen-examples/examples/linear_webhooks/webhooks.py +++ b/codegen-examples/examples/linear_webhooks/webhooks.py @@ -1,5 +1,5 @@ import modal.running_app -from codegen.extensions.events.app import CodegenApp +from graph_sitter.extensions.events.app import CodegenApp import modal image = modal.Image.debian_slim(python_version="3.13").apt_install("git").pip_install("fastapi[standard]", "codegen>=v0.22.2") diff --git a/codegen-examples/examples/modal_repo_analytics/README.md b/codegen-examples/examples/modal_repo_analytics/README.md index 108df5e42..085bd985d 100644 --- a/codegen-examples/examples/modal_repo_analytics/README.md +++ b/codegen-examples/examples/modal_repo_analytics/README.md @@ -17,7 +17,7 @@ uv add modal 2. Start the API server: ```bash -modal serve src/codegen/extensions/modal/api.py +modal serve src/graph_sitter.extensions/modal/api.py ``` 3. Test with curl: @@ -64,5 +64,5 @@ The API is built using: To deploy changes: ```bash -modal deploy src/codegen/extensions/modal/api.py +modal deploy src/graph_sitter.extensions/modal/api.py ``` diff --git a/codegen-examples/examples/modal_repo_analytics/api.py b/codegen-examples/examples/modal_repo_analytics/api.py index 33dfc294e..0fc66ccfc 100644 --- a/codegen-examples/examples/modal_repo_analytics/api.py +++ b/codegen-examples/examples/modal_repo_analytics/api.py @@ -1,7 +1,7 @@ """Modal API endpoint for repository analysis.""" import modal # deptry: ignore -from codegen import Codebase +from graph_sitter import Codebase from pydantic import BaseModel # Create image with dependencies diff --git a/codegen-examples/examples/modal_repo_rag/api.py b/codegen-examples/examples/modal_repo_rag/api.py index edbadbf19..3b47f72a0 100644 --- a/codegen-examples/examples/modal_repo_rag/api.py +++ b/codegen-examples/examples/modal_repo_rag/api.py @@ -1,8 +1,8 @@ """Modal API endpoint for RAG-based code Q&A using Codegen's VectorIndex.""" import modal -from codegen import Codebase -from codegen.extensions import VectorIndex +from graph_sitter import Codebase +from graph_sitter.extensions import VectorIndex from pydantic import BaseModel # Create image with dependencies diff --git a/codegen-examples/examples/modules_dependencies/run.py b/codegen-examples/examples/modules_dependencies/run.py index 83cbc667c..094d8f761 100644 --- a/codegen-examples/examples/modules_dependencies/run.py +++ b/codegen-examples/examples/modules_dependencies/run.py @@ -1,6 +1,6 @@ import codegen import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("visualize-modules-dependencies") diff --git a/codegen-examples/examples/openapi_decorators/run.py b/codegen-examples/examples/openapi_decorators/run.py index ce1eaed35..2cf92c55c 100644 --- a/codegen-examples/examples/openapi_decorators/run.py +++ b/codegen-examples/examples/openapi_decorators/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase def analyze_model_fields(method) -> dict: diff --git a/codegen-examples/examples/promises_to_async_await/convert_promises_twilio_repository.ipynb b/codegen-examples/examples/promises_to_async_await/convert_promises_twilio_repository.ipynb index c384b1868..5af8bffd4 100644 --- a/codegen-examples/examples/promises_to_async_await/convert_promises_twilio_repository.ipynb +++ b/codegen-examples/examples/promises_to_async_await/convert_promises_twilio_repository.ipynb @@ -20,7 +20,7 @@ "metadata": {}, "outputs": [], "source": [ - "from codegen import Codebase\n", + "from graph_sitter import Codebase\n", "from graph_sitter.enums import ProgrammingLanguage\n", "from graph_sitter.core.statements.statement import StatementType" ] diff --git a/codegen-examples/examples/promises_to_async_await/promises_to_async_await.ipynb b/codegen-examples/examples/promises_to_async_await/promises_to_async_await.ipynb index 67912c6fc..65fcc3540 100644 --- a/codegen-examples/examples/promises_to_async_await/promises_to_async_await.ipynb +++ b/codegen-examples/examples/promises_to_async_await/promises_to_async_await.ipynb @@ -31,7 +31,7 @@ "metadata": {}, "outputs": [], "source": [ - "from codegen import Codebase" + "from graph_sitter import Codebase" ] }, { diff --git a/codegen-examples/examples/promises_to_async_await/run.py b/codegen-examples/examples/promises_to_async_await/run.py index 2031b5b67..edc78918c 100644 --- a/codegen-examples/examples/promises_to_async_await/run.py +++ b/codegen-examples/examples/promises_to_async_await/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.statements.statement import StatementType diff --git a/codegen-examples/examples/python2_to_python3/run.py b/codegen-examples/examples/python2_to_python3/run.py index 1417c9567..904f77629 100644 --- a/codegen-examples/examples/python2_to_python3/run.py +++ b/codegen-examples/examples/python2_to_python3/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase diff --git a/codegen-examples/examples/reexport_management/run.py b/codegen-examples/examples/reexport_management/run.py index d6a2e3eab..d8eb7e512 100644 --- a/codegen-examples/examples/reexport_management/run.py +++ b/codegen-examples/examples/reexport_management/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.typescript.file import TSImport processed_imports = set() diff --git a/codegen-examples/examples/remove_default_exports/run.py b/codegen-examples/examples/remove_default_exports/run.py index 71c898e9e..6bf3581bb 100644 --- a/codegen-examples/examples/remove_default_exports/run.py +++ b/codegen-examples/examples/remove_default_exports/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.typescript.file import TSFile diff --git a/codegen-examples/examples/removing_import_loops_in_pytorch/import_loops.ipynb b/codegen-examples/examples/removing_import_loops_in_pytorch/import_loops.ipynb index b5dfb1af1..030e768f9 100644 --- a/codegen-examples/examples/removing_import_loops_in_pytorch/import_loops.ipynb +++ b/codegen-examples/examples/removing_import_loops_in_pytorch/import_loops.ipynb @@ -38,7 +38,7 @@ "metadata": {}, "outputs": [], "source": [ - "from codegen import Codebase\n", + "from graph_sitter import Codebase\n", "import networkx as nx\n", "from utils import visualize_graph # utility function to visualize a networkx graph" ] diff --git a/codegen-examples/examples/repo_analytics/run.py b/codegen-examples/examples/repo_analytics/run.py index fa369490a..79955e089 100644 --- a/codegen-examples/examples/repo_analytics/run.py +++ b/codegen-examples/examples/repo_analytics/run.py @@ -1,5 +1,5 @@ from typing import Dict, Any -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.statements.for_loop_statement import ForLoopStatement from graph_sitter.core.statements.if_block_statement import IfBlockStatement from graph_sitter.core.statements.try_catch_statement import TryCatchStatement diff --git a/codegen-examples/examples/slack_chatbot/README.md b/codegen-examples/examples/slack_chatbot/README.md index 1ff5dc9d9..6e115b450 100644 --- a/codegen-examples/examples/slack_chatbot/README.md +++ b/codegen-examples/examples/slack_chatbot/README.md @@ -86,8 +86,8 @@ for all files in a codebase. It handles chunking large files and maintains a persistent index for faster subsequent queries. *Relevant Files:* -• src/codegen/extensions/vector_index.py -• src/codegen/extensions/tools/semantic_search.py +• src/graph_sitter.extensions/vector_index.py +• src/graph_sitter.extensions/tools/semantic_search.py ``` ## Environment Variables diff --git a/codegen-examples/examples/slack_chatbot/api.py b/codegen-examples/examples/slack_chatbot/api.py index d6cf49829..681bb13ac 100644 --- a/codegen-examples/examples/slack_chatbot/api.py +++ b/codegen-examples/examples/slack_chatbot/api.py @@ -4,8 +4,8 @@ from typing import Any import modal -from codegen import Codebase -from codegen.extensions import VectorIndex +from graph_sitter import Codebase +from graph_sitter.extensions import VectorIndex from fastapi import FastAPI, Request from openai import OpenAI from slack_bolt import App diff --git a/codegen-examples/examples/sqlalchemy_1.6_to_2.0/run.py b/codegen-examples/examples/sqlalchemy_1.6_to_2.0/run.py index d41882686..34a3bcb3d 100644 --- a/codegen-examples/examples/sqlalchemy_1.6_to_2.0/run.py +++ b/codegen-examples/examples/sqlalchemy_1.6_to_2.0/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.expressions.chained_attribute import ChainedAttribute diff --git a/codegen-examples/examples/sqlalchemy_soft_delete/run.py b/codegen-examples/examples/sqlalchemy_soft_delete/run.py index 2a1c0e41e..3daa2fa24 100644 --- a/codegen-examples/examples/sqlalchemy_soft_delete/run.py +++ b/codegen-examples/examples/sqlalchemy_soft_delete/run.py @@ -90,7 +90,7 @@ def process_soft_deletes(codebase): if __name__ == "__main__": - from codegen import Codebase + from graph_sitter import Codebase from graph_sitter.configs.models.codebase import CodebaseConfig repo_path = Path("/tmp/core") diff --git a/codegen-examples/examples/sqlalchemy_type_annotations/run.py b/codegen-examples/examples/sqlalchemy_type_annotations/run.py index a22699792..24f80d15e 100644 --- a/codegen-examples/examples/sqlalchemy_type_annotations/run.py +++ b/codegen-examples/examples/sqlalchemy_type_annotations/run.py @@ -3,7 +3,7 @@ import subprocess import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall diff --git a/codegen-examples/examples/swebench_agent_run/constants.py b/codegen-examples/examples/swebench_agent_run/constants.py index 138669e96..aedfa9ede 100644 --- a/codegen-examples/examples/swebench_agent_run/constants.py +++ b/codegen-examples/examples/swebench_agent_run/constants.py @@ -1,5 +1,5 @@ -from codegen.extensions.swebench.enums import SWEBenchDataset -from codegen.extensions.swebench.enums import SWEBenchLiteSubset +from graph_sitter.extensions.swebench.enums import SWEBenchDataset +from graph_sitter.extensions.swebench.enums import SWEBenchLiteSubset DATASET_DICT = { diff --git a/codegen-examples/examples/swebench_agent_run/entry_point.py b/codegen-examples/examples/swebench_agent_run/entry_point.py index a364aaa19..1b3ea4ed6 100644 --- a/codegen-examples/examples/swebench_agent_run/entry_point.py +++ b/codegen-examples/examples/swebench_agent_run/entry_point.py @@ -1,5 +1,5 @@ -from codegen.extensions.swebench.utils import SweBenchExample -from codegen.extensions.swebench.harness import run_agent_on_entry +from graph_sitter.extensions.swebench.utils import SweBenchExample +from graph_sitter.extensions.swebench.harness import run_agent_on_entry import modal image = ( diff --git a/codegen-examples/examples/swebench_agent_run/local_run.ipynb b/codegen-examples/examples/swebench_agent_run/local_run.ipynb index 3a9b0785a..8c5ee27b7 100644 --- a/codegen-examples/examples/swebench_agent_run/local_run.ipynb +++ b/codegen-examples/examples/swebench_agent_run/local_run.ipynb @@ -13,7 +13,7 @@ "\n", "load_dotenv()\n", "\n", - "from codegen.extensions.swebench.utils import SWEBenchDataset, get_swe_bench_examples # noqa: E402\n", + "from graph_sitter.extensions.swebench.utils import SWEBenchDataset, get_swe_bench_examples # noqa: E402\n", "from run_eval import run_eval # noqa: E402" ] }, @@ -64,7 +64,7 @@ "prompt = \"\"\"\n", "Add a notion integration to the codebase. View similar integrations for linear.\n", "Please view the existing integrations for linear.\n", - "- src/codegen/extensions/clients/linear.py\n", + "- src/graph_sitter.extensions/clients/linear.py\n", "\"\"\"" ] }, diff --git a/codegen-examples/examples/swebench_agent_run/run_eval.py b/codegen-examples/examples/swebench_agent_run/run_eval.py index 556216960..ce7938cd3 100644 --- a/codegen-examples/examples/swebench_agent_run/run_eval.py +++ b/codegen-examples/examples/swebench_agent_run/run_eval.py @@ -6,11 +6,11 @@ import modal import click import time -from codegen.extensions.swebench.enums import SWEBenchDataset, SWEBenchLiteSubset +from graph_sitter.extensions.swebench.enums import SWEBenchDataset, SWEBenchLiteSubset from constants import DATASET_DICT -from codegen.extensions.swebench.harness import run_agent_on_entry -from codegen.extensions.swebench.utils import SweBenchExample, get_swe_bench_examples -from codegen.extensions.swebench.report import generate_report +from graph_sitter.extensions.swebench.harness import run_agent_on_entry +from graph_sitter.extensions.swebench.utils import SweBenchExample, get_swe_bench_examples +from graph_sitter.extensions.swebench.report import generate_report from graph_sitter.core.codebase import Codebase PREDS_DNAME = Path(__file__).parent / "predictions" diff --git a/codegen-examples/examples/swebench_agent_run/test.py b/codegen-examples/examples/swebench_agent_run/test.py index fb6e4eb5a..7f73dcb40 100644 --- a/codegen-examples/examples/swebench_agent_run/test.py +++ b/codegen-examples/examples/swebench_agent_run/test.py @@ -1,4 +1,4 @@ -from codegen import Codebase +from graph_sitter import Codebase import modal image = modal.Image.debian_slim(python_version="3.13").apt_install("git").pip_install("fastapi[standard]").run_commands("pip install codegen") diff --git a/codegen-examples/examples/symbol-attributions/README.md b/codegen-examples/examples/symbol-attributions/README.md index 54c56b432..a44d73a69 100644 --- a/codegen-examples/examples/symbol-attributions/README.md +++ b/codegen-examples/examples/symbol-attributions/README.md @@ -12,7 +12,7 @@ This script performs several key functions: - Analyzes import relationships and dependencies ```python - from codegen import Codebase + from graph_sitter import Codebase # Initialize codebase object from directory codebase = Codebase.from_repo("your-org/your-repo", language="python") diff --git a/codegen-examples/examples/symbol-attributions/run.py b/codegen-examples/examples/symbol-attributions/run.py index 6fea780ac..56e905ee4 100644 --- a/codegen-examples/examples/symbol-attributions/run.py +++ b/codegen-examples/examples/symbol-attributions/run.py @@ -1,11 +1,11 @@ import os import sys -from codegen import Codebase -from codegen.extensions.attribution.cli import run -from codegen.extensions.attribution.main import add_attribution_to_symbols -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.cli import run +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.codebase.config import ProjectConfig from graph_sitter.shared.enums.programming_language import ProgrammingLanguage diff --git a/codegen-examples/examples/unittest_to_pytest/run.py b/codegen-examples/examples/unittest_to_pytest/run.py index 339b583b9..f17b7a8ad 100644 --- a/codegen-examples/examples/unittest_to_pytest/run.py +++ b/codegen-examples/examples/unittest_to_pytest/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase diff --git a/codegen-examples/examples/usesuspensequery_to_usesuspensequeries/run.py b/codegen-examples/examples/usesuspensequery_to_usesuspensequeries/run.py index cd50e6f7f..2da970eab 100644 --- a/codegen-examples/examples/usesuspensequery_to_usesuspensequeries/run.py +++ b/codegen-examples/examples/usesuspensequery_to_usesuspensequeries/run.py @@ -1,5 +1,5 @@ import codegen -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall diff --git a/codegen-examples/examples/visualize_codebases/blast_radius.py b/codegen-examples/examples/visualize_codebases/blast_radius.py index 106f5d439..445c5716a 100644 --- a/codegen-examples/examples/visualize_codebases/blast_radius.py +++ b/codegen-examples/examples/visualize_codebases/blast_radius.py @@ -1,6 +1,6 @@ import codegen import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.dataclasses.usage import Usage from graph_sitter.python.function import PyFunction from graph_sitter.python.symbol import PySymbol diff --git a/codegen-examples/examples/visualize_codebases/call_trace.py b/codegen-examples/examples/visualize_codebases/call_trace.py index b50f96794..5dc85a979 100644 --- a/codegen-examples/examples/visualize_codebases/call_trace.py +++ b/codegen-examples/examples/visualize_codebases/call_trace.py @@ -1,6 +1,6 @@ import codegen import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.class_definition import Class from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.external_module import ExternalModule diff --git a/codegen-examples/examples/visualize_codebases/dependency_trace.py b/codegen-examples/examples/visualize_codebases/dependency_trace.py index e48c7e1f1..64168839f 100644 --- a/codegen-examples/examples/visualize_codebases/dependency_trace.py +++ b/codegen-examples/examples/visualize_codebases/dependency_trace.py @@ -1,6 +1,6 @@ import codegen import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.class_definition import Class from graph_sitter.core.import_resolution import Import from graph_sitter.core.symbol import Symbol diff --git a/codegen-examples/examples/visualize_codebases/method_relationships.py b/codegen-examples/examples/visualize_codebases/method_relationships.py index 92fe2488e..1e1a5f837 100644 --- a/codegen-examples/examples/visualize_codebases/method_relationships.py +++ b/codegen-examples/examples/visualize_codebases/method_relationships.py @@ -1,6 +1,6 @@ import codegen import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase from graph_sitter.core.class_definition import Class from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.external_module import ExternalModule diff --git a/docs/_deprecated/building-with-codegen/commit-and-reset.mdx b/docs/_deprecated/building-with-codegen/commit-and-reset.mdx index b0aae8309..77efe8c87 100644 --- a/docs/_deprecated/building-with-codegen/commit-and-reset.mdx +++ b/docs/_deprecated/building-with-codegen/commit-and-reset.mdx @@ -22,7 +22,7 @@ You can manage your codebase's state with two core APIs: When you make changes to your codebase through Codegen's APIs, they aren't immediately written to disk. You need to explicitly commit them with [codebase.commit()](/api-reference/core/Codebase#commit): ```python -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") diff --git a/docs/_deprecated/building-with-codegen/dot-codegen.mdx b/docs/_deprecated/building-with-codegen/dot-codegen.mdx index b4b493fde..fdf50d15e 100644 --- a/docs/_deprecated/building-with-codegen/dot-codegen.mdx +++ b/docs/_deprecated/building-with-codegen/dot-codegen.mdx @@ -95,7 +95,7 @@ Use `codegen list` to see all codemods in your project. The `jupyter/` directory contains notebooks for interactive development: ```python -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase codebase = Codebase('../../') diff --git a/docs/_deprecated/building-with-codegen/language-support.mdx b/docs/_deprecated/building-with-codegen/language-support.mdx index 93cde215f..af513adb4 100644 --- a/docs/_deprecated/building-with-codegen/language-support.mdx +++ b/docs/_deprecated/building-with-codegen/language-support.mdx @@ -12,7 +12,7 @@ Codegen provides first-class support for both Python and TypeScript codebases. T When you create a new `Codebase` instance, Codegen automatically detects the programming language: ```python -from codegen import Codebase +from graph_sitter import Codebase # Automatically detects Python or TypeScript codebase = Codebase("./") diff --git a/docs/_deprecated/building-with-codegen/parsing-codebases.mdx b/docs/_deprecated/building-with-codegen/parsing-codebases.mdx index ac8168f73..88ea961e9 100644 --- a/docs/_deprecated/building-with-codegen/parsing-codebases.mdx +++ b/docs/_deprecated/building-with-codegen/parsing-codebases.mdx @@ -12,7 +12,7 @@ The primary entrypoint to programs leveraging Codegen is the [Codebase](/api-ref Construct a Codebase by passing in a path to a local `git` repository or any subfolder within it. The path must be within a git repository (i.e., somewhere in the parent directory tree must contain a `.git` folder). ```python -from codegen import Codebase +from graph_sitter import Codebase # Parse from a git repository root codebase = Codebase("path/to/repository") @@ -44,7 +44,7 @@ codebase = Codebase("./", language="typescript") To fetch and parse a repository directly from GitHub, use the `from_repo` function. ```python -from codegen import Codebase +from graph_sitter import Codebase # Fetch and parse a repository (defaults to /tmp/codegen/{repo_name}) codebase = Codebase.from_repo('fastapi/fastapi') @@ -68,7 +68,7 @@ codebase = Codebase.from_repo( You can customize the behavior of your Codebase instance by passing a `CodebaseConfig` object. This allows you to configure secrets (like API keys) and toggle specific features: ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs.models.codebase import CodebaseConfig from codegen.configs.models.secrets import SecretsConfig @@ -96,7 +96,7 @@ For more complex scenarios, Codegen supports an advanced initialization mode usi Here's an example: ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.git.repo_operator.local_repo_operator import LocalRepoOperator from codegen.git.schemas.repo_config import BaseRepoConfig from codegen.sdk.codebase.config import ProjectConfig diff --git a/docs/_deprecated/building-with-codegen/reusable-codemods.mdx b/docs/_deprecated/building-with-codegen/reusable-codemods.mdx index 0768e1a0d..024de799a 100644 --- a/docs/_deprecated/building-with-codegen/reusable-codemods.mdx +++ b/docs/_deprecated/building-with-codegen/reusable-codemods.mdx @@ -19,7 +19,7 @@ This creates a new codemod in your `.codegen/codemods` directory: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("rename-function") def run(codebase: Codebase): @@ -70,7 +70,7 @@ A codemod consists of three main parts: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("update-imports") def run(codebase: Codebase): diff --git a/docs/_deprecated/building-with-codegen/semantic-code-search.mdx b/docs/_deprecated/building-with-codegen/semantic-code-search.mdx index 63119924a..2623afcb0 100644 --- a/docs/_deprecated/building-with-codegen/semantic-code-search.mdx +++ b/docs/_deprecated/building-with-codegen/semantic-code-search.mdx @@ -68,7 +68,7 @@ The `FileIndex` operates at the file level: - Simpler and faster to create/update ```python -from codegen.extensions.index.file_index import FileIndex +from graph_sitter.extensions.index.file_index import FileIndex index = FileIndex(codebase) index.create() @@ -82,7 +82,7 @@ The `SymbolIndex` operates at the symbol level: - More granular search results ```python -from codegen.extensions.index.symbol_index import SymbolIndex +from graph_sitter.extensions.index.symbol_index import SymbolIndex index = SymbolIndex(codebase) index.create() diff --git a/docs/_deprecated/building-with-codegen/type-annotations.mdx b/docs/_deprecated/building-with-codegen/type-annotations.mdx index 0ecc9a548..80e253510 100644 --- a/docs/_deprecated/building-with-codegen/type-annotations.mdx +++ b/docs/_deprecated/building-with-codegen/type-annotations.mdx @@ -12,7 +12,7 @@ This guide covers the core APIs and patterns for working with type annotations i Codegen builds a complete dependency graph of your codebase, connecting functions, classes, imports, and their relationships. This enables powerful type resolution capabilities: ```python -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase with dependency graph codebase = Codebase("./") diff --git a/docs/_deprecated/cli/about.mdx b/docs/_deprecated/cli/about.mdx index 8d4fa938b..a70e525b2 100644 --- a/docs/_deprecated/cli/about.mdx +++ b/docs/_deprecated/cli/about.mdx @@ -1,11 +1,11 @@ --- -title: "Codegen CLI" +title: "graph_sitter.cli" sidebarTitle: "Overview" icon: "square-info" iconType: "solid" --- -The Codegen CLI helps you: +The graph_sitter.cli helps you: - Initialize Codegen in your repository - Create and run codemods diff --git a/docs/_deprecated/cli/create.mdx b/docs/_deprecated/cli/create.mdx index 938e974e3..9abd0502e 100644 --- a/docs/_deprecated/cli/create.mdx +++ b/docs/_deprecated/cli/create.mdx @@ -42,7 +42,7 @@ The generated codemod will have this structure: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("rename-function") def run(codebase: Codebase): diff --git a/docs/_deprecated/cli/notebook.mdx b/docs/_deprecated/cli/notebook.mdx index 4941f1a94..e1b298ad4 100644 --- a/docs/_deprecated/cli/notebook.mdx +++ b/docs/_deprecated/cli/notebook.mdx @@ -32,7 +32,7 @@ This will: The notebook comes pre-configured with: ```python -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase codebase = Codebase('../../') diff --git a/docs/_deprecated/graph-sitter/advanced-settings.mdx b/docs/_deprecated/graph-sitter/advanced-settings.mdx index 08f0e5472..0a6e86c91 100644 --- a/docs/_deprecated/graph-sitter/advanced-settings.mdx +++ b/docs/_deprecated/graph-sitter/advanced-settings.mdx @@ -26,7 +26,7 @@ These configuration options are defined in [src/codegen/configs/models/codebase. You can customize the behavior of the graph construction process when initializing a [Codebase](/api-reference/core/Codebase) by passing a `CodebaseConfig` object with the desired configuration flags. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration @@ -215,7 +215,7 @@ This experimental flag pushes the graph creation back until the graph is needed. **Example Codemod:** ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Enable lazy graph parsing diff --git a/docs/_deprecated/graph-sitter/getting-started.mdx b/docs/_deprecated/graph-sitter/getting-started.mdx index ad9e2c5f2..a87fc47d8 100644 --- a/docs/_deprecated/graph-sitter/getting-started.mdx +++ b/docs/_deprecated/graph-sitter/getting-started.mdx @@ -39,7 +39,7 @@ codegen notebook --demo Instantiating a [Codebase](/api-reference/core/Codebase) will automatically parse a codebase and make it available for manipulation. ```python -from codegen import Codebase +from graph_sitter import Codebase # Clone + parse fastapi/fastapi codebase = Codebase.from_repo('fastapi/fastapi') @@ -283,7 +283,7 @@ Codegen also supports a number of advanced settings that can be used to customiz These flags are helpful for debugging problematic repos, optimizing Codegen’s performance, or testing unreleased or experimental (potentially backwards-breaking) features. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration diff --git a/docs/_deprecated/graph-sitter/how-it-works.mdx b/docs/_deprecated/graph-sitter/how-it-works.mdx index 8777a5be4..d891a9c08 100644 --- a/docs/_deprecated/graph-sitter/how-it-works.mdx +++ b/docs/_deprecated/graph-sitter/how-it-works.mdx @@ -25,7 +25,7 @@ At the heart of Codegen is a comprehensive graph representation of your code. Wh ```python # Initialize and analyze the codebase -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") # Access pre-computed relationships diff --git a/docs/_deprecated/graph-sitter/ide-usage.mdx b/docs/_deprecated/graph-sitter/ide-usage.mdx index 3c58d39ab..b1356c21f 100644 --- a/docs/_deprecated/graph-sitter/ide-usage.mdx +++ b/docs/_deprecated/graph-sitter/ide-usage.mdx @@ -65,11 +65,11 @@ Add this to your cline_mcp_settings.json: ```json { "mcpServers": { - "codegen-cli": { + "graph_sitter.cli": { "command": "uv", "args": [ "--directory", - "/codegen-sdk/src/codegen/cli/mcp", + "/codegen-sdk/src/graph_sitter.cli/mcp", "run", "server.py" ] @@ -85,7 +85,7 @@ Under the `Settings` > `Feature` > `MCP Servers` section, click "Add New MCP Ser ``` Name: codegen-mcp Type: Command -Command: uv --directory /codegen-sdk/src/codegen/cli/mcp run server.py +Command: uv --directory /codegen-sdk/src/graph_sitter.cli/mcp run server.py ``` diff --git a/docs/_deprecated/graph-sitter/overview.mdx b/docs/_deprecated/graph-sitter/overview.mdx index 4d428fc71..4a0011d6c 100644 --- a/docs/_deprecated/graph-sitter/overview.mdx +++ b/docs/_deprecated/graph-sitter/overview.mdx @@ -10,7 +10,7 @@ iconType: "solid" It provides a scriptable interface to a powerful, multi-lingual language server built on top of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/). ```python -from codegen import Codebase +from graph_sitter import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships diff --git a/docs/_deprecated/graph-sitter/work-with-ai.mdx b/docs/_deprecated/graph-sitter/work-with-ai.mdx index c826aad75..59001a95c 100644 --- a/docs/_deprecated/graph-sitter/work-with-ai.mdx +++ b/docs/_deprecated/graph-sitter/work-with-ai.mdx @@ -23,7 +23,7 @@ import { ## Generating System Prompts -The [Codegen CLI](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. +The [graph_sitter.cli](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. When you create a new codemod via [codegen create](/cli/create): diff --git a/docs/_deprecated/tutorials/attributions.mdx b/docs/_deprecated/tutorials/attributions.mdx index 832c9a74b..b03db16bc 100644 --- a/docs/_deprecated/tutorials/attributions.mdx +++ b/docs/_deprecated/tutorials/attributions.mdx @@ -32,7 +32,7 @@ The attribution extension is included with Codegen. No additional installation i ### Running the Analysis -You can run the AI impact analysis using the Codegen CLI: +You can run the AI impact analysis using the graph_sitter.cli: ```bash codegen analyze-ai-impact @@ -41,8 +41,8 @@ codegen analyze-ai-impact Or from Python code: ```python -from codegen import Codebase -from codegen.extensions.attribution.cli import run +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.cli import run # Initialize codebase from current directory codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -68,8 +68,8 @@ The analysis will print a summary of AI contributions to your console and save d After running the analysis, each symbol in your codebase will have attribution information attached to it: ```python -from codegen import Codebase -from codegen.extensions.attribution.main import add_attribution_to_symbols +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols # Initialize codebase codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -92,8 +92,8 @@ By default, the analysis looks for common AI bot names in commit authors. You can customize this by providing your own list of AI authors: ```python -from codegen import Codebase -from codegen.extensions.attribution.main import analyze_ai_impact +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import analyze_ai_impact # Initialize codebase codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -119,8 +119,8 @@ Here's a complete example that analyzes contributors to your codebase and their import os from collections import Counter -from codegen import Codebase -from codegen.extensions.attribution.main import add_attribution_to_symbols +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols from codegen.git.repo_operator.repo_operator import RepoOperator from codegen.git.schemas.repo_config import RepoConfig from codegen.sdk.codebase.config import ProjectConfig diff --git a/docs/_deprecated/tutorials/build-mcp.mdx b/docs/_deprecated/tutorials/build-mcp.mdx index 691a5e2ce..985a47d8f 100644 --- a/docs/_deprecated/tutorials/build-mcp.mdx +++ b/docs/_deprecated/tutorials/build-mcp.mdx @@ -9,7 +9,7 @@ Learn how to build a Model Context Protocol (MCP) server that enables AI models This guide will walk you through creating an MCP server that can provide semantic code search -View the full code in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/codegen/extensions/mcp) +View the full code in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/graph_sitter.extensions/mcp) ## Setup: @@ -24,7 +24,7 @@ First, let's create a basic MCP server using Codegen's MCP tools: server.py ```python -from codegen import Codebase +from graph_sitter import Codebase from mcp.server.fastmcp import FastMCP from typing import Annotated # Initialize the codebase @@ -47,14 +47,14 @@ Let's implement the semantic search tool. server.py ```python -from codegen.extensions.tools.semantic_search import semantic_search +from graph_sitter.extensions.tools.semantic_search import semantic_search .... @mcp.tool('codebase_semantic_search', "search codebase with the provided query") def search(query: Annotated[str, "search query to run against codebase"]): codebase = Codebase("provide location to codebase", language="provide codebase Language") - # use the semantic search tool from codegen.extensions.tools OR write your own + # use the semantic search tool from graph_sitter.extensions.tools OR write your own results = semantic_search(codebase=codebase, query=query) return results diff --git a/docs/_deprecated/tutorials/codebase-visualization.mdx b/docs/_deprecated/tutorials/codebase-visualization.mdx index a8d29484a..137fb9612 100644 --- a/docs/_deprecated/tutorials/codebase-visualization.mdx +++ b/docs/_deprecated/tutorials/codebase-visualization.mdx @@ -38,7 +38,7 @@ First, we'll set up our codebase, graph and configure some basic parameters: ```python import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase codebase = Codebase("path/to/posthog/") diff --git a/docs/_deprecated/tutorials/deep-code-research.mdx b/docs/_deprecated/tutorials/deep-code-research.mdx index 6b1e72b2b..ec210a520 100644 --- a/docs/_deprecated/tutorials/deep-code-research.mdx +++ b/docs/_deprecated/tutorials/deep-code-research.mdx @@ -26,9 +26,9 @@ Let's walk through building each component. First, let's import the necessary components and set up our research tools: ```python -from codegen import Codebase -from codegen.extensions.langchain.agent import create_agent_with_tools -from codegen.extensions.langchain.tools import ( +from graph_sitter import Codebase +from graph_sitter.extensions.langchain.agent import create_agent_with_tools +from graph_sitter.extensions.langchain.tools import ( ListDirectoryTool, RevealSymbolTool, SearchTool, diff --git a/docs/_deprecated/tutorials/flask-to-fastapi.mdx b/docs/_deprecated/tutorials/flask-to-fastapi.mdx index e8076ceeb..69e743f5e 100644 --- a/docs/_deprecated/tutorials/flask-to-fastapi.mdx +++ b/docs/_deprecated/tutorials/flask-to-fastapi.mdx @@ -29,7 +29,7 @@ First, we need to update Flask imports to their FastAPI equivalents and modify t ```python -from codegen import Codebase +from graph_sitter import Codebase # Parse the codebase codebase = Codebase("./") diff --git a/docs/_deprecated/tutorials/neo4j-graph.mdx b/docs/_deprecated/tutorials/neo4j-graph.mdx index 0c571bf4e..a1d7f8457 100644 --- a/docs/_deprecated/tutorials/neo4j-graph.mdx +++ b/docs/_deprecated/tutorials/neo4j-graph.mdx @@ -38,8 +38,8 @@ docker run \ ## Usage ```python -from codegen import Codebase -from codegen.extensions.graph.main import visualize_codebase +from graph_sitter import Codebase +from graph_sitter.extensions.graph.main import visualize_codebase # parse codebase codebase = Codebase("path/to/codebase") diff --git a/docs/_deprecated/tutorials/slack-bot.mdx b/docs/_deprecated/tutorials/slack-bot.mdx index 9aeb36741..9a7b0030e 100644 --- a/docs/_deprecated/tutorials/slack-bot.mdx +++ b/docs/_deprecated/tutorials/slack-bot.mdx @@ -26,8 +26,8 @@ Let's walk through each step using Codegen. First, we initialize the codebase and create a vector index for semantic search: ```python -from codegen import Codebase -from codegen.extensions import VectorIndex +from graph_sitter import Codebase +from graph_sitter.extensions import VectorIndex def initialize_codebase(): """Initialize and index the codebase.""" @@ -168,8 +168,8 @@ using tiktoken. Each chunk is embedded separately and can be searched independen allowing for more precise semantic search results. Relevant files: -• src/codegen/extensions/vector_index.py (score: 0.92) -• src/codegen/extensions/tools/semantic_search.py (score: 0.85) +• src/graph_sitter.extensions/vector_index.py (score: 0.92) +• src/graph_sitter.extensions/tools/semantic_search.py (score: 0.85) ``` ## Extensions diff --git a/docs/_deprecated/tutorials/training-data.mdx b/docs/_deprecated/tutorials/training-data.mdx index 300ad07da..f513e292b 100644 --- a/docs/_deprecated/tutorials/training-data.mdx +++ b/docs/_deprecated/tutorials/training-data.mdx @@ -32,7 +32,7 @@ First, let's import the types we need from Codegen: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase from codegen.sdk.core.external_module import ExternalModule from codegen.sdk.core.import_resolution import Import from codegen.sdk.core.symbol import Symbol diff --git a/docs/blog/devin.mdx b/docs/blog/devin.mdx index 25eb50beb..04bb44670 100644 --- a/docs/blog/devin.mdx +++ b/docs/blog/devin.mdx @@ -43,7 +43,7 @@ The nice part about this approach is that we don't have to blindly trust the AI. ## Try it yourself -Want to experience this with your own Devin instance? Install the Codegen CLI in your Devin box: +Want to experience this with your own Devin instance? Install the graph_sitter.cli in your Devin box: ```bash uv tool install codegen --python 3.13 diff --git a/docs/conftest.py b/docs/conftest.py index ac8897927..246f8858e 100644 --- a/docs/conftest.py +++ b/docs/conftest.py @@ -11,7 +11,7 @@ from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.typescript.class_definition import TSClass from graph_sitter.typescript.file import TSFile -from codegen.gscli.generate.runner_imports import EXTERNAL_IMPORTS +from graph_sitter.gscli.generate.runner_imports import EXTERNAL_IMPORTS SAMPLE_FILENAME = { ProgrammingLanguage.PYTHON: "sample.py", diff --git a/docs/graph-sitter/advanced-settings.mdx b/docs/graph-sitter/advanced-settings.mdx index 08f0e5472..0a6e86c91 100644 --- a/docs/graph-sitter/advanced-settings.mdx +++ b/docs/graph-sitter/advanced-settings.mdx @@ -26,7 +26,7 @@ These configuration options are defined in [src/codegen/configs/models/codebase. You can customize the behavior of the graph construction process when initializing a [Codebase](/api-reference/core/Codebase) by passing a `CodebaseConfig` object with the desired configuration flags. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration @@ -215,7 +215,7 @@ This experimental flag pushes the graph creation back until the graph is needed. **Example Codemod:** ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Enable lazy graph parsing diff --git a/docs/graph-sitter/getting-started.mdx b/docs/graph-sitter/getting-started.mdx index ad9e2c5f2..a87fc47d8 100644 --- a/docs/graph-sitter/getting-started.mdx +++ b/docs/graph-sitter/getting-started.mdx @@ -39,7 +39,7 @@ codegen notebook --demo Instantiating a [Codebase](/api-reference/core/Codebase) will automatically parse a codebase and make it available for manipulation. ```python -from codegen import Codebase +from graph_sitter import Codebase # Clone + parse fastapi/fastapi codebase = Codebase.from_repo('fastapi/fastapi') @@ -283,7 +283,7 @@ Codegen also supports a number of advanced settings that can be used to customiz These flags are helpful for debugging problematic repos, optimizing Codegen’s performance, or testing unreleased or experimental (potentially backwards-breaking) features. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration diff --git a/docs/graph-sitter/how-it-works.mdx b/docs/graph-sitter/how-it-works.mdx index 8777a5be4..d891a9c08 100644 --- a/docs/graph-sitter/how-it-works.mdx +++ b/docs/graph-sitter/how-it-works.mdx @@ -25,7 +25,7 @@ At the heart of Codegen is a comprehensive graph representation of your code. Wh ```python # Initialize and analyze the codebase -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") # Access pre-computed relationships diff --git a/docs/graph-sitter/ide-usage.mdx b/docs/graph-sitter/ide-usage.mdx index 3c58d39ab..b1356c21f 100644 --- a/docs/graph-sitter/ide-usage.mdx +++ b/docs/graph-sitter/ide-usage.mdx @@ -65,11 +65,11 @@ Add this to your cline_mcp_settings.json: ```json { "mcpServers": { - "codegen-cli": { + "graph_sitter.cli": { "command": "uv", "args": [ "--directory", - "/codegen-sdk/src/codegen/cli/mcp", + "/codegen-sdk/src/graph_sitter.cli/mcp", "run", "server.py" ] @@ -85,7 +85,7 @@ Under the `Settings` > `Feature` > `MCP Servers` section, click "Add New MCP Ser ``` Name: codegen-mcp Type: Command -Command: uv --directory /codegen-sdk/src/codegen/cli/mcp run server.py +Command: uv --directory /codegen-sdk/src/graph_sitter.cli/mcp run server.py ``` diff --git a/docs/graph-sitter/overview.mdx b/docs/graph-sitter/overview.mdx index 4d428fc71..4a0011d6c 100644 --- a/docs/graph-sitter/overview.mdx +++ b/docs/graph-sitter/overview.mdx @@ -10,7 +10,7 @@ iconType: "solid" It provides a scriptable interface to a powerful, multi-lingual language server built on top of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/). ```python -from codegen import Codebase +from graph_sitter import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships diff --git a/docs/graph-sitter/work-with-ai.mdx b/docs/graph-sitter/work-with-ai.mdx index c826aad75..59001a95c 100644 --- a/docs/graph-sitter/work-with-ai.mdx +++ b/docs/graph-sitter/work-with-ai.mdx @@ -23,7 +23,7 @@ import { ## Generating System Prompts -The [Codegen CLI](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. +The [graph_sitter.cli](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. When you create a new codemod via [codegen create](/cli/create): diff --git a/docs/introduction/how-it-works.mdx b/docs/introduction/how-it-works.mdx index 8777a5be4..d891a9c08 100644 --- a/docs/introduction/how-it-works.mdx +++ b/docs/introduction/how-it-works.mdx @@ -25,7 +25,7 @@ At the heart of Codegen is a comprehensive graph representation of your code. Wh ```python # Initialize and analyze the codebase -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") # Access pre-computed relationships diff --git a/hatch.toml b/hatch.toml index 954b155bd..cc13e2841 100644 --- a/hatch.toml +++ b/hatch.toml @@ -77,21 +77,21 @@ exclude = [ macos-max-compat = false [build] -packages = ["src/graph_sitter", "src/codegen"] +packages = ["src/graph_sitter"] [metadata.hooks.vcs.urls] Homepage = "https://www.codegen.com/" -Repository = "https://github.com/codegen-sh/codegen-sdk" -Download = "https://github.com/codegen-sh/codegen-sdk/archive/{commit_hash}.zip" +Repository = "https://github.com/codegen-sh/graph-sitter" +Download = "https://github.com/codegen-sh/graph-sitter/archive/{commit_hash}.zip" Changelog = "https://docs.codegen.com/changelog/changelog" -Releasenotes = "https://github.com/codegen-sh/codegen-sdk/releases" -Issues = "https://github.com/codegen-sh/codegen-sdk/issues" +Releasenotes = "https://github.com/codegen-sh/graph-sitter/releases" +Issues = "https://github.com/codegen-sh/graph-sitter/issues" Documentation = "https://docs.codegen.com" Playground = "https://www.codegen.sh/" [build.targets.wheel.hooks.custom] enable-by-default = false -path = "src/codegen/gsbuild/build.py" +path = "src/gsbuild/build.py" require-runtime-dependencies = true [envs.default] installer = "uv" diff --git a/pyproject.toml b/pyproject.toml index 637039dba..776ccdb20 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,6 @@ dependencies = [ "urllib3>=2.0.0", "datasets", "colorlog>=6.9.0", - "codegen-api-client", ] # renovate: datasource=python-version depName=python @@ -111,7 +110,7 @@ keywords = [ "code generation", ] [project.scripts] -codegen = "codegen.cli.cli:main" +gs = "graph_sitter.cli.cli:main" [project.optional-dependencies] pink = ["codegen-sdk-pink>=0.1.0"] @@ -162,7 +161,6 @@ dev-dependencies = [ "modal>=0.73.25", "pytest-lsp>=1.0.0b1", "cython>=3.0.11", - "codegen-api-client>=1.0.0", ] [tool.uv.workspace] diff --git a/ruff.toml b/ruff.toml index e0acd9dbd..dfa0bb99b 100644 --- a/ruff.toml +++ b/ruff.toml @@ -48,7 +48,7 @@ exclude = [ "*.ipynb", ] # disable just linting for notebooks (allow for formatting) [lint.per-file-ignores] -"src/codegen/cli/mcp/resources/system_prompt.py" = ["E501"] +"src/graph_sitter/cli/mcp/resources/system_prompt.py" = ["E501"] [lint.pydocstyle] convention = "google" [lint.pyflakes] diff --git a/src/codegen/__init__.py b/src/codegen/__init__.py deleted file mode 100644 index 33f7f0656..000000000 --- a/src/codegen/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from codegen.agents.agent import Agent -from codegen.cli.sdk.decorator import function -from codegen.cli.sdk.functions import Function -from codegen.extensions.events.codegen_app import CodegenApp -from graph_sitter.core.codebase import Codebase -from graph_sitter.shared.enums.programming_language import ProgrammingLanguage - -__all__ = ["Agent", "Codebase", "CodegenApp", "Function", "ProgrammingLanguage", "function"] diff --git a/src/codegen/agents/README.md b/src/codegen/agents/README.md deleted file mode 100644 index 254ed4bc9..000000000 --- a/src/codegen/agents/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# Codegen Agents - Python SDK - -This module provides a Python client for interacting with the Codegen AI agents API. - -## Installation - -The Codegen Agent SDK is included as part of the Codegen package. Ensure you have the latest version installed: - -```bash -pip install codegen -``` - -## Usage - -### Basic Example - -```python -from codegen.agents.agent import Agent - -# Initialize the Agent with your organization ID and API token -agent = Agent( - org_id="11", # Your organization ID - token="your_api_token_here", # Your API authentication token - base_url="https://codegen-sh-rest-api.modal.run", # Optional - defaults to this URL -) - -# Run an agent with a prompt -task = agent.run(prompt="Which github repos can you currently access?") - -# Check the initial status -print(task.status) # Returns the current status of the task (e.g., "queued", "in_progress", etc.) - -# Refresh the task to get updated status -task.refresh() - -# Check the updated status -print(task.status) - -# Once task is complete, you can access the result -if task.status == "completed": - print(task.result) -``` - -### Agent Class - -The `Agent` class is the main entry point for interacting with Codegen AI agents: - -```python -Agent(token: str, org_id: Optional[int] = None, base_url: Optional[str] = CODEGEN_BASE_API_URL) -``` - -Parameters: - -- `token` (required): Your API authentication token -- `org_id` (optional): Your organization ID. If not provided, defaults to environment variable `CODEGEN_ORG_ID` or "1" -- `base_url` (optional): API base URL. Defaults to "https://codegen-sh-rest-api.modal.run" - -### Methods - -#### run() - -```python -run(prompt: str) -> AgentTask -``` - -Runs an agent with the given prompt. - -Parameters: - -- `prompt` (required): The instruction for the agent to execute - -Returns: - -- An `AgentTask` object representing the running task - -#### get_status() - -```python -get_status() -> Optional[Dict[str, Any]] -``` - -Gets the status of the current task. - -Returns: - -- A dictionary containing task status information (`id`, `status`, `result`), or `None` if no task has been run - -### AgentTask Class - -The `AgentTask` class represents a running or completed agent task: - -#### Attributes - -- `id`: The unique identifier for the task -- `org_id`: The organization ID -- `status`: Current status of the task (e.g., "queued", "in_progress", "completed", "failed") -- `result`: The task result (available when status is "completed") - -#### Methods - -##### refresh() - -```python -refresh() -> None -``` - -Refreshes the task status from the API. - -## Environment Variables - -- `CODEGEN_ORG_ID`: Default organization ID (used if `org_id` is not provided) - -## Error Handling - -Handle potential API errors using standard try/except blocks: - -```python -try: - task = agent.run(prompt="Your prompt here") - task.refresh() - print(task.status) -except Exception as e: - print(f"Error: {e}") -``` diff --git a/src/codegen/agents/__init__.py b/src/codegen/agents/__init__.py deleted file mode 100644 index d428226e3..000000000 --- a/src/codegen/agents/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Codegen Agent API module.""" - -from codegen.agents.agent import Agent - -__all__ = ["Agent"] diff --git a/src/codegen/agents/agent.py b/src/codegen/agents/agent.py deleted file mode 100644 index 288698e53..000000000 --- a/src/codegen/agents/agent.py +++ /dev/null @@ -1,95 +0,0 @@ -import os -from typing import Any - -from codegen_api_client.api.agents_api import AgentsApi -from codegen_api_client.api_client import ApiClient -from codegen_api_client.configuration import Configuration -from codegen_api_client.models.agent_run_response import AgentRunResponse -from codegen_api_client.models.create_agent_run_input import CreateAgentRunInput - -from codegen.agents.constants import CODEGEN_BASE_API_URL - - -class AgentTask: - """Represents an agent run job.""" - - def __init__(self, task_data: AgentRunResponse, api_client: ApiClient, org_id: int): - self.id = task_data.id - self.org_id = org_id - self.status = task_data.status - self.result = task_data.result - self.web_url = task_data.web_url - self._api_client = api_client - self._agents_api = AgentsApi(api_client) - - def refresh(self) -> None: - """Refresh the job status from the API.""" - if self.id is None: - return - - job_data = self._agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get( - agent_run_id=int(self.id), org_id=int(self.org_id), authorization=f"Bearer {self._api_client.configuration.access_token}" - ) - - # Convert API response to dict for attribute access - job_dict = {} - if hasattr(job_data, "__dict__"): - job_dict = job_data.__dict__ - elif isinstance(job_data, dict): - job_dict = job_data - - self.status = job_dict.get("status") - self.result = job_dict.get("result") - - -class Agent: - """API client for interacting with Codegen AI agents.""" - - def __init__(self, token: str, org_id: int | None = None, base_url: str | None = CODEGEN_BASE_API_URL): - """Initialize a new Agent client. - - Args: - token: API authentication token - org_id: Optional organization ID. If not provided, default org will be used. - """ - self.token = token - self.org_id = org_id or int(os.environ.get("CODEGEN_ORG_ID", "1")) # Default to org ID 1 if not specified - - # Configure API client - config = Configuration(host=base_url, access_token=token) - self.api_client = ApiClient(configuration=config) - self.agents_api = AgentsApi(self.api_client) - - # Current job - self.current_job = None - - def run(self, prompt: str) -> AgentTask: - """Run an agent with the given prompt. - - Args: - prompt: The instruction for the agent to execute - - Returns: - Job: A job object representing the agent run - """ - run_input = CreateAgentRunInput(prompt=prompt) - agent_run_response = self.agents_api.create_agent_run_v1_organizations_org_id_agent_run_post( - org_id=int(self.org_id), create_agent_run_input=run_input, authorization=f"Bearer {self.token}", _headers={"Content-Type": "application/json"} - ) - # Convert API response to dict for Job initialization - - job = AgentTask(agent_run_response, self.api_client, self.org_id) - self.current_job = job - return job - - def get_status(self) -> dict[str, Any] | None: - """Get the status of the current job. - - Returns: - dict: A dictionary containing job status information, - or None if no job has been run. - """ - if self.current_job: - self.current_job.refresh() - return {"id": self.current_job.id, "status": self.current_job.status, "result": self.current_job.result, "web_url": self.current_job.web_url} - return None diff --git a/src/codegen/agents/constants.py b/src/codegen/agents/constants.py deleted file mode 100644 index ec94f38e5..000000000 --- a/src/codegen/agents/constants.py +++ /dev/null @@ -1 +0,0 @@ -CODEGEN_BASE_API_URL = "https://codegen-sh--rest-api.modal.run" diff --git a/src/codegen/cli/cli.py b/src/codegen/cli/cli.py deleted file mode 100644 index 8910f615a..000000000 --- a/src/codegen/cli/cli.py +++ /dev/null @@ -1,57 +0,0 @@ -import rich_click as click -from rich.traceback import install - -# Removed reference to non-existent agent module -from codegen.cli.commands.config.main import config_command -from codegen.cli.commands.create.main import create_command -from codegen.cli.commands.deploy.main import deploy_command -from codegen.cli.commands.expert.main import expert_command -from codegen.cli.commands.init.main import init_command -from codegen.cli.commands.list.main import list_command -from codegen.cli.commands.login.main import login_command -from codegen.cli.commands.logout.main import logout_command -from codegen.cli.commands.lsp.lsp import lsp_command -from codegen.cli.commands.notebook.main import notebook_command -from codegen.cli.commands.profile.main import profile_command -from codegen.cli.commands.reset.main import reset_command -from codegen.cli.commands.run.main import run_command -from codegen.cli.commands.run_on_pr.main import run_on_pr_command -from codegen.cli.commands.serve.main import serve_command -from codegen.cli.commands.start.main import start_command -from codegen.cli.commands.style_debug.main import style_debug_command -from codegen.cli.commands.update.main import update_command - -click.rich_click.USE_RICH_MARKUP = True -install(show_locals=True) - - -@click.group() -@click.version_option(prog_name="codegen", message="%(version)s") -def main(): - """Codegen CLI - Transform your code with AI.""" - - -# Wrap commands with error handler -# Removed reference to non-existent agent_command -main.add_command(init_command) -main.add_command(logout_command) -main.add_command(login_command) -main.add_command(run_command) -main.add_command(profile_command) -main.add_command(create_command) -main.add_command(expert_command) -main.add_command(list_command) -main.add_command(deploy_command) -main.add_command(style_debug_command) -main.add_command(run_on_pr_command) -main.add_command(notebook_command) -main.add_command(reset_command) -main.add_command(update_command) -main.add_command(config_command) -main.add_command(lsp_command) -main.add_command(serve_command) -main.add_command(start_command) - - -if __name__ == "__main__": - main() diff --git a/src/codegen/cli/env/constants.py b/src/codegen/cli/env/constants.py deleted file mode 100644 index 165048643..000000000 --- a/src/codegen/cli/env/constants.py +++ /dev/null @@ -1,3 +0,0 @@ -from codegen.cli.env.enums import Environment - -DEFAULT_ENV = Environment.PRODUCTION diff --git a/src/codegen/extensions/__init__.py b/src/codegen/extensions/__init__.py deleted file mode 100644 index 0726ffb10..000000000 --- a/src/codegen/extensions/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Extensions for the codegen package.""" - -from codegen.extensions.index.code_index import CodeIndex -from codegen.extensions.index.file_index import FileIndex - -__all__ = ["CodeIndex", "FileIndex"] diff --git a/src/codegen/extensions/lsp/codemods/__init__.py b/src/codegen/extensions/lsp/codemods/__init__.py deleted file mode 100644 index feb8117b7..000000000 --- a/src/codegen/extensions/lsp/codemods/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from codegen.extensions.lsp.codemods.base import CodeAction -from codegen.extensions.lsp.codemods.split_tests import SplitTests - -ACTIONS: list[CodeAction] = [SplitTests()] diff --git a/src/graph_sitter/README.md b/src/graph_sitter/README.md index f9e94756b..4fe659727 100644 --- a/src/graph_sitter/README.md +++ b/src/graph_sitter/README.md @@ -25,7 +25,7 @@ [Codegen](https://docs.codegen.com) is a python library for manipulating codebases. ```python -from codegen import Codebase +from graph_sitter import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships @@ -76,7 +76,7 @@ codegen notebook See [Getting Started](https://docs.codegen.com/introduction/getting-started) for a full tutorial. ``` -from codegen import Codebase +from graph_sitter import Codebase ``` ## Troubleshooting diff --git a/src/graph_sitter/_proxy.py b/src/graph_sitter/_proxy.py index aecb902fa..339cdb1d1 100644 --- a/src/graph_sitter/_proxy.py +++ b/src/graph_sitter/_proxy.py @@ -6,7 +6,7 @@ from lazy_object_proxy.simple import make_proxy_method try: - from graph_sitter.extensions.utils import cached_property + from graph_sitter.compiled.utils import cached_property except ModuleNotFoundError: from functools import cached_property diff --git a/src/codegen/cli/README.md b/src/graph_sitter/cli/README.md similarity index 98% rename from src/codegen/cli/README.md rename to src/graph_sitter/cli/README.md index 1f09650d8..b5fe79448 100644 --- a/src/codegen/cli/README.md +++ b/src/graph_sitter/cli/README.md @@ -1,4 +1,4 @@ -# Codegen CLI +# graph_sitter.cli A codegen module that handles all `codegen` CLI commands. diff --git a/src/codegen/cli/__init__.py b/src/graph_sitter/cli/__init__.py similarity index 100% rename from src/codegen/cli/__init__.py rename to src/graph_sitter/cli/__init__.py diff --git a/src/codegen/cli/_env.py b/src/graph_sitter/cli/_env.py similarity index 100% rename from src/codegen/cli/_env.py rename to src/graph_sitter/cli/_env.py diff --git a/src/codegen/cli/api/client.py b/src/graph_sitter/cli/api/client.py similarity index 95% rename from src/codegen/cli/api/client.py rename to src/graph_sitter/cli/api/client.py index 68d28e374..27a896a49 100644 --- a/src/codegen/cli/api/client.py +++ b/src/graph_sitter/cli/api/client.py @@ -5,7 +5,7 @@ from pydantic import BaseModel from rich import print as rprint -from codegen.cli.api.endpoints import ( +from graph_sitter.cli.api.endpoints import ( CREATE_ENDPOINT, DEPLOY_ENDPOINT, DOCS_ENDPOINT, @@ -17,7 +17,7 @@ RUN_ENDPOINT, RUN_ON_PR_ENDPOINT, ) -from codegen.cli.api.schemas import ( +from graph_sitter.cli.api.schemas import ( AskExpertInput, AskExpertResponse, CodemodRunType, @@ -39,12 +39,12 @@ RunOnPRInput, RunOnPRResponse, ) -from codegen.cli.auth.session import CodegenSession -from codegen.cli.codemod.convert import convert_to_ui -from codegen.cli.env.global_env import global_env -from codegen.cli.errors import InvalidTokenError, ServerError -from codegen.cli.utils.codemods import Codemod -from codegen.cli.utils.function_finder import DecoratedFunction +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.codemod.convert import convert_to_ui +from graph_sitter.cli.env.global_env import global_env +from graph_sitter.cli.errors import InvalidTokenError, ServerError +from graph_sitter.cli.utils.codemods import Codemod +from graph_sitter.cli.utils.function_finder import DecoratedFunction from graph_sitter.shared.enums.programming_language import ProgrammingLanguage InputT = TypeVar("InputT", bound=BaseModel) diff --git a/src/codegen/cli/api/endpoints.py b/src/graph_sitter/cli/api/endpoints.py similarity index 94% rename from src/codegen/cli/api/endpoints.py rename to src/graph_sitter/cli/api/endpoints.py index a51b38bdb..0aa18a7ec 100644 --- a/src/codegen/cli/api/endpoints.py +++ b/src/graph_sitter/cli/api/endpoints.py @@ -1,4 +1,4 @@ -from codegen.cli.api.modal import MODAL_PREFIX +from graph_sitter.cli.api.modal import MODAL_PREFIX RUN_ENDPOINT = f"https://{MODAL_PREFIX}--cli-run.modal.run" DOCS_ENDPOINT = f"https://{MODAL_PREFIX}--cli-docs.modal.run" diff --git a/src/codegen/cli/api/modal.py b/src/graph_sitter/cli/api/modal.py similarity index 85% rename from src/codegen/cli/api/modal.py rename to src/graph_sitter/cli/api/modal.py index 16b4e3d62..bbeed9280 100644 --- a/src/codegen/cli/api/modal.py +++ b/src/graph_sitter/cli/api/modal.py @@ -1,5 +1,5 @@ -from codegen.cli.env.enums import Environment -from codegen.cli.env.global_env import global_env +from graph_sitter.cli.env.enums import Environment +from graph_sitter.cli.env.global_env import global_env def get_modal_workspace(): diff --git a/src/codegen/cli/api/schemas.py b/src/graph_sitter/cli/api/schemas.py similarity index 99% rename from src/codegen/cli/api/schemas.py rename to src/graph_sitter/cli/api/schemas.py index 4ef25d45d..33e4d3355 100644 --- a/src/codegen/cli/api/schemas.py +++ b/src/graph_sitter/cli/api/schemas.py @@ -4,7 +4,7 @@ from pydantic import BaseModel from pydantic.fields import Field -from codegen.cli.utils.schema import SafeBaseModel +from graph_sitter.cli.utils.schema import SafeBaseModel from graph_sitter.shared.enums.programming_language import ProgrammingLanguage T = TypeVar("T") diff --git a/src/codegen/cli/api/webapp_routes.py b/src/graph_sitter/cli/api/webapp_routes.py similarity index 60% rename from src/codegen/cli/api/webapp_routes.py rename to src/graph_sitter/cli/api/webapp_routes.py index 3588fcc0f..6d2562d9a 100644 --- a/src/codegen/cli/api/webapp_routes.py +++ b/src/graph_sitter/cli/api/webapp_routes.py @@ -1,4 +1,4 @@ # Urls linking to the webapp -from codegen.cli.utils.url import generate_webapp_url +from graph_sitter.cli.utils.url import generate_webapp_url USER_SECRETS_ROUTE = generate_webapp_url(path="cli-token") diff --git a/src/codegen/cli/auth/constants.py b/src/graph_sitter/cli/auth/constants.py similarity index 100% rename from src/codegen/cli/auth/constants.py rename to src/graph_sitter/cli/auth/constants.py diff --git a/src/codegen/cli/auth/decorators.py b/src/graph_sitter/cli/auth/decorators.py similarity index 78% rename from src/codegen/cli/auth/decorators.py rename to src/graph_sitter/cli/auth/decorators.py index b12cf35ed..785e4c566 100644 --- a/src/codegen/cli/auth/decorators.py +++ b/src/graph_sitter/cli/auth/decorators.py @@ -4,11 +4,11 @@ import click import rich -from codegen.cli.auth.login import login_routine -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import TokenManager, get_current_token -from codegen.cli.errors import AuthError -from codegen.cli.rich.pretty_print import pretty_print_error +from graph_sitter.cli.auth.login import login_routine +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import TokenManager, get_current_token +from graph_sitter.cli.errors import AuthError +from graph_sitter.cli.rich.pretty_print import pretty_print_error def requires_auth(f: Callable) -> Callable: diff --git a/src/codegen/cli/auth/login.py b/src/graph_sitter/cli/auth/login.py similarity index 87% rename from src/codegen/cli/auth/login.py rename to src/graph_sitter/cli/auth/login.py index 3843dbad3..4bcba3775 100644 --- a/src/codegen/cli/auth/login.py +++ b/src/graph_sitter/cli/auth/login.py @@ -3,10 +3,10 @@ import rich import rich_click as click -from codegen.cli.api.webapp_routes import USER_SECRETS_ROUTE -from codegen.cli.auth.token_manager import TokenManager -from codegen.cli.env.global_env import global_env -from codegen.cli.errors import AuthError +from graph_sitter.cli.api.webapp_routes import USER_SECRETS_ROUTE +from graph_sitter.cli.auth.token_manager import TokenManager +from graph_sitter.cli.env.global_env import global_env +from graph_sitter.cli.errors import AuthError def login_routine(token: str | None = None) -> str: diff --git a/src/codegen/cli/auth/session.ipynb b/src/graph_sitter/cli/auth/session.ipynb similarity index 92% rename from src/codegen/cli/auth/session.ipynb rename to src/graph_sitter/cli/auth/session.ipynb index ffeb6feb8..89ffd6036 100644 --- a/src/codegen/cli/auth/session.ipynb +++ b/src/graph_sitter/cli/auth/session.ipynb @@ -6,7 +6,7 @@ "metadata": {}, "outputs": [], "source": [ - "from codegen.cli.auth.session import CodegenSession\n", + "from graph_sitter.cli.auth.session import CodegenSession\n", "\n", "\n", "session = CodegenSession()\n", diff --git a/src/codegen/cli/auth/session.py b/src/graph_sitter/cli/auth/session.py similarity index 95% rename from src/codegen/cli/auth/session.py rename to src/graph_sitter/cli/auth/session.py index defcbb7a9..cff1ad45c 100644 --- a/src/codegen/cli/auth/session.py +++ b/src/graph_sitter/cli/auth/session.py @@ -5,12 +5,12 @@ from github import BadCredentialsException from github.MainClass import Github -from codegen.cli.git.repo import get_git_repo -from codegen.cli.rich.codeblocks import format_command -from codegen.git.repo_operator.local_git_repo import LocalGitRepo +from graph_sitter.cli.git.repo import get_git_repo +from graph_sitter.cli.rich.codeblocks import format_command from graph_sitter.configs.constants import CODEGEN_DIR_NAME, ENV_FILENAME from graph_sitter.configs.session_manager import session_manager from graph_sitter.configs.user_config import UserConfig +from graph_sitter.git.repo_operator.local_git_repo import LocalGitRepo class CodegenSession: diff --git a/src/codegen/cli/auth/token_manager.ipynb b/src/graph_sitter/cli/auth/token_manager.ipynb similarity index 90% rename from src/codegen/cli/auth/token_manager.ipynb rename to src/graph_sitter/cli/auth/token_manager.ipynb index 145d47608..6782a236a 100644 --- a/src/codegen/cli/auth/token_manager.ipynb +++ b/src/graph_sitter/cli/auth/token_manager.ipynb @@ -6,7 +6,7 @@ "metadata": {}, "outputs": [], "source": [ - "from codegen.cli.auth.token_manager import TokenManager\n", + "from graph_sitter.cli.auth.token_manager import TokenManager\n", "\n", "\n", "token_manager = TokenManager()\n", diff --git a/src/codegen/cli/auth/token_manager.py b/src/graph_sitter/cli/auth/token_manager.py similarity index 94% rename from src/codegen/cli/auth/token_manager.py rename to src/graph_sitter/cli/auth/token_manager.py index 7e6b6470c..19b8aad25 100644 --- a/src/codegen/cli/auth/token_manager.py +++ b/src/graph_sitter/cli/auth/token_manager.py @@ -2,9 +2,9 @@ import os from pathlib import Path -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.constants import AUTH_FILE, CONFIG_DIR -from codegen.cli.errors import AuthError +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.constants import AUTH_FILE, CONFIG_DIR +from graph_sitter.cli.errors import AuthError class TokenManager: diff --git a/src/graph_sitter/cli/cli.py b/src/graph_sitter/cli/cli.py new file mode 100644 index 000000000..f3a18a81f --- /dev/null +++ b/src/graph_sitter/cli/cli.py @@ -0,0 +1,57 @@ +import rich_click as click +from rich.traceback import install + +# Removed reference to non-existent agent module +from graph_sitter.cli.commands.config.main import config_command +from graph_sitter.cli.commands.create.main import create_command +from graph_sitter.cli.commands.deploy.main import deploy_command +from graph_sitter.cli.commands.expert.main import expert_command +from graph_sitter.cli.commands.init.main import init_command +from graph_sitter.cli.commands.list.main import list_command +from graph_sitter.cli.commands.login.main import login_command +from graph_sitter.cli.commands.logout.main import logout_command +from graph_sitter.cli.commands.lsp.lsp import lsp_command +from graph_sitter.cli.commands.notebook.main import notebook_command +from graph_sitter.cli.commands.profile.main import profile_command +from graph_sitter.cli.commands.reset.main import reset_command +from graph_sitter.cli.commands.run.main import run_command +from graph_sitter.cli.commands.run_on_pr.main import run_on_pr_command +from graph_sitter.cli.commands.serve.main import serve_command +from graph_sitter.cli.commands.start.main import start_command +from graph_sitter.cli.commands.style_debug.main import style_debug_command +from graph_sitter.cli.commands.update.main import update_command + +click.rich_click.USE_RICH_MARKUP = True +install(show_locals=True) + + +@click.group() +@click.version_option(prog_name="codegen", message="%(version)s") +def main(): + """graph_sitter.cli - Transform your code with AI.""" + + +# Wrap commands with error handler +# Removed reference to non-existent agent_command +main.add_command(init_command) +main.add_command(logout_command) +main.add_command(login_command) +main.add_command(run_command) +main.add_command(profile_command) +main.add_command(create_command) +main.add_command(expert_command) +main.add_command(list_command) +main.add_command(deploy_command) +main.add_command(style_debug_command) +main.add_command(run_on_pr_command) +main.add_command(notebook_command) +main.add_command(reset_command) +main.add_command(update_command) +main.add_command(config_command) +main.add_command(lsp_command) +main.add_command(serve_command) +main.add_command(start_command) + + +if __name__ == "__main__": + main() diff --git a/src/codegen/cli/codemod/convert.py b/src/graph_sitter/cli/codemod/convert.py similarity index 93% rename from src/codegen/cli/codemod/convert.py rename to src/graph_sitter/cli/codemod/convert.py index ea176a9fc..c869298f0 100644 --- a/src/codegen/cli/codemod/convert.py +++ b/src/graph_sitter/cli/codemod/convert.py @@ -7,7 +7,7 @@ def convert_to_cli(input: str, language: str, name: str) -> str: # Important: if you run this as a regular python file, you MUST run it such that # the base directory './' is the base of your codebase, otherwise it will not work. import codegen -from codegen import Codebase +from graph_sitter.core.codebase import Codebase @codegen.function('{name}') diff --git a/src/codegen/cli/commands/config/main.py b/src/graph_sitter/cli/commands/config/main.py similarity index 100% rename from src/codegen/cli/commands/config/main.py rename to src/graph_sitter/cli/commands/config/main.py diff --git a/src/codegen/cli/commands/create/main.py b/src/graph_sitter/cli/commands/create/main.py similarity index 86% rename from src/codegen/cli/commands/create/main.py rename to src/graph_sitter/cli/commands/create/main.py index 8b8cc10d7..ae8ffdd14 100644 --- a/src/codegen/cli/commands/create/main.py +++ b/src/graph_sitter/cli/commands/create/main.py @@ -3,17 +3,17 @@ import rich import rich_click as click -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.constants import PROMPTS_DIR -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.codemod.convert import convert_to_cli -from codegen.cli.errors import ServerError -from codegen.cli.rich.codeblocks import format_command, format_path -from codegen.cli.rich.pretty_print import pretty_print_error -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.default_code import DEFAULT_CODEMOD -from codegen.cli.workspace.decorators import requires_init +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.constants import PROMPTS_DIR +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.codemod.convert import convert_to_cli +from graph_sitter.cli.errors import ServerError +from graph_sitter.cli.rich.codeblocks import format_command, format_path +from graph_sitter.cli.rich.pretty_print import pretty_print_error +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.default_code import DEFAULT_CODEMOD +from graph_sitter.cli.workspace.decorators import requires_init def get_prompts_dir() -> Path: diff --git a/src/codegen/cli/commands/deploy/main.py b/src/graph_sitter/cli/commands/deploy/main.py similarity index 87% rename from src/codegen/cli/commands/deploy/main.py rename to src/graph_sitter/cli/commands/deploy/main.py index 9b0e3c873..71d51f0c6 100644 --- a/src/codegen/cli/commands/deploy/main.py +++ b/src/graph_sitter/cli/commands/deploy/main.py @@ -4,13 +4,13 @@ import rich import rich_click as click -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.decorators import requires_auth -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.rich.codeblocks import format_command -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.codemod_manager import CodemodManager -from codegen.cli.utils.function_finder import DecoratedFunction +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.decorators import requires_auth +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.rich.codeblocks import format_command +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.codemod_manager import CodemodManager +from graph_sitter.cli.utils.function_finder import DecoratedFunction def deploy_functions(functions: list[DecoratedFunction], message: str | None = None) -> None: diff --git a/src/codegen/cli/commands/expert/main.py b/src/graph_sitter/cli/commands/expert/main.py similarity index 71% rename from src/codegen/cli/commands/expert/main.py rename to src/graph_sitter/cli/commands/expert/main.py index bbbfdbd1f..8393f3043 100644 --- a/src/codegen/cli/commands/expert/main.py +++ b/src/graph_sitter/cli/commands/expert/main.py @@ -2,11 +2,11 @@ import rich_click as click from rich.status import Status -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.decorators import requires_auth -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.errors import ServerError -from codegen.cli.workspace.decorators import requires_init +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.decorators import requires_auth +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.errors import ServerError +from graph_sitter.cli.workspace.decorators import requires_init @click.command(name="expert") diff --git a/src/codegen/cli/commands/init/main.py b/src/graph_sitter/cli/commands/init/main.py similarity index 89% rename from src/codegen/cli/commands/init/main.py rename to src/graph_sitter/cli/commands/init/main.py index 5bd01e5e1..81e03f11e 100644 --- a/src/codegen/cli/commands/init/main.py +++ b/src/graph_sitter/cli/commands/init/main.py @@ -4,10 +4,10 @@ import rich import rich_click as click -from codegen.cli.auth.session import CodegenSession -from codegen.cli.commands.init.render import get_success_message -from codegen.cli.rich.codeblocks import format_command -from codegen.cli.workspace.initialize_workspace import initialize_codegen +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.commands.init.render import get_success_message +from graph_sitter.cli.rich.codeblocks import format_command +from graph_sitter.cli.workspace.initialize_workspace import initialize_codegen from graph_sitter.shared.path import get_git_root_path diff --git a/src/codegen/cli/commands/init/render.py b/src/graph_sitter/cli/commands/init/render.py similarity index 100% rename from src/codegen/cli/commands/init/render.py rename to src/graph_sitter/cli/commands/init/render.py diff --git a/src/codegen/cli/commands/list/main.py b/src/graph_sitter/cli/commands/list/main.py similarity index 90% rename from src/codegen/cli/commands/list/main.py rename to src/graph_sitter/cli/commands/list/main.py index 0cfc440dc..7a09985b5 100644 --- a/src/codegen/cli/commands/list/main.py +++ b/src/graph_sitter/cli/commands/list/main.py @@ -4,8 +4,8 @@ import rich_click as click from rich.table import Table -from codegen.cli.rich.codeblocks import format_codeblock, format_command -from codegen.cli.utils.codemod_manager import CodemodManager +from graph_sitter.cli.rich.codeblocks import format_codeblock, format_command +from graph_sitter.cli.utils.codemod_manager import CodemodManager @click.command(name="list") diff --git a/src/codegen/cli/commands/login/main.py b/src/graph_sitter/cli/commands/login/main.py similarity index 77% rename from src/codegen/cli/commands/login/main.py rename to src/graph_sitter/cli/commands/login/main.py index 27448df42..0eb8e917a 100644 --- a/src/codegen/cli/commands/login/main.py +++ b/src/graph_sitter/cli/commands/login/main.py @@ -1,7 +1,7 @@ import rich_click as click -from codegen.cli.auth.login import login_routine -from codegen.cli.auth.token_manager import get_current_token +from graph_sitter.cli.auth.login import login_routine +from graph_sitter.cli.auth.token_manager import get_current_token @click.command(name="login") diff --git a/src/codegen/cli/commands/logout/main.py b/src/graph_sitter/cli/commands/logout/main.py similarity index 80% rename from src/codegen/cli/commands/logout/main.py rename to src/graph_sitter/cli/commands/logout/main.py index 93216bea0..9bbad1a69 100644 --- a/src/codegen/cli/commands/logout/main.py +++ b/src/graph_sitter/cli/commands/logout/main.py @@ -1,7 +1,7 @@ import rich import rich_click as click -from codegen.cli.auth.token_manager import TokenManager +from graph_sitter.cli.auth.token_manager import TokenManager @click.command(name="logout") diff --git a/src/codegen/cli/commands/lsp/lsp.py b/src/graph_sitter/cli/commands/lsp/lsp.py similarity index 87% rename from src/codegen/cli/commands/lsp/lsp.py rename to src/graph_sitter/cli/commands/lsp/lsp.py index 15d58cdb4..30690de1c 100644 --- a/src/codegen/cli/commands/lsp/lsp.py +++ b/src/graph_sitter/cli/commands/lsp/lsp.py @@ -10,7 +10,7 @@ @click.command(name="lsp") def lsp_command(): try: - from codegen.extensions.lsp.lsp import server + from graph_sitter.extensions.lsp.lsp import server except (ImportError, ModuleNotFoundError): logger.exception("LSP is not installed. Please install it with `uv tool install codegen[lsp] --prerelease=allow`") return diff --git a/src/codegen/cli/commands/notebook/main.py b/src/graph_sitter/cli/commands/notebook/main.py similarity index 82% rename from src/codegen/cli/commands/notebook/main.py rename to src/graph_sitter/cli/commands/notebook/main.py index e37599205..3a3934034 100644 --- a/src/codegen/cli/commands/notebook/main.py +++ b/src/graph_sitter/cli/commands/notebook/main.py @@ -4,11 +4,11 @@ import rich_click as click -from codegen.cli.auth.session import CodegenSession -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.notebooks import create_notebook -from codegen.cli.workspace.decorators import requires_init -from codegen.cli.workspace.venv_manager import VenvManager +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.notebooks import create_notebook +from graph_sitter.cli.workspace.decorators import requires_init +from graph_sitter.cli.workspace.venv_manager import VenvManager def create_jupyter_dir(codegen_dir: Path) -> Path: diff --git a/src/codegen/cli/commands/profile/main.py b/src/graph_sitter/cli/commands/profile/main.py similarity index 78% rename from src/codegen/cli/commands/profile/main.py rename to src/graph_sitter/cli/commands/profile/main.py index 55fcc5c82..13a06746f 100644 --- a/src/codegen/cli/commands/profile/main.py +++ b/src/graph_sitter/cli/commands/profile/main.py @@ -3,9 +3,9 @@ from rich import box from rich.panel import Panel -from codegen.cli.auth.decorators import requires_auth -from codegen.cli.auth.session import CodegenSession -from codegen.cli.workspace.decorators import requires_init +from graph_sitter.cli.auth.decorators import requires_auth +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.workspace.decorators import requires_init @click.command(name="profile") diff --git a/src/codegen/cli/commands/reset/main.py b/src/graph_sitter/cli/commands/reset/main.py similarity index 97% rename from src/codegen/cli/commands/reset/main.py rename to src/graph_sitter/cli/commands/reset/main.py index eb78e1527..e5d347e31 100644 --- a/src/codegen/cli/commands/reset/main.py +++ b/src/graph_sitter/cli/commands/reset/main.py @@ -4,8 +4,8 @@ from pygit2.enums import FileStatus, ResetMode from pygit2.repository import Repository -from codegen.cli.auth.constants import CODEGEN_DIR -from codegen.cli.git.repo import get_git_repo +from graph_sitter.cli.auth.constants import CODEGEN_DIR +from graph_sitter.cli.git.repo import get_git_repo def is_codegen_file(filepath: Path) -> bool: diff --git a/src/codegen/cli/commands/run/main.ipynb b/src/graph_sitter/cli/commands/run/main.ipynb similarity index 96% rename from src/codegen/cli/commands/run/main.ipynb rename to src/graph_sitter/cli/commands/run/main.ipynb index 0dc7f22a4..cbbf17696 100644 --- a/src/codegen/cli/commands/run/main.ipynb +++ b/src/graph_sitter/cli/commands/run/main.ipynb @@ -8,7 +8,7 @@ "source": [ "import json\n", "from requests import Response\n", - "from codegen.cli.commands.run import run_200_handler\n", + "from graph_sitter.cli.commands.run import run_200_handler\n", "\n", "res = {\n", " \"success\": True,\n", diff --git a/src/codegen/cli/commands/run/main.py b/src/graph_sitter/cli/commands/run/main.py similarity index 80% rename from src/codegen/cli/commands/run/main.py rename to src/graph_sitter/cli/commands/run/main.py index 0d4ef48c4..dc5603746 100644 --- a/src/codegen/cli/commands/run/main.py +++ b/src/graph_sitter/cli/commands/run/main.py @@ -3,11 +3,11 @@ import rich_click as click -from codegen.cli.auth.session import CodegenSession -from codegen.cli.utils.codemod_manager import CodemodManager -from codegen.cli.utils.json_schema import validate_json -from codegen.cli.workspace.decorators import requires_init -from codegen.cli.workspace.venv_manager import VenvManager +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.utils.codemod_manager import CodemodManager +from graph_sitter.cli.utils.json_schema import validate_json +from graph_sitter.cli.workspace.decorators import requires_init +from graph_sitter.cli.workspace.venv_manager import VenvManager @click.command(name="run") @@ -57,14 +57,14 @@ def run_command( # Run the codemod if web: - from codegen.cli.commands.run.run_cloud import run_cloud + from graph_sitter.cli.commands.run.run_cloud import run_cloud run_cloud(session, codemod, diff_preview=diff_preview) elif daemon: - from codegen.cli.commands.run.run_daemon import run_daemon + from graph_sitter.cli.commands.run.run_daemon import run_daemon run_daemon(session, codemod, diff_preview=diff_preview) else: - from codegen.cli.commands.run.run_local import run_local + from graph_sitter.cli.commands.run.run_local import run_local run_local(session, codemod, diff_preview=diff_preview) diff --git a/src/codegen/cli/commands/run/render.ipynb b/src/graph_sitter/cli/commands/run/render.ipynb similarity index 100% rename from src/codegen/cli/commands/run/render.ipynb rename to src/graph_sitter/cli/commands/run/render.ipynb diff --git a/src/codegen/cli/commands/run/render.py b/src/graph_sitter/cli/commands/run/render.py similarity index 96% rename from src/codegen/cli/commands/run/render.py rename to src/graph_sitter/cli/commands/run/render.py index fd60ffa6e..9a7365014 100644 --- a/src/codegen/cli/commands/run/render.py +++ b/src/graph_sitter/cli/commands/run/render.py @@ -3,7 +3,7 @@ from rich.markdown import Markdown from rich.panel import Panel -from codegen.cli.api.schemas import RunCodemodOutput +from graph_sitter.cli.api.schemas import RunCodemodOutput def pretty_print_output(output: RunCodemodOutput): diff --git a/src/codegen/cli/commands/run/run_cloud.py b/src/graph_sitter/cli/commands/run/run_cloud.py similarity index 92% rename from src/codegen/cli/commands/run/run_cloud.py rename to src/graph_sitter/cli/commands/run/run_cloud.py index 5250c1543..0cfa8ecd4 100644 --- a/src/codegen/cli/commands/run/run_cloud.py +++ b/src/graph_sitter/cli/commands/run/run_cloud.py @@ -5,14 +5,14 @@ from pygit2._pygit2 import Repository from rich.panel import Panel -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.errors import ServerError -from codegen.cli.git.patch import apply_patch -from codegen.cli.rich.codeblocks import format_command -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.url import generate_webapp_url +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.errors import ServerError +from graph_sitter.cli.git.patch import apply_patch +from graph_sitter.cli.rich.codeblocks import format_command +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.url import generate_webapp_url def run_cloud(session: CodegenSession, function, apply_local: bool = False, diff_preview: int | None = None): diff --git a/src/codegen/cli/commands/run/run_daemon.py b/src/graph_sitter/cli/commands/run/run_daemon.py similarity index 82% rename from src/codegen/cli/commands/run/run_daemon.py rename to src/graph_sitter/cli/commands/run/run_daemon.py index 2f108c0fb..ca95d2edb 100644 --- a/src/codegen/cli/commands/run/run_daemon.py +++ b/src/graph_sitter/cli/commands/run/run_daemon.py @@ -2,13 +2,13 @@ import rich_click as click from rich.panel import Panel -from codegen.cli.auth.session import CodegenSession -from codegen.cli.commands.start.docker_container import DockerContainer -from codegen.cli.errors import ServerError -from codegen.cli.rich.codeblocks import format_command -from codegen.cli.rich.spinners import create_spinner -from codegen.runner.clients.docker_client import DockerClient -from codegen.runner.enums.warmup_state import WarmupState +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.commands.start.docker_container import DockerContainer +from graph_sitter.cli.errors import ServerError +from graph_sitter.cli.rich.codeblocks import format_command +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.runner.clients.docker_client import DockerClient +from graph_sitter.runner.enums.warmup_state import WarmupState def run_daemon(session: CodegenSession, function, diff_preview: int | None = None): @@ -68,11 +68,11 @@ def run_daemon(session: CodegenSession, function, diff_preview: int | None = Non def _get_docker_client(session: CodegenSession) -> DockerClient: repo_name = session.config.repository.name if (container := DockerContainer.get(repo_name)) is None: - msg = f"Codegen runner does not exist for {repo_name}. Please run 'codegen start' from {session.config.repository.path}." + msg = f"graph_sitter.runner does not exist for {repo_name}. Please run 'codegen start' from {session.config.repository.path}." raise click.ClickException(msg) if not container.is_running(): - msg = f"Codegen runner for {repo_name} is not running. Please run 'codegen start' from {session.config.repository.path}." + msg = f"graph_sitter.runner for {repo_name} is not running. Please run 'codegen start' from {session.config.repository.path}." raise click.ClickException(msg) client = DockerClient(container) diff --git a/src/codegen/cli/commands/run/run_local.py b/src/graph_sitter/cli/commands/run/run_local.py similarity index 89% rename from src/codegen/cli/commands/run/run_local.py rename to src/graph_sitter/cli/commands/run/run_local.py index e412ead30..7e0b42da9 100644 --- a/src/codegen/cli/commands/run/run_local.py +++ b/src/graph_sitter/cli/commands/run/run_local.py @@ -4,13 +4,13 @@ from rich.panel import Panel from rich.status import Status -from codegen.cli.auth.session import CodegenSession -from codegen.cli.utils.function_finder import DecoratedFunction -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.language import determine_project_language +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.utils.function_finder import DecoratedFunction from graph_sitter.codebase.config import ProjectConfig from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.language import determine_project_language from graph_sitter.shared.enums.programming_language import ProgrammingLanguage diff --git a/src/codegen/cli/commands/run_on_pr/main.py b/src/graph_sitter/cli/commands/run_on_pr/main.py similarity index 80% rename from src/codegen/cli/commands/run_on_pr/main.py rename to src/graph_sitter/cli/commands/run_on_pr/main.py index c3882466f..2534709a5 100644 --- a/src/codegen/cli/commands/run_on_pr/main.py +++ b/src/graph_sitter/cli/commands/run_on_pr/main.py @@ -1,12 +1,12 @@ import rich import rich_click as click -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.decorators import requires_auth -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.codemod_manager import CodemodManager +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.decorators import requires_auth +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.codemod_manager import CodemodManager def run_on_pr(session: CodegenSession, codemod_name: str, pr_number: int) -> None: diff --git a/src/codegen/cli/commands/serve/main.py b/src/graph_sitter/cli/commands/serve/main.py similarity index 99% rename from src/codegen/cli/commands/serve/main.py rename to src/graph_sitter/cli/commands/serve/main.py index 76199b7bc..8454173d9 100644 --- a/src/codegen/cli/commands/serve/main.py +++ b/src/graph_sitter/cli/commands/serve/main.py @@ -11,7 +11,7 @@ from rich.logging import RichHandler from rich.panel import Panel -from codegen.extensions.events.codegen_app import CodegenApp +from graph_sitter.extensions.events.codegen_app import CodegenApp from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/cli/commands/start/Dockerfile b/src/graph_sitter/cli/commands/start/Dockerfile similarity index 100% rename from src/codegen/cli/commands/start/Dockerfile rename to src/graph_sitter/cli/commands/start/Dockerfile diff --git a/src/codegen/cli/commands/start/docker_container.py b/src/graph_sitter/cli/commands/start/docker_container.py similarity index 100% rename from src/codegen/cli/commands/start/docker_container.py rename to src/graph_sitter/cli/commands/start/docker_container.py diff --git a/src/codegen/cli/commands/start/docker_fleet.py b/src/graph_sitter/cli/commands/start/docker_fleet.py similarity index 80% rename from src/codegen/cli/commands/start/docker_fleet.py rename to src/graph_sitter/cli/commands/start/docker_fleet.py index f2f885a4f..2422814ee 100644 --- a/src/codegen/cli/commands/start/docker_fleet.py +++ b/src/graph_sitter/cli/commands/start/docker_fleet.py @@ -1,9 +1,9 @@ import docker from docker.errors import NotFound -from codegen.cli.commands.start.docker_container import DockerContainer +from graph_sitter.cli.commands.start.docker_container import DockerContainer -CODEGEN_RUNNER_IMAGE = "codegen-runner" +GRAPH_SITTER_RUNNER_IMAGE = "graph_sitter-runner" class DockerFleet: @@ -16,10 +16,10 @@ def __init__(self, containers: list[DockerContainer]): def load(cls) -> "DockerFleet": try: client = docker.from_env() - filters = {"ancestor": CODEGEN_RUNNER_IMAGE} + filters = {"ancestor": GRAPH_SITTER_RUNNER_IMAGE} containers = [] for container in client.containers.list(all=True, filters=filters): - if container.attrs["Config"]["Image"] == CODEGEN_RUNNER_IMAGE: + if container.attrs["Config"]["Image"] == GRAPH_SITTER_RUNNER_IMAGE: containers.append(DockerContainer(client=client, container=container)) return cls(containers=containers) diff --git a/src/codegen/cli/commands/start/main.py b/src/graph_sitter/cli/commands/start/main.py similarity index 91% rename from src/codegen/cli/commands/start/main.py rename to src/graph_sitter/cli/commands/start/main.py index b30f8e080..3a9dd77d7 100644 --- a/src/codegen/cli/commands/start/main.py +++ b/src/graph_sitter/cli/commands/start/main.py @@ -8,11 +8,11 @@ from rich.box import ROUNDED from rich.panel import Panel -from codegen.cli.commands.start.docker_container import DockerContainer -from codegen.cli.commands.start.docker_fleet import CODEGEN_RUNNER_IMAGE -from codegen.git.repo_operator.local_git_repo import LocalGitRepo -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter.cli.commands.start.docker_container import DockerContainer +from graph_sitter.cli.commands.start.docker_fleet import GRAPH_SITTER_RUNNER_IMAGE from graph_sitter.configs.models.secrets import SecretsConfig +from graph_sitter.git.repo_operator.local_git_repo import LocalGitRepo +from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.shared.network.port import get_free_port _default_host = "0.0.0.0" @@ -80,7 +80,7 @@ def _build_docker_image(codegen_root: Path, codegen_version: str) -> None: "-f", str(Path(__file__).parent / "Dockerfile"), "-t", - "codegen-runner", + "graph_sitter.runner", "--build-arg", f"CODEGEN_VERSION={codegen_version}", "--build-arg", @@ -136,10 +136,10 @@ def _run_docker_container(repo_config: RepoConfig, port: int, detached: bool) -> } envvars_args = [arg for k, v in envvars.items() for arg in ("--env", f"{k}={v}")] mount_args = ["-v", f"{repo_config.repo_path}:{container_repo_path}"] - entry_point = f"uv run --frozen uvicorn codegen.runner.servers.local_daemon:app --host {_default_host} --port {port}" + entry_point = f"uv run --frozen uvicorn graph_sitter.runner.servers.local_daemon:app --host {_default_host} --port {port}" port_args = ["-p", f"{port}:{port}"] detached_args = ["-d"] if detached else [] - run_cmd = ["docker", "run", "--rm", *detached_args, *port_args, *name_args, *mount_args, *envvars_args, CODEGEN_RUNNER_IMAGE, entry_point] + run_cmd = ["docker", "run", "--rm", *detached_args, *port_args, *name_args, *mount_args, *envvars_args, GRAPH_SITTER_RUNNER_IMAGE, entry_point] rich.print( Panel( diff --git a/src/codegen/cli/commands/style_debug/main.py b/src/graph_sitter/cli/commands/style_debug/main.py similarity index 90% rename from src/codegen/cli/commands/style_debug/main.py rename to src/graph_sitter/cli/commands/style_debug/main.py index 642c16f86..1dd8bc849 100644 --- a/src/codegen/cli/commands/style_debug/main.py +++ b/src/graph_sitter/cli/commands/style_debug/main.py @@ -4,7 +4,7 @@ import rich_click as click -from codegen.cli.rich.spinners import create_spinner +from graph_sitter.cli.rich.spinners import create_spinner @click.command(name="style-debug") diff --git a/src/codegen/cli/commands/update/main.py b/src/graph_sitter/cli/commands/update/main.py similarity index 96% rename from src/codegen/cli/commands/update/main.py rename to src/graph_sitter/cli/commands/update/main.py index 83b64fd98..67b0cb48b 100644 --- a/src/codegen/cli/commands/update/main.py +++ b/src/graph_sitter/cli/commands/update/main.py @@ -7,7 +7,7 @@ import rich_click as click from packaging.version import Version -import codegen +import graph_sitter def fetch_pypi_releases(package: str) -> list[str]: @@ -49,7 +49,7 @@ def update_command(list_: bool = False, version: str | None = None): msg = "Cannot specify both --list and --version" raise click.ClickException(msg) - package_info = distribution(codegen.__package__) + package_info = distribution(graph_sitter.__package__) current_version = Version(package_info.version) if list_: diff --git a/src/graph_sitter/cli/env/constants.py b/src/graph_sitter/cli/env/constants.py new file mode 100644 index 000000000..3abee649f --- /dev/null +++ b/src/graph_sitter/cli/env/constants.py @@ -0,0 +1,3 @@ +from graph_sitter.cli.env.enums import Environment + +DEFAULT_ENV = Environment.PRODUCTION diff --git a/src/codegen/cli/env/enums.py b/src/graph_sitter/cli/env/enums.py similarity index 100% rename from src/codegen/cli/env/enums.py rename to src/graph_sitter/cli/env/enums.py diff --git a/src/codegen/cli/env/global_env.ipynb b/src/graph_sitter/cli/env/global_env.ipynb similarity index 87% rename from src/codegen/cli/env/global_env.ipynb rename to src/graph_sitter/cli/env/global_env.ipynb index faf1dd677..5449e10e3 100644 --- a/src/codegen/cli/env/global_env.ipynb +++ b/src/graph_sitter/cli/env/global_env.ipynb @@ -7,7 +7,7 @@ "outputs": [], "source": [ "# test: parse environment\n", - "from codegen.cli.env.enums import Environment\n", + "from graph_sitter.cli.env.enums import Environment\n", "\n", "\n", "Environment(\"staging\")" @@ -23,7 +23,7 @@ "import os\n", "\n", "os.environ[\"ENV\"] = \"prod\"\n", - "from codegen.cli.env.global_env import GlobalEnv\n", + "from graph_sitter.cli.env.global_env import GlobalEnv\n", "\n", "global_env = GlobalEnv()\n", "print(global_env.ALGOLIA_SEARCH_KEY)" @@ -39,7 +39,7 @@ "import os\n", "\n", "os.environ[\"ENV\"] = \"staging\"\n", - "from codegen.cli.env.global_env import GlobalEnv\n", + "from graph_sitter.cli.env.global_env import GlobalEnv\n", "\n", "global_env = GlobalEnv()\n", "print(global_env.ALGOLIA_SEARCH_KEY)" diff --git a/src/codegen/cli/env/global_env.py b/src/graph_sitter/cli/env/global_env.py similarity index 94% rename from src/codegen/cli/env/global_env.py rename to src/graph_sitter/cli/env/global_env.py index 57eaa02a7..5966bf238 100644 --- a/src/codegen/cli/env/global_env.py +++ b/src/graph_sitter/cli/env/global_env.py @@ -2,8 +2,8 @@ from dotenv import find_dotenv, load_dotenv -from codegen.cli.env.constants import DEFAULT_ENV -from codegen.cli.env.enums import Environment +from graph_sitter.cli.env.constants import DEFAULT_ENV +from graph_sitter.cli.env.enums import Environment class GlobalEnv: diff --git a/src/codegen/cli/errors.py b/src/graph_sitter/cli/errors.py similarity index 100% rename from src/codegen/cli/errors.py rename to src/graph_sitter/cli/errors.py diff --git a/src/codegen/cli/git/folder.py b/src/graph_sitter/cli/git/folder.py similarity index 88% rename from src/codegen/cli/git/folder.py rename to src/graph_sitter/cli/git/folder.py index 7d90c53fb..e1d642dfe 100644 --- a/src/codegen/cli/git/folder.py +++ b/src/graph_sitter/cli/git/folder.py @@ -2,7 +2,7 @@ from pathlib import Path -# TODO: move to codegen.git module +# TODO: move to graph_sitter.git module def get_git_folder(path: os.PathLike | None = None) -> Path | None: if path is None: path = Path.cwd() diff --git a/src/codegen/cli/git/patch.ipynb b/src/graph_sitter/cli/git/patch.ipynb similarity index 96% rename from src/codegen/cli/git/patch.ipynb rename to src/graph_sitter/cli/git/patch.ipynb index e3ff52e3d..45f994de0 100644 --- a/src/codegen/cli/git/patch.ipynb +++ b/src/graph_sitter/cli/git/patch.ipynb @@ -10,7 +10,7 @@ "from pygit2 import Diff\n", "from pygit2.repository import Repository\n", "\n", - "from codegen.cli.git.patch import apply_patch\n", + "from graph_sitter.cli.git.patch import apply_patch\n", "\n", "observation = '''\n", "diff --git a/codegen-backend/app/utils/csv_utils.py b/codegen-backend/app/utils/csv_utils.py\n", diff --git a/src/codegen/cli/git/patch.py b/src/graph_sitter/cli/git/patch.py similarity index 100% rename from src/codegen/cli/git/patch.py rename to src/graph_sitter/cli/git/patch.py diff --git a/src/codegen/cli/git/reop.ipynb b/src/graph_sitter/cli/git/reop.ipynb similarity index 93% rename from src/codegen/cli/git/reop.ipynb rename to src/graph_sitter/cli/git/reop.ipynb index 230e7259a..b4add606c 100644 --- a/src/codegen/cli/git/reop.ipynb +++ b/src/graph_sitter/cli/git/reop.ipynb @@ -10,7 +10,7 @@ "from pygit2 import Diff\n", "from pygit2.repository import Repository\n", "\n", - "from codegen.cli.git.patch import apply_patch\n", + "from graph_sitter.cli.git.patch import apply_patch\n", "\n", "git_repo = Repository(\"/Users/christinewang/git/customer_repos/codegen-staging\")\n", "print(git_repo.path)" diff --git a/src/codegen/cli/git/repo.py b/src/graph_sitter/cli/git/repo.py similarity index 77% rename from src/codegen/cli/git/repo.py rename to src/graph_sitter/cli/git/repo.py index 73b4b3b45..64bc992fe 100644 --- a/src/codegen/cli/git/repo.py +++ b/src/graph_sitter/cli/git/repo.py @@ -3,10 +3,10 @@ from pygit2.repository import Repository -from codegen.cli.git.folder import get_git_folder +from graph_sitter.cli.git.folder import get_git_folder -# TODO: move to codegen.git module +# TODO: move to graph_sitter.git module def get_git_repo(path: os.PathLike | None = None) -> Repository | None: if path is None: path = Path.cwd() diff --git a/src/codegen/cli/git/url.ipynb b/src/graph_sitter/cli/git/url.ipynb similarity index 85% rename from src/codegen/cli/git/url.ipynb rename to src/graph_sitter/cli/git/url.ipynb index 18123d264..f8dfc7548 100644 --- a/src/codegen/cli/git/url.ipynb +++ b/src/graph_sitter/cli/git/url.ipynb @@ -8,8 +8,8 @@ "source": [ "# test get_repo_full_name\n", "\n", - "from codegen.cli.git.repo import get_git_repo\n", - "from codegen.cli.git.url import get_repo_full_name\n", + "from graph_sitter.cli.git.repo import get_git_repo\n", + "from graph_sitter.cli.git.url import get_repo_full_name\n", "\n", "\n", "git_repo = get_git_repo(\"/Users/christinewang/git/customer_repos/codegen-staging\")\n", diff --git a/src/codegen/cli/mcp/README.md b/src/graph_sitter/cli/mcp/README.md similarity index 71% rename from src/codegen/cli/mcp/README.md rename to src/graph_sitter/cli/mcp/README.md index 69043ce89..a6784f79d 100644 --- a/src/codegen/cli/mcp/README.md +++ b/src/graph_sitter/cli/mcp/README.md @@ -1,6 +1,6 @@ # Codegen MCP server -A MCP server implementation that provides tools and resources for using and working with the Codegen CLI and SDK, enabling AI agents to iterate quickly on writing codemods with the codegen sdk. +A MCP server implementation that provides tools and resources for using and working with the graph_sitter.cli and SDK, enabling AI agents to iterate quickly on writing codemods with the codegen sdk. ### Dependencies @@ -17,11 +17,11 @@ Add this to your `cline_mcp_settings.json` file to get started: ``` { "mcpServers": { - "codegen-cli": { + "graph_sitter.cli": { "command": "uv", "args": [ "--directory", - "/codegen-sdk/src/codegen/cli/mcp", + "/codegen-sdk/src/graph_sitter.cli/mcp", "run", "server.py" ] @@ -36,5 +36,5 @@ Under the `Settings` > `Feature` > `MCP Servers` section, click "Add New MCP Ser ``` Name: codegen-mcp Type: Command -Command: uv --directory /codegen-sdk/src/codegen/cli/mcp run server.py +Command: uv --directory /codegen-sdk/src/graph_sitter.cli/mcp run server.py ``` diff --git a/src/codegen/cli/mcp/resources/system_prompt.py b/src/graph_sitter/cli/mcp/resources/system_prompt.py similarity index 99% rename from src/codegen/cli/mcp/resources/system_prompt.py rename to src/graph_sitter/cli/mcp/resources/system_prompt.py index 49db6322a..918f0bf8b 100644 --- a/src/codegen/cli/mcp/resources/system_prompt.py +++ b/src/graph_sitter/cli/mcp/resources/system_prompt.py @@ -10,7 +10,7 @@ It provides a scriptable interface to a powerful, multi-lingual language server built on top of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/). -export const metaCode = `from codegen import Codebase +export const metaCode = `from graph_sitter.core.codebase import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships @@ -209,7 +209,7 @@ def baz(): Instantiating a [Codebase](/api-reference/core/Codebase) will automatically parse a codebase and make it available for manipulation. ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Clone + parse fastapi/fastapi codebase = Codebase.from_repo('fastapi/fastapi') @@ -746,7 +746,7 @@ def baz(): ## Generating System Prompts -The [Codegen CLI](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. +The [graph_sitter.cli](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. When you create a new codemod via [`codegen create`](/cli/create): @@ -836,7 +836,7 @@ def baz(): ```python # Initialize and analyze the codebase -from codegen import Codebase +from graph_sitter.core.codebase import Codebase codebase = Codebase("./") # Access pre-computed relationships @@ -1325,7 +1325,7 @@ def baz(): Construct a Codebase by passing in a path to a local `git` repository or any subfolder within it. The path must be within a git repository (i.e., somewhere in the parent directory tree must contain a `.git` folder). ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase from graph_sitter.shared.enums.programming_language import ProgrammingLanguage # Parse from a git repository root @@ -1384,7 +1384,7 @@ def baz(): You can customize the behavior of your Codebase instance by passing a `CodebaseConfig` object. This allows you to configure secrets (like API keys) and toggle specific features: ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.configs.models.secrets import SecretsConfig @@ -1415,9 +1415,9 @@ def baz(): Here's an example: ```python -from codegen import Codebase -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.codebase.config import ProjectConfig from graph_sitter.shared.enums.programming_language import ProgrammingLanguage @@ -1468,7 +1468,7 @@ def baz(): ```python import codegen -from codegen import Codebase +from graph_sitter.core.codebase import Codebase @codegen.function("rename-function") def run(codebase: Codebase): @@ -1519,7 +1519,7 @@ def run(codebase: Codebase): ```python import codegen -from codegen import Codebase +from graph_sitter.core.codebase import Codebase @codegen.function("update-imports") def run(codebase: Codebase): @@ -1665,7 +1665,7 @@ def run(codebase: Codebase, arguments: RenameArgs): The `jupyter/` directory contains notebooks for interactive development: ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Initialize codebase codebase = Codebase('../../') @@ -1768,7 +1768,7 @@ def run(codebase): When you create a new `Codebase` instance, Codegen automatically detects the programming language: ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Automatically detects Python or TypeScript codebase = Codebase("./") @@ -1891,7 +1891,7 @@ class TSFunction(Function): When you make changes to your codebase through Codegen's APIs, they aren't immediately written to disk. You need to explicitly commit them with [codebase.commit()](/api-reference/core/Codebase#commit): ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase codebase = Codebase("./") @@ -4551,7 +4551,7 @@ def add_type_hints(function): Codegen builds a complete dependency graph of your codebase, connecting functions, classes, imports, and their relationships. This enables powerful type resolution capabilities: ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Initialize codebase with dependency graph codebase = Codebase("./") @@ -5214,7 +5214,7 @@ def build_graph(func, depth=0): > - Codegen visualizations are powered by [NetworkX](https://networkx.org/) and + graph_sitter.visualizations are powered by [NetworkX](https://networkx.org/) and rendered using [d3](https://d3js.org/what-is-d3). @@ -6376,7 +6376,7 @@ def migrate_api_v1_to_v2(codebase): ```python import networkx as nx -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Initialize codebase codebase = Codebase("path/to/posthog/") @@ -6769,7 +6769,7 @@ def create_blast_radius_visualization(symbol: PySymbol, depth: int = 0): ```python import codegen -from codegen import Codebase +from graph_sitter.core.codebase import Codebase from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.import_resolution import Import from graph_sitter.core.symbol import Symbol @@ -9723,7 +9723,7 @@ def __next__(self): ```python -from codegen import Codebase +from graph_sitter.core.codebase import Codebase # Parse the codebase codebase = Codebase("./") diff --git a/src/codegen/cli/mcp/resources/system_setup_instructions.py b/src/graph_sitter/cli/mcp/resources/system_setup_instructions.py similarity index 100% rename from src/codegen/cli/mcp/resources/system_setup_instructions.py rename to src/graph_sitter/cli/mcp/resources/system_setup_instructions.py diff --git a/src/codegen/cli/mcp/server.py b/src/graph_sitter/cli/mcp/server.py similarity index 86% rename from src/codegen/cli/mcp/server.py rename to src/graph_sitter/cli/mcp/server.py index ee2d252ba..c00382f7e 100644 --- a/src/codegen/cli/mcp/server.py +++ b/src/graph_sitter/cli/mcp/server.py @@ -2,10 +2,10 @@ from mcp.server.fastmcp import Context, FastMCP -from codegen.cli.api.client import RestAPI -from codegen.cli.mcp.agent.docs_expert import create_sdk_expert_agent -from codegen.cli.mcp.resources.system_prompt import SYSTEM_PROMPT -from codegen.cli.mcp.resources.system_setup_instructions import SETUP_INSTRUCTIONS +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.mcp.agent.docs_expert import create_sdk_expert_agent +from graph_sitter.cli.mcp.resources.system_prompt import SYSTEM_PROMPT +from graph_sitter.cli.mcp.resources.system_setup_instructions import SETUP_INSTRUCTIONS from graph_sitter.core.codebase import Codebase from graph_sitter.shared.enums.programming_language import ProgrammingLanguage @@ -63,7 +63,7 @@ def generate_codemod( ) -> str: """Generate a codemod for the given task and codebase.""" return f''' - Use the codegen cli to generate a codemod. If you need to intall the cli the command to do so is `uv tool install codegen`. Once installed, run the following command to generate the codemod: + Use the graph_sitter.cli to generate a codemod. If you need to intall the cli the command to do so is `uv tool install codegen`. Once installed, run the following command to generate the codemod: codegen create {title} -d "{task}" ''' diff --git a/src/codegen/cli/rich/codeblocks.py b/src/graph_sitter/cli/rich/codeblocks.py similarity index 100% rename from src/codegen/cli/rich/codeblocks.py rename to src/graph_sitter/cli/rich/codeblocks.py diff --git a/src/codegen/cli/rich/pretty_print.py b/src/graph_sitter/cli/rich/pretty_print.py similarity index 96% rename from src/codegen/cli/rich/pretty_print.py rename to src/graph_sitter/cli/rich/pretty_print.py index fd60ffa6e..9a7365014 100644 --- a/src/codegen/cli/rich/pretty_print.py +++ b/src/graph_sitter/cli/rich/pretty_print.py @@ -3,7 +3,7 @@ from rich.markdown import Markdown from rich.panel import Panel -from codegen.cli.api.schemas import RunCodemodOutput +from graph_sitter.cli.api.schemas import RunCodemodOutput def pretty_print_output(output: RunCodemodOutput): diff --git a/src/codegen/cli/rich/spinners.py b/src/graph_sitter/cli/rich/spinners.py similarity index 100% rename from src/codegen/cli/rich/spinners.py rename to src/graph_sitter/cli/rich/spinners.py diff --git a/src/codegen/cli/sdk/__init__.py b/src/graph_sitter/cli/sdk/__init__.py similarity index 100% rename from src/codegen/cli/sdk/__init__.py rename to src/graph_sitter/cli/sdk/__init__.py diff --git a/src/codegen/cli/sdk/decorator.py b/src/graph_sitter/cli/sdk/decorator.py similarity index 100% rename from src/codegen/cli/sdk/decorator.py rename to src/graph_sitter/cli/sdk/decorator.py diff --git a/src/codegen/cli/sdk/function.py b/src/graph_sitter/cli/sdk/function.py similarity index 87% rename from src/codegen/cli/sdk/function.py rename to src/graph_sitter/cli/sdk/function.py index 345cf977d..1d22bd7b5 100644 --- a/src/codegen/cli/sdk/function.py +++ b/src/graph_sitter/cli/sdk/function.py @@ -1,11 +1,11 @@ from dataclasses import dataclass from pathlib import Path -from codegen.cli.api.client import RestAPI -from codegen.cli.api.schemas import CodemodRunType, RunCodemodOutput -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.utils.codemods import Codemod -from codegen.cli.utils.schema import CodemodConfig +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.api.schemas import CodemodRunType, RunCodemodOutput +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.utils.codemods import Codemod +from graph_sitter.cli.utils.schema import CodemodConfig @dataclass diff --git a/src/codegen/cli/sdk/functions.py b/src/graph_sitter/cli/sdk/functions.py similarity index 87% rename from src/codegen/cli/sdk/functions.py rename to src/graph_sitter/cli/sdk/functions.py index 5f38bd4c3..3f9638b1d 100644 --- a/src/codegen/cli/sdk/functions.py +++ b/src/graph_sitter/cli/sdk/functions.py @@ -1,11 +1,11 @@ from dataclasses import dataclass from pathlib import Path -from codegen.cli.api.client import RestAPI -from codegen.cli.api.schemas import CodemodRunType, RunCodemodOutput -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.utils.codemods import Codemod -from codegen.cli.utils.schema import CodemodConfig +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.api.schemas import CodemodRunType, RunCodemodOutput +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.utils.codemods import Codemod +from graph_sitter.cli.utils.schema import CodemodConfig @dataclass diff --git a/src/codegen/cli/sdk/models.py b/src/graph_sitter/cli/sdk/models.py similarity index 100% rename from src/codegen/cli/sdk/models.py rename to src/graph_sitter/cli/sdk/models.py diff --git a/src/codegen/cli/sdk/pull_request.py b/src/graph_sitter/cli/sdk/pull_request.py similarity index 90% rename from src/codegen/cli/sdk/pull_request.py rename to src/graph_sitter/cli/sdk/pull_request.py index 4f54a9f0d..f89420993 100644 --- a/src/codegen/cli/sdk/pull_request.py +++ b/src/graph_sitter/cli/sdk/pull_request.py @@ -1,8 +1,8 @@ from unidiff import PatchSet -from codegen.cli.api.client import RestAPI -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import get_current_token +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import get_current_token class CodegenPullRequest: diff --git a/src/codegen/cli/utils/codemod_manager.py b/src/graph_sitter/cli/utils/codemod_manager.py similarity index 98% rename from src/codegen/cli/utils/codemod_manager.py rename to src/graph_sitter/cli/utils/codemod_manager.py index 34803bf0d..ce98fa8b7 100644 --- a/src/codegen/cli/utils/codemod_manager.py +++ b/src/graph_sitter/cli/utils/codemod_manager.py @@ -3,7 +3,7 @@ import rich_click as click -from codegen.cli.utils.function_finder import DecoratedFunction, find_codegen_functions +from graph_sitter.cli.utils.function_finder import DecoratedFunction, find_codegen_functions def _might_have_decorators(file_path: Path) -> bool: diff --git a/src/codegen/cli/utils/codemods.py b/src/graph_sitter/cli/utils/codemods.py similarity index 89% rename from src/codegen/cli/utils/codemods.py rename to src/graph_sitter/cli/utils/codemods.py index cf4914ced..184e504f2 100644 --- a/src/codegen/cli/utils/codemods.py +++ b/src/graph_sitter/cli/utils/codemods.py @@ -1,8 +1,8 @@ from dataclasses import dataclass from pathlib import Path -from codegen.cli.api.webapp_routes import generate_webapp_url -from codegen.cli.utils.schema import CodemodConfig +from graph_sitter.cli.api.webapp_routes import generate_webapp_url +from graph_sitter.cli.utils.schema import CodemodConfig @dataclass diff --git a/src/codegen/cli/utils/count_functions.py b/src/graph_sitter/cli/utils/count_functions.py similarity index 89% rename from src/codegen/cli/utils/count_functions.py rename to src/graph_sitter/cli/utils/count_functions.py index aa9f14b89..3e0c507c6 100644 --- a/src/codegen/cli/utils/count_functions.py +++ b/src/graph_sitter/cli/utils/count_functions.py @@ -1,8 +1,8 @@ from pydantic import BaseModel from pydantic.fields import Field -import codegen.cli.sdk.decorator -from codegen.cli.utils.count_functions_2 import NumberType +import graph_sitter.cli.sdk.decorator +from graph_sitter.cli.utils.count_functions_2 import NumberType # from app.codemod.compilation.models.context import CodemodContext # from app.codemod.compilation.models.pr_options import PROptions @@ -20,7 +20,7 @@ class CountFunctionsArgs(BaseModel): complex_attr: str = Field(default_factory=lambda: "hello") -@codegen.cli.sdk.decorator.function("count-functions") +@graph_sitter.cli.sdk.decorator.function("count-functions") def run(codebase, pr_options, arguments: CountFunctionsArgs): # Count Functions in Codebase diff --git a/src/codegen/cli/utils/count_functions_2.py b/src/graph_sitter/cli/utils/count_functions_2.py similarity index 100% rename from src/codegen/cli/utils/count_functions_2.py rename to src/graph_sitter/cli/utils/count_functions_2.py diff --git a/src/codegen/cli/utils/default_code.py b/src/graph_sitter/cli/utils/default_code.py similarity index 100% rename from src/codegen/cli/utils/default_code.py rename to src/graph_sitter/cli/utils/default_code.py diff --git a/src/codegen/cli/utils/function_finder.py b/src/graph_sitter/cli/utils/function_finder.py similarity index 100% rename from src/codegen/cli/utils/function_finder.py rename to src/graph_sitter/cli/utils/function_finder.py diff --git a/src/codegen/cli/utils/json_schema.py b/src/graph_sitter/cli/utils/json_schema.py similarity index 100% rename from src/codegen/cli/utils/json_schema.py rename to src/graph_sitter/cli/utils/json_schema.py diff --git a/src/codegen/cli/utils/notebooks.py b/src/graph_sitter/cli/utils/notebooks.py similarity index 100% rename from src/codegen/cli/utils/notebooks.py rename to src/graph_sitter/cli/utils/notebooks.py diff --git a/src/codegen/cli/utils/schema.ipynb b/src/graph_sitter/cli/utils/schema.ipynb similarity index 96% rename from src/codegen/cli/utils/schema.ipynb rename to src/graph_sitter/cli/utils/schema.ipynb index 0a2d34807..53a4a2d63 100644 --- a/src/codegen/cli/utils/schema.ipynb +++ b/src/graph_sitter/cli/utils/schema.ipynb @@ -7,7 +7,7 @@ "outputs": [], "source": [ "# with model that should validate\n", - "from codegen.cli.api.schemas import RunCodemodOutput\n", + "from graph_sitter.cli.api.schemas import RunCodemodOutput\n", "\n", "\n", "res = RunCodemodOutput.model_validate(\n", @@ -28,7 +28,7 @@ "outputs": [], "source": [ "# with model that should validate\n", - "from codegen.cli.api.schemas import RunCodemodOutput\n", + "from graph_sitter.cli.api.schemas import RunCodemodOutput\n", "\n", "\n", "res = RunCodemodOutput.model_validate(\n", diff --git a/src/codegen/cli/utils/schema.py b/src/graph_sitter/cli/utils/schema.py similarity index 100% rename from src/codegen/cli/utils/schema.py rename to src/graph_sitter/cli/utils/schema.py diff --git a/src/codegen/cli/utils/url.py b/src/graph_sitter/cli/utils/url.py similarity index 93% rename from src/codegen/cli/utils/url.py rename to src/graph_sitter/cli/utils/url.py index deda09c8d..6ee3151f4 100644 --- a/src/codegen/cli/utils/url.py +++ b/src/graph_sitter/cli/utils/url.py @@ -1,7 +1,7 @@ from enum import Enum -from codegen.cli.env.enums import Environment -from codegen.cli.env.global_env import global_env +from graph_sitter.cli.env.enums import Environment +from graph_sitter.cli.env.global_env import global_env class DomainRegistry(Enum): diff --git a/src/codegen/cli/workspace/decorators.py b/src/graph_sitter/cli/workspace/decorators.py similarity index 83% rename from src/codegen/cli/workspace/decorators.py rename to src/graph_sitter/cli/workspace/decorators.py index 128db7d0b..20391735c 100644 --- a/src/codegen/cli/workspace/decorators.py +++ b/src/graph_sitter/cli/workspace/decorators.py @@ -2,8 +2,8 @@ import sys from collections.abc import Callable -from codegen.cli.auth.session import CodegenSession -from codegen.cli.rich.pretty_print import pretty_print_error +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.rich.pretty_print import pretty_print_error def requires_init(f: Callable) -> Callable: diff --git a/src/codegen/cli/workspace/docs_workspace.py b/src/graph_sitter/cli/workspace/docs_workspace.py similarity index 100% rename from src/codegen/cli/workspace/docs_workspace.py rename to src/graph_sitter/cli/workspace/docs_workspace.py diff --git a/src/codegen/cli/workspace/examples_workspace.py b/src/graph_sitter/cli/workspace/examples_workspace.py similarity index 89% rename from src/codegen/cli/workspace/examples_workspace.py rename to src/graph_sitter/cli/workspace/examples_workspace.py index 9cd21599f..b2fe3b628 100644 --- a/src/codegen/cli/workspace/examples_workspace.py +++ b/src/graph_sitter/cli/workspace/examples_workspace.py @@ -3,9 +3,9 @@ from rich.status import Status -from codegen.cli.api.schemas import SerializedExample -from codegen.cli.auth.session import CodegenSession -from codegen.cli.codemod.convert import convert_to_cli +from graph_sitter.cli.api.schemas import SerializedExample +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.codemod.convert import convert_to_cli def populate_examples(session: CodegenSession, dest: Path, examples: list[SerializedExample], status: Status): diff --git a/src/codegen/cli/workspace/initialize_workspace.py b/src/graph_sitter/cli/workspace/initialize_workspace.py similarity index 87% rename from src/codegen/cli/workspace/initialize_workspace.py rename to src/graph_sitter/cli/workspace/initialize_workspace.py index 1ab32cfed..ae6808e93 100644 --- a/src/codegen/cli/workspace/initialize_workspace.py +++ b/src/graph_sitter/cli/workspace/initialize_workspace.py @@ -6,16 +6,16 @@ import rich from rich.status import Status -from codegen.cli.api.client import RestAPI -from codegen.cli.api.endpoints import CODEGEN_SYSTEM_PROMPT_URL -from codegen.cli.auth.constants import CODEGEN_DIR, DOCS_DIR, EXAMPLES_DIR, PROMPTS_DIR -from codegen.cli.auth.session import CodegenSession -from codegen.cli.auth.token_manager import get_current_token -from codegen.cli.rich.spinners import create_spinner -from codegen.cli.utils.notebooks import create_notebook -from codegen.cli.workspace.docs_workspace import populate_api_docs -from codegen.cli.workspace.examples_workspace import populate_examples -from codegen.cli.workspace.venv_manager import VenvManager +from graph_sitter.cli.api.client import RestAPI +from graph_sitter.cli.api.endpoints import CODEGEN_SYSTEM_PROMPT_URL +from graph_sitter.cli.auth.constants import CODEGEN_DIR, DOCS_DIR, EXAMPLES_DIR, PROMPTS_DIR +from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.token_manager import get_current_token +from graph_sitter.cli.rich.spinners import create_spinner +from graph_sitter.cli.utils.notebooks import create_notebook +from graph_sitter.cli.workspace.docs_workspace import populate_api_docs +from graph_sitter.cli.workspace.examples_workspace import populate_examples +from graph_sitter.cli.workspace.venv_manager import VenvManager def initialize_codegen(session: CodegenSession, status: Status | str = "Initializing", fetch_docs: bool = False) -> CodegenSession: diff --git a/src/codegen/cli/workspace/venv_manager.py b/src/graph_sitter/cli/workspace/venv_manager.py similarity index 100% rename from src/codegen/cli/workspace/venv_manager.py rename to src/graph_sitter/cli/workspace/venv_manager.py diff --git a/src/graph_sitter/code_generation/codegen_sdk_codebase.py b/src/graph_sitter/code_generation/codegen_sdk_codebase.py index d65340c10..e545a93de 100644 --- a/src/graph_sitter/code_generation/codegen_sdk_codebase.py +++ b/src/graph_sitter/code_generation/codegen_sdk_codebase.py @@ -1,12 +1,19 @@ import os.path -from graph_sitter.code_generation.current_code_codebase import get_codegen_codebase_base_path, get_current_code_codebase +from graph_sitter.code_generation.current_code_codebase import get_codegen_codebase_base_path, get_current_code_codebase, get_graphsitter_repo_path from graph_sitter.core.codebase import Codebase def get_codegen_sdk_subdirectories() -> list[str]: base = get_codegen_codebase_base_path() - return [os.path.join(base, "graph_sitter"), os.path.join(base, "codemods")] + graphsitter_path = os.path.join(base, "graph_sitter") + paths = [os.path.join(base, "codemods")] + for dir in os.listdir(os.path.join(get_graphsitter_repo_path(), graphsitter_path)): + if dir in ["git", "extensions", "cli"]: + continue + paths.append(os.path.join(graphsitter_path, dir)) + + return paths def get_codegen_sdk_codebase() -> Codebase: diff --git a/src/graph_sitter/code_generation/current_code_codebase.py b/src/graph_sitter/code_generation/current_code_codebase.py index a7efa3385..e518a6990 100644 --- a/src/graph_sitter/code_generation/current_code_codebase.py +++ b/src/graph_sitter/code_generation/current_code_codebase.py @@ -4,12 +4,12 @@ from pathlib import Path from typing import TypedDict -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig from graph_sitter.codebase.config import ProjectConfig from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.configs.models.secrets import SecretsConfig from graph_sitter.core.codebase import Codebase, CodebaseType +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.shared.decorators.docs import DocumentedObject, apidoc_objects, no_apidoc_objects, py_apidoc_objects, ts_apidoc_objects from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/graph_sitter/codebase/codebase_context.py b/src/graph_sitter/codebase/codebase_context.py index 90af98e1b..f1edb8be5 100644 --- a/src/graph_sitter/codebase/codebase_context.py +++ b/src/graph_sitter/codebase/codebase_context.py @@ -19,6 +19,8 @@ from graph_sitter.codebase.progress.stub_progress import StubProgress from graph_sitter.codebase.transaction_manager import TransactionManager from graph_sitter.codebase.validation import get_edges, post_reset_validation +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import uncache_all from graph_sitter.configs.models.codebase import CodebaseConfig, PinkMode from graph_sitter.configs.models.secrets import SecretsConfig from graph_sitter.core.autocommit import AutoCommit, commiter @@ -26,8 +28,6 @@ from graph_sitter.core.external.dependency_manager import DependencyManager, get_dependency_manager from graph_sitter.core.external.language_engine import LanguageEngine, get_language_engine from graph_sitter.enums import Edge, EdgeType, NodeType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import uncache_all from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.exceptions.control_flow import StopCodemodException from graph_sitter.shared.logging.get_logger import get_logger @@ -40,7 +40,6 @@ from codeowners import CodeOwners as CodeOwnersParser from git import Commit as GitCommit - from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.io.io import IO from graph_sitter.codebase.node_classes.node_classes import NodeClasses from graph_sitter.codebase.progress.progress import Progress @@ -51,6 +50,7 @@ from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.parser import Parser + from graph_sitter.git.repo_operator.repo_operator import RepoOperator logger = get_logger(__name__) diff --git a/src/graph_sitter/codebase/config.py b/src/graph_sitter/codebase/config.py index 6116e3256..f5870011e 100644 --- a/src/graph_sitter/codebase/config.py +++ b/src/graph_sitter/codebase/config.py @@ -5,11 +5,11 @@ from pydantic.config import ConfigDict from pydantic.fields import Field -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.file_utils import split_git_path -from codegen.git.utils.language import determine_project_language from graph_sitter.configs.models.codebase import DefaultCodebaseConfig +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.file_utils import split_git_path +from graph_sitter.git.utils.language import determine_project_language from graph_sitter.shared.enums.programming_language import ProgrammingLanguage HARD_MAX_AI_LIMIT = 500 # Global limit for AI requests diff --git a/src/graph_sitter/codebase/factory/codebase_factory.py b/src/graph_sitter/codebase/factory/codebase_factory.py index 77281f232..982ec4c50 100644 --- a/src/graph_sitter/codebase/factory/codebase_factory.py +++ b/src/graph_sitter/codebase/factory/codebase_factory.py @@ -1,4 +1,3 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.config import ProjectConfig from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.configs.models.secrets import SecretsConfig @@ -6,6 +5,7 @@ Codebase, CodebaseType, ) +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.enums.programming_language import ProgrammingLanguage diff --git a/src/graph_sitter/codebase/factory/get_session.py b/src/graph_sitter/codebase/factory/get_session.py index c478a763a..160734e0f 100644 --- a/src/graph_sitter/codebase/factory/get_session.py +++ b/src/graph_sitter/codebase/factory/get_session.py @@ -4,7 +4,6 @@ from contextlib import AbstractContextManager, contextmanager from typing import Literal, overload -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.codebase_context import CodebaseContext from graph_sitter.codebase.config import ProjectConfig, SessionOptions, TestFlags from graph_sitter.codebase.factory.codebase_factory import CodebaseFactory @@ -12,6 +11,7 @@ from graph_sitter.configs.models.secrets import SecretsConfig from graph_sitter.core.codebase import Codebase, PyCodebaseType, TSCodebaseType from graph_sitter.core.file import SourceFile +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.tree_sitter_parser import print_errors diff --git a/src/graph_sitter/codebase/flagging/groupers/all_grouper.py b/src/graph_sitter/codebase/flagging/groupers/all_grouper.py index 24a45bbe1..8a7235ca9 100644 --- a/src/graph_sitter/codebase/flagging/groupers/all_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/all_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator class AllGrouper(BaseGrouper): diff --git a/src/graph_sitter/codebase/flagging/groupers/app_grouper.py b/src/graph_sitter/codebase/flagging/groupers/app_grouper.py index 4c922621a..38b67c15e 100644 --- a/src/graph_sitter/codebase/flagging/groupers/app_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/app_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/graph_sitter/codebase/flagging/groupers/base_grouper.py b/src/graph_sitter/codebase/flagging/groupers/base_grouper.py index 54b95ab38..77128b54f 100644 --- a/src/graph_sitter/codebase/flagging/groupers/base_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/base_grouper.py @@ -1,7 +1,7 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator class BaseGrouper: diff --git a/src/graph_sitter/codebase/flagging/groupers/codeowner_grouper.py b/src/graph_sitter/codebase/flagging/groupers/codeowner_grouper.py index 428879b95..2c7f6228d 100644 --- a/src/graph_sitter/codebase/flagging/groupers/codeowner_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/codeowner_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator DEFAULT_CHUNK_SIZE = 5 diff --git a/src/graph_sitter/codebase/flagging/groupers/file_chunk_grouper.py b/src/graph_sitter/codebase/flagging/groupers/file_chunk_grouper.py index b5da220e3..47f3c6fd7 100644 --- a/src/graph_sitter/codebase/flagging/groupers/file_chunk_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/file_chunk_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.shared.string.csv_utils import comma_separated_to_list, list_to_comma_separated diff --git a/src/graph_sitter/codebase/flagging/groupers/file_grouper.py b/src/graph_sitter/codebase/flagging/groupers/file_grouper.py index c1f0b82ca..8dacf78fd 100644 --- a/src/graph_sitter/codebase/flagging/groupers/file_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/file_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/graph_sitter/codebase/flagging/groupers/instance_grouper.py b/src/graph_sitter/codebase/flagging/groupers/instance_grouper.py index 04c13d17a..ab7152a8f 100644 --- a/src/graph_sitter/codebase/flagging/groupers/instance_grouper.py +++ b/src/graph_sitter/codebase/flagging/groupers/instance_grouper.py @@ -1,8 +1,8 @@ -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.base_grouper import BaseGrouper from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.repo_operator.repo_operator import RepoOperator class InstanceGrouper(BaseGrouper): diff --git a/src/graph_sitter/codebase/range_index.py b/src/graph_sitter/codebase/range_index.py index 1b351630f..e7cf0a0ec 100644 --- a/src/graph_sitter/codebase/range_index.py +++ b/src/graph_sitter/codebase/range_index.py @@ -4,8 +4,8 @@ from tree_sitter import Range +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.interfaces.editable import Editable -from graph_sitter.extensions.sort import sort_editables class RangeIndex: diff --git a/src/graph_sitter/codebase/resolution_stack.py b/src/graph_sitter/codebase/resolution_stack.py index f908bee32..7d70087b9 100644 --- a/src/graph_sitter/codebase/resolution_stack.py +++ b/src/graph_sitter/codebase/resolution_stack.py @@ -1,3 +1,3 @@ -from graph_sitter.extensions.resolution import ResolutionStack +from graph_sitter.compiled.resolution import ResolutionStack __all__ = ["ResolutionStack"] diff --git a/src/graph_sitter/extensions/autocommit.pyi b/src/graph_sitter/compiled/autocommit.pyi similarity index 100% rename from src/graph_sitter/extensions/autocommit.pyi rename to src/graph_sitter/compiled/autocommit.pyi diff --git a/src/graph_sitter/extensions/autocommit.pyx b/src/graph_sitter/compiled/autocommit.pyx similarity index 100% rename from src/graph_sitter/extensions/autocommit.pyx rename to src/graph_sitter/compiled/autocommit.pyx diff --git a/src/codegen/git/py.typed b/src/graph_sitter/compiled/py.typed similarity index 100% rename from src/codegen/git/py.typed rename to src/graph_sitter/compiled/py.typed diff --git a/src/graph_sitter/extensions/resolution.pyi b/src/graph_sitter/compiled/resolution.pyi similarity index 100% rename from src/graph_sitter/extensions/resolution.pyi rename to src/graph_sitter/compiled/resolution.pyi diff --git a/src/graph_sitter/extensions/resolution.pyx b/src/graph_sitter/compiled/resolution.pyx similarity index 100% rename from src/graph_sitter/extensions/resolution.pyx rename to src/graph_sitter/compiled/resolution.pyx diff --git a/src/graph_sitter/extensions/sort.pyx b/src/graph_sitter/compiled/sort.pyx similarity index 100% rename from src/graph_sitter/extensions/sort.pyx rename to src/graph_sitter/compiled/sort.pyx diff --git a/src/graph_sitter/extensions/utils.pyi b/src/graph_sitter/compiled/utils.pyi similarity index 100% rename from src/graph_sitter/extensions/utils.pyi rename to src/graph_sitter/compiled/utils.pyi diff --git a/src/graph_sitter/extensions/utils.pyx b/src/graph_sitter/compiled/utils.pyx similarity index 100% rename from src/graph_sitter/extensions/utils.pyx rename to src/graph_sitter/compiled/utils.pyx diff --git a/src/graph_sitter/core/assignment.py b/src/graph_sitter/core/assignment.py index b50bd9f6e..731dd1f88 100644 --- a/src/graph_sitter/core/assignment.py +++ b/src/graph_sitter/core/assignment.py @@ -3,6 +3,8 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.autocommit import commiter, reader +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression, Name @@ -16,8 +18,6 @@ from graph_sitter.core.symbol_groups.collection import Collection from graph_sitter.core.symbol_groups.dict import Dict from graph_sitter.enums import SymbolType -from graph_sitter.extensions.autocommit import commiter, reader -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.typescript.expressions.object_type import TSObjectType from graph_sitter.utils import find_index diff --git a/src/graph_sitter/core/autocommit/__init__.py b/src/graph_sitter/core/autocommit/__init__.py index d2ea850bd..9fd9a339c 100644 --- a/src/graph_sitter/core/autocommit/__init__.py +++ b/src/graph_sitter/core/autocommit/__init__.py @@ -20,7 +20,7 @@ from graph_sitter.core.autocommit.constants import enabled from graph_sitter.core.autocommit.decorators import mover, remover, repr_func, writer from graph_sitter.core.autocommit.manager import AutoCommit -from graph_sitter.extensions.autocommit import commiter, reader +from graph_sitter.compiled.autocommit import commiter, reader __all__ = [ "AutoCommit", diff --git a/src/graph_sitter/core/autocommit/manager.py b/src/graph_sitter/core/autocommit/manager.py index 39f2402be..519965960 100644 --- a/src/graph_sitter/core/autocommit/manager.py +++ b/src/graph_sitter/core/autocommit/manager.py @@ -15,7 +15,7 @@ ) from graph_sitter.core.autocommit.utils import is_file, is_on_graph, is_symbol from graph_sitter.core.node_id_factory import NodeId -from graph_sitter.extensions.autocommit import update_dict +from graph_sitter.compiled.autocommit import update_dict if TYPE_CHECKING: from graph_sitter.codebase.codebase_context import CodebaseContext diff --git a/src/graph_sitter/core/class_definition.py b/src/graph_sitter/core/class_definition.py index ba66631f3..8e7946e2c 100644 --- a/src/graph_sitter/core/class_definition.py +++ b/src/graph_sitter/core/class_definition.py @@ -5,8 +5,8 @@ from typing_extensions import TypeVar -from codegen.visualizations.enums import VizNode from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter, reader, writer from graph_sitter.core.import_resolution import Import from graph_sitter.core.interfaces.callable import Callable @@ -17,9 +17,9 @@ from graph_sitter.core.statements.statement import StatementType from graph_sitter.core.symbol import Symbol from graph_sitter.enums import SymbolType -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.logging.get_logger import get_logger +from graph_sitter.visualizations.enums import VizNode if TYPE_CHECKING: from tree_sitter import Node as TSNode diff --git a/src/graph_sitter/core/codebase.py b/src/graph_sitter/core/codebase.py index 168bb6828..cf3280379 100644 --- a/src/graph_sitter/core/codebase.py +++ b/src/graph_sitter/core/codebase.py @@ -22,11 +22,6 @@ from rich.console import Console from typing_extensions import TypeVar, deprecated -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.enums import CheckoutResult -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.pr_review import CodegenPR -from codegen.visualizations.visualization_manager import VisualizationManager from graph_sitter._proxy import proxy_property from graph_sitter.ai.client import get_openai_client from graph_sitter.codebase.codebase_ai import generate_system_prompt, generate_tools @@ -42,6 +37,8 @@ from graph_sitter.codebase.io.io import IO from graph_sitter.codebase.progress.progress import Progress from graph_sitter.codebase.span import Span +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import uncache_all from graph_sitter.configs.models.codebase import CodebaseConfig, PinkMode from graph_sitter.configs.models.secrets import SecretsConfig from graph_sitter.core.assignment import Assignment @@ -61,8 +58,10 @@ from graph_sitter.core.symbol import Symbol from graph_sitter.core.type_alias import TypeAlias from graph_sitter.enums import NodeType, SymbolType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import uncache_all +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.enums import CheckoutResult +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.pr_review import CodegenPR from graph_sitter.output.constants import ANGULAR_STYLE from graph_sitter.python.assignment import PyAssignment from graph_sitter.python.class_definition import PyClass @@ -90,6 +89,7 @@ from graph_sitter.typescript.statements.import_statement import TSImportStatement from graph_sitter.typescript.symbol import TSSymbol from graph_sitter.typescript.type_alias import TSTypeAlias +from graph_sitter.visualizations.visualization_manager import VisualizationManager logger = get_logger(__name__) MAX_LINES = 10000 # Maximum number of lines of text allowed to be logged diff --git a/src/graph_sitter/core/detached_symbols/argument.py b/src/graph_sitter/core/detached_symbols/argument.py index 02332b9ea..9c0b4ba52 100644 --- a/src/graph_sitter/core/detached_symbols/argument.py +++ b/src/graph_sitter/core/detached_symbols/argument.py @@ -2,13 +2,13 @@ from typing import TYPE_CHECKING, Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.expressions import Expression from graph_sitter.core.expressions.multi_expression import MultiExpression from graph_sitter.core.expressions.name import Name from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.interfaces.has_value import HasValue -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/detached_symbols/code_block.py b/src/graph_sitter/core/detached_symbols/code_block.py index 0aee0b37b..7bd896fb8 100644 --- a/src/graph_sitter/core/detached_symbols/code_block.py +++ b/src/graph_sitter/core/detached_symbols/code_block.py @@ -6,12 +6,12 @@ from typing_extensions import deprecated +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import find_line_start_and_end_nodes from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind, UsageType from graph_sitter.core.expressions import Expression, Value from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import find_line_start_and_end_nodes from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/detached_symbols/function_call.py b/src/graph_sitter/core/detached_symbols/function_call.py index e147c3f1c..537aa16f3 100644 --- a/src/graph_sitter/core/detached_symbols/function_call.py +++ b/src/graph_sitter/core/detached_symbols/function_call.py @@ -3,6 +3,8 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import cached_property, is_descendant_of from graph_sitter.core.autocommit import reader, remover, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.detached_symbols.argument import Argument @@ -14,8 +16,6 @@ from graph_sitter.core.interfaces.resolvable import Resolvable from graph_sitter.core.symbol_groups.collection import Collection from graph_sitter.enums import NodeType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import cached_property, is_descendant_of from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.typescript.detached_symbols.promise_chain import TSPromiseChain @@ -27,7 +27,6 @@ from tree_sitter import Node as TSNode - from codegen.visualizations.enums import VizNode from graph_sitter.codebase.codebase_context import CodebaseContext from graph_sitter.core.detached_symbols.parameter import Parameter from graph_sitter.core.function import Function @@ -35,6 +34,7 @@ from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.node_id_factory import NodeId + from graph_sitter.visualizations.enums import VizNode Parent = TypeVar("Parent", bound="Expression | None") @@ -266,7 +266,7 @@ def successor(self) -> FunctionCall[Parent] | None: @noapidoc @override def viz(self) -> VizNode: - from codegen.visualizations.enums import VizNode + from graph_sitter.visualizations.enums import VizNode func = self.function_definition from graph_sitter.core.function import Function diff --git a/src/graph_sitter/core/detached_symbols/parameter.py b/src/graph_sitter/core/detached_symbols/parameter.py index 03c6efedd..96ccdecd6 100644 --- a/src/graph_sitter/core/detached_symbols/parameter.py +++ b/src/graph_sitter/core/detached_symbols/parameter.py @@ -5,6 +5,8 @@ from typing_extensions import deprecated +from graph_sitter.compiled.autocommit import commiter +from graph_sitter.compiled.resolution import UsageKind from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageType from graph_sitter.core.expressions import Expression @@ -12,8 +14,6 @@ from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.interfaces.typeable import Typeable from graph_sitter.core.interfaces.usable import Usable -from graph_sitter.extensions.autocommit import commiter -from graph_sitter.extensions.resolution import UsageKind from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.utils import find_first_descendant diff --git a/src/graph_sitter/core/directory.py b/src/graph_sitter/core/directory.py index 848d90f11..7c6a2b5e0 100644 --- a/src/graph_sitter/core/directory.py +++ b/src/graph_sitter/core/directory.py @@ -4,6 +4,7 @@ from typing import TYPE_CHECKING, Generic, Literal, Self from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.interfaces.has_symbols import ( FilesParam, HasSymbols, @@ -17,7 +18,6 @@ ) from graph_sitter.core.utils.cache_utils import cached_generator from graph_sitter.enums import NodeType -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/graph_sitter/core/export.py b/src/graph_sitter/core/export.py index 480af2393..5b2edc4bd 100644 --- a/src/graph_sitter/core/export.py +++ b/src/graph_sitter/core/export.py @@ -3,8 +3,8 @@ from abc import abstractmethod from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.interfaces.exportable import Exportable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/await_expression.py b/src/graph_sitter/core/expressions/await_expression.py index 4f3dc5196..8bc4275d9 100644 --- a/src/graph_sitter/core/expressions/await_expression.py +++ b/src/graph_sitter/core/expressions/await_expression.py @@ -1,10 +1,10 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.expressions import Expression from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.interfaces.wrapper_expression import IWrapper -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/binary_expression.py b/src/graph_sitter/core/expressions/binary_expression.py index 31c00762c..9e5b061a6 100644 --- a/src/graph_sitter/core/expressions/binary_expression.py +++ b/src/graph_sitter/core/expressions/binary_expression.py @@ -5,6 +5,8 @@ from typing import Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter, reader +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression @@ -14,8 +16,6 @@ from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.interfaces.unwrappable import Unwrappable from graph_sitter.core.symbol_groups.expression_group import ExpressionGroup -from graph_sitter.extensions.autocommit import commiter, reader -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc, noapidoc Parent = TypeVar("Parent", bound="Editable") diff --git a/src/graph_sitter/core/expressions/boolean.py b/src/graph_sitter/core/expressions/boolean.py index 1a182125e..1c9e9e166 100644 --- a/src/graph_sitter/core/expressions/boolean.py +++ b/src/graph_sitter/core/expressions/boolean.py @@ -1,10 +1,10 @@ from typing import Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression from graph_sitter.core.expressions.builtin import Builtin from graph_sitter.core.interfaces.has_name import HasName -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc Parent = TypeVar("Parent", bound="Expression") diff --git a/src/graph_sitter/core/expressions/builtin.py b/src/graph_sitter/core/expressions/builtin.py index 678b99c92..f8cf5333c 100644 --- a/src/graph_sitter/core/expressions/builtin.py +++ b/src/graph_sitter/core/expressions/builtin.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Self, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.interfaces.chainable import Chainable from graph_sitter.core.interfaces.has_attribute import HasAttribute -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/chained_attribute.py b/src/graph_sitter/core/expressions/chained_attribute.py index ffe299bb3..da6e6bf61 100644 --- a/src/graph_sitter/core/expressions/chained_attribute.py +++ b/src/graph_sitter/core/expressions/chained_attribute.py @@ -4,6 +4,7 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Name @@ -11,7 +12,6 @@ from graph_sitter.core.interfaces.chainable import Chainable from graph_sitter.core.interfaces.has_attribute import HasAttribute from graph_sitter.core.interfaces.resolvable import Resolvable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/defined_name.py b/src/graph_sitter/core/expressions/defined_name.py index 51f3f7010..189abb91f 100644 --- a/src/graph_sitter/core/expressions/defined_name.py +++ b/src/graph_sitter/core/expressions/defined_name.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.expressions import Name -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/expression.py b/src/graph_sitter/core/expressions/expression.py index b2f662389..4470e2ff6 100644 --- a/src/graph_sitter/core/expressions/expression.py +++ b/src/graph_sitter/core/expressions/expression.py @@ -2,10 +2,10 @@ from typing import Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.interfaces.chainable import Chainable from graph_sitter.core.interfaces.editable import Editable from graph_sitter.enums import NodeType -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc Parent = TypeVar("Parent", bound="Editable") diff --git a/src/graph_sitter/core/expressions/generic_type.py b/src/graph_sitter/core/expressions/generic_type.py index cddaaf687..6bca4b073 100644 --- a/src/graph_sitter/core/expressions/generic_type.py +++ b/src/graph_sitter/core/expressions/generic_type.py @@ -4,13 +4,13 @@ from tree_sitter import Node as TSNode +from graph_sitter.compiled.resolution import ResolutionStack from graph_sitter.core.autocommit import commiter, reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.named_type import NamedType from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.resolution import ResolutionStack from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/multi_expression.py b/src/graph_sitter/core/expressions/multi_expression.py index 8172e710f..bc8fc375c 100644 --- a/src/graph_sitter/core/expressions/multi_expression.py +++ b/src/graph_sitter/core/expressions/multi_expression.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.expressions import Expression -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/name.py b/src/graph_sitter/core/expressions/name.py index 2abc23379..1c45e8f8d 100644 --- a/src/graph_sitter/core/expressions/name.py +++ b/src/graph_sitter/core/expressions/name.py @@ -2,12 +2,12 @@ from typing import TYPE_CHECKING, Generic, Optional, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.expression import Expression from graph_sitter.core.interfaces.conditional_block import ConditionalBlock from graph_sitter.core.interfaces.resolvable import Resolvable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/none_type.py b/src/graph_sitter/core/expressions/none_type.py index b0d39728b..eace3d601 100644 --- a/src/graph_sitter/core/expressions/none_type.py +++ b/src/graph_sitter/core/expressions/none_type.py @@ -2,10 +2,10 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.type import Type from graph_sitter.core.interfaces.importable import Importable -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/number.py b/src/graph_sitter/core/expressions/number.py index e3764d319..c110d8418 100644 --- a/src/graph_sitter/core/expressions/number.py +++ b/src/graph_sitter/core/expressions/number.py @@ -1,10 +1,10 @@ from typing import Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression from graph_sitter.core.expressions.builtin import Builtin from graph_sitter.core.interfaces.has_name import HasName -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc Parent = TypeVar("Parent", bound="Expression") diff --git a/src/graph_sitter/core/expressions/parenthesized_expression.py b/src/graph_sitter/core/expressions/parenthesized_expression.py index 8911bdd69..45c868ccb 100644 --- a/src/graph_sitter/core/expressions/parenthesized_expression.py +++ b/src/graph_sitter/core/expressions/parenthesized_expression.py @@ -1,6 +1,7 @@ from typing import Generic, TypeVar, override from graph_sitter.codebase.transactions import TransactionPriority +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.autocommit import writer from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.expressions import Expression @@ -8,7 +9,6 @@ from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.interfaces.unwrappable import Unwrappable from graph_sitter.core.interfaces.wrapper_expression import IWrapper -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc from graph_sitter.typescript.statements.if_block_statement import TSIfBlockStatement diff --git a/src/graph_sitter/core/expressions/placeholder_type.py b/src/graph_sitter/core/expressions/placeholder_type.py index 1d828c445..b274bb2a5 100644 --- a/src/graph_sitter/core/expressions/placeholder_type.py +++ b/src/graph_sitter/core/expressions/placeholder_type.py @@ -2,11 +2,11 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.type import Type from graph_sitter.core.interfaces.importable import Importable -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/string.py b/src/graph_sitter/core/expressions/string.py index 9b6a4e7a8..79da59c11 100644 --- a/src/graph_sitter/core/expressions/string.py +++ b/src/graph_sitter/core/expressions/string.py @@ -2,6 +2,7 @@ from tree_sitter import Node as TSNode +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.builtin import Builtin @@ -10,7 +11,6 @@ from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/subscript_expression.py b/src/graph_sitter/core/expressions/subscript_expression.py index cacb01565..434c7afdd 100644 --- a/src/graph_sitter/core/expressions/subscript_expression.py +++ b/src/graph_sitter/core/expressions/subscript_expression.py @@ -2,12 +2,12 @@ from typing import TYPE_CHECKING, Generic, Optional, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Name from graph_sitter.core.expressions.expression import Expression from graph_sitter.core.interfaces.resolvable import Resolvable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/ternary_expression.py b/src/graph_sitter/core/expressions/ternary_expression.py index dfdd30718..24352e2e4 100644 --- a/src/graph_sitter/core/expressions/ternary_expression.py +++ b/src/graph_sitter/core/expressions/ternary_expression.py @@ -3,6 +3,7 @@ from typing import Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.autocommit import writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression @@ -11,7 +12,6 @@ from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.interfaces.unwrappable import Unwrappable -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc Parent = TypeVar("Parent", bound="Editable") diff --git a/src/graph_sitter/core/expressions/tuple_type.py b/src/graph_sitter/core/expressions/tuple_type.py index 980641587..55ce19af1 100644 --- a/src/graph_sitter/core/expressions/tuple_type.py +++ b/src/graph_sitter/core/expressions/tuple_type.py @@ -4,10 +4,10 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.expressions.type import Type from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/type.py b/src/graph_sitter/core/expressions/type.py index 147b2590c..a1dbf97c9 100644 --- a/src/graph_sitter/core/expressions/type.py +++ b/src/graph_sitter/core/expressions/type.py @@ -4,10 +4,10 @@ from typing_extensions import deprecated +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.expression import Expression from graph_sitter.core.interfaces.chainable import Chainable -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/unary_expression.py b/src/graph_sitter/core/expressions/unary_expression.py index 644056fe0..97d7eb0fc 100644 --- a/src/graph_sitter/core/expressions/unary_expression.py +++ b/src/graph_sitter/core/expressions/unary_expression.py @@ -2,6 +2,9 @@ from typing import Generic, Self, TypeVar, override from graph_sitter.codebase.codebase_context import CodebaseContext +from graph_sitter.compiled.autocommit import commiter, reader +from graph_sitter.compiled.resolution import ResolutionStack +from graph_sitter.compiled.utils import TSNode from graph_sitter.core.autocommit import writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.expression import Expression @@ -9,9 +12,6 @@ from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.node_id_factory import NodeId -from graph_sitter.extensions.autocommit import commiter, reader -from graph_sitter.extensions.resolution import ResolutionStack -from graph_sitter.extensions.utils import TSNode from graph_sitter.shared.decorators.docs import apidoc, noapidoc Parent = TypeVar("Parent", bound="Expression") diff --git a/src/graph_sitter/core/expressions/union_type.py b/src/graph_sitter/core/expressions/union_type.py index c14ecde57..682d5d964 100644 --- a/src/graph_sitter/core/expressions/union_type.py +++ b/src/graph_sitter/core/expressions/union_type.py @@ -4,10 +4,10 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.expressions.type import Type from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/expressions/value.py b/src/graph_sitter/core/expressions/value.py index 410ede31f..acb1b2322 100644 --- a/src/graph_sitter/core/expressions/value.py +++ b/src/graph_sitter/core/expressions/value.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.expressions.expression import Expression -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/external_module.py b/src/graph_sitter/core/external_module.py index 4bbaa8e33..8847831bd 100644 --- a/src/graph_sitter/core/external_module.py +++ b/src/graph_sitter/core/external_module.py @@ -2,13 +2,13 @@ from typing import TYPE_CHECKING, Literal, override -from codegen.visualizations.enums import VizNode from graph_sitter.core.autocommit import commiter, reader from graph_sitter.core.interfaces.callable import Callable from graph_sitter.core.interfaces.has_attribute import HasAttribute from graph_sitter.core.placeholder.placeholder_stub import StubPlaceholder from graph_sitter.enums import ImportType, NodeType from graph_sitter.shared.decorators.docs import apidoc, noapidoc +from graph_sitter.visualizations.enums import VizNode if TYPE_CHECKING: from tree_sitter import Node as TSNode diff --git a/src/graph_sitter/core/file.py b/src/graph_sitter/core/file.py index 2f050624a..600411ce1 100644 --- a/src/graph_sitter/core/file.py +++ b/src/graph_sitter/core/file.py @@ -12,11 +12,11 @@ from tree_sitter import Node as TSNode from typing_extensions import deprecated -from codegen.visualizations.enums import VizNode from graph_sitter._proxy import proxy_property from graph_sitter.codebase.codebase_context import CodebaseContext from graph_sitter.codebase.range_index import RangeIndex from graph_sitter.codebase.span import Range +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import commiter, mover, reader, remover, writer from graph_sitter.core.class_definition import Class from graph_sitter.core.dataclasses.usage import UsageType @@ -30,13 +30,13 @@ from graph_sitter.core.statements.import_statement import ImportStatement from graph_sitter.core.symbol import Symbol from graph_sitter.enums import EdgeType, ImportType, NodeType, SymbolType -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.topological_sort import pseudo_topological_sort from graph_sitter.tree_sitter_parser import get_parser_by_filepath_or_extension, parse_file from graph_sitter.typescript.function import TSFunction from graph_sitter.utils import is_minified_js +from graph_sitter.visualizations.enums import VizNode if TYPE_CHECKING: from graph_sitter.core.assignment import Assignment diff --git a/src/graph_sitter/core/function.py b/src/graph_sitter/core/function.py index f2f665505..c0445cad6 100644 --- a/src/graph_sitter/core/function.py +++ b/src/graph_sitter/core/function.py @@ -5,8 +5,9 @@ from typing_extensions import TypeVar -from codegen.visualizations.enums import VizNode from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.detached_symbols.code_block import CodeBlock from graph_sitter.core.detached_symbols.decorator import Decorator @@ -18,9 +19,8 @@ from graph_sitter.core.interfaces.supports_generic import SupportsGenerics from graph_sitter.core.statements.statement import StatementType from graph_sitter.enums import SymbolType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import apidoc, noapidoc +from graph_sitter.visualizations.enums import VizNode if TYPE_CHECKING: from collections.abc import Generator, Sequence diff --git a/src/graph_sitter/core/import_resolution.py b/src/graph_sitter/core/import_resolution.py index 3d27c85a8..4eb485d43 100644 --- a/src/graph_sitter/core/import_resolution.py +++ b/src/graph_sitter/core/import_resolution.py @@ -4,9 +4,9 @@ from dataclasses import dataclass from typing import TYPE_CHECKING, ClassVar, Generic, Literal, Self, TypeVar, override -from codegen.visualizations.enums import VizNode from graph_sitter.codebase.resolution_stack import ResolutionStack from graph_sitter.codebase.transactions import TransactionPriority +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter, reader, remover, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.name import Name @@ -17,9 +17,9 @@ from graph_sitter.core.interfaces.usable import Usable from graph_sitter.core.statements.import_statement import ImportStatement from graph_sitter.enums import EdgeType, ImportType, NodeType -from graph_sitter.extensions.utils import cached_property from graph_sitter.output.constants import ANGULAR_STYLE from graph_sitter.shared.decorators.docs import apidoc, noapidoc +from graph_sitter.visualizations.enums import VizNode if TYPE_CHECKING: from collections.abc import Generator diff --git a/src/graph_sitter/core/interface.py b/src/graph_sitter/core/interface.py index 0e4008590..8f093a4a4 100644 --- a/src/graph_sitter/core/interface.py +++ b/src/graph_sitter/core/interface.py @@ -3,12 +3,12 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader from graph_sitter.core.interfaces.has_attribute import HasAttribute from graph_sitter.core.interfaces.has_block import HasBlock from graph_sitter.core.interfaces.inherits import Inherits from graph_sitter.enums import SymbolType -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/interfaces/chainable.py b/src/graph_sitter/core/interfaces/chainable.py index ab3c16c27..7174034f5 100644 --- a/src/graph_sitter/core/interfaces/chainable.py +++ b/src/graph_sitter/core/interfaces/chainable.py @@ -3,8 +3,8 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.interfaces.editable import Editable -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/interfaces/editable.py b/src/graph_sitter/core/interfaces/editable.py index fc6dfde03..b1ba4bace 100644 --- a/src/graph_sitter/core/interfaces/editable.py +++ b/src/graph_sitter/core/interfaces/editable.py @@ -11,9 +11,9 @@ from graph_sitter.codebase.span import Span from graph_sitter.codebase.transactions import EditTransaction, InsertTransaction, RemoveTransaction, TransactionPriority +from graph_sitter.compiled.utils import get_all_identifiers from graph_sitter.core.autocommit import commiter, reader, remover, repr_func, writer from graph_sitter.core.placeholder.placeholder import Placeholder -from graph_sitter.extensions.utils import get_all_identifiers from graph_sitter.output.ast import AST from graph_sitter.output.constants import ANGULAR_STYLE, MAX_STRING_LENGTH from graph_sitter.output.jsonable import JSONable @@ -29,7 +29,6 @@ from tree_sitter import Node as TSNode from tree_sitter import Point, Range - from codegen.visualizations.enums import VizNode from graph_sitter.codebase.codebase_context import CodebaseContext from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.enums import FlagKwargs @@ -50,6 +49,7 @@ from graph_sitter.core.symbol import Symbol from graph_sitter.core.symbol_group import SymbolGroup from graph_sitter.enums import NodeType + from graph_sitter.visualizations.enums import VizNode CONTAINER_CHARS = (b"(", b")", b"{", b"}", b"[", b"]", b"<", b">", b"import") MAX_REPR_LEN: int = 200 @@ -993,8 +993,8 @@ def _log_parse(self, msg: str, *args, **kwargs): @property @noapidoc def viz(self) -> VizNode: - from codegen.visualizations.enums import VizNode from graph_sitter.core.interfaces.has_name import HasName + from graph_sitter.visualizations.enums import VizNode if isinstance(self, HasName): return VizNode(file_path=self.filepath, start_point=self.start_point, end_point=self.end_point, name=self.name, symbol_name=self.__class__.__name__) diff --git a/src/graph_sitter/core/interfaces/has_block.py b/src/graph_sitter/core/interfaces/has_block.py index 53d9509c7..d4f448f2d 100644 --- a/src/graph_sitter/core/interfaces/has_block.py +++ b/src/graph_sitter/core/interfaces/has_block.py @@ -3,10 +3,10 @@ from abc import abstractmethod from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.expressions import Expression from graph_sitter.core.statements.comment import Comment -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/interfaces/importable.py b/src/graph_sitter/core/interfaces/importable.py index 437ddc7fc..cd4ce999a 100644 --- a/src/graph_sitter/core/interfaces/importable.py +++ b/src/graph_sitter/core/interfaces/importable.py @@ -3,14 +3,14 @@ from tree_sitter import Node as TSNode from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.autocommit import commiter +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageType from graph_sitter.core.expressions.expression import Expression from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.node_id_factory import NodeId from graph_sitter.enums import EdgeType -from graph_sitter.extensions.autocommit import commiter -from graph_sitter.extensions.sort import sort_editables from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/graph_sitter/core/interfaces/supports_generic.py b/src/graph_sitter/core/interfaces/supports_generic.py index 131f999cc..eb82abe66 100644 --- a/src/graph_sitter/core/interfaces/supports_generic.py +++ b/src/graph_sitter/core/interfaces/supports_generic.py @@ -2,10 +2,10 @@ from typing_extensions import TypeVar +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.expressions.named_type import NamedType from graph_sitter.core.symbol import Symbol from graph_sitter.core.symbol_groups.type_parameters import TypeParameters -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/interfaces/wrapper_expression.py b/src/graph_sitter/core/interfaces/wrapper_expression.py index e2ed0d965..f325310d3 100644 --- a/src/graph_sitter/core/interfaces/wrapper_expression.py +++ b/src/graph_sitter/core/interfaces/wrapper_expression.py @@ -3,13 +3,13 @@ from typing import TYPE_CHECKING, Self, final, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression from graph_sitter.core.interfaces.chainable import Chainable from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.interfaces.has_name import HasName -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/assignment_statement.py b/src/graph_sitter/core/statements/assignment_statement.py index 8c2bd8a17..de9cbb934 100644 --- a/src/graph_sitter/core/statements/assignment_statement.py +++ b/src/graph_sitter/core/statements/assignment_statement.py @@ -3,11 +3,11 @@ from abc import abstractmethod from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.name import Name from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/attribute.py b/src/graph_sitter/core/statements/attribute.py index 58434eefa..b68728519 100644 --- a/src/graph_sitter/core/statements/attribute.py +++ b/src/graph_sitter/core/statements/attribute.py @@ -4,12 +4,12 @@ from abc import abstractmethod from typing import TYPE_CHECKING, Generic, Self, TypeVar, override +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.autocommit import writer from graph_sitter.core.interfaces.chainable import Chainable from graph_sitter.core.interfaces.usable import Usable from graph_sitter.core.statements.assignment_statement import AssignmentStatement from graph_sitter.core.statements.statement import StatementType -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: @@ -18,11 +18,11 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.codebase_context import CodebaseContext + from graph_sitter.compiled.resolution import ResolutionStack from graph_sitter.core.assignment import Assignment from graph_sitter.core.detached_symbols.code_block import CodeBlock from graph_sitter.core.interfaces.importable import Importable from graph_sitter.core.node_id_factory import NodeId - from graph_sitter.extensions.resolution import ResolutionStack TCodeBlock = TypeVar("TCodeBlock", bound="CodeBlock | None") TAssignment = TypeVar("TAssignment", bound="Assignment") diff --git a/src/graph_sitter/core/statements/block_statement.py b/src/graph_sitter/core/statements/block_statement.py index 0147adc8f..e626fe0cd 100644 --- a/src/graph_sitter/core/statements/block_statement.py +++ b/src/graph_sitter/core/statements/block_statement.py @@ -3,9 +3,9 @@ from abc import ABC from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.interfaces.has_block import HasBlock from graph_sitter.core.statements.statement import Statement -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/catch_statement.py b/src/graph_sitter/core/statements/catch_statement.py index 5bc0731ad..8547fe208 100644 --- a/src/graph_sitter/core/statements/catch_statement.py +++ b/src/graph_sitter/core/statements/catch_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.interfaces.conditional_block import ConditionalBlock from graph_sitter.core.statements.block_statement import BlockStatement -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/export_statement.py b/src/graph_sitter/core/statements/export_statement.py index 925c948de..3e22f7dc5 100644 --- a/src/graph_sitter/core/statements/export_statement.py +++ b/src/graph_sitter/core/statements/export_statement.py @@ -2,10 +2,10 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.statements.statement import Statement, StatementType from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.typescript.export import TSExport from graph_sitter.typescript.statements.import_statement import TSImportStatement diff --git a/src/graph_sitter/core/statements/expression_statement.py b/src/graph_sitter/core/statements/expression_statement.py index d227b8599..4034a1f17 100644 --- a/src/graph_sitter/core/statements/expression_statement.py +++ b/src/graph_sitter/core/statements/expression_statement.py @@ -2,10 +2,10 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.interfaces.wrapper_expression import IWrapper from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/if_block_statement.py b/src/graph_sitter/core/statements/if_block_statement.py index 5fb3679dd..7aceb773c 100644 --- a/src/graph_sitter/core/statements/if_block_statement.py +++ b/src/graph_sitter/core/statements/if_block_statement.py @@ -5,12 +5,12 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar from graph_sitter._proxy import proxy_property +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.function import Function from graph_sitter.core.interfaces.conditional_block import ConditionalBlock from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/import_statement.py b/src/graph_sitter/core/statements/import_statement.py index c4b9e9866..10f3f2989 100644 --- a/src/graph_sitter/core/statements/import_statement.py +++ b/src/graph_sitter/core/statements/import_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.statements.statement import Statement -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/raise_statement.py b/src/graph_sitter/core/statements/raise_statement.py index a8e9ccfe9..af4667aff 100644 --- a/src/graph_sitter/core/statements/raise_statement.py +++ b/src/graph_sitter/core/statements/raise_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/return_statement.py b/src/graph_sitter/core/statements/return_statement.py index 8b7cfc728..8881c67fd 100644 --- a/src/graph_sitter/core/statements/return_statement.py +++ b/src/graph_sitter/core/statements/return_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/statement.py b/src/graph_sitter/core/statements/statement.py index 9fd30e9b2..4638b93f0 100644 --- a/src/graph_sitter/core/statements/statement.py +++ b/src/graph_sitter/core/statements/statement.py @@ -4,9 +4,9 @@ from functools import cached_property from typing import TYPE_CHECKING, Generic, Self, TypeVar, final +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader from graph_sitter.core.expressions import Expression -from graph_sitter.extensions.autocommit import commiter from graph_sitter.output.constants import ANGULAR_STYLE from graph_sitter.shared.decorators.docs import apidoc, noapidoc from graph_sitter.utils import find_all_descendants diff --git a/src/graph_sitter/core/statements/switch_case.py b/src/graph_sitter/core/statements/switch_case.py index d5690acea..b7a1a9dde 100644 --- a/src/graph_sitter/core/statements/switch_case.py +++ b/src/graph_sitter/core/statements/switch_case.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.interfaces.conditional_block import ConditionalBlock from graph_sitter.core.statements.block_statement import BlockStatement -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/switch_statement.py b/src/graph_sitter/core/statements/switch_statement.py index 03a64e596..ba15d982a 100644 --- a/src/graph_sitter/core/statements/switch_statement.py +++ b/src/graph_sitter/core/statements/switch_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar, override +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/symbol_statement.py b/src/graph_sitter/core/statements/symbol_statement.py index 35f8172ca..ce47e2f56 100644 --- a/src/graph_sitter/core/statements/symbol_statement.py +++ b/src/graph_sitter/core/statements/symbol_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/statements/while_statement.py b/src/graph_sitter/core/statements/while_statement.py index 4b9698f68..2c6aab27d 100644 --- a/src/graph_sitter/core/statements/while_statement.py +++ b/src/graph_sitter/core/statements/while_statement.py @@ -3,9 +3,9 @@ from abc import ABC from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.interfaces.has_block import HasBlock from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/symbol.py b/src/graph_sitter/core/symbol.py index 28ed4e679..560b10cd2 100644 --- a/src/graph_sitter/core/symbol.py +++ b/src/graph_sitter/core/symbol.py @@ -5,6 +5,7 @@ from rich.markup import escape +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import commiter, reader, writer from graph_sitter.core.dataclasses.usage import UsageKind, UsageType from graph_sitter.core.detached_symbols.argument import Argument @@ -15,7 +16,6 @@ from graph_sitter.core.interfaces.usable import Usable from graph_sitter.core.statements.statement import Statement from graph_sitter.enums import ImportType, NodeType, SymbolType -from graph_sitter.extensions.sort import sort_editables from graph_sitter.output.constants import ANGULAR_STYLE from graph_sitter.shared.decorators.docs import apidoc, noapidoc diff --git a/src/graph_sitter/core/symbol_group.py b/src/graph_sitter/core/symbol_group.py index 8b35b674e..ceea39f73 100644 --- a/src/graph_sitter/core/symbol_group.py +++ b/src/graph_sitter/core/symbol_group.py @@ -3,9 +3,9 @@ from collections.abc import Collection, Iterator from typing import TYPE_CHECKING, Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, repr_func, writer from graph_sitter.core.interfaces.editable import Editable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/symbol_groups/dict.py b/src/graph_sitter/core/symbol_groups/dict.py index 8fe32597d..fab07e0c1 100644 --- a/src/graph_sitter/core/symbol_groups/dict.py +++ b/src/graph_sitter/core/symbol_groups/dict.py @@ -3,6 +3,7 @@ from tree_sitter import Node as TSNode +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.builtin import Builtin from graph_sitter.core.expressions.expression import Expression @@ -13,7 +14,6 @@ from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import apidoc, noapidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/symbol_groups/expression_group.py b/src/graph_sitter/core/symbol_groups/expression_group.py index cb4978894..32291e22f 100644 --- a/src/graph_sitter/core/symbol_groups/expression_group.py +++ b/src/graph_sitter/core/symbol_groups/expression_group.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.symbol_group import SymbolGroup -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/core/utils/cache_utils.py b/src/graph_sitter/core/utils/cache_utils.py index 455f69849..39e0faa80 100644 --- a/src/graph_sitter/core/utils/cache_utils.py +++ b/src/graph_sitter/core/utils/cache_utils.py @@ -2,7 +2,7 @@ from collections.abc import Callable, Iterator from typing import Generic, ParamSpec, TypeVar -from graph_sitter.extensions.utils import lru_cache +from graph_sitter.compiled.utils import lru_cache ItemType = TypeVar("ItemType") GenParamSpec = ParamSpec("GenParamSpec") diff --git a/src/graph_sitter/extensions/__init__.py b/src/graph_sitter/extensions/__init__.py new file mode 100644 index 000000000..0db441c07 --- /dev/null +++ b/src/graph_sitter/extensions/__init__.py @@ -0,0 +1,6 @@ +"""Extensions for the codegen package.""" + +from graph_sitter.extensions.index.code_index import CodeIndex +from graph_sitter.extensions.index.file_index import FileIndex + +__all__ = ["CodeIndex", "FileIndex"] diff --git a/src/codegen/extensions/attribution/3pp/__init__.py b/src/graph_sitter/extensions/attribution/3pp/__init__.py similarity index 100% rename from src/codegen/extensions/attribution/3pp/__init__.py rename to src/graph_sitter/extensions/attribution/3pp/__init__.py diff --git a/src/codegen/extensions/attribution/3pp/cursor.py b/src/graph_sitter/extensions/attribution/3pp/cursor.py similarity index 100% rename from src/codegen/extensions/attribution/3pp/cursor.py rename to src/graph_sitter/extensions/attribution/3pp/cursor.py diff --git a/src/codegen/extensions/attribution/3pp/windsurf.py b/src/graph_sitter/extensions/attribution/3pp/windsurf.py similarity index 100% rename from src/codegen/extensions/attribution/3pp/windsurf.py rename to src/graph_sitter/extensions/attribution/3pp/windsurf.py diff --git a/src/codegen/extensions/attribution/cli.py b/src/graph_sitter/extensions/attribution/cli.py similarity index 95% rename from src/codegen/extensions/attribution/cli.py rename to src/graph_sitter/extensions/attribution/cli.py index bf4370e6a..eb204f919 100644 --- a/src/codegen/extensions/attribution/cli.py +++ b/src/graph_sitter/extensions/attribution/cli.py @@ -4,8 +4,8 @@ import pygit2 import codegen -from codegen import Codebase -from codegen.extensions.attribution.main import add_attribution_to_symbols, analyze_ai_impact +from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols, analyze_ai_impact def diagnose_repository(codebase): @@ -68,11 +68,11 @@ def run(codebase: Codebase): 3. Determines the impact of AI-written code 4. Generates a report with statistics and visualizations - Run the analysis using the codegen CLI: + Run the analysis using the graph_sitter.cli: codegen analyze-ai-impact Or from script: - from codegen.extensions.attribution.cli import run + from graph_sitter.extensions.attribution.cli import run codebase = Codebase.... run(codebase) """ diff --git a/src/codegen/extensions/attribution/git_history.py b/src/graph_sitter/extensions/attribution/git_history.py similarity index 100% rename from src/codegen/extensions/attribution/git_history.py rename to src/graph_sitter/extensions/attribution/git_history.py diff --git a/src/codegen/extensions/attribution/main.py b/src/graph_sitter/extensions/attribution/main.py similarity index 97% rename from src/codegen/extensions/attribution/main.py rename to src/graph_sitter/extensions/attribution/main.py index d9425d7cd..085dddb44 100644 --- a/src/codegen/extensions/attribution/main.py +++ b/src/graph_sitter/extensions/attribution/main.py @@ -1,5 +1,5 @@ -from codegen.extensions.attribution.git_history import GitAttributionTracker from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.attribution.git_history import GitAttributionTracker def analyze_ai_impact(codebase: Codebase, ai_authors: list[str] | None = None, max_commits: int | None = None) -> dict: diff --git a/src/codegen/extensions/clients/linear.py b/src/graph_sitter/extensions/clients/linear.py similarity index 100% rename from src/codegen/extensions/clients/linear.py rename to src/graph_sitter/extensions/clients/linear.py diff --git a/src/codegen/extensions/events/client.py b/src/graph_sitter/extensions/events/client.py similarity index 100% rename from src/codegen/extensions/events/client.py rename to src/graph_sitter/extensions/events/client.py diff --git a/src/codegen/extensions/events/codegen_app.py b/src/graph_sitter/extensions/events/codegen_app.py similarity index 100% rename from src/codegen/extensions/events/codegen_app.py rename to src/graph_sitter/extensions/events/codegen_app.py diff --git a/src/codegen/extensions/events/github.py b/src/graph_sitter/extensions/events/github.py similarity index 96% rename from src/codegen/extensions/events/github.py rename to src/graph_sitter/extensions/events/github.py index 9146a550a..4cf9a2359 100644 --- a/src/codegen/extensions/events/github.py +++ b/src/graph_sitter/extensions/events/github.py @@ -7,8 +7,8 @@ from github import Github from pydantic import BaseModel -from codegen.extensions.events.interface import EventHandlerManagerProtocol -from codegen.extensions.github.types.base import GitHubInstallation, GitHubWebhookPayload +from graph_sitter.extensions.events.interface import EventHandlerManagerProtocol +from graph_sitter.extensions.github.types.base import GitHubInstallation, GitHubWebhookPayload from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/events/github_types.py b/src/graph_sitter/extensions/events/github_types.py similarity index 100% rename from src/codegen/extensions/events/github_types.py rename to src/graph_sitter/extensions/events/github_types.py diff --git a/src/codegen/extensions/events/interface.py b/src/graph_sitter/extensions/events/interface.py similarity index 100% rename from src/codegen/extensions/events/interface.py rename to src/graph_sitter/extensions/events/interface.py diff --git a/src/codegen/extensions/events/linear.py b/src/graph_sitter/extensions/events/linear.py similarity index 95% rename from src/codegen/extensions/events/linear.py rename to src/graph_sitter/extensions/events/linear.py index d48e379d9..575415328 100644 --- a/src/codegen/extensions/events/linear.py +++ b/src/graph_sitter/extensions/events/linear.py @@ -4,8 +4,8 @@ from pydantic import BaseModel -from codegen.extensions.events.interface import EventHandlerManagerProtocol -from codegen.extensions.linear.types import LinearEvent +from graph_sitter.extensions.events.interface import EventHandlerManagerProtocol +from graph_sitter.extensions.linear.types import LinearEvent from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/events/modal/base.py b/src/graph_sitter/extensions/events/modal/base.py similarity index 96% rename from src/codegen/extensions/events/modal/base.py rename to src/graph_sitter/extensions/events/modal/base.py index 64bdf5b28..8c3d08ebb 100644 --- a/src/codegen/extensions/events/modal/base.py +++ b/src/graph_sitter/extensions/events/modal/base.py @@ -5,10 +5,10 @@ import modal from fastapi import Request -from codegen.extensions.events.codegen_app import CodegenApp -from codegen.extensions.events.modal.request_util import fastapi_request_adapter -from codegen.git.clients.git_repo_client import GitRepoClient -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter.extensions.events.codegen_app import CodegenApp +from graph_sitter.extensions.events.modal.request_util import fastapi_request_adapter +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.schemas.repo_config import RepoConfig logging.basicConfig(level=logging.INFO, force=True) logger = logging.getLogger(__name__) diff --git a/src/codegen/extensions/events/modal/request_util.py b/src/graph_sitter/extensions/events/modal/request_util.py similarity index 100% rename from src/codegen/extensions/events/modal/request_util.py rename to src/graph_sitter/extensions/events/modal/request_util.py diff --git a/src/codegen/extensions/events/slack.py b/src/graph_sitter/extensions/events/slack.py similarity index 94% rename from src/codegen/extensions/events/slack.py rename to src/graph_sitter/extensions/events/slack.py index fa78ef0fb..c29b13d6d 100644 --- a/src/codegen/extensions/events/slack.py +++ b/src/graph_sitter/extensions/events/slack.py @@ -3,8 +3,8 @@ from slack_sdk import WebClient -from codegen.extensions.events.interface import EventHandlerManagerProtocol -from codegen.extensions.slack.types import SlackWebhookPayload +from graph_sitter.extensions.events.interface import EventHandlerManagerProtocol +from graph_sitter.extensions.slack.types import SlackWebhookPayload from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/github/__init__.py b/src/graph_sitter/extensions/github/__init__.py similarity index 100% rename from src/codegen/extensions/github/__init__.py rename to src/graph_sitter/extensions/github/__init__.py diff --git a/src/codegen/extensions/github/types/__init__.py b/src/graph_sitter/extensions/github/types/__init__.py similarity index 100% rename from src/codegen/extensions/github/types/__init__.py rename to src/graph_sitter/extensions/github/types/__init__.py diff --git a/src/codegen/extensions/github/types/author.py b/src/graph_sitter/extensions/github/types/author.py similarity index 100% rename from src/codegen/extensions/github/types/author.py rename to src/graph_sitter/extensions/github/types/author.py diff --git a/src/codegen/extensions/github/types/base.py b/src/graph_sitter/extensions/github/types/base.py similarity index 100% rename from src/codegen/extensions/github/types/base.py rename to src/graph_sitter/extensions/github/types/base.py diff --git a/src/codegen/extensions/github/types/commit.py b/src/graph_sitter/extensions/github/types/commit.py similarity index 100% rename from src/codegen/extensions/github/types/commit.py rename to src/graph_sitter/extensions/github/types/commit.py diff --git a/src/codegen/extensions/github/types/enterprise.py b/src/graph_sitter/extensions/github/types/enterprise.py similarity index 100% rename from src/codegen/extensions/github/types/enterprise.py rename to src/graph_sitter/extensions/github/types/enterprise.py diff --git a/src/codegen/extensions/github/types/events/pull_request.py b/src/graph_sitter/extensions/github/types/events/pull_request.py similarity index 100% rename from src/codegen/extensions/github/types/events/pull_request.py rename to src/graph_sitter/extensions/github/types/events/pull_request.py diff --git a/src/codegen/extensions/github/types/events/push.py b/src/graph_sitter/extensions/github/types/events/push.py similarity index 100% rename from src/codegen/extensions/github/types/events/push.py rename to src/graph_sitter/extensions/github/types/events/push.py diff --git a/src/codegen/extensions/github/types/installation.py b/src/graph_sitter/extensions/github/types/installation.py similarity index 100% rename from src/codegen/extensions/github/types/installation.py rename to src/graph_sitter/extensions/github/types/installation.py diff --git a/src/codegen/extensions/github/types/label.py b/src/graph_sitter/extensions/github/types/label.py similarity index 100% rename from src/codegen/extensions/github/types/label.py rename to src/graph_sitter/extensions/github/types/label.py diff --git a/src/codegen/extensions/github/types/organization.py b/src/graph_sitter/extensions/github/types/organization.py similarity index 100% rename from src/codegen/extensions/github/types/organization.py rename to src/graph_sitter/extensions/github/types/organization.py diff --git a/src/codegen/extensions/github/types/pull_request.py b/src/graph_sitter/extensions/github/types/pull_request.py similarity index 100% rename from src/codegen/extensions/github/types/pull_request.py rename to src/graph_sitter/extensions/github/types/pull_request.py diff --git a/src/codegen/extensions/github/types/push.py b/src/graph_sitter/extensions/github/types/push.py similarity index 100% rename from src/codegen/extensions/github/types/push.py rename to src/graph_sitter/extensions/github/types/push.py diff --git a/src/codegen/extensions/github/types/pusher.py b/src/graph_sitter/extensions/github/types/pusher.py similarity index 100% rename from src/codegen/extensions/github/types/pusher.py rename to src/graph_sitter/extensions/github/types/pusher.py diff --git a/src/codegen/extensions/graph/__init__.py b/src/graph_sitter/extensions/graph/__init__.py similarity index 100% rename from src/codegen/extensions/graph/__init__.py rename to src/graph_sitter/extensions/graph/__init__.py diff --git a/src/codegen/extensions/graph/create_graph.py b/src/graph_sitter/extensions/graph/create_graph.py similarity index 98% rename from src/codegen/extensions/graph/create_graph.py rename to src/graph_sitter/extensions/graph/create_graph.py index dd506f9b4..09dcb9d38 100644 --- a/src/codegen/extensions/graph/create_graph.py +++ b/src/graph_sitter/extensions/graph/create_graph.py @@ -1,8 +1,8 @@ -from codegen.extensions.graph.utils import Node, NodeLabel, Relation, RelationLabel, SimpleGraph from graph_sitter.code_generation.doc_utils.utils import safe_get_class from graph_sitter.core.class_definition import Class from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.function import Function +from graph_sitter.extensions.graph.utils import Node, NodeLabel, Relation, RelationLabel, SimpleGraph from graph_sitter.python.class_definition import PyClass diff --git a/src/codegen/extensions/graph/main.py b/src/graph_sitter/extensions/graph/main.py similarity index 90% rename from src/codegen/extensions/graph/main.py rename to src/graph_sitter/extensions/graph/main.py index 5e0e1cbc6..537ead83a 100644 --- a/src/codegen/extensions/graph/main.py +++ b/src/graph_sitter/extensions/graph/main.py @@ -1,6 +1,6 @@ -from codegen.extensions.graph.create_graph import create_codebase_graph -from codegen.extensions.graph.neo4j_exporter import Neo4jExporter from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.graph.create_graph import create_codebase_graph +from graph_sitter.extensions.graph.neo4j_exporter import Neo4jExporter def visualize_codebase(codebase, neo4j_uri: str, username: str, password: str): diff --git a/src/codegen/extensions/graph/neo4j_exporter.py b/src/graph_sitter/extensions/graph/neo4j_exporter.py similarity index 97% rename from src/codegen/extensions/graph/neo4j_exporter.py rename to src/graph_sitter/extensions/graph/neo4j_exporter.py index 48241c0d6..7e938b0ca 100644 --- a/src/codegen/extensions/graph/neo4j_exporter.py +++ b/src/graph_sitter/extensions/graph/neo4j_exporter.py @@ -1,6 +1,6 @@ from neo4j import GraphDatabase -from codegen.extensions.graph.utils import SimpleGraph +from graph_sitter.extensions.graph.utils import SimpleGraph class Neo4jExporter: diff --git a/src/codegen/extensions/graph/utils.py b/src/graph_sitter/extensions/graph/utils.py similarity index 100% rename from src/codegen/extensions/graph/utils.py rename to src/graph_sitter/extensions/graph/utils.py diff --git a/src/codegen/extensions/index/__init__.py b/src/graph_sitter/extensions/index/__init__.py similarity index 100% rename from src/codegen/extensions/index/__init__.py rename to src/graph_sitter/extensions/index/__init__.py diff --git a/src/codegen/extensions/index/code_index.py b/src/graph_sitter/extensions/index/code_index.py similarity index 100% rename from src/codegen/extensions/index/code_index.py rename to src/graph_sitter/extensions/index/code_index.py diff --git a/src/codegen/extensions/index/file_index.py b/src/graph_sitter/extensions/index/file_index.py similarity index 99% rename from src/codegen/extensions/index/file_index.py rename to src/graph_sitter/extensions/index/file_index.py index 63b4091fa..d3fec8086 100644 --- a/src/codegen/extensions/index/file_index.py +++ b/src/graph_sitter/extensions/index/file_index.py @@ -9,9 +9,9 @@ from openai import OpenAI from tqdm import tqdm -from codegen.extensions.index.code_index import CodeIndex from graph_sitter.core.codebase import Codebase from graph_sitter.core.file import File +from graph_sitter.extensions.index.code_index import CodeIndex from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/index/symbol_index.py b/src/graph_sitter/extensions/index/symbol_index.py similarity index 98% rename from src/codegen/extensions/index/symbol_index.py rename to src/graph_sitter/extensions/index/symbol_index.py index ceaa59762..cd14a057d 100644 --- a/src/codegen/extensions/index/symbol_index.py +++ b/src/graph_sitter/extensions/index/symbol_index.py @@ -7,9 +7,9 @@ from openai import OpenAI from tqdm import tqdm -from codegen.extensions.index.code_index import CodeIndex from graph_sitter.core.codebase import Codebase from graph_sitter.core.symbol import Symbol +from graph_sitter.extensions.index.code_index import CodeIndex from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/linear/__init__.py b/src/graph_sitter/extensions/linear/__init__.py similarity index 100% rename from src/codegen/extensions/linear/__init__.py rename to src/graph_sitter/extensions/linear/__init__.py diff --git a/src/codegen/extensions/linear/linear_client.py b/src/graph_sitter/extensions/linear/linear_client.py similarity index 98% rename from src/codegen/extensions/linear/linear_client.py rename to src/graph_sitter/extensions/linear/linear_client.py index 1b622af81..c17ab64f3 100644 --- a/src/codegen/extensions/linear/linear_client.py +++ b/src/graph_sitter/extensions/linear/linear_client.py @@ -4,7 +4,7 @@ from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry -from codegen.extensions.linear.types import LinearComment, LinearIssue, LinearTeam, LinearUser +from graph_sitter.extensions.linear.types import LinearComment, LinearIssue, LinearTeam, LinearUser from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/linear/types.py b/src/graph_sitter/extensions/linear/types.py similarity index 100% rename from src/codegen/extensions/linear/types.py rename to src/graph_sitter/extensions/linear/types.py diff --git a/src/graph_sitter/extensions/lsp/codemods/__init__.py b/src/graph_sitter/extensions/lsp/codemods/__init__.py new file mode 100644 index 000000000..89e3ff56c --- /dev/null +++ b/src/graph_sitter/extensions/lsp/codemods/__init__.py @@ -0,0 +1,4 @@ +from graph_sitter.extensions.lsp.codemods.base import CodeAction +from graph_sitter.extensions.lsp.codemods.split_tests import SplitTests + +ACTIONS: list[CodeAction] = [SplitTests()] diff --git a/src/codegen/extensions/lsp/codemods/base.py b/src/graph_sitter/extensions/lsp/codemods/base.py similarity index 93% rename from src/codegen/extensions/lsp/codemods/base.py rename to src/graph_sitter/extensions/lsp/codemods/base.py index 6bf22b224..69b1cda11 100644 --- a/src/codegen/extensions/lsp/codemods/base.py +++ b/src/graph_sitter/extensions/lsp/codemods/base.py @@ -6,7 +6,7 @@ from graph_sitter.core.interfaces.editable import Editable if TYPE_CHECKING: - from codegen.extensions.lsp.server import CodegenLanguageServer + from graph_sitter.extensions.lsp.server import CodegenLanguageServer class CodeAction(ABC): diff --git a/src/codegen/extensions/lsp/codemods/move_symbol_to_file.py b/src/graph_sitter/extensions/lsp/codemods/move_symbol_to_file.py similarity index 82% rename from src/codegen/extensions/lsp/codemods/move_symbol_to_file.py rename to src/graph_sitter/extensions/lsp/codemods/move_symbol_to_file.py index 0083d4157..7e2f4cf2d 100644 --- a/src/codegen/extensions/lsp/codemods/move_symbol_to_file.py +++ b/src/graph_sitter/extensions/lsp/codemods/move_symbol_to_file.py @@ -1,10 +1,10 @@ from typing import TYPE_CHECKING -from codegen.extensions.lsp.codemods.base import CodeAction from graph_sitter.core.interfaces.editable import Editable +from graph_sitter.extensions.lsp.codemods.base import CodeAction if TYPE_CHECKING: - from codegen.extensions.lsp.server import CodegenLanguageServer + from graph_sitter.extensions.lsp.server import CodegenLanguageServer class MoveSymbolToFile(CodeAction): diff --git a/src/codegen/extensions/lsp/codemods/split_tests.py b/src/graph_sitter/extensions/lsp/codemods/split_tests.py similarity index 89% rename from src/codegen/extensions/lsp/codemods/split_tests.py rename to src/graph_sitter/extensions/lsp/codemods/split_tests.py index fd21d3d0a..01d87575f 100644 --- a/src/codegen/extensions/lsp/codemods/split_tests.py +++ b/src/graph_sitter/extensions/lsp/codemods/split_tests.py @@ -1,11 +1,11 @@ from typing import TYPE_CHECKING -from codegen.extensions.lsp.codemods.base import CodeAction from graph_sitter.core.function import Function from graph_sitter.core.interfaces.editable import Editable +from graph_sitter.extensions.lsp.codemods.base import CodeAction if TYPE_CHECKING: - from codegen.extensions.lsp.server import CodegenLanguageServer + from graph_sitter.extensions.lsp.server import CodegenLanguageServer class SplitTests(CodeAction): diff --git a/src/codegen/extensions/lsp/completion.py b/src/graph_sitter/extensions/lsp/completion.py similarity index 100% rename from src/codegen/extensions/lsp/completion.py rename to src/graph_sitter/extensions/lsp/completion.py diff --git a/src/codegen/extensions/lsp/definition.py b/src/graph_sitter/extensions/lsp/definition.py similarity index 100% rename from src/codegen/extensions/lsp/definition.py rename to src/graph_sitter/extensions/lsp/definition.py diff --git a/src/codegen/extensions/lsp/document_symbol.py b/src/graph_sitter/extensions/lsp/document_symbol.py similarity index 81% rename from src/codegen/extensions/lsp/document_symbol.py rename to src/graph_sitter/extensions/lsp/document_symbol.py index a5043cda8..8fd995198 100644 --- a/src/codegen/extensions/lsp/document_symbol.py +++ b/src/graph_sitter/extensions/lsp/document_symbol.py @@ -1,10 +1,10 @@ from lsprotocol.types import DocumentSymbol -from codegen.extensions.lsp.kind import get_kind -from codegen.extensions.lsp.range import get_range +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.class_definition import Class from graph_sitter.core.interfaces.editable import Editable -from graph_sitter.extensions.sort import sort_editables +from graph_sitter.extensions.lsp.kind import get_kind +from graph_sitter.extensions.lsp.range import get_range def get_document_symbol(node: Editable) -> DocumentSymbol: diff --git a/src/codegen/extensions/lsp/execute.py b/src/graph_sitter/extensions/lsp/execute.py similarity index 90% rename from src/codegen/extensions/lsp/execute.py rename to src/graph_sitter/extensions/lsp/execute.py index d7deb8583..b70b2ff8e 100644 --- a/src/codegen/extensions/lsp/execute.py +++ b/src/graph_sitter/extensions/lsp/execute.py @@ -4,11 +4,11 @@ from lsprotocol import types from lsprotocol.types import Position, Range -from codegen.extensions.lsp.codemods.base import CodeAction +from graph_sitter.extensions.lsp.codemods.base import CodeAction from graph_sitter.shared.logging.get_logger import get_logger if TYPE_CHECKING: - from codegen.extensions.lsp.server import CodegenLanguageServer + from graph_sitter.extensions.lsp.server import CodegenLanguageServer logger = get_logger(__name__) diff --git a/src/codegen/extensions/lsp/io.py b/src/graph_sitter/extensions/lsp/io.py similarity index 100% rename from src/codegen/extensions/lsp/io.py rename to src/graph_sitter/extensions/lsp/io.py diff --git a/src/codegen/extensions/lsp/kind.py b/src/graph_sitter/extensions/lsp/kind.py similarity index 100% rename from src/codegen/extensions/lsp/kind.py rename to src/graph_sitter/extensions/lsp/kind.py diff --git a/src/codegen/extensions/lsp/lsp.py b/src/graph_sitter/extensions/lsp/lsp.py similarity index 92% rename from src/codegen/extensions/lsp/lsp.py rename to src/graph_sitter/extensions/lsp/lsp.py index ab0d9f775..147dc15ab 100644 --- a/src/codegen/extensions/lsp/lsp.py +++ b/src/graph_sitter/extensions/lsp/lsp.py @@ -2,18 +2,18 @@ from lsprotocol import types -import codegen -from codegen.extensions.lsp.definition import go_to_definition -from codegen.extensions.lsp.document_symbol import get_document_symbol -from codegen.extensions.lsp.protocol import CodegenLanguageServerProtocol -from codegen.extensions.lsp.range import get_range -from codegen.extensions.lsp.server import CodegenLanguageServer -from codegen.extensions.lsp.utils import get_path +import graph_sitter from graph_sitter.codebase.diff_lite import ChangeType, DiffLite from graph_sitter.core.file import SourceFile +from graph_sitter.extensions.lsp.definition import go_to_definition +from graph_sitter.extensions.lsp.document_symbol import get_document_symbol +from graph_sitter.extensions.lsp.protocol import CodegenLanguageServerProtocol +from graph_sitter.extensions.lsp.range import get_range +from graph_sitter.extensions.lsp.server import CodegenLanguageServer +from graph_sitter.extensions.lsp.utils import get_path from graph_sitter.shared.logging.get_logger import get_logger -version = getattr(codegen, "__version__", "v0.1") +version = getattr(graph_sitter, "__version__", "v0.1") server = CodegenLanguageServer("codegen", version, protocol_cls=CodegenLanguageServerProtocol) logger = get_logger(__name__) diff --git a/src/codegen/extensions/lsp/progress.py b/src/graph_sitter/extensions/lsp/progress.py similarity index 100% rename from src/codegen/extensions/lsp/progress.py rename to src/graph_sitter/extensions/lsp/progress.py diff --git a/src/codegen/extensions/lsp/protocol.py b/src/graph_sitter/extensions/lsp/protocol.py similarity index 84% rename from src/codegen/extensions/lsp/protocol.py rename to src/graph_sitter/extensions/lsp/protocol.py index ae455a63f..1af04dd8b 100644 --- a/src/codegen/extensions/lsp/protocol.py +++ b/src/graph_sitter/extensions/lsp/protocol.py @@ -5,14 +5,14 @@ from lsprotocol.types import INITIALIZE, InitializeParams, InitializeResult from pygls.protocol import LanguageServerProtocol, lsp_method -from codegen.extensions.lsp.io import LSPIO -from codegen.extensions.lsp.progress import LSPProgress -from codegen.extensions.lsp.utils import get_path from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.lsp.io import LSPIO +from graph_sitter.extensions.lsp.progress import LSPProgress +from graph_sitter.extensions.lsp.utils import get_path if TYPE_CHECKING: - from codegen.extensions.lsp.server import CodegenLanguageServer + from graph_sitter.extensions.lsp.server import CodegenLanguageServer class CodegenLanguageServerProtocol(LanguageServerProtocol): diff --git a/src/codegen/extensions/lsp/range.py b/src/graph_sitter/extensions/lsp/range.py similarity index 100% rename from src/codegen/extensions/lsp/range.py rename to src/graph_sitter/extensions/lsp/range.py diff --git a/src/codegen/extensions/lsp/server.py b/src/graph_sitter/extensions/lsp/server.py similarity index 90% rename from src/codegen/extensions/lsp/server.py rename to src/graph_sitter/extensions/lsp/server.py index d1de1ebfe..15dd68b0b 100644 --- a/src/codegen/extensions/lsp/server.py +++ b/src/graph_sitter/extensions/lsp/server.py @@ -4,17 +4,17 @@ from lsprotocol.types import Position, Range from pygls.lsp.server import LanguageServer -from codegen.extensions.lsp.codemods import ACTIONS -from codegen.extensions.lsp.codemods.base import CodeAction -from codegen.extensions.lsp.execute import execute_action -from codegen.extensions.lsp.io import LSPIO -from codegen.extensions.lsp.progress import LSPProgress -from codegen.extensions.lsp.range import get_tree_sitter_range -from codegen.extensions.lsp.utils import get_path from graph_sitter.core.codebase import Codebase from graph_sitter.core.file import File, SourceFile from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.symbol import Symbol +from graph_sitter.extensions.lsp.codemods import ACTIONS +from graph_sitter.extensions.lsp.codemods.base import CodeAction +from graph_sitter.extensions.lsp.execute import execute_action +from graph_sitter.extensions.lsp.io import LSPIO +from graph_sitter.extensions.lsp.progress import LSPProgress +from graph_sitter.extensions.lsp.range import get_tree_sitter_range +from graph_sitter.extensions.lsp.utils import get_path from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/extensions/lsp/utils.py b/src/graph_sitter/extensions/lsp/utils.py similarity index 100% rename from src/codegen/extensions/lsp/utils.py rename to src/graph_sitter/extensions/lsp/utils.py diff --git a/src/codegen/extensions/mcp/README.md b/src/graph_sitter/extensions/mcp/README.md similarity index 85% rename from src/codegen/extensions/mcp/README.md rename to src/graph_sitter/extensions/mcp/README.md index 0f5d3e2a7..7200ebc13 100644 --- a/src/codegen/extensions/mcp/README.md +++ b/src/graph_sitter/extensions/mcp/README.md @@ -19,11 +19,11 @@ Add this to your `cline_mcp_settings.json` file to get started: ``` { "mcpServers": { - "codegen-cli": { + "graph_sitter.cli": { "command": "uv", "args": [ "--directory", - "/codegen-sdk/src/codegen/extensions/mcp", + "/codegen-sdk/src/graph_sitter.extensions/mcp", "run", "codebase_agent.py | codebase_mods | codebase_tools" ] @@ -39,5 +39,5 @@ Under the `Settings` > `Feature` > `MCP Servers` section, click "Add New MCP Ser ``` Name: codegen-mcp Type: Command -Command: uv --directory /codegen-sdk/src/codegen/cli/mcp run +Command: uv --directory /codegen-sdk/src/graph_sitter.cli/mcp run ``` diff --git a/src/codegen/extensions/mcp/codebase_mods.py b/src/graph_sitter/extensions/mcp/codebase_mods.py similarity index 100% rename from src/codegen/extensions/mcp/codebase_mods.py rename to src/graph_sitter/extensions/mcp/codebase_mods.py diff --git a/src/codegen/extensions/mcp/codebase_tools.py b/src/graph_sitter/extensions/mcp/codebase_tools.py similarity index 96% rename from src/codegen/extensions/mcp/codebase_tools.py rename to src/graph_sitter/extensions/mcp/codebase_tools.py index 1038ec84e..9a9b12889 100644 --- a/src/codegen/extensions/mcp/codebase_tools.py +++ b/src/graph_sitter/extensions/mcp/codebase_tools.py @@ -3,9 +3,9 @@ from mcp.server.fastmcp import FastMCP -from codegen.extensions.tools import reveal_symbol -from codegen.extensions.tools.search import search from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.tools import reveal_symbol +from graph_sitter.extensions.tools.search import search from graph_sitter.shared.enums.programming_language import ProgrammingLanguage mcp = FastMCP( diff --git a/src/codegen/extensions/slack/types.py b/src/graph_sitter/extensions/slack/types.py similarity index 100% rename from src/codegen/extensions/slack/types.py rename to src/graph_sitter/extensions/slack/types.py diff --git a/src/codegen/extensions/swebench/README.md b/src/graph_sitter/extensions/swebench/README.md similarity index 100% rename from src/codegen/extensions/swebench/README.md rename to src/graph_sitter/extensions/swebench/README.md diff --git a/src/codegen/extensions/swebench/__init__.py b/src/graph_sitter/extensions/swebench/__init__.py similarity index 100% rename from src/codegen/extensions/swebench/__init__.py rename to src/graph_sitter/extensions/swebench/__init__.py diff --git a/src/codegen/extensions/swebench/enums.py b/src/graph_sitter/extensions/swebench/enums.py similarity index 100% rename from src/codegen/extensions/swebench/enums.py rename to src/graph_sitter/extensions/swebench/enums.py diff --git a/src/codegen/extensions/swebench/harness.py b/src/graph_sitter/extensions/swebench/harness.py similarity index 98% rename from src/codegen/extensions/swebench/harness.py rename to src/graph_sitter/extensions/swebench/harness.py index 2e5e52075..6bf233ed6 100644 --- a/src/codegen/extensions/swebench/harness.py +++ b/src/graph_sitter/extensions/swebench/harness.py @@ -10,13 +10,13 @@ import lox -from codegen import Codebase -from codegen.extensions.swebench.utils import ( +from graph_sitter.configs.models.codebase import CodebaseConfig +from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.swebench.utils import ( SweBenchExample, get_swe_bench_examples, load_predictions, ) -from graph_sitter.configs.models.codebase import CodebaseConfig PARENT_DIR = Path(__file__).parent diff --git a/src/codegen/extensions/swebench/report.py b/src/graph_sitter/extensions/swebench/report.py similarity index 97% rename from src/codegen/extensions/swebench/report.py rename to src/graph_sitter/extensions/swebench/report.py index f8100e36d..465a53741 100755 --- a/src/codegen/extensions/swebench/report.py +++ b/src/graph_sitter/extensions/swebench/report.py @@ -5,8 +5,8 @@ from collections import defaultdict from pathlib import Path -from codegen.extensions.swebench.enums import SWEBenchDataset -from codegen.extensions.swebench.tests import remove_patches_to_tests +from graph_sitter.extensions.swebench.enums import SWEBenchDataset +from graph_sitter.extensions.swebench.tests import remove_patches_to_tests NUM_EVAL_PROCS = 5 diff --git a/src/codegen/extensions/swebench/subsets.py b/src/graph_sitter/extensions/swebench/subsets.py similarity index 98% rename from src/codegen/extensions/swebench/subsets.py rename to src/graph_sitter/extensions/swebench/subsets.py index a2f522ffe..abf1688e0 100644 --- a/src/codegen/extensions/swebench/subsets.py +++ b/src/graph_sitter/extensions/swebench/subsets.py @@ -1,4 +1,4 @@ -from codegen.extensions.swebench.enums import SWEBenchLiteSubset +from graph_sitter.extensions.swebench.enums import SWEBenchLiteSubset SMALL_LITE_SUBSET = [ "mwaskom__seaborn-2848", diff --git a/src/codegen/extensions/swebench/success_rates.py b/src/graph_sitter/extensions/swebench/success_rates.py similarity index 100% rename from src/codegen/extensions/swebench/success_rates.py rename to src/graph_sitter/extensions/swebench/success_rates.py diff --git a/src/codegen/extensions/swebench/tests.py b/src/graph_sitter/extensions/swebench/tests.py similarity index 100% rename from src/codegen/extensions/swebench/tests.py rename to src/graph_sitter/extensions/swebench/tests.py diff --git a/src/codegen/extensions/swebench/utils.py b/src/graph_sitter/extensions/swebench/utils.py similarity index 94% rename from src/codegen/extensions/swebench/utils.py rename to src/graph_sitter/extensions/swebench/utils.py index f29fdbcc8..e16af6c18 100644 --- a/src/codegen/extensions/swebench/utils.py +++ b/src/graph_sitter/extensions/swebench/utils.py @@ -6,9 +6,9 @@ from datasets import load_dataset -from codegen.extensions.swebench.enums import SWEBenchDataset, SWEBenchLiteSubset -from codegen.extensions.swebench.subsets import LITE_SUBSETS -from codegen.extensions.swebench.success_rates import LITE_SUCCESS_RATES +from graph_sitter.extensions.swebench.enums import SWEBenchDataset, SWEBenchLiteSubset +from graph_sitter.extensions.swebench.subsets import LITE_SUBSETS +from graph_sitter.extensions.swebench.success_rates import LITE_SUCCESS_RATES @dataclass diff --git a/src/codegen/git/README.md b/src/graph_sitter/git/README.md similarity index 100% rename from src/codegen/git/README.md rename to src/graph_sitter/git/README.md diff --git a/src/codegen/git/__init__.py b/src/graph_sitter/git/__init__.py similarity index 100% rename from src/codegen/git/__init__.py rename to src/graph_sitter/git/__init__.py diff --git a/src/codegen/git/clients/git_repo_client.py b/src/graph_sitter/git/clients/git_repo_client.py similarity index 99% rename from src/codegen/git/clients/git_repo_client.py rename to src/graph_sitter/git/clients/git_repo_client.py index ef8117d25..93cfcfef6 100644 --- a/src/codegen/git/clients/git_repo_client.py +++ b/src/graph_sitter/git/clients/git_repo_client.py @@ -15,10 +15,10 @@ from github.Tag import Tag from github.Workflow import Workflow -from codegen.git.clients.github_client import GithubClient -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.format import format_comparison from graph_sitter.configs.models.secrets import SecretsConfig +from graph_sitter.git.clients.github_client import GithubClient +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.format import format_comparison from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/git/clients/github_client.py b/src/graph_sitter/git/clients/github_client.py similarity index 100% rename from src/codegen/git/clients/github_client.py rename to src/graph_sitter/git/clients/github_client.py diff --git a/src/codegen/git/configs/constants.py b/src/graph_sitter/git/configs/constants.py similarity index 100% rename from src/codegen/git/configs/constants.py rename to src/graph_sitter/git/configs/constants.py diff --git a/src/codegen/git/models/codemod_context.py b/src/graph_sitter/git/models/codemod_context.py similarity index 93% rename from src/codegen/git/models/codemod_context.py rename to src/graph_sitter/git/models/codemod_context.py index 8ec292b12..2d91477f4 100644 --- a/src/codegen/git/models/codemod_context.py +++ b/src/graph_sitter/git/models/codemod_context.py @@ -4,7 +4,7 @@ from pydantic import BaseModel from pydantic.fields import Field -from codegen.git.models.pull_request_context import PullRequestContext +from graph_sitter.git.models.pull_request_context import PullRequestContext from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/git/models/github_named_user_context.py b/src/graph_sitter/git/models/github_named_user_context.py similarity index 100% rename from src/codegen/git/models/github_named_user_context.py rename to src/graph_sitter/git/models/github_named_user_context.py diff --git a/src/codegen/git/models/pr_options.py b/src/graph_sitter/git/models/pr_options.py similarity index 100% rename from src/codegen/git/models/pr_options.py rename to src/graph_sitter/git/models/pr_options.py diff --git a/src/codegen/git/models/pr_part_context.py b/src/graph_sitter/git/models/pr_part_context.py similarity index 100% rename from src/codegen/git/models/pr_part_context.py rename to src/graph_sitter/git/models/pr_part_context.py diff --git a/src/codegen/git/models/pull_request_context.py b/src/graph_sitter/git/models/pull_request_context.py similarity index 91% rename from src/codegen/git/models/pull_request_context.py rename to src/graph_sitter/git/models/pull_request_context.py index 1f97afbd1..5b4403988 100644 --- a/src/codegen/git/models/pull_request_context.py +++ b/src/graph_sitter/git/models/pull_request_context.py @@ -1,7 +1,7 @@ from pydantic import BaseModel -from codegen.git.models.github_named_user_context import GithubNamedUserContext -from codegen.git.models.pr_part_context import PRPartContext +from graph_sitter.git.models.github_named_user_context import GithubNamedUserContext +from graph_sitter.git.models.pr_part_context import PRPartContext class PullRequestContext(BaseModel): diff --git a/src/codegen/py.typed b/src/graph_sitter/git/py.typed similarity index 100% rename from src/codegen/py.typed rename to src/graph_sitter/git/py.typed diff --git a/src/codegen/git/repo_operator/local_git_repo.py b/src/graph_sitter/git/repo_operator/local_git_repo.py similarity index 92% rename from src/codegen/git/repo_operator/local_git_repo.py rename to src/graph_sitter/git/repo_operator/local_git_repo.py index a5c4acea3..a30f9c926 100644 --- a/src/codegen/git/repo_operator/local_git_repo.py +++ b/src/graph_sitter/git/repo_operator/local_git_repo.py @@ -6,9 +6,9 @@ from git import Repo from git.remote import Remote -from codegen.git.clients.git_repo_client import GitRepoClient -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.language import determine_project_language +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.language import determine_project_language # TODO: merge this with RepoOperator diff --git a/src/codegen/git/repo_operator/repo_operator.py b/src/graph_sitter/git/repo_operator/repo_operator.py similarity index 97% rename from src/codegen/git/repo_operator/repo_operator.py rename to src/graph_sitter/git/repo_operator/repo_operator.py index 7d58bfe02..3b1f8099c 100644 --- a/src/codegen/git/repo_operator/repo_operator.py +++ b/src/graph_sitter/git/repo_operator/repo_operator.py @@ -16,17 +16,17 @@ from github.IssueComment import IssueComment from github.PullRequest import PullRequest -from codegen.git.clients.git_repo_client import GitRepoClient -from codegen.git.configs.constants import CODEGEN_BOT_EMAIL, CODEGEN_BOT_NAME -from codegen.git.repo_operator.local_git_repo import LocalGitRepo -from codegen.git.schemas.enums import CheckoutResult, FetchResult, RepoVisibility, SetupOption -from codegen.git.schemas.repo_config import RepoConfig -from codegen.git.utils.clone import clone_or_pull_repo, clone_repo, pull_repo -from codegen.git.utils.clone_url import add_access_token_to_url, get_authenticated_clone_url_for_repo_config, get_clone_url_for_repo_config, url_to_github -from codegen.git.utils.codeowner_utils import create_codeowners_parser_for_repo -from codegen.git.utils.file_utils import create_files -from codegen.git.utils.remote_progress import CustomRemoteProgress from graph_sitter.configs.models.secrets import SecretsConfig +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.configs.constants import CODEGEN_BOT_EMAIL, CODEGEN_BOT_NAME +from graph_sitter.git.repo_operator.local_git_repo import LocalGitRepo +from graph_sitter.git.schemas.enums import CheckoutResult, FetchResult, RepoVisibility, SetupOption +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.git.utils.clone import clone_or_pull_repo, clone_repo, pull_repo +from graph_sitter.git.utils.clone_url import add_access_token_to_url, get_authenticated_clone_url_for_repo_config, get_clone_url_for_repo_config, url_to_github +from graph_sitter.git.utils.codeowner_utils import create_codeowners_parser_for_repo +from graph_sitter.git.utils.file_utils import create_files +from graph_sitter.git.utils.remote_progress import CustomRemoteProgress from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.shared.performance.stopwatch_utils import stopwatch from graph_sitter.shared.performance.time_utils import humanize_duration diff --git a/src/codegen/git/schemas/enums.py b/src/graph_sitter/git/schemas/enums.py similarity index 100% rename from src/codegen/git/schemas/enums.py rename to src/graph_sitter/git/schemas/enums.py diff --git a/src/codegen/git/schemas/repo_config.py b/src/graph_sitter/git/schemas/repo_config.py similarity index 96% rename from src/codegen/git/schemas/repo_config.py rename to src/graph_sitter/git/schemas/repo_config.py index afdf0c051..51fb2e074 100644 --- a/src/codegen/git/schemas/repo_config.py +++ b/src/graph_sitter/git/schemas/repo_config.py @@ -3,8 +3,8 @@ from pydantic import BaseModel -from codegen.git.schemas.enums import RepoVisibility from graph_sitter.configs.models.repository import RepositoryConfig +from graph_sitter.git.schemas.enums import RepoVisibility from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/codegen/git/utils/clone.py b/src/graph_sitter/git/utils/clone.py similarity index 97% rename from src/codegen/git/utils/clone.py rename to src/graph_sitter/git/utils/clone.py index 81fb8798f..3c5f77851 100644 --- a/src/codegen/git/utils/clone.py +++ b/src/graph_sitter/git/utils/clone.py @@ -3,7 +3,7 @@ from git import Repo as GitRepo -from codegen.git.utils.remote_progress import CustomRemoteProgress +from graph_sitter.git.utils.remote_progress import CustomRemoteProgress from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.shared.performance.stopwatch_utils import subprocess_with_stopwatch diff --git a/src/codegen/git/utils/clone_url.py b/src/graph_sitter/git/utils/clone_url.py similarity index 93% rename from src/codegen/git/utils/clone_url.py rename to src/graph_sitter/git/utils/clone_url.py index 21cd80cfb..87df44fa8 100644 --- a/src/codegen/git/utils/clone_url.py +++ b/src/graph_sitter/git/utils/clone_url.py @@ -1,6 +1,6 @@ from urllib.parse import urlparse -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter.git.schemas.repo_config import RepoConfig # TODO: move out doesn't belong here diff --git a/src/codegen/git/utils/codeowner_utils.py b/src/graph_sitter/git/utils/codeowner_utils.py similarity index 93% rename from src/codegen/git/utils/codeowner_utils.py rename to src/graph_sitter/git/utils/codeowner_utils.py index ef758160c..caa587764 100644 --- a/src/codegen/git/utils/codeowner_utils.py +++ b/src/graph_sitter/git/utils/codeowner_utils.py @@ -1,8 +1,8 @@ from codeowners import CodeOwners from github.PullRequest import PullRequest -from codegen.git.clients.git_repo_client import GitRepoClient -from codegen.git.configs.constants import CODEOWNERS_FILEPATHS +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.configs.constants import CODEOWNERS_FILEPATHS from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/git/utils/file_utils.py b/src/graph_sitter/git/utils/file_utils.py similarity index 100% rename from src/codegen/git/utils/file_utils.py rename to src/graph_sitter/git/utils/file_utils.py diff --git a/src/codegen/git/utils/format.py b/src/graph_sitter/git/utils/format.py similarity index 100% rename from src/codegen/git/utils/format.py rename to src/graph_sitter/git/utils/format.py diff --git a/src/codegen/git/utils/language.py b/src/graph_sitter/git/utils/language.py similarity index 97% rename from src/codegen/git/utils/language.py rename to src/graph_sitter/git/utils/language.py index 1413644e6..ad6ed5052 100644 --- a/src/codegen/git/utils/language.py +++ b/src/graph_sitter/git/utils/language.py @@ -2,7 +2,7 @@ from pathlib import Path from typing import Literal -from codegen.git.utils.file_utils import split_git_path +from graph_sitter.git.utils.file_utils import split_git_path from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.logging.get_logger import get_logger @@ -107,9 +107,9 @@ def _determine_language_by_git_file_count(folder_path: str) -> ProgrammingLangua ProgrammingLanguage: The dominant programming language, or OTHER if no matching files found or if less than MIN_LANGUAGE_RATIO of files match the dominant language """ - from codegen.git.repo_operator.repo_operator import RepoOperator - from codegen.git.schemas.repo_config import RepoConfig from graph_sitter.codebase.codebase_context import GLOBAL_FILE_IGNORE_LIST + from graph_sitter.git.repo_operator.repo_operator import RepoOperator + from graph_sitter.git.schemas.repo_config import RepoConfig from graph_sitter.python import PyFile from graph_sitter.typescript.file import TSFile diff --git a/src/codegen/git/utils/pr_review.py b/src/graph_sitter/git/utils/pr_review.py similarity index 97% rename from src/codegen/git/utils/pr_review.py rename to src/graph_sitter/git/utils/pr_review.py index dd4697480..bbad172b4 100644 --- a/src/codegen/git/utils/pr_review.py +++ b/src/graph_sitter/git/utils/pr_review.py @@ -4,8 +4,8 @@ from github.PullRequest import PullRequest from unidiff import PatchSet -from codegen.git.models.pull_request_context import PullRequestContext -from codegen.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.models.pull_request_context import PullRequestContext +from graph_sitter.git.repo_operator.repo_operator import RepoOperator if TYPE_CHECKING: from graph_sitter.core.codebase import Codebase, Editable, File diff --git a/src/codegen/git/utils/remote_progress.py b/src/graph_sitter/git/utils/remote_progress.py similarity index 94% rename from src/codegen/git/utils/remote_progress.py rename to src/graph_sitter/git/utils/remote_progress.py index 7c29ed9df..69fb64df2 100644 --- a/src/codegen/git/utils/remote_progress.py +++ b/src/graph_sitter/git/utils/remote_progress.py @@ -2,7 +2,7 @@ from git import RemoteProgress -from codegen.git.schemas.enums import FetchResult +from graph_sitter.git.schemas.enums import FetchResult from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) diff --git a/src/codegen/gscli/README.md b/src/graph_sitter/gscli/README.md similarity index 100% rename from src/codegen/gscli/README.md rename to src/graph_sitter/gscli/README.md diff --git a/src/codegen/gscli/__init__.py b/src/graph_sitter/gscli/__init__.py similarity index 100% rename from src/codegen/gscli/__init__.py rename to src/graph_sitter/gscli/__init__.py diff --git a/src/codegen/gscli/backend/__init__.py b/src/graph_sitter/gscli/backend/__init__.py similarity index 100% rename from src/codegen/gscli/backend/__init__.py rename to src/graph_sitter/gscli/backend/__init__.py diff --git a/src/codegen/gscli/backend/typestub_utils.py b/src/graph_sitter/gscli/backend/typestub_utils.py similarity index 100% rename from src/codegen/gscli/backend/typestub_utils.py rename to src/graph_sitter/gscli/backend/typestub_utils.py diff --git a/src/codegen/gscli/backend/utils.py b/src/graph_sitter/gscli/backend/utils.py similarity index 100% rename from src/codegen/gscli/backend/utils.py rename to src/graph_sitter/gscli/backend/utils.py diff --git a/src/codegen/gscli/cli.py b/src/graph_sitter/gscli/cli.py similarity index 77% rename from src/codegen/gscli/cli.py rename to src/graph_sitter/gscli/cli.py index 0724c8702..05b961bd9 100644 --- a/src/codegen/gscli/cli.py +++ b/src/graph_sitter/gscli/cli.py @@ -2,7 +2,7 @@ import click -from codegen.gscli.generate.commands import generate +from graph_sitter.gscli.generate.commands import generate @click.group() diff --git a/src/codegen/gscli/generate/__init__.py b/src/graph_sitter/gscli/generate/__init__.py similarity index 100% rename from src/codegen/gscli/generate/__init__.py rename to src/graph_sitter/gscli/generate/__init__.py diff --git a/src/codegen/gscli/generate/commands.py b/src/graph_sitter/gscli/generate/commands.py similarity index 96% rename from src/codegen/gscli/generate/commands.py rename to src/graph_sitter/gscli/generate/commands.py index 0b6efc85e..a3a5641e8 100644 --- a/src/codegen/gscli/generate/commands.py +++ b/src/graph_sitter/gscli/generate/commands.py @@ -6,15 +6,15 @@ import click from termcolor import colored -import codegen.sdk as sdk -from codegen.gscli.generate.runner_imports import _generate_runner_imports -from codegen.gscli.generate.system_prompt import get_system_prompt -from codegen.gscli.generate.utils import LanguageType, generate_builtins_file +import graph_sitter as sdk from graph_sitter.ai.client import get_openai_client from graph_sitter.code_generation.changelog_generation import generate_changelog from graph_sitter.code_generation.codegen_sdk_codebase import get_codegen_sdk_codebase from graph_sitter.code_generation.doc_utils.generate_docs_json import generate_docs_json from graph_sitter.code_generation.mdx_docs_generation import render_mdx_page_for_class +from graph_sitter.gscli.generate.runner_imports import _generate_runner_imports +from graph_sitter.gscli.generate.system_prompt import get_system_prompt +from graph_sitter.gscli.generate.utils import LanguageType, generate_builtins_file from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) @@ -77,8 +77,8 @@ def _generate_codebase_typestubs() -> None: # remove typings dir if it exists shutil.rmtree(frontend_typestubs_dir) # generate typestubs in codegen-frontend/assets/typestubs/graphsitter using pyright - os.system("uv run pyright -p . --createstub codegen.sdk.core.codebase") - os.system("uv run pyright -p . --createstub codegen.git") + os.system("uv run pyright -p . --createstub graph_sitter.core.codebase") + os.system("uv run pyright -p . --createstub graph_sitter.git") os.system("uv run pyright -p . --createstub networkx") # also generate for codemod context model and all its nested models os.system("uv run pyright -p . --createstub app.codemod.compilation.models.context") diff --git a/src/codegen/gscli/generate/runner_imports.py b/src/graph_sitter/gscli/generate/runner_imports.py similarity index 87% rename from src/codegen/gscli/generate/runner_imports.py rename to src/graph_sitter/gscli/generate/runner_imports.py index 259d846da..803a55cf9 100644 --- a/src/codegen/gscli/generate/runner_imports.py +++ b/src/graph_sitter/gscli/generate/runner_imports.py @@ -4,8 +4,8 @@ import tomlkit from termcolor import colored -from codegen.git.utils.file_utils import split_git_path from graph_sitter.code_generation.current_code_codebase import get_documented_objects +from graph_sitter.git.utils.file_utils import split_git_path from graph_sitter.shared.decorators.docs import DocumentedObject EXTERNAL_IMPORTS = """ @@ -16,11 +16,11 @@ import plotly """.strip() CODEGEN_IMPORTS = """ -from codegen.git.models.codemod_context import CodemodContext -from codegen.git.models.github_named_user_context import GithubNamedUserContext -from codegen.git.models.pr_options import PROptions -from codegen.git.models.pr_part_context import PRPartContext -from codegen.git.models.pull_request_context import PullRequestContext +from graph_sitter.git.models.codemod_context import CodemodContext +from graph_sitter.git.models.github_named_user_context import GithubNamedUserContext +from graph_sitter.git.models.pr_options import PROptions +from graph_sitter.git.models.pr_part_context import PRPartContext +from graph_sitter.git.models.pull_request_context import PullRequestContext """ # TODO: these should also be made public (i.e. included in the docs site) GS_PRIVATE_IMPORTS = """ @@ -41,7 +41,7 @@ IMPORT_FILE_TEMPLATE = ( ''' -# This file is auto-generated, do not modify manually. Edit this in src/codegen/gscli/generate/runner_imports.py. +# This file is auto-generated, do not modify manually. Edit this in src/gscli/generate/runner_imports.py. def get_generated_imports(): return """ {import_str} diff --git a/src/codegen/gscli/generate/system_prompt.py b/src/graph_sitter/gscli/generate/system_prompt.py similarity index 100% rename from src/codegen/gscli/generate/system_prompt.py rename to src/graph_sitter/gscli/generate/system_prompt.py diff --git a/src/codegen/gscli/generate/utils.py b/src/graph_sitter/gscli/generate/utils.py similarity index 82% rename from src/codegen/gscli/generate/utils.py rename to src/graph_sitter/gscli/generate/utils.py index 8e20aa3f8..a103ab52a 100644 --- a/src/codegen/gscli/generate/utils.py +++ b/src/graph_sitter/gscli/generate/utils.py @@ -32,11 +32,11 @@ def generate_builtins_file(path_to_builtins: str, language_type: LanguageType): # This file is auto-generated, do not modify manually {{all_imports}} -from codegen.git.models.codemod_context import CodemodContext -from codegen.git.models.pr_options import PROptions -from codegen.git.models.github_named_user_context import GithubNamedUserContext -from codegen.git.models.pr_part_context import PRPartContext -from codegen.git.models.pull_request_context import PullRequestContext +from graph_sitter.git.models.codemod_context import CodemodContext +from graph_sitter.git.models.pr_options import PROptions +from graph_sitter.git.models.github_named_user_context import GithubNamedUserContext +from graph_sitter.git.models.pr_part_context import PRPartContext +from graph_sitter.git.models.pull_request_context import PullRequestContext from graph_sitter.codebase.flagging.code_flag import MessageType as MessageType {"\n".join(inspect.getsource(codebase).splitlines()[-2:])} diff --git a/src/graph_sitter/python/assignment.py b/src/graph_sitter/python/assignment.py index 4d896253f..a6af4b73d 100644 --- a/src/graph_sitter/python/assignment.py +++ b/src/graph_sitter/python/assignment.py @@ -4,11 +4,11 @@ from typing import TYPE_CHECKING from graph_sitter.codebase.transactions import RemoveTransaction, TransactionPriority +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.assignment import Assignment from graph_sitter.core.autocommit.decorators import remover from graph_sitter.core.expressions.multi_expression import MultiExpression from graph_sitter.core.statements.assignment_statement import AssignmentStatement -from graph_sitter.extensions.autocommit import reader from graph_sitter.python.symbol import PySymbol from graph_sitter.python.symbol_groups.comment_group import PyCommentGroup from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc diff --git a/src/graph_sitter/python/class_definition.py b/src/graph_sitter/python/class_definition.py index 83583094c..12bba134a 100644 --- a/src/graph_sitter/python/class_definition.py +++ b/src/graph_sitter/python/class_definition.py @@ -3,6 +3,7 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.codebase_context import CodebaseContext +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter, reader, writer from graph_sitter.core.class_definition import Class from graph_sitter.core.dataclasses.usage import UsageKind @@ -12,7 +13,6 @@ from graph_sitter.core.symbol_group import SymbolGroup from graph_sitter.core.symbol_groups.multi_line_collection import MultiLineCollection from graph_sitter.core.symbol_groups.parents import Parents -from graph_sitter.extensions.utils import cached_property from graph_sitter.python.detached_symbols.code_block import PyCodeBlock from graph_sitter.python.detached_symbols.decorator import PyDecorator from graph_sitter.python.detached_symbols.parameter import PyParameter diff --git a/src/graph_sitter/python/file.py b/src/graph_sitter/python/file.py index 75919f2af..1e2835008 100644 --- a/src/graph_sitter/python/file.py +++ b/src/graph_sitter/python/file.py @@ -2,12 +2,12 @@ from typing import TYPE_CHECKING +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.file import SourceFile from graph_sitter.core.interface import Interface from graph_sitter.core.symbol import Symbol from graph_sitter.enums import ImportType -from graph_sitter.extensions.utils import cached_property from graph_sitter.python import PyAssignment from graph_sitter.python.class_definition import PyClass from graph_sitter.python.detached_symbols.code_block import PyCodeBlock diff --git a/src/graph_sitter/python/function.py b/src/graph_sitter/python/function.py index 0221ae593..5a3cfa34d 100644 --- a/src/graph_sitter/python/function.py +++ b/src/graph_sitter/python/function.py @@ -3,11 +3,11 @@ import re from typing import TYPE_CHECKING, override +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter, reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.function import Function from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.utils import cached_property from graph_sitter.python.detached_symbols.code_block import PyCodeBlock from graph_sitter.python.detached_symbols.decorator import PyDecorator from graph_sitter.python.detached_symbols.parameter import PyParameter diff --git a/src/graph_sitter/python/statements/assignment_statement.py b/src/graph_sitter/python/statements/assignment_statement.py index f18d6a430..f407f8681 100644 --- a/src/graph_sitter/python/statements/assignment_statement.py +++ b/src/graph_sitter/python/statements/assignment_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING +from graph_sitter.compiled.utils import find_all_descendants from graph_sitter.core.expressions.multi_expression import MultiExpression from graph_sitter.core.statements.assignment_statement import AssignmentStatement -from graph_sitter.extensions.utils import find_all_descendants from graph_sitter.python.assignment import PyAssignment from graph_sitter.shared.decorators.docs import py_apidoc from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/graph_sitter/python/statements/block_statement.py b/src/graph_sitter/python/statements/block_statement.py index 18a75cd59..236a3cdb8 100644 --- a/src/graph_sitter/python/statements/block_statement.py +++ b/src/graph_sitter/python/statements/block_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.statements.block_statement import BlockStatement -from graph_sitter.extensions.autocommit import reader from graph_sitter.python.interfaces.has_block import PyHasBlock from graph_sitter.shared.decorators.docs import py_apidoc diff --git a/src/graph_sitter/python/statements/break_statement.py b/src/graph_sitter/python/statements/break_statement.py index 20c070a62..aba418266 100644 --- a/src/graph_sitter/python/statements/break_statement.py +++ b/src/graph_sitter/python/statements/break_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/python/statements/for_loop_statement.py b/src/graph_sitter/python/statements/for_loop_statement.py index 173e66b78..f30f8e788 100644 --- a/src/graph_sitter/python/statements/for_loop_statement.py +++ b/src/graph_sitter/python/statements/for_loop_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.statements.for_loop_statement import ForLoopStatement -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.python.statements.block_statement import PyBlockStatement from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc diff --git a/src/graph_sitter/python/statements/pass_statement.py b/src/graph_sitter/python/statements/pass_statement.py index 40d7d741c..508e8f9c0 100644 --- a/src/graph_sitter/python/statements/pass_statement.py +++ b/src/graph_sitter/python/statements/pass_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.statements.statement import Statement, StatementType -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/python/statements/try_catch_statement.py b/src/graph_sitter/python/statements/try_catch_statement.py index f9f6592dd..bf78a4a75 100644 --- a/src/graph_sitter/python/statements/try_catch_statement.py +++ b/src/graph_sitter/python/statements/try_catch_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Self, override +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.statements.try_catch_statement import TryCatchStatement -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.python.statements.block_statement import PyBlockStatement from graph_sitter.python.statements.catch_statement import PyCatchStatement from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc diff --git a/src/graph_sitter/python/statements/while_statement.py b/src/graph_sitter/python/statements/while_statement.py index 25d0022f9..a4e6f89d4 100644 --- a/src/graph_sitter/python/statements/while_statement.py +++ b/src/graph_sitter/python/statements/while_statement.py @@ -2,9 +2,9 @@ from typing import TYPE_CHECKING +from graph_sitter.compiled.autocommit import commiter, reader +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.statements.while_statement import WhileStatement -from graph_sitter.extensions.autocommit import commiter, reader -from graph_sitter.extensions.sort import sort_editables from graph_sitter.python.interfaces.has_block import PyHasBlock from graph_sitter.python.statements.if_block_statement import PyIfBlockStatement from graph_sitter.shared.decorators.docs import noapidoc, py_apidoc diff --git a/src/graph_sitter/python/statements/with_statement.py b/src/graph_sitter/python/statements/with_statement.py index e5e1eec0b..125ffc625 100644 --- a/src/graph_sitter/python/statements/with_statement.py +++ b/src/graph_sitter/python/statements/with_statement.py @@ -3,11 +3,11 @@ from functools import cached_property from typing import TYPE_CHECKING +from graph_sitter.compiled.autocommit import commiter +from graph_sitter.compiled.sort import sort_editables from graph_sitter.core.autocommit import reader from graph_sitter.core.statements.statement import Statement, StatementType from graph_sitter.core.symbol_groups.expression_group import ExpressionGroup -from graph_sitter.extensions.autocommit import commiter -from graph_sitter.extensions.sort import sort_editables from graph_sitter.python.interfaces.has_block import PyHasBlock from graph_sitter.shared.decorators.docs import apidoc, noapidoc diff --git a/src/codegen/runner/README.md b/src/graph_sitter/runner/README.md similarity index 94% rename from src/codegen/runner/README.md rename to src/graph_sitter/runner/README.md index facb14e63..751ce6490 100644 --- a/src/codegen/runner/README.md +++ b/src/graph_sitter/runner/README.md @@ -1,4 +1,4 @@ -# Codegen Runner +# graph_sitter.runner A module to run functions with managed state + lifecycle. diff --git a/src/codegen/runner/__init__.py b/src/graph_sitter/runner/__init__.py similarity index 100% rename from src/codegen/runner/__init__.py rename to src/graph_sitter/runner/__init__.py diff --git a/src/codegen/runner/clients/client.py b/src/graph_sitter/runner/clients/client.py similarity index 92% rename from src/codegen/runner/clients/client.py rename to src/graph_sitter/runner/clients/client.py index fdcc5d96e..51298dc18 100644 --- a/src/codegen/runner/clients/client.py +++ b/src/graph_sitter/runner/clients/client.py @@ -3,14 +3,14 @@ import requests from fastapi import params -from codegen.runner.models.apis import ServerInfo +from graph_sitter.runner.models.apis import ServerInfo from graph_sitter.shared.logging.get_logger import get_logger logger = get_logger(__name__) DEFAULT_SERVER_PORT = 4002 -EPHEMERAL_SERVER_PATH = "codegen.runner.sandbox.ephemeral_server:app" +EPHEMERAL_SERVER_PATH = "graph_sitter.runner.sandbox.ephemeral_server:app" class Client: diff --git a/src/codegen/runner/clients/codebase_client.py b/src/graph_sitter/runner/clients/codebase_client.py similarity index 89% rename from src/codegen/runner/clients/codebase_client.py rename to src/graph_sitter/runner/clients/codebase_client.py index ceef6eae3..e39cefab9 100644 --- a/src/codegen/runner/clients/codebase_client.py +++ b/src/graph_sitter/runner/clients/codebase_client.py @@ -4,15 +4,15 @@ import subprocess import time -from codegen.git.schemas.repo_config import RepoConfig -from codegen.runner.clients.client import Client -from codegen.runner.models.apis import SANDBOX_SERVER_PORT from graph_sitter.configs.models.secrets import SecretsConfig +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.runner.clients.client import Client +from graph_sitter.runner.models.apis import SANDBOX_SERVER_PORT from graph_sitter.shared.logging.get_logger import get_logger DEFAULT_SERVER_PORT = 4002 -EPHEMERAL_SERVER_PATH = "codegen.runner.sandbox.ephemeral_server:app" -RUNNER_SERVER_PATH = "codegen.runner.sandbox.server:app" +EPHEMERAL_SERVER_PATH = "graph_sitter.runner.sandbox.ephemeral_server:app" +RUNNER_SERVER_PATH = "graph_sitter.runner.sandbox.server:app" logger = get_logger(__name__) diff --git a/src/codegen/runner/clients/docker_client.py b/src/graph_sitter/runner/clients/docker_client.py similarity index 79% rename from src/codegen/runner/clients/docker_client.py rename to src/graph_sitter/runner/clients/docker_client.py index 89b8a1844..8eeb6c11b 100644 --- a/src/codegen/runner/clients/docker_client.py +++ b/src/graph_sitter/runner/clients/docker_client.py @@ -1,11 +1,11 @@ """Client for interacting with the locally hosted sandbox server hosted on a docker container.""" -from codegen.cli.commands.start.docker_container import DockerContainer -from codegen.cli.commands.start.docker_fleet import DockerFleet -from codegen.cli.utils.function_finder import DecoratedFunction -from codegen.runner.clients.client import Client -from codegen.runner.models.apis import RUN_FUNCTION_ENDPOINT, RunFunctionRequest -from codegen.runner.models.codemod import CodemodRunResult +from graph_sitter.cli.commands.start.docker_container import DockerContainer +from graph_sitter.cli.commands.start.docker_fleet import DockerFleet +from graph_sitter.cli.utils.function_finder import DecoratedFunction +from graph_sitter.runner.clients.client import Client +from graph_sitter.runner.models.apis import RUN_FUNCTION_ENDPOINT, RunFunctionRequest +from graph_sitter.runner.models.codemod import CodemodRunResult class DockerClient(Client): diff --git a/src/codegen/runner/constants/envvars.py b/src/graph_sitter/runner/constants/envvars.py similarity index 100% rename from src/codegen/runner/constants/envvars.py rename to src/graph_sitter/runner/constants/envvars.py diff --git a/src/codegen/runner/diff/get_raw_diff.py b/src/graph_sitter/runner/diff/get_raw_diff.py similarity index 100% rename from src/codegen/runner/diff/get_raw_diff.py rename to src/graph_sitter/runner/diff/get_raw_diff.py diff --git a/src/codegen/runner/enums/warmup_state.py b/src/graph_sitter/runner/enums/warmup_state.py similarity index 100% rename from src/codegen/runner/enums/warmup_state.py rename to src/graph_sitter/runner/enums/warmup_state.py diff --git a/src/codegen/runner/models/apis.py b/src/graph_sitter/runner/models/apis.py similarity index 87% rename from src/codegen/runner/models/apis.py rename to src/graph_sitter/runner/models/apis.py index 961a5c93b..dd3cf4fbd 100644 --- a/src/codegen/runner/models/apis.py +++ b/src/graph_sitter/runner/models/apis.py @@ -2,8 +2,8 @@ from pydantic import BaseModel -from codegen.runner.enums.warmup_state import WarmupState -from codegen.runner.models.codemod import BranchConfig, Codemod, CodemodRunResult, CreatedBranch, GroupingConfig +from graph_sitter.runner.enums.warmup_state import WarmupState +from graph_sitter.runner.models.codemod import BranchConfig, Codemod, CodemodRunResult, CreatedBranch, GroupingConfig SANDBOX_SERVER_PORT = 4000 EPHEMERAL_SANDBOX_SERVER_PORT = 4001 diff --git a/src/codegen/runner/models/codemod.py b/src/graph_sitter/runner/models/codemod.py similarity index 90% rename from src/codegen/runner/models/codemod.py rename to src/graph_sitter/runner/models/codemod.py index 2c228b5e4..e7b5c51f5 100644 --- a/src/codegen/runner/models/codemod.py +++ b/src/graph_sitter/runner/models/codemod.py @@ -4,9 +4,9 @@ from pydantic import BaseModel -from codegen.git.models.codemod_context import CodemodContext -from codegen.git.models.pr_options import PROptions from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.models.codemod_context import CodemodContext +from graph_sitter.git.models.pr_options import PROptions class Codemod(BaseModel): diff --git a/src/codegen/runner/sandbox/ephemeral_server.py b/src/graph_sitter/runner/sandbox/ephemeral_server.py similarity index 91% rename from src/codegen/runner/sandbox/ephemeral_server.py rename to src/graph_sitter/runner/sandbox/ephemeral_server.py index 18a253786..3901ba4a3 100644 --- a/src/codegen/runner/sandbox/ephemeral_server.py +++ b/src/graph_sitter/runner/sandbox/ephemeral_server.py @@ -3,15 +3,15 @@ from fastapi import FastAPI -from codegen.runner.enums.warmup_state import WarmupState -from codegen.runner.models.apis import ( +from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.runner.enums.warmup_state import WarmupState +from graph_sitter.runner.models.apis import ( RUN_ON_STRING_ENDPOINT, GetRunOnStringRequest, GetRunOnStringResult, ServerInfo, ) -from codegen.runner.sandbox.executor import SandboxExecutor -from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.runner.sandbox.executor import SandboxExecutor from graph_sitter.shared.compilation.string_to_code import create_execute_function_from_codeblock from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/codegen/runner/sandbox/executor.py b/src/graph_sitter/runner/sandbox/executor.py similarity index 94% rename from src/codegen/runner/sandbox/executor.py rename to src/graph_sitter/runner/sandbox/executor.py index e0aa92369..7dac553f3 100644 --- a/src/codegen/runner/sandbox/executor.py +++ b/src/graph_sitter/runner/sandbox/executor.py @@ -3,21 +3,21 @@ from github.PullRequest import PullRequest -from codegen.git.models.pr_options import PROptions -from codegen.runner.diff.get_raw_diff import get_raw_diff -from codegen.runner.models.codemod import BranchConfig, CodemodRunResult, CreatedBranch, GroupingConfig -from codegen.runner.sandbox.repo import SandboxRepo -from codegen.runner.utils.branch_name import get_head_branch_name -from codegen.runner.utils.exception_utils import update_observation_meta -from codegen.visualizations.viz_utils import get_graph_json from graph_sitter.codebase.config import SessionOptions from graph_sitter.codebase.factory.codebase_factory import CodebaseType from graph_sitter.codebase.flagging.code_flag import CodeFlag from graph_sitter.codebase.flagging.group import Group from graph_sitter.codebase.flagging.groupers.utils import get_grouper_by_group_by +from graph_sitter.git.models.pr_options import PROptions +from graph_sitter.runner.diff.get_raw_diff import get_raw_diff +from graph_sitter.runner.models.codemod import BranchConfig, CodemodRunResult, CreatedBranch, GroupingConfig +from graph_sitter.runner.sandbox.repo import SandboxRepo +from graph_sitter.runner.utils.branch_name import get_head_branch_name +from graph_sitter.runner.utils.exception_utils import update_observation_meta from graph_sitter.shared.exceptions.control_flow import StopCodemodException from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.shared.performance.stopwatch_utils import stopwatch +from graph_sitter.visualizations.viz_utils import get_graph_json logger = get_logger(__name__) diff --git a/src/codegen/runner/sandbox/middlewares.py b/src/graph_sitter/runner/sandbox/middlewares.py similarity index 97% rename from src/codegen/runner/sandbox/middlewares.py rename to src/graph_sitter/runner/sandbox/middlewares.py index ac3552d7a..a92458ac4 100644 --- a/src/codegen/runner/sandbox/middlewares.py +++ b/src/graph_sitter/runner/sandbox/middlewares.py @@ -7,7 +7,7 @@ from starlette.requests import Request from starlette.responses import JSONResponse, Response -from codegen.runner.sandbox.runner import SandboxRunner +from graph_sitter.runner.sandbox.runner import SandboxRunner from graph_sitter.shared.exceptions.compilation import UserCodeException from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/codegen/runner/sandbox/repo.py b/src/graph_sitter/runner/sandbox/repo.py similarity index 100% rename from src/codegen/runner/sandbox/repo.py rename to src/graph_sitter/runner/sandbox/repo.py diff --git a/src/codegen/runner/sandbox/runner.py b/src/graph_sitter/runner/sandbox/runner.py similarity index 92% rename from src/codegen/runner/sandbox/runner.py rename to src/graph_sitter/runner/sandbox/runner.py index b67b0c8d8..6b9ce6e26 100644 --- a/src/codegen/runner/sandbox/runner.py +++ b/src/graph_sitter/runner/sandbox/runner.py @@ -1,14 +1,14 @@ import sys -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.enums import SetupOption -from codegen.git.schemas.repo_config import RepoConfig -from codegen.runner.models.apis import CreateBranchRequest, CreateBranchResponse, GetDiffRequest, GetDiffResponse -from codegen.runner.sandbox.executor import SandboxExecutor from graph_sitter.codebase.config import ProjectConfig, SessionOptions from graph_sitter.codebase.factory.codebase_factory import CodebaseType from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.enums import SetupOption +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.runner.models.apis import CreateBranchRequest, CreateBranchResponse, GetDiffRequest, GetDiffResponse +from graph_sitter.runner.sandbox.executor import SandboxExecutor from graph_sitter.shared.compilation.string_to_code import create_execute_function_from_codeblock from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/codegen/runner/sandbox/server.py b/src/graph_sitter/runner/sandbox/server.py similarity index 88% rename from src/codegen/runner/sandbox/server.py rename to src/graph_sitter/runner/sandbox/server.py index def702572..40b94f580 100644 --- a/src/codegen/runner/sandbox/server.py +++ b/src/graph_sitter/runner/sandbox/server.py @@ -3,9 +3,10 @@ from fastapi import FastAPI -from codegen.git.schemas.repo_config import RepoConfig -from codegen.runner.enums.warmup_state import WarmupState -from codegen.runner.models.apis import ( +from graph_sitter.configs.models.repository import RepositoryConfig +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.runner.enums.warmup_state import WarmupState +from graph_sitter.runner.models.apis import ( BRANCH_ENDPOINT, DIFF_ENDPOINT, CreateBranchRequest, @@ -14,9 +15,8 @@ GetDiffResponse, ServerInfo, ) -from codegen.runner.sandbox.middlewares import CodemodRunMiddleware -from codegen.runner.sandbox.runner import SandboxRunner -from graph_sitter.configs.models.repository import RepositoryConfig +from graph_sitter.runner.sandbox.middlewares import CodemodRunMiddleware +from graph_sitter.runner.sandbox.runner import SandboxRunner from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/codegen/runner/servers/local_daemon.py b/src/graph_sitter/runner/servers/local_daemon.py similarity index 86% rename from src/codegen/runner/servers/local_daemon.py rename to src/graph_sitter/runner/servers/local_daemon.py index 098b6769a..8f6427cb0 100644 --- a/src/codegen/runner/servers/local_daemon.py +++ b/src/graph_sitter/runner/servers/local_daemon.py @@ -3,20 +3,20 @@ from fastapi import FastAPI -from codegen.git.configs.constants import CODEGEN_BOT_EMAIL, CODEGEN_BOT_NAME -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.enums import SetupOption -from codegen.git.schemas.repo_config import RepoConfig -from codegen.runner.enums.warmup_state import WarmupState -from codegen.runner.models.apis import ( +from graph_sitter.configs.models.codebase import DefaultCodebaseConfig +from graph_sitter.git.configs.constants import CODEGEN_BOT_EMAIL, CODEGEN_BOT_NAME +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.enums import SetupOption +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.runner.enums.warmup_state import WarmupState +from graph_sitter.runner.models.apis import ( RUN_FUNCTION_ENDPOINT, GetDiffRequest, RunFunctionRequest, ServerInfo, ) -from codegen.runner.models.codemod import Codemod, CodemodRunResult -from codegen.runner.sandbox.runner import SandboxRunner -from graph_sitter.configs.models.codebase import DefaultCodebaseConfig +from graph_sitter.runner.models.codemod import Codemod, CodemodRunResult +from graph_sitter.runner.sandbox.runner import SandboxRunner from graph_sitter.shared.logging.get_logger import get_logger # Configure logging at module level diff --git a/src/codegen/runner/utils/branch_name.py b/src/graph_sitter/runner/utils/branch_name.py similarity index 100% rename from src/codegen/runner/utils/branch_name.py rename to src/graph_sitter/runner/utils/branch_name.py diff --git a/src/codegen/runner/utils/exception_utils.py b/src/graph_sitter/runner/utils/exception_utils.py similarity index 100% rename from src/codegen/runner/utils/exception_utils.py rename to src/graph_sitter/runner/utils/exception_utils.py diff --git a/src/graph_sitter/shared/compilation/function_imports.py b/src/graph_sitter/shared/compilation/function_imports.py index 2c8c03505..1093b4a5f 100644 --- a/src/graph_sitter/shared/compilation/function_imports.py +++ b/src/graph_sitter/shared/compilation/function_imports.py @@ -1,4 +1,4 @@ -# This file is auto-generated, do not modify manually. Edit this in src/codegen/gscli/generate/runner_imports.py. +# This file is auto-generated, do not modify manually. Edit this in src/gscli/generate/runner_imports.py. def get_generated_imports(): return """ # External imports @@ -10,11 +10,11 @@ def get_generated_imports(): # GraphSitter imports (private) -from codegen.git.models.codemod_context import CodemodContext -from codegen.git.models.github_named_user_context import GithubNamedUserContext -from codegen.git.models.pr_options import PROptions -from codegen.git.models.pr_part_context import PRPartContext -from codegen.git.models.pull_request_context import PullRequestContext +from graph_sitter.git.models.codemod_context import CodemodContext +from graph_sitter.git.models.github_named_user_context import GithubNamedUserContext +from graph_sitter.git.models.pr_options import PROptions +from graph_sitter.git.models.pr_part_context import PRPartContext +from graph_sitter.git.models.pull_request_context import PullRequestContext from graph_sitter.shared.exceptions.control_flow import StopCodemodException diff --git a/src/graph_sitter/system-prompt.txt b/src/graph_sitter/system-prompt.txt index cbf343cf1..57d213f18 100644 --- a/src/graph_sitter/system-prompt.txt +++ b/src/graph_sitter/system-prompt.txt @@ -10,7 +10,7 @@ iconType: "solid" It provides a scriptable interface to a powerful, multi-lingual language server built on top of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/). ```python -from codegen import Codebase +from graph_sitter import Codebase # Codegen builds a complete graph connecting # functions, classes, imports and their relationships @@ -200,7 +200,7 @@ codegen notebook --demo Instantiating a [Codebase](/api-reference/core/Codebase) will automatically parse a codebase and make it available for manipulation. ```python -from codegen import Codebase +from graph_sitter import Codebase # Clone + parse fastapi/fastapi codebase = Codebase.from_repo('fastapi/fastapi') @@ -444,7 +444,7 @@ Codegen also supports a number of advanced settings that can be used to customiz These flags are helpful for debugging problematic repos, optimizing Codegen’s performance, or testing unreleased or experimental (potentially backwards-breaking) features. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration @@ -697,11 +697,11 @@ Add this to your cline_mcp_settings.json: ```json { "mcpServers": { - "codegen-cli": { + "graph_sitter.cli": { "command": "uv", "args": [ "--directory", - "/codegen-sdk/src/codegen/cli/mcp", + "/codegen-sdk/src/graph_sitter.cli/mcp", "run", "server.py" ] @@ -717,7 +717,7 @@ Under the `Settings` > `Feature` > `MCP Servers` section, click "Add New MCP Ser ``` Name: codegen-mcp Type: Command -Command: uv --directory /codegen-sdk/src/codegen/cli/mcp run server.py +Command: uv --directory /codegen-sdk/src/graph_sitter.cli/mcp run server.py ``` @@ -835,7 +835,7 @@ import { ## Generating System Prompts -The [Codegen CLI](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. +The [graph_sitter.cli](/cli/about) provides commands to generate `.md` files that can be fed to any AI assistant for more accurate and contextual help. When you create a new codemod via [codegen create](/cli/create): @@ -925,7 +925,7 @@ At the heart of Codegen is a comprehensive graph representation of your code. Wh ```python # Initialize and analyze the codebase -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") # Access pre-computed relationships @@ -1017,7 +1017,7 @@ These configuration options are defined in [src/codegen/configs/models/codebase. You can customize the behavior of the graph construction process when initializing a [Codebase](/api-reference/core/Codebase) by passing a `CodebaseConfig` object with the desired configuration flags. ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Initialize a Codebase with custom configuration @@ -1206,7 +1206,7 @@ This experimental flag pushes the graph creation back until the graph is needed. **Example Codemod:** ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs import CodebaseConfig # Enable lazy graph parsing @@ -1820,7 +1820,7 @@ The primary entrypoint to programs leveraging Codegen is the [Codebase](/api-ref Construct a Codebase by passing in a path to a local `git` repository or any subfolder within it. The path must be within a git repository (i.e., somewhere in the parent directory tree must contain a `.git` folder). ```python -from codegen import Codebase +from graph_sitter import Codebase # Parse from a git repository root codebase = Codebase("path/to/repository") @@ -1852,7 +1852,7 @@ codebase = Codebase("./", language="typescript") To fetch and parse a repository directly from GitHub, use the `from_repo` function. ```python -from codegen import Codebase +from graph_sitter import Codebase # Fetch and parse a repository (defaults to /tmp/codegen/{repo_name}) codebase = Codebase.from_repo('fastapi/fastapi') @@ -1876,7 +1876,7 @@ codebase = Codebase.from_repo( You can customize the behavior of your Codebase instance by passing a `CodebaseConfig` object. This allows you to configure secrets (like API keys) and toggle specific features: ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.configs.models.codebase import CodebaseConfig from codegen.configs.models.secrets import SecretsConfig @@ -1904,7 +1904,7 @@ For more complex scenarios, Codegen supports an advanced initialization mode usi Here's an example: ```python -from codegen import Codebase +from graph_sitter import Codebase from codegen.git.repo_operator.local_repo_operator import LocalRepoOperator from codegen.git.schemas.repo_config import BaseRepoConfig from codegen.sdk.codebase.config import ProjectConfig @@ -1957,7 +1957,7 @@ This creates a new codemod in your `.codegen/codemods` directory: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("rename-function") def run(codebase: Codebase): @@ -2008,7 +2008,7 @@ A codemod consists of three main parts: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase @codegen.function("update-imports") def run(codebase: Codebase): @@ -2154,7 +2154,7 @@ Use `codegen list` to see all codemods in your project. The `jupyter/` directory contains notebooks for interactive development: ```python -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase codebase = Codebase('../../') @@ -2256,7 +2256,7 @@ Codegen provides first-class support for both Python and TypeScript codebases. T When you create a new `Codebase` instance, Codegen automatically detects the programming language: ```python -from codegen import Codebase +from graph_sitter import Codebase # Automatically detects Python or TypeScript codebase = Codebase("./") @@ -2379,7 +2379,7 @@ You can manage your codebase's state with two core APIs: When you make changes to your codebase through Codegen's APIs, they aren't immediately written to disk. You need to explicitly commit them with [codebase.commit()](/api-reference/core/Codebase#commit): ```python -from codegen import Codebase +from graph_sitter import Codebase codebase = Codebase("./") @@ -5115,7 +5115,7 @@ This guide covers the core APIs and patterns for working with type annotations i Codegen builds a complete dependency graph of your codebase, connecting functions, classes, imports, and their relationships. This enables powerful type resolution capabilities: ```python -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase with dependency graph codebase = Codebase("./") @@ -6398,7 +6398,7 @@ The `FileIndex` operates at the file level: - Simpler and faster to create/update ```python -from codegen.extensions.index.file_index import FileIndex +from graph_sitter.extensions.index.file_index import FileIndex index = FileIndex(codebase) index.create() @@ -6412,7 +6412,7 @@ The `SymbolIndex` operates at the symbol level: - More granular search results ```python -from codegen.extensions.index.symbol_index import SymbolIndex +from graph_sitter.extensions.index.symbol_index import SymbolIndex index = SymbolIndex(codebase) index.create() @@ -6931,7 +6931,7 @@ The agent has access to powerful code viewing and manipulation tools powered by -View the full code for the default tools and agent implementation in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/codegen/extensions/langchain/tools) +View the full code for the default tools and agent implementation in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/graph_sitter.extensions/langchain/tools) # Basic Usage @@ -6970,7 +6970,7 @@ agent = CodeAgent( The agent comes with a comprehensive set of tools for code analysis and manipulation. Here are some key tools: ```python -from codegen.extensions.langchain.tools import ( +from graph_sitter.extensions.langchain.tools import ( CreateFileTool, DeleteFileTool, EditFileTool, @@ -6985,7 +6985,7 @@ from codegen.extensions.langchain.tools import ( ) ``` -View the full set of [tools on Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/codegen/extensions/langchain/tools.py) +View the full set of [tools on Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/graph_sitter.extensions/langchain/tools.py) Each tool provides specific capabilities: @@ -7002,7 +7002,7 @@ CODEGEN_SECRETS__GITHUB_TOKEN="..." Import the GitHub tools: ```python -from codegen.extensions.langchain.tools import ( +from graph_sitter.extensions.langchain.tools import ( GithubCreatePRTool, GithubViewPRTool, GithubCreatePRCommentTool, @@ -7016,7 +7016,7 @@ These tools enable: - Adding general PR comments - Adding inline review comments -View all Github tools on [Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/codegen/extensions/langchain/tools.py) +View all Github tools on [Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/graph_sitter.extensions/langchain/tools.py) ## Linear Integration @@ -7032,7 +7032,7 @@ LINEAR_SIGNING_SECRET="..." Import and use the Linear tools: ```python -from codegen.extensions.langchain.tools import ( +from graph_sitter.extensions.langchain.tools import ( LinearGetIssueTool, LinearGetIssueCommentsTool, LinearCommentOnIssueTool, @@ -7048,7 +7048,7 @@ These tools allow the agent to: - Add comments to issues - View team information -View all Linear tools on [Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/codegen/extensions/langchain/tools.py) +View all Linear tools on [Github](https://github.com/codegen-sh/codegen-sdk/blob/develop/src/graph_sitter.extensions/langchain/tools.py) ## Adding Custom Tools @@ -7108,8 +7108,8 @@ Let's walk through each step using Codegen. First, we initialize the codebase and create a vector index for semantic search: ```python -from codegen import Codebase -from codegen.extensions import VectorIndex +from graph_sitter import Codebase +from graph_sitter.extensions import VectorIndex def initialize_codebase(): """Initialize and index the codebase.""" @@ -7250,8 +7250,8 @@ using tiktoken. Each chunk is embedded separately and can be searched independen allowing for more precise semantic search results. Relevant files: -• src/codegen/extensions/vector_index.py (score: 0.92) -• src/codegen/extensions/tools/semantic_search.py (score: 0.85) +• src/graph_sitter.extensions/vector_index.py (score: 0.92) +• src/graph_sitter.extensions/tools/semantic_search.py (score: 0.85) ``` ## Extensions @@ -7327,7 +7327,7 @@ First, we set up a Modal application to handle GitHub webhooks: ```python import modal -from codegen.extensions.events.app import CodegenApp +from graph_sitter.extensions.events.app import CodegenApp from fastapi import Request # Set up the base image with required dependencies @@ -7361,7 +7361,7 @@ Make sure to configure your GitHub repository's webhook settings to point to you Next, we set up event handlers for PR label events: ```python -from codegen.extensions.github.types.events.pull_request import ( +from graph_sitter.extensions.github.types.events.pull_request import ( PullRequestLabeledEvent, PullRequestUnlabeledEvent ) @@ -7395,8 +7395,8 @@ The bot only triggers on PRs labeled with "Codegen", giving you control over whi Finally, we implement the AI-powered review agent: ```python -from codegen import Codebase, CodeAgent -from codegen.extensions.langchain.tools import ( +from graph_sitter import Codebase, CodeAgent +from graph_sitter.extensions.langchain.tools import ( GithubViewPRTool, GithubCreatePRCommentTool, GithubCreatePRReviewCommentTool, @@ -7516,9 +7516,9 @@ Let's walk through building each component. First, let's import the necessary components and set up our research tools: ```python -from codegen import Codebase -from codegen.extensions.langchain.agent import create_agent_with_tools -from codegen.extensions.langchain.tools import ( +from graph_sitter import Codebase +from graph_sitter.extensions.langchain.agent import create_agent_with_tools +from graph_sitter.extensions.langchain.tools import ( ListDirectoryTool, RevealSymbolTool, SearchTool, @@ -7898,7 +7898,7 @@ First, let's import the types we need from Codegen: ```python import codegen -from codegen import Codebase +from graph_sitter import Codebase from codegen.sdk.core.external_module import ExternalModule from codegen.sdk.core.import_resolution import Import from codegen.sdk.core.symbol import Symbol @@ -8108,7 +8108,7 @@ First, we'll set up our codebase, graph and configure some basic parameters: ```python import networkx as nx -from codegen import Codebase +from graph_sitter import Codebase # Initialize codebase codebase = Codebase("path/to/posthog/") @@ -11753,7 +11753,7 @@ First, we need to update Flask imports to their FastAPI equivalents and modify t ```python -from codegen import Codebase +from graph_sitter import Codebase # Parse the codebase codebase = Codebase("./") @@ -11952,7 +11952,7 @@ Learn how to build a Model Context Protocol (MCP) server that enables AI models This guide will walk you through creating an MCP server that can provide semantic code search -View the full code in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/codegen/extensions/mcp) +View the full code in our [examples repository](https://github.com/codegen-sh/codegen-sdk/tree/develop/src/graph_sitter.extensions/mcp) ## Setup: @@ -11967,7 +11967,7 @@ First, let's create a basic MCP server using Codegen's MCP tools: server.py ```python -from codegen import Codebase +from graph_sitter import Codebase from mcp.server.fastmcp import FastMCP from typing import Annotated # Initialize the codebase @@ -11990,14 +11990,14 @@ Let's implement the semantic search tool. server.py ```python -from codegen.extensions.tools.semantic_search import semantic_search +from graph_sitter.extensions.tools.semantic_search import semantic_search .... @mcp.tool('codebase_semantic_search', "search codebase with the provided query") def search(query: Annotated[str, "search query to run against codebase"]): codebase = Codebase("provide location to codebase", language="provide codebase Language") - # use the semantic search tool from codegen.extensions.tools OR write your own + # use the semantic search tool from graph_sitter.extensions.tools OR write your own results = semantic_search(codebase=codebase, query=query) return results @@ -12058,8 +12058,8 @@ docker run \ ## Usage ```python -from codegen import Codebase -from codegen.extensions.graph.main import visualize_codebase +from graph_sitter import Codebase +from graph_sitter.extensions.graph.main import visualize_codebase # parse codebase codebase = Codebase("path/to/codebase") @@ -12146,7 +12146,7 @@ The attribution extension is included with Codegen. No additional installation i ### Running the Analysis -You can run the AI impact analysis using the Codegen CLI: +You can run the AI impact analysis using the graph_sitter.cli: ```bash codegen analyze-ai-impact @@ -12155,8 +12155,8 @@ codegen analyze-ai-impact Or from Python code: ```python -from codegen import Codebase -from codegen.extensions.attribution.cli import run +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.cli import run # Initialize codebase from current directory codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -12182,8 +12182,8 @@ The analysis will print a summary of AI contributions to your console and save d After running the analysis, each symbol in your codebase will have attribution information attached to it: ```python -from codegen import Codebase -from codegen.extensions.attribution.main import add_attribution_to_symbols +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols # Initialize codebase codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -12206,8 +12206,8 @@ By default, the analysis looks for common AI bot names in commit authors. You can customize this by providing your own list of AI authors: ```python -from codegen import Codebase -from codegen.extensions.attribution.main import analyze_ai_impact +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import analyze_ai_impact # Initialize codebase codebase = Codebase.from_repo("your-org/your-repo", language="python") @@ -12233,8 +12233,8 @@ Here's a complete example that analyzes contributors to your codebase and their import os from collections import Counter -from codegen import Codebase -from codegen.extensions.attribution.main import add_attribution_to_symbols +from graph_sitter import Codebase +from graph_sitter.extensions.attribution.main import add_attribution_to_symbols from codegen.git.repo_operator.repo_operator import RepoOperator from codegen.git.schemas.repo_config import RepoConfig from codegen.sdk.codebase.config import ProjectConfig diff --git a/src/graph_sitter/typescript/detached_symbols/code_block.py b/src/graph_sitter/typescript/detached_symbols/code_block.py index b37d05520..563bebc61 100644 --- a/src/graph_sitter/typescript/detached_symbols/code_block.py +++ b/src/graph_sitter/typescript/detached_symbols/code_block.py @@ -1,11 +1,11 @@ from typing import TYPE_CHECKING, Generic, Self, TypeVar +from graph_sitter.compiled.utils import find_line_start_and_end_nodes from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.detached_symbols.code_block import CodeBlock from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.statements.statement import Statement from graph_sitter.core.symbol_groups.multi_line_collection import MultiLineCollection -from graph_sitter.extensions.utils import find_line_start_and_end_nodes from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/typescript/detached_symbols/jsx/element.py b/src/graph_sitter/typescript/detached_symbols/jsx/element.py index fe7d4e4d7..1de2a1fb6 100644 --- a/src/graph_sitter/typescript/detached_symbols/jsx/element.py +++ b/src/graph_sitter/typescript/detached_symbols/jsx/element.py @@ -3,11 +3,11 @@ from functools import cached_property from typing import TYPE_CHECKING, Generic, TypeVar, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.expressions import Expression, Value from graph_sitter.core.expressions.name import Name from graph_sitter.core.interfaces.has_name import HasName -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.detached_symbols.jsx.prop import JSXProp from graph_sitter.utils import find_all_descendants diff --git a/src/graph_sitter/typescript/detached_symbols/jsx/expression.py b/src/graph_sitter/typescript/detached_symbols/jsx/expression.py index e9385f320..beaed181a 100644 --- a/src/graph_sitter/typescript/detached_symbols/jsx/expression.py +++ b/src/graph_sitter/typescript/detached_symbols/jsx/expression.py @@ -1,13 +1,13 @@ from functools import cached_property from typing import Self, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.interfaces.unwrappable import Unwrappable -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc diff --git a/src/graph_sitter/typescript/detached_symbols/jsx/prop.py b/src/graph_sitter/typescript/detached_symbols/jsx/prop.py index 029d82096..dfaff0f4b 100644 --- a/src/graph_sitter/typescript/detached_symbols/jsx/prop.py +++ b/src/graph_sitter/typescript/detached_symbols/jsx/prop.py @@ -3,6 +3,7 @@ from tree_sitter import Node as TSNode from graph_sitter.codebase.codebase_context import CodebaseContext +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions import Expression @@ -10,7 +11,6 @@ from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.node_id_factory import NodeId -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.detached_symbols.jsx.expression import JSXExpression diff --git a/src/graph_sitter/typescript/detached_symbols/parameter.py b/src/graph_sitter/typescript/detached_symbols/parameter.py index 5b0f6657f..76de0666e 100644 --- a/src/graph_sitter/typescript/detached_symbols/parameter.py +++ b/src/graph_sitter/typescript/detached_symbols/parameter.py @@ -2,13 +2,13 @@ from typing import TYPE_CHECKING, override +from graph_sitter.compiled.autocommit import commiter from graph_sitter.core.autocommit import reader from graph_sitter.core.autocommit.decorators import writer from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.detached_symbols.parameter import Parameter from graph_sitter.core.expressions.union_type import UnionType from graph_sitter.core.symbol_groups.collection import Collection -from graph_sitter.extensions.autocommit import commiter from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.expressions.object_type import TSObjectType from graph_sitter.typescript.expressions.type import TSType diff --git a/src/graph_sitter/typescript/export.py b/src/graph_sitter/typescript/export.py index 6a790689d..d7e48b020 100644 --- a/src/graph_sitter/typescript/export.py +++ b/src/graph_sitter/typescript/export.py @@ -2,6 +2,7 @@ from typing import TYPE_CHECKING, Generic, Literal, Self, TypeVar, override +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter, reader from graph_sitter.core.autocommit.decorators import writer from graph_sitter.core.dataclasses.usage import UsageKind, UsageType @@ -13,7 +14,6 @@ from graph_sitter.core.interfaces.has_value import HasValue from graph_sitter.core.interfaces.importable import Importable from graph_sitter.enums import EdgeType, ImportType, NodeType -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.assignment import TSAssignment from graph_sitter.typescript.class_definition import TSClass diff --git a/src/graph_sitter/typescript/expressions/chained_attribute.py b/src/graph_sitter/typescript/expressions/chained_attribute.py index e6d82b662..d56f8f255 100644 --- a/src/graph_sitter/typescript/expressions/chained_attribute.py +++ b/src/graph_sitter/typescript/expressions/chained_attribute.py @@ -1,9 +1,9 @@ from typing import TYPE_CHECKING, Generic, TypeVar +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.expressions import Expression, Name from graph_sitter.core.expressions.chained_attribute import ChainedAttribute -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import ts_apidoc if TYPE_CHECKING: diff --git a/src/graph_sitter/typescript/expressions/undefined_type.py b/src/graph_sitter/typescript/expressions/undefined_type.py index 58354d3f2..5de45e148 100644 --- a/src/graph_sitter/typescript/expressions/undefined_type.py +++ b/src/graph_sitter/typescript/expressions/undefined_type.py @@ -2,10 +2,10 @@ from typing import Generic, Self, TypeVar, override from graph_sitter.codebase.resolution_stack import ResolutionStack +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.dataclasses.usage import UsageKind from graph_sitter.core.expressions.type import Type from graph_sitter.core.interfaces.importable import Importable -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc Parent = TypeVar("Parent") diff --git a/src/graph_sitter/typescript/file.py b/src/graph_sitter/typescript/file.py index efb30b9ec..66e67c7f5 100644 --- a/src/graph_sitter/typescript/file.py +++ b/src/graph_sitter/typescript/file.py @@ -3,12 +3,12 @@ import os from typing import TYPE_CHECKING +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import mover, reader, writer from graph_sitter.core.file import SourceFile from graph_sitter.core.interfaces.exportable import Exportable from graph_sitter.enums import ImportType, NodeType, SymbolType -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.typescript.assignment import TSAssignment diff --git a/src/graph_sitter/typescript/interfaces/has_block.py b/src/graph_sitter/typescript/interfaces/has_block.py index 60b456e13..5ff22e4ab 100644 --- a/src/graph_sitter/typescript/interfaces/has_block.py +++ b/src/graph_sitter/typescript/interfaces/has_block.py @@ -3,11 +3,11 @@ from functools import cached_property from typing import TYPE_CHECKING, Self +from graph_sitter.compiled.utils import find_all_descendants from graph_sitter.core.autocommit import reader, writer from graph_sitter.core.detached_symbols.code_block import CodeBlock from graph_sitter.core.interfaces.has_block import HasBlock from graph_sitter.core.statements.statement import StatementType -from graph_sitter.extensions.utils import find_all_descendants from graph_sitter.shared.decorators.docs import ts_apidoc from graph_sitter.typescript.detached_symbols.decorator import TSDecorator from graph_sitter.typescript.statements.comment import TSComment, TSCommentType diff --git a/src/graph_sitter/typescript/namespace.py b/src/graph_sitter/typescript/namespace.py index 589d41b78..524b97a5d 100644 --- a/src/graph_sitter/typescript/namespace.py +++ b/src/graph_sitter/typescript/namespace.py @@ -2,15 +2,15 @@ from typing import TYPE_CHECKING, override +from graph_sitter.compiled.autocommit import reader +from graph_sitter.compiled.sort import sort_editables +from graph_sitter.compiled.utils import cached_property from graph_sitter.core.autocommit import commiter from graph_sitter.core.autocommit.decorators import writer from graph_sitter.core.export import Export from graph_sitter.core.interfaces.has_attribute import HasAttribute from graph_sitter.core.interfaces.has_name import HasName from graph_sitter.enums import SymbolType -from graph_sitter.extensions.autocommit import reader -from graph_sitter.extensions.sort import sort_editables -from graph_sitter.extensions.utils import cached_property from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.typescript.class_definition import TSClass diff --git a/src/graph_sitter/typescript/statements/assignment_statement.py b/src/graph_sitter/typescript/statements/assignment_statement.py index cd5495c55..6ddc02b36 100644 --- a/src/graph_sitter/typescript/statements/assignment_statement.py +++ b/src/graph_sitter/typescript/statements/assignment_statement.py @@ -3,9 +3,9 @@ from collections import deque from typing import TYPE_CHECKING, Self +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.expressions.multi_expression import MultiExpression from graph_sitter.core.statements.assignment_statement import AssignmentStatement -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.shared.logging.get_logger import get_logger from graph_sitter.typescript.assignment import TSAssignment diff --git a/src/graph_sitter/typescript/statements/for_loop_statement.py b/src/graph_sitter/typescript/statements/for_loop_statement.py index 8cbb6d5bc..24fb6e091 100644 --- a/src/graph_sitter/typescript/statements/for_loop_statement.py +++ b/src/graph_sitter/typescript/statements/for_loop_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.statements.for_loop_statement import ForLoopStatement -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.statements.block_statement import TSBlockStatement diff --git a/src/graph_sitter/typescript/statements/try_catch_statement.py b/src/graph_sitter/typescript/statements/try_catch_statement.py index b63574b60..b24ca3103 100644 --- a/src/graph_sitter/typescript/statements/try_catch_statement.py +++ b/src/graph_sitter/typescript/statements/try_catch_statement.py @@ -2,8 +2,8 @@ from typing import TYPE_CHECKING, Self, override +from graph_sitter.compiled.autocommit import commiter, reader from graph_sitter.core.statements.try_catch_statement import TryCatchStatement -from graph_sitter.extensions.autocommit import commiter, reader from graph_sitter.shared.decorators.docs import noapidoc, ts_apidoc from graph_sitter.typescript.statements.block_statement import TSBlockStatement from graph_sitter.typescript.statements.catch_statement import TSCatchStatement diff --git a/src/graph_sitter/typescript/symbol_groups/dict.py b/src/graph_sitter/typescript/symbol_groups/dict.py index f3e30db7d..dec042d60 100644 --- a/src/graph_sitter/typescript/symbol_groups/dict.py +++ b/src/graph_sitter/typescript/symbol_groups/dict.py @@ -2,6 +2,7 @@ from tree_sitter import Node as TSNode +from graph_sitter.compiled.autocommit import reader from graph_sitter.core.autocommit import writer from graph_sitter.core.expressions import Expression from graph_sitter.core.expressions.string import String @@ -9,7 +10,6 @@ from graph_sitter.core.interfaces.has_attribute import HasAttribute from graph_sitter.core.node_id_factory import NodeId from graph_sitter.core.symbol_groups.dict import Dict, Pair -from graph_sitter.extensions.autocommit import reader from graph_sitter.shared.decorators.docs import apidoc, noapidoc, ts_apidoc from graph_sitter.shared.logging.get_logger import get_logger diff --git a/src/graph_sitter/utils.py b/src/graph_sitter/utils.py index 4f918f7a1..de614ced4 100644 --- a/src/graph_sitter/utils.py +++ b/src/graph_sitter/utils.py @@ -10,7 +10,7 @@ import xmltodict from tree_sitter import Node as TSNode -from graph_sitter.extensions.utils import find_all_descendants, find_first_descendant, get_all_identifiers +from graph_sitter.compiled.utils import find_all_descendants, find_first_descendant, get_all_identifiers from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from graph_sitter.typescript.enums import TSFunctionTypeNames diff --git a/src/codegen/visualizations/enums.py b/src/graph_sitter/visualizations/enums.py similarity index 100% rename from src/codegen/visualizations/enums.py rename to src/graph_sitter/visualizations/enums.py diff --git a/src/codegen/visualizations/py.typed b/src/graph_sitter/visualizations/py.typed similarity index 100% rename from src/codegen/visualizations/py.typed rename to src/graph_sitter/visualizations/py.typed diff --git a/src/codegen/visualizations/visualization_manager.py b/src/graph_sitter/visualizations/visualization_manager.py similarity index 93% rename from src/codegen/visualizations/visualization_manager.py rename to src/graph_sitter/visualizations/visualization_manager.py index f2940e948..2b9fb55f0 100644 --- a/src/codegen/visualizations/visualization_manager.py +++ b/src/graph_sitter/visualizations/visualization_manager.py @@ -3,10 +3,10 @@ import plotly.graph_objects as go from networkx import Graph -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.visualizations.viz_utils import graph_to_json from graph_sitter.core.interfaces.editable import Editable +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.logging.get_logger import get_logger +from graph_sitter.visualizations.viz_utils import graph_to_json logger = get_logger(__name__) diff --git a/src/codegen/visualizations/viz_utils.py b/src/graph_sitter/visualizations/viz_utils.py similarity index 94% rename from src/codegen/visualizations/viz_utils.py rename to src/graph_sitter/visualizations/viz_utils.py index 372d81399..52af6f303 100644 --- a/src/codegen/visualizations/viz_utils.py +++ b/src/graph_sitter/visualizations/viz_utils.py @@ -6,13 +6,13 @@ import networkx as nx from networkx import DiGraph, Graph -from codegen.visualizations.enums import GraphJson, GraphType from graph_sitter.core.interfaces.editable import Editable from graph_sitter.core.interfaces.importable import Importable from graph_sitter.output.utils import DeterministicJSONEncoder +from graph_sitter.visualizations.enums import GraphJson, GraphType if TYPE_CHECKING: - from codegen.git.repo_operator.repo_operator import RepoOperator + from graph_sitter.git.repo_operator.repo_operator import RepoOperator #################################################################################################################### # READING GRAPH VISUALIZATION DATA diff --git a/src/codegen/gsbuild/README.md b/src/gsbuild/README.md similarity index 100% rename from src/codegen/gsbuild/README.md rename to src/gsbuild/README.md diff --git a/src/codegen/gsbuild/build.py b/src/gsbuild/build.py similarity index 87% rename from src/codegen/gsbuild/build.py rename to src/gsbuild/build.py index f0ca49a9d..04a996732 100644 --- a/src/codegen/gsbuild/build.py +++ b/src/gsbuild/build.py @@ -8,7 +8,7 @@ def update_init_file(file: Path) -> None: path = Path(__file__).parent.parent.parent sys.path.append(str(path)) - from codegen.gscli.generate.runner_imports import generate_exported_modules, get_runner_imports + from graph_sitter.gscli.generate.runner_imports import generate_exported_modules, get_runner_imports content = file.read_text() content = get_runner_imports(include_codegen=False) + "\n" + content + "\n" + generate_exported_modules() diff --git a/test_events.py b/test_events.py index 1e5644ab7..5354d987b 100644 --- a/test_events.py +++ b/test_events.py @@ -6,8 +6,8 @@ from uvicorn.config import Config from uvicorn.server import Server -from codegen.extensions.events.client import CodegenClient -from codegen.extensions.events.codegen_app import CodegenApp +from graph_sitter.extensions.events.client import CodegenClient +from graph_sitter.extensions.events.codegen_app import CodegenApp # Configure logging logging.basicConfig(level=logging.INFO) diff --git a/tests/integration/codegen/cli/commands/conftest.py b/tests/integration/codegen/cli/commands/conftest.py index a89528bde..d8fe8db45 100644 --- a/tests/integration/codegen/cli/commands/conftest.py +++ b/tests/integration/codegen/cli/commands/conftest.py @@ -7,8 +7,8 @@ import pytest from click.testing import CliRunner -from codegen.cli.commands.init.main import init_command -from codegen.cli.workspace.venv_manager import VenvManager +from graph_sitter.cli.commands.init.main import init_command +from graph_sitter.cli.workspace.venv_manager import VenvManager @pytest.fixture diff --git a/tests/integration/codegen/cli/commands/test_reset.py b/tests/integration/codegen/cli/commands/test_reset.py index cbbbb19fd..2dd5bd80e 100644 --- a/tests/integration/codegen/cli/commands/test_reset.py +++ b/tests/integration/codegen/cli/commands/test_reset.py @@ -5,7 +5,7 @@ import pytest from click.testing import CliRunner -from codegen.cli.commands.reset.main import reset_command +from graph_sitter.cli.commands.reset.main import reset_command @dataclass diff --git a/tests/integration/codegen/git/conftest.py b/tests/integration/codegen/git/conftest.py index e3846935d..4f7133ba3 100644 --- a/tests/integration/codegen/git/conftest.py +++ b/tests/integration/codegen/git/conftest.py @@ -2,7 +2,7 @@ import pytest -from codegen.git.schemas.repo_config import RepoConfig +from graph_sitter.git.schemas.repo_config import RepoConfig @pytest.fixture() diff --git a/tests/integration/codegen/git/repo_operator/test_remote_repo_operator.py b/tests/integration/codegen/git/repo_operator/test_remote_repo_operator.py index 76d7a6292..27256185f 100644 --- a/tests/integration/codegen/git/repo_operator/test_remote_repo_operator.py +++ b/tests/integration/codegen/git/repo_operator/test_remote_repo_operator.py @@ -3,9 +3,9 @@ import pytest from github.MainClass import Github -from codegen.git.repo_operator.repo_operator import RepoOperator -from codegen.git.schemas.enums import CheckoutResult, SetupOption -from codegen.git.utils.file_utils import create_files +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.enums import CheckoutResult, SetupOption +from graph_sitter.git.utils.file_utils import create_files shallow_options = [True, False] @@ -17,7 +17,7 @@ def op(repo_config, request): @pytest.mark.parametrize("op", shallow_options, ids=lambda x: f"shallow={x}", indirect=True) -@patch("codegen.git.clients.github_client.Github") +@patch("graph_sitter.git.clients.github_client.Github") def test_checkout_branch(mock_git_client, op: RepoOperator): mock_git_client.return_value = Github("test_token", "https://api.github.com") op.pull_repo() @@ -39,7 +39,7 @@ def test_checkout_branch(mock_git_client, op: RepoOperator): @pytest.mark.parametrize("op", [True], ids=lambda x: f"shallow={x}", indirect=True) -@patch("codegen.git.clients.github_client.Github") +@patch("graph_sitter.git.clients.github_client.Github") def test_checkout_branch_local_already_checked_out(mock_git_client, op: RepoOperator): mock_git_client.return_value = Github("test_token", "https://api.github.com") @@ -59,7 +59,7 @@ def test_checkout_branch_local_already_checked_out(mock_git_client, op: RepoOper @pytest.mark.parametrize("op", [True], ids=lambda x: f"shallow={x}", indirect=True) -@patch("codegen.git.clients.github_client.Github") +@patch("graph_sitter.git.clients.github_client.Github") def test_checkout_branch_remote_already_checked_out_resets_branch(mock_git_client, op: RepoOperator): mock_git_client.return_value = Github("test_token", "https://api.github.com") diff --git a/tests/integration/codegen/runner/conftest.py b/tests/integration/codegen/runner/conftest.py new file mode 100644 index 000000000..3607a98ad --- /dev/null +++ b/tests/integration/codegen/runner/conftest.py @@ -0,0 +1,39 @@ +from collections.abc import Generator +from unittest.mock import Mock + +import pytest + +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.git.schemas.enums import SetupOption +from graph_sitter.git.schemas.repo_config import RepoConfig +from graph_sitter.runner.clients.codebase_client import CodebaseClient +from graph_sitter.shared.enums.programming_language import ProgrammingLanguage +from graph_sitter.shared.network.port import get_free_port + + +@pytest.fixture() +def repo_config(tmpdir) -> Generator[RepoConfig, None, None]: + yield RepoConfig( + name="Kevin-s-Adventure-Game", + full_name="codegen-sh/Kevin-s-Adventure-Game", + language=ProgrammingLanguage.PYTHON, + base_dir=str(tmpdir), + ) + + +@pytest.fixture +def op(repo_config: RepoConfig) -> Generator[RepoOperator, None, None]: + yield RepoOperator(repo_config=repo_config, setup_option=SetupOption.PULL_OR_CLONE) + + +@pytest.fixture +def git_repo_client(op: RepoOperator, repo_config: RepoConfig) -> Generator[GitRepoClient, None, None]: + yield GitRepoClient(repo_config=repo_config, access_token=op.access_token) + + +@pytest.fixture +def codebase_client(repo_config: RepoConfig) -> Generator[CodebaseClient, None, None]: + sb_client = CodebaseClient(repo_config=repo_config, port=get_free_port()) + sb_client.runner = Mock() + yield sb_client diff --git a/tests/integration/codegen/runner/test_create_branch.py b/tests/integration/codegen/runner/test_create_branch.py new file mode 100644 index 000000000..e3a3bc983 --- /dev/null +++ b/tests/integration/codegen/runner/test_create_branch.py @@ -0,0 +1,63 @@ +import uuid +from http import HTTPStatus + +import pytest + +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.runner.clients.codebase_client import CodebaseClient +from graph_sitter.runner.models.apis import BRANCH_ENDPOINT, CreateBranchRequest, CreateBranchResponse +from graph_sitter.runner.models.codemod import BranchConfig, Codemod, GroupingConfig + + +@pytest.mark.asyncio +@pytest.mark.timeout(60) +async def test_create_branch(codebase_client: CodebaseClient, git_repo_client: GitRepoClient, op: RepoOperator): + # set-up + codemod_source = """ +for file in codebase.files: + new_content = "🌈" + "\\n" + file.content + file.edit(new_content) + break +""" + test_branch_name = f"codegen-test-create-branch-{uuid.uuid1()}" + request = CreateBranchRequest( + codemod=Codemod(user_code=codemod_source), + commit_msg="Create branch test", + grouping_config=GroupingConfig(), + branch_config=BranchConfig(branch_name=test_branch_name), + ) + + # execute + response = codebase_client.post(endpoint=BRANCH_ENDPOINT, data=request.model_dump()) + assert response.status_code == HTTPStatus.OK + + # verify + result = CreateBranchResponse.model_validate(response.json()) + assert len(result.results) == 1 + assert result.results[0].is_complete + assert result.results[0].error is None + assert result.results[0].logs == "" + assert result.results[0].observation is not None + + # verify changed files + patch = result.results[0].observation + lines = patch.split("\n") + added_lines = [line[1:] for line in lines if line.startswith("+") and len(line) > 1] + assert "🌈" in added_lines + + # verify returned branch + assert len(result.branches) == 1 + branch = result.branches[0] + assert branch.base_branch == "main" + assert branch.head_ref == test_branch_name + + # verify remote branch + remote_branch = git_repo_client.repo.get_branch(test_branch_name) + assert remote_branch is not None + assert remote_branch.name == test_branch_name + assert remote_branch.commit.commit.message == "[Codegen] Create branch test" + + # clean-up + remote = op.git_cli.remote(name="origin") + remote.push([f":refs/heads/{test_branch_name}"]) # The colon prefix means delete diff --git a/tests/integration/codegen/runner/test_create_branch_with_grouping.py b/tests/integration/codegen/runner/test_create_branch_with_grouping.py new file mode 100644 index 000000000..6a38fb779 --- /dev/null +++ b/tests/integration/codegen/runner/test_create_branch_with_grouping.py @@ -0,0 +1,58 @@ +import uuid +from http import HTTPStatus + +import pytest + +from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.clients.git_repo_client import GitRepoClient +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.runner.clients.codebase_client import CodebaseClient +from graph_sitter.runner.models.apis import BRANCH_ENDPOINT, CreateBranchRequest, CreateBranchResponse +from graph_sitter.runner.models.codemod import BranchConfig, Codemod, GroupingConfig + + +@pytest.mark.timeout(120) +@pytest.mark.parametrize("group_by", [GroupBy.INSTANCE, GroupBy.FILE]) +def test_create_branch_with_grouping(codebase_client: CodebaseClient, git_repo_client: GitRepoClient, op: RepoOperator, group_by: GroupBy): + codemod_source = """ +for file in codebase.files[:5]: + flag = codebase.flag_instance(file) + if codebase.should_fix(flag): + new_content = "🌈" + "\\n" + file.content + file.edit(new_content) +""" + commit_msg = "Create branch with grouping test" + test_branch_name = f"codegen-{uuid.uuid1()}" + request = CreateBranchRequest( + codemod=Codemod(user_code=codemod_source), + commit_msg=commit_msg, + grouping_config=GroupingConfig(group_by=group_by), + branch_config=BranchConfig(branch_name=test_branch_name), + ) + + # execute + response = codebase_client.post(endpoint=BRANCH_ENDPOINT, data=request.model_dump()) + assert response.status_code == HTTPStatus.OK + + # verify + result = CreateBranchResponse.model_validate(response.json()) + assert len(result.results) == 5 + assert len(result.branches) == 5 + + for i, branch in enumerate(result.branches): + actual_branch_suffix = "-".join(branch.head_ref.split("-")[-2:]) + expected_branch_suffix = f"group-{i}" + assert expected_branch_suffix == actual_branch_suffix + + remote_branch = git_repo_client.repo.get_branch(branch.head_ref) + assert remote_branch is not None + assert remote_branch.name == branch.head_ref + assert remote_branch.commit.commit.message == f"[Codegen] {commit_msg}" + assert remote_branch.commit.commit.author.name == "codegen-sh[bot]" + + comparison = git_repo_client.repo.compare(base=branch.base_branch, head=branch.head_ref) + assert "+🌈" in comparison.files[0].patch + + # clean-up + remote = op.git_cli.remote(name="origin") + remote.push([f":refs/heads/{branch.head_ref}"]) diff --git a/tests/integration/codegen/test_imports.py b/tests/integration/codegen/test_imports.py index e81d0e326..09235bd2f 100644 --- a/tests/integration/codegen/test_imports.py +++ b/tests/integration/codegen/test_imports.py @@ -1,18 +1,19 @@ import os -import codegen +from graph_sitter.cli.sdk.decorator import function +from graph_sitter.cli.sdk.function import Function from graph_sitter.code_generation.current_code_codebase import get_graphsitter_repo_path from graph_sitter.core.codebase import Codebase def test_codegen_imports(): # Test decorated function - @codegen.function(name="sample_codemod") + @function(name="sample_codemod") def run(codebase): pass # Test class - cls = codegen.Function + cls = Function assert cls is not None os.chdir(get_graphsitter_repo_path()) # TODO: CG-10643 codebase = Codebase("./") diff --git a/tests/integration/codemod/conftest.py b/tests/integration/codemod/conftest.py index 778786197..2a60c628b 100644 --- a/tests/integration/codemod/conftest.py +++ b/tests/integration/codemod/conftest.py @@ -10,10 +10,10 @@ from _pytest.python import Metafunc from pyinstrument import Profiler -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.config import ProjectConfig from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from tests.shared.codemod.constants import DIFF_FILEPATH from tests.shared.codemod.models import BASE_PATH, BASE_TMP_DIR, VERIFIED_CODEMOD_DIFFS, CodemodMetadata, Repo, Size from tests.shared.codemod.test_discovery import find_codemod_test_cases, find_repos, find_verified_codemod_cases diff --git a/tests/integration/codemod/test_parse.py b/tests/integration/codemod/test_parse.py index 9aa1f6f13..3f3d4d534 100644 --- a/tests/integration/codemod/test_parse.py +++ b/tests/integration/codemod/test_parse.py @@ -5,11 +5,11 @@ import psutil import pytest -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.codebase.config import ProjectConfig from graph_sitter.codebase.validation import PostInitValidationStatus, post_init_validation from graph_sitter.configs.models.codebase import CodebaseConfig from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from tests.shared.codemod.models import Repo from tests.shared.utils.recursion import set_recursion_limit diff --git a/tests/integration/test_vector_index.py b/tests/integration/test_vector_index.py index 8cc91fad3..63a719a32 100644 --- a/tests/integration/test_vector_index.py +++ b/tests/integration/test_vector_index.py @@ -3,8 +3,8 @@ import numpy as np import pytest -from codegen.extensions.index.file_index import FileIndex from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.extensions.index.file_index import FileIndex def test_file_index_lifecycle(tmpdir) -> None: diff --git a/tests/shared/codemod/codebase_comparison_utils.py b/tests/shared/codemod/codebase_comparison_utils.py index abc20289e..91c41064a 100644 --- a/tests/shared/codemod/codebase_comparison_utils.py +++ b/tests/shared/codemod/codebase_comparison_utils.py @@ -8,8 +8,8 @@ from Levenshtein import distance as levenshtein_distance from pytest_snapshot.plugin import Snapshot -from codegen.git.schemas.enums import DiffChangeType from graph_sitter.core.codebase import Codebase +from graph_sitter.git.schemas.enums import DiffChangeType from tests.shared.codemod.constants import DIFF_FILEPATH logger = logging.getLogger(__name__) diff --git a/tests/shared/codemod/models.py b/tests/shared/codemod/models.py index 13ec4c150..0b52d7d2f 100644 --- a/tests/shared/codemod/models.py +++ b/tests/shared/codemod/models.py @@ -9,8 +9,8 @@ from pydantic import BaseModel, ConfigDict -from codegen.git.repo_operator.repo_operator import RepoOperator from graph_sitter.configs.models.codebase import CodebaseConfig +from graph_sitter.git.repo_operator.repo_operator import RepoOperator from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from tests.shared.codemod.constants import DIFF_FILEPATH from tests.shared.codemod.verified_codemod_utils import CodemodAPI diff --git a/tests/shared/codemod/test_discovery.py b/tests/shared/codemod/test_discovery.py index 07b2edcf3..c315b7ea0 100644 --- a/tests/shared/codemod/test_discovery.py +++ b/tests/shared/codemod/test_discovery.py @@ -9,8 +9,8 @@ import emoji from loguru import logger -from codegen.gscli.generate.runner_imports import get_runner_imports from codemods.codemod import Codemod +from graph_sitter.gscli.generate.runner_imports import get_runner_imports from graph_sitter.shared.enums.programming_language import ProgrammingLanguage from tests.shared.codemod.constants import DIFF_FILEPATH from tests.shared.codemod.models import BASE_PATH, CODEMOD_PATH, REPO_ID_TO_URL, TEST_DIR, VERIFIED_CODEMOD_DATA_DIR, VERIFIED_CODEMOD_DIFFS, ClonedRepoTestCase, CodemodMetadata, Repo, Size diff --git a/tests/unit/codegen/cli/commands/update/data/response.json b/tests/unit/cli/commands/update/data/response.json similarity index 97% rename from tests/unit/codegen/cli/commands/update/data/response.json rename to tests/unit/cli/commands/update/data/response.json index e2e003f5d..8cc2c425c 100644 --- a/tests/unit/codegen/cli/commands/update/data/response.json +++ b/tests/unit/cli/commands/update/data/response.json @@ -21,7 +21,7 @@ "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], - "description": "
\n\n

\n \n \n \n

\n\n

\n Scriptable interface to a powerful, multi-lingual language server.\n

\n\n
\n\n[![PyPI](https://img.shields.io/badge/PyPi-codegen-gray?style=flat-square&color=blue)](https://pypi.org/project/codegen/)\n[![Documentation](https://img.shields.io/badge/Docs-docs.codegen.com-purple?style=flat-square)](https://docs.codegen.com)\n[![Slack Community](https://img.shields.io/badge/Slack-Join-4A154B?logo=slack&style=flat-square)](https://community.codegen.com)\n[![License](https://img.shields.io/badge/Code%20License-Apache%202.0-gray?&color=gray)](https://github.com/codegen-sh/codegen-sdk/tree/develop?tab=Apache-2.0-1-ov-file)\n[![Follow on X](https://img.shields.io/twitter/follow/codegen?style=social)](https://x.com/codegen)\n\n
\n\n
\n\n[Codegen](https://docs.codegen.com) is a python library for manipulating codebases.\n\n```python\nfrom codegen import Codebase\n\n# Codegen builds a complete graph connecting\n# functions, classes, imports and their relationships\ncodebase = Codebase(\"./\")\n\n# Work with code without dealing with syntax trees or parsing\nfor function in codebase.functions:\n # Comprehensive static analysis for references, dependencies, etc.\n if not function.usages:\n # Auto-handles references and imports to maintain correctness\n function.move_to_file(\"deprecated.py\")\n```\n\nWrite code that transforms code. Codegen combines the parsing power of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) with the graph algorithms of [rustworkx](https://github.com/Qiskit/rustworkx) to enable scriptable, multi-language code manipulation at scale.\n\n## Installation and Usage\n\nWe support\n\n- Running Codegen in Python 3.12 – 3.13 (recommended: Python 3.13)\n- macOS and Linux\n - macOS is supported on Apple Silicon\n - Linux is supported on x86_64 and aarch64 with glibc 2.34+\n - Windows is not supported\n- Python, Typescript, Javascript and React codebases\n\n```\n# Install inside existing project\nuv pip install codegen\n\n# Install global CLI\nuv tool install codegen\n\n# Create a codemod for a given repo\ncd path/to/repo\ncodegen init\ncodegen create test-function\n\n# Run the codemod\ncodegen run test-function\n\n# Create an isolated venv with codegen => open jupyter\ncodegen notebook\n```\n\n## Usage\n\nSee [Getting Started](https://docs.codegen.com/introduction/getting-started) for a full tutorial.\n\n```\nfrom codegen import Codebase\n```\n\n## Resources\n\n- [Docs](https://docs.codegen.com)\n- [Getting Started](https://docs.codegen.com/introduction/getting-started)\n- [Contributing](CONTRIBUTING.md)\n- [Contact Us](https://codegen.com/contact)\n\n## Why Codegen?\n\nSoftware development is fundamentally programmatic. Refactoring a codebase, enforcing patterns, or analyzing control flow - these are all operations that can (and should) be expressed as programs themselves.\n\nWe built Codegen backwards from real-world refactors performed on enterprise codebases. Instead of starting with theoretical abstractions, we focused on creating APIs that match how developers actually think about code changes:\n\n- **Natural mental model**: Write transforms that read like your thought process - \"move this function\", \"rename this variable\", \"add this parameter\". No more wrestling with ASTs or manual import management.\n\n- **Battle-tested on complex codebases**: Handle Python, TypeScript, and React codebases with millions of lines of code.\n\n- **Built for advanced intelligences**: As AI developers become more sophisticated, they need expressive yet precise tools to manipulate code. Codegen provides a programmatic interface that both humans and AI can use to express complex transformations through code itself.\n\n## Contributing\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for instructions on how to set up the development environment and submit contributions.\n\n## Enterprise\n\nFor more information on enterprise engagements, please [contact us](https://codegen.com/contact) or [request a demo](https://codegen.com/request-demo).\n", + "description": "
\n\n

\n \n \n \n

\n\n

\n Scriptable interface to a powerful, multi-lingual language server.\n

\n\n
\n\n[![PyPI](https://img.shields.io/badge/PyPi-codegen-gray?style=flat-square&color=blue)](https://pypi.org/project/codegen/)\n[![Documentation](https://img.shields.io/badge/Docs-docs.codegen.com-purple?style=flat-square)](https://docs.codegen.com)\n[![Slack Community](https://img.shields.io/badge/Slack-Join-4A154B?logo=slack&style=flat-square)](https://community.codegen.com)\n[![License](https://img.shields.io/badge/Code%20License-Apache%202.0-gray?&color=gray)](https://github.com/codegen-sh/codegen-sdk/tree/develop?tab=Apache-2.0-1-ov-file)\n[![Follow on X](https://img.shields.io/twitter/follow/codegen?style=social)](https://x.com/codegen)\n\n
\n\n
\n\n[Codegen](https://docs.codegen.com) is a python library for manipulating codebases.\n\n```python\nfrom graph_sitter import Codebase\n\n# Codegen builds a complete graph connecting\n# functions, classes, imports and their relationships\ncodebase = Codebase(\"./\")\n\n# Work with code without dealing with syntax trees or parsing\nfor function in codebase.functions:\n # Comprehensive static analysis for references, dependencies, etc.\n if not function.usages:\n # Auto-handles references and imports to maintain correctness\n function.move_to_file(\"deprecated.py\")\n```\n\nWrite code that transforms code. Codegen combines the parsing power of [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) with the graph algorithms of [rustworkx](https://github.com/Qiskit/rustworkx) to enable scriptable, multi-language code manipulation at scale.\n\n## Installation and Usage\n\nWe support\n\n- Running Codegen in Python 3.12 – 3.13 (recommended: Python 3.13)\n- macOS and Linux\n - macOS is supported on Apple Silicon\n - Linux is supported on x86_64 and aarch64 with glibc 2.34+\n - Windows is not supported\n- Python, Typescript, Javascript and React codebases\n\n```\n# Install inside existing project\nuv pip install codegen\n\n# Install global CLI\nuv tool install codegen\n\n# Create a codemod for a given repo\ncd path/to/repo\ncodegen init\ncodegen create test-function\n\n# Run the codemod\ncodegen run test-function\n\n# Create an isolated venv with codegen => open jupyter\ncodegen notebook\n```\n\n## Usage\n\nSee [Getting Started](https://docs.codegen.com/introduction/getting-started) for a full tutorial.\n\n```\nfrom graph_sitter import Codebase\n```\n\n## Resources\n\n- [Docs](https://docs.codegen.com)\n- [Getting Started](https://docs.codegen.com/introduction/getting-started)\n- [Contributing](CONTRIBUTING.md)\n- [Contact Us](https://codegen.com/contact)\n\n## Why Codegen?\n\nSoftware development is fundamentally programmatic. Refactoring a codebase, enforcing patterns, or analyzing control flow - these are all operations that can (and should) be expressed as programs themselves.\n\nWe built Codegen backwards from real-world refactors performed on enterprise codebases. Instead of starting with theoretical abstractions, we focused on creating APIs that match how developers actually think about code changes:\n\n- **Natural mental model**: Write transforms that read like your thought process - \"move this function\", \"rename this variable\", \"add this parameter\". No more wrestling with ASTs or manual import management.\n\n- **Battle-tested on complex codebases**: Handle Python, TypeScript, and React codebases with millions of lines of code.\n\n- **Built for advanced intelligences**: As AI developers become more sophisticated, they need expressive yet precise tools to manipulate code. Codegen provides a programmatic interface that both humans and AI can use to express complex transformations through code itself.\n\n## Contributing\n\nPlease see our [Contributing Guide](CONTRIBUTING.md) for instructions on how to set up the development environment and submit contributions.\n\n## Enterprise\n\nFor more information on enterprise engagements, please [contact us](https://codegen.com/contact) or [request a demo](https://codegen.com/request-demo).\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": null, diff --git a/tests/unit/codegen/cli/commands/update/test_update.py b/tests/unit/cli/commands/update/test_update.py similarity index 98% rename from tests/unit/codegen/cli/commands/update/test_update.py rename to tests/unit/cli/commands/update/test_update.py index 7d6e0ee09..a5b161588 100644 --- a/tests/unit/codegen/cli/commands/update/test_update.py +++ b/tests/unit/cli/commands/update/test_update.py @@ -7,7 +7,7 @@ from packaging.version import Version from rich.text import Text -from codegen.cli.commands.update import main +from graph_sitter.cli.commands.update import main @pytest.fixture(autouse=True) diff --git a/tests/unit/codegen/agents/__init__.py b/tests/unit/codegen/agents/__init__.py deleted file mode 100644 index e84cdd741..000000000 --- a/tests/unit/codegen/agents/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Unit tests for codegen.agents package diff --git a/tests/unit/codegen/agents/test_agent.py b/tests/unit/codegen/agents/test_agent.py deleted file mode 100644 index 00dd0efb0..000000000 --- a/tests/unit/codegen/agents/test_agent.py +++ /dev/null @@ -1,281 +0,0 @@ -from unittest.mock import MagicMock, patch - -import pytest -from codegen_api_client.api.agents_api import AgentsApi -from codegen_api_client.configuration import Configuration -from codegen_api_client.models.agent_run_response import AgentRunResponse - -from codegen.agents.agent import Agent, AgentTask -from codegen.agents.constants import CODEGEN_BASE_API_URL - - -class TestAgentTask: - @pytest.fixture - def agent_run_response(self): - """Create a mock AgentRunResponse""" - mock_response = MagicMock(spec=AgentRunResponse) - mock_response.id = "123" # Keep as string as this is likely the format from API - mock_response.status = "running" - mock_response.result = None - mock_response.web_url = "https://example.com/run/123" - return mock_response - - @pytest.fixture - def api_client(self): - """Create a mock ApiClient""" - mock_client = MagicMock() # Remove spec to allow dynamic attributes - mock_client.configuration = MagicMock() # Create configuration attribute - mock_client.configuration.access_token = "test-token" - return mock_client - - @pytest.fixture - def mock_agents_api(self): - """Create a proper mock for the AgentsApi""" - # Create a proper mock with a get method - mock_api = MagicMock(spec=AgentsApi) - return mock_api - - @pytest.fixture - def agent_task(self, agent_run_response, api_client, mock_agents_api): - """Create an AgentTask instance with mock dependencies""" - # Patch the AgentsApi constructor to return our mock - with patch("codegen.agents.agent.AgentsApi", return_value=mock_agents_api): - task = AgentTask(agent_run_response, api_client, org_id=42) - return task - - def test_init(self, agent_task, agent_run_response, api_client, mock_agents_api): - """Test initialization of AgentTask""" - assert agent_task.id == "123" - assert agent_task.org_id == 42 - assert agent_task.status == "running" - assert agent_task.result is None - assert agent_task.web_url == "https://example.com/run/123" - assert agent_task._api_client == api_client - assert agent_task._agents_api == mock_agents_api - - def test_refresh_without_id(self, agent_task, mock_agents_api): - """Test refresh method when job ID is None""" - agent_task.id = None - # Should return early without making API call - agent_task.refresh() - mock_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.assert_not_called() - - def test_refresh_with_id(self, agent_task, mock_agents_api): - """Test refresh method updates job status""" - # Setup mock API response - mock_updated_response = {"status": "completed", "result": {"output": "Success!"}} - mock_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.return_value = mock_updated_response - - # Call refresh - agent_task.refresh() - - # Verify API was called with correct params - mock_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.assert_called_once_with( - agent_run_id=123, # Use string ID as stored in agent_task.id - org_id=42, - authorization="Bearer test-token", - ) - - # Verify status was updated - assert agent_task.status == "completed" - assert agent_task.result == {"output": "Success!"} - - def test_refresh_with_dict_response(self, agent_task, mock_agents_api): - """Test refresh method when API returns dict instead of object""" - # Setup mock API response as dict - mock_updated_response = {"status": "failed", "result": {"error": "Something went wrong"}} - mock_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.return_value = mock_updated_response - - # Call refresh - agent_task.refresh() - - # Verify status was updated - assert agent_task.status == "failed" - assert agent_task.result == {"error": "Something went wrong"} - - -class TestAgent: - @pytest.fixture - def mock_api_client(self): - """Create a mock ApiClient""" - with patch("codegen.agents.agent.ApiClient") as mock_client_class: - mock_client = MagicMock() # Remove spec to allow dynamic attributes - mock_client.configuration = MagicMock() # Create configuration attribute - mock_client.configuration.access_token = "test-token" - mock_client_class.return_value = mock_client - yield mock_client - - @pytest.fixture - def mock_agents_api(self): - """Create a mock AgentsApi""" - with patch("codegen.agents.agent.AgentsApi") as mock_api_class: - mock_api = MagicMock(spec=AgentsApi) - mock_api_class.return_value = mock_api - yield mock_api - - @pytest.fixture - def agent(self, mock_api_client, mock_agents_api): - """Create an Agent instance with mock dependencies""" - with patch.object(Configuration, "__init__", return_value=None) as mock_config: - agent = Agent(token="test-token", org_id=42) - # Verify config initialization - mock_config.assert_called_once_with(host=CODEGEN_BASE_API_URL, access_token="test-token") - return agent - - def test_init_with_explicit_org_id(self, mock_api_client, mock_agents_api): - """Test initialization with explicitly provided org_id""" - with patch.object(Configuration, "__init__", return_value=None): - agent = Agent(token="test-token", org_id=42) - assert agent.token == "test-token" - assert agent.org_id == 42 - assert agent.api_client == mock_api_client - assert agent.agents_api == mock_agents_api - assert agent.current_job is None - - def test_init_with_default_org_id(self, mock_api_client, mock_agents_api): - """Test initialization with default org_id""" - with patch.object(Configuration, "__init__", return_value=None): - with patch.dict("os.environ", {"CODEGEN_ORG_ID": "99"}): - agent = Agent(token="test-token") - assert agent.org_id == 99 - - def test_init_with_custom_base_url(self, mock_api_client): - """Test initialization with custom base URL""" - with patch.object(Configuration, "__init__", return_value=None) as mock_config: - custom_url = "https://custom-api.example.com" - agent = Agent(token="test-token", org_id=42, base_url=custom_url) - mock_config.assert_called_once_with(host=custom_url, access_token="test-token") - - def test_run(self, agent, mock_agents_api): - """Test run method creates and returns job""" - # Setup mock API response - mock_run_response = MagicMock(spec=AgentRunResponse) - mock_run_response.id = "123" - mock_run_response.status = "running" - mock_run_response.result = None - mock_run_response.web_url = "https://example.com/run/123" - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.return_value = mock_run_response - - # Call run - job = agent.run("Test prompt") - - # Verify API call - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.assert_called_once() - call_args = mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.call_args - assert call_args[1]["org_id"] == 42 - assert call_args[1]["authorization"] == "Bearer test-token" - assert call_args[1]["_headers"] == {"Content-Type": "application/json"} - assert call_args[1]["create_agent_run_input"].prompt == "Test prompt" - - # Verify job - assert isinstance(job, AgentTask) - assert job.id == "123" - assert job.status == "running" - assert agent.current_job == job - - def test_get_status_with_no_job(self, agent): - """Test get_status when no job has been run""" - assert agent.get_status() is None - - def test_get_status_with_job(self, agent): - """Test get_status returns current job status""" - # Setup mock job - mock_job = MagicMock(spec=AgentTask) - mock_job.id = "123" - mock_job.status = "completed" - mock_job.result = {"output": "Success!"} - mock_job.web_url = "https://example.com/run/123" - - agent.current_job = mock_job - - # Call get_status - status = agent.get_status() - - # Verify job was refreshed - mock_job.refresh.assert_called_once() - - # Verify status - assert status == {"id": "123", "status": "completed", "result": {"output": "Success!"}, "web_url": "https://example.com/run/123"} - - -# Integration-like tests -class TestAgentIntegration: - @pytest.fixture - def mock_response(self): - """Create a mock response for API calls""" - mock_response = MagicMock() # Remove spec=AgentRunResponse - mock_response.id = 987 - mock_response.status = "running" - mock_response.result = None - mock_response.web_url = "https://example.com/run/987" - return mock_response - - @pytest.fixture - def mock_updated_response(self): - """Create a mock updated response for API calls""" - mock_updated = {"id": 987, "status": "completed", "result": {"output": "Task completed successfully"}, "web_url": "https://example.com/run/987"} - - return mock_updated - - def test_full_workflow(self, mock_response, mock_updated_response): - """Test a complete agent workflow from initialization to status check""" - with ( - patch("codegen.agents.agent.ApiClient") as mock_api_client_class, - patch("codegen.agents.agent.AgentsApi") as mock_agents_api_class, - patch.object(Configuration, "__init__", return_value=None), - ): - # Setup mocks - mock_api_client = MagicMock() # Remove spec to allow dynamic attributes - mock_api_client.configuration = MagicMock() # Create configuration attribute - mock_api_client.configuration.access_token = "test-token" - mock_api_client_class.return_value = mock_api_client - - # Setup agents API mock - mock_agents_api = MagicMock(spec=AgentsApi) - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.return_value = mock_response - mock_agents_api_class.return_value = mock_agents_api - - # We're patching the same class for both the Agent and AgentTask - mock_inner_agents_api = mock_agents_api - mock_inner_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.return_value = mock_updated_response - - # Initialize agent - agent = Agent(token="test-token", org_id=123) - - # Run agent - job = agent.run("Execute this instruction") - - # Verify job properties - assert job.id == 987 - assert job.status == "running" - assert job.result is None - - # Check status - status = agent.get_status() - - # Verify API calls - mock_agents_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.assert_called_once_with(agent_run_id=987, org_id=123, authorization="Bearer test-token") - - # Verify status - assert isinstance(status, dict) - assert status["id"] == 987 - assert status["status"] == "completed" - assert status["result"] == {"output": "Task completed successfully"} - assert status["web_url"] == "https://example.com/run/987" - - def test_exception_handling(self): - """Test handling of API exceptions during agent run""" - with patch("codegen.agents.agent.ApiClient"), patch("codegen.agents.agent.AgentsApi") as mock_agents_api_class, patch.object(Configuration, "__init__", return_value=None): - # Setup API to raise exception - mock_agents_api = MagicMock(spec=AgentsApi) - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.side_effect = Exception("API Error") - mock_agents_api_class.return_value = mock_agents_api - - # Initialize agent - agent = Agent(token="test-token", org_id=123) - - # Run agent and expect exception - with pytest.raises(Exception) as excinfo: - agent.run("Execute this instruction") - - assert "API Error" in str(excinfo.value) diff --git a/tests/unit/codegen/agents/test_api_client.py b/tests/unit/codegen/agents/test_api_client.py deleted file mode 100644 index a634f4478..000000000 --- a/tests/unit/codegen/agents/test_api_client.py +++ /dev/null @@ -1,360 +0,0 @@ -import datetime -import decimal -from enum import Enum -from unittest.mock import MagicMock, patch - -import pytest -from codegen_api_client.api_client import ApiClient -from codegen_api_client.api_response import ApiResponse -from codegen_api_client.configuration import Configuration -from codegen_api_client.exceptions import ApiException, ApiValueError -from pydantic import SecretStr - - -class TestEnum(Enum): - VALUE1 = "value1" - VALUE2 = "value2" - - -class TestModel: - def __init__(self, name: str, value: int): - self.name = name - self.value = value - - def to_dict(self): - return {"name": self.name, "value": self.value} - - -class TestApiClient: - @pytest.fixture - def api_client(self): - config = Configuration() - # Mock the RESTClientObject to avoid making actual HTTP requests - with patch("codegen_api_client.rest.RESTClientObject") as mock_rest: - client = ApiClient(configuration=config) - # Return the client with mocked rest_client - yield client - - def test_init_default_configuration(self): - """Test initialization with default configuration""" - with patch("codegen_api_client.configuration.Configuration.get_default") as mock_get_default: - mock_config = MagicMock() - mock_get_default.return_value = mock_config - with patch("codegen_api_client.rest.RESTClientObject"): - client = ApiClient() - assert client.configuration == mock_config - assert client.user_agent == "OpenAPI-Generator/1.0.0/python" - - def test_user_agent(self, api_client): - """Test user agent getter and setter""" - api_client.user_agent = "TestAgent/1.0" - assert api_client.user_agent == "TestAgent/1.0" - assert api_client.default_headers["User-Agent"] == "TestAgent/1.0" - - def test_set_default_header(self, api_client): - """Test setting default header""" - api_client.set_default_header("Custom-Header", "Custom-Value") - assert api_client.default_headers["Custom-Header"] == "Custom-Value" - - def test_sanitize_for_serialization_none(self, api_client): - """Test sanitization of None value""" - assert api_client.sanitize_for_serialization(None) is None - - def test_sanitize_for_serialization_enum(self, api_client): - """Test sanitization of Enum value""" - assert api_client.sanitize_for_serialization(TestEnum.VALUE1) == "value1" - - def test_sanitize_for_serialization_secret_str(self, api_client): - """Test sanitization of SecretStr value""" - secret = SecretStr("secret_value") - assert api_client.sanitize_for_serialization(secret) == "secret_value" - - def test_sanitize_for_serialization_primitive(self, api_client): - """Test sanitization of primitive values""" - assert api_client.sanitize_for_serialization("string") == "string" - assert api_client.sanitize_for_serialization(123) == 123 - assert api_client.sanitize_for_serialization(True) == True - assert api_client.sanitize_for_serialization(b"bytes") == b"bytes" - - def test_sanitize_for_serialization_list(self, api_client): - """Test sanitization of list values""" - data = [1, "string", None] - assert api_client.sanitize_for_serialization(data) == [1, "string", None] - - def test_sanitize_for_serialization_tuple(self, api_client): - """Test sanitization of tuple values""" - data = (1, "string", None) - assert api_client.sanitize_for_serialization(data) == (1, "string", None) - - def test_sanitize_for_serialization_datetime(self, api_client): - """Test sanitization of datetime values""" - dt = datetime.datetime(2022, 1, 1, 12, 0, 0, tzinfo=datetime.UTC) - assert api_client.sanitize_for_serialization(dt) == "2022-01-01T12:00:00+00:00" - - date = datetime.date(2022, 1, 1) - assert api_client.sanitize_for_serialization(date) == "2022-01-01" - - def test_sanitize_for_serialization_decimal(self, api_client): - """Test sanitization of Decimal values""" - dec = decimal.Decimal("123.45") - assert api_client.sanitize_for_serialization(dec) == "123.45" - - def test_sanitize_for_serialization_dict(self, api_client): - """Test sanitization of dict values""" - data = {"key1": "value1", "key2": 123, "key3": None} - assert api_client.sanitize_for_serialization(data) == data - - def test_sanitize_for_serialization_model(self, api_client): - """Test sanitization of OpenAPI model""" - model = TestModel("test", 123) - assert api_client.sanitize_for_serialization(model) == {"name": "test", "value": 123} - - def test_deserialize_primitive(self, api_client): - """Test deserialization of primitive values""" - # Testing through __deserialize method - assert api_client._ApiClient__deserialize_primitive("123", int) == 123 - assert api_client._ApiClient__deserialize_primitive("true", bool) == True - assert api_client._ApiClient__deserialize_primitive("12.34", float) == 12.34 - - def test_deserialize_date(self, api_client): - """Test deserialization of date values""" - date_str = "2022-01-01" - result = api_client._ApiClient__deserialize_date(date_str) - assert isinstance(result, datetime.date) - assert result.year == 2022 - assert result.month == 1 - assert result.day == 1 - - def test_deserialize_datetime(self, api_client): - """Test deserialization of datetime values""" - dt_str = "2022-01-01T12:00:00Z" - result = api_client._ApiClient__deserialize_datetime(dt_str) - assert isinstance(result, datetime.datetime) - assert result.year == 2022 - assert result.month == 1 - assert result.day == 1 - assert result.hour == 12 - assert result.minute == 0 - assert result.second == 0 - - def test_deserialize_enum(self, api_client): - """Test deserialization of enum values""" - assert api_client._ApiClient__deserialize_enum("value1", TestEnum) == TestEnum.VALUE1 - - # Test exception case - with pytest.raises(ApiException): - api_client._ApiClient__deserialize_enum("invalid", TestEnum) - - def test_parameters_to_tuples(self, api_client): - """Test parameters_to_tuples method""" - # Test with dictionary - params = {"param1": "value1", "param2": "value2"} - result = api_client.parameters_to_tuples(params, None) - assert result == [("param1", "value1"), ("param2", "value2")] - - # Test with list of tuples - params = [("param1", "value1"), ("param2", "value2")] - result = api_client.parameters_to_tuples(params, None) - assert result == params - - # Test with collection format - params = {"param1": ["value1", "value2", "value3"]} - collection_formats = {"param1": "csv"} - result = api_client.parameters_to_tuples(params, collection_formats) - assert result == [("param1", "value1,value2,value3")] - - # Test with 'multi' collection format - params = {"param1": ["value1", "value2", "value3"]} - collection_formats = {"param1": "multi"} - result = api_client.parameters_to_tuples(params, collection_formats) - assert result == [("param1", "value1"), ("param1", "value2"), ("param1", "value3")] - - def test_parameters_to_url_query(self, api_client): - """Test parameters_to_url_query method""" - # Test basic parameters - params = {"param1": "value1", "param2": "value2"} - result = api_client.parameters_to_url_query(params, None) - assert result == "param1=value1¶m2=value2" - - # Test with boolean values - params = {"param1": True, "param2": False} - result = api_client.parameters_to_url_query(params, None) - assert result == "param1=true¶m2=false" - - # Test with numeric values - params = {"param1": 123, "param2": 45.67} - result = api_client.parameters_to_url_query(params, None) - assert result == "param1=123¶m2=45.67" - - # Test with dict values (should be JSON serialized) - params = {"param1": {"key": "value"}} - result = api_client.parameters_to_url_query(params, None) - assert result == "param1=%7B%22key%22%3A%20%22value%22%7D" - - # Test with 'multi' collection format - params = {"param1": ["value1", "value2", "value3"]} - collection_formats = {"param1": "multi"} - result = api_client.parameters_to_url_query(params, collection_formats) - assert result == "param1=value1¶m1=value2¶m1=value3" - - def test_select_header_accept(self, api_client): - """Test select_header_accept method""" - # Test empty accepts - assert api_client.select_header_accept([]) is None - - # Test with JSON in accepts - accepts = ["application/xml", "application/json", "text/plain"] - assert api_client.select_header_accept(accepts) == "application/json" - - # Test without JSON in accepts - accepts = ["application/xml", "text/plain"] - assert api_client.select_header_accept(accepts) == "application/xml" - - def test_select_header_content_type(self, api_client): - """Test select_header_content_type method""" - # Test empty content types - assert api_client.select_header_content_type([]) is None - - # Test with JSON in content types - content_types = ["application/xml", "application/json", "text/plain"] - assert api_client.select_header_content_type(content_types) == "application/json" - - # Test without JSON in content types - content_types = ["application/xml", "text/plain"] - assert api_client.select_header_content_type(content_types) == "application/xml" - - def test_update_params_for_auth(self, api_client): - """Test update_params_for_auth method""" - # Setup mock configuration - api_client.configuration = MagicMock() - api_client.configuration.auth_settings.return_value = { - "api_key": {"in": "header", "key": "X-API-KEY", "value": "test-api-key", "type": "apiKey"}, - "query_param": {"in": "query", "key": "api_key", "value": "test-query-key", "type": "apiKey"}, - "cookie_auth": {"in": "cookie", "key": "session", "value": "test-cookie", "type": "apiKey"}, - } - - # Test authentication in header - headers = {} - queries = [] - api_client.update_params_for_auth(headers, queries, ["api_key"], "", "", None) - assert headers == {"X-API-KEY": "test-api-key"} - - # Test authentication in query - headers = {} - queries = [] - api_client.update_params_for_auth(headers, queries, ["query_param"], "", "", None) - assert queries == [("api_key", "test-query-key")] - - # Test authentication in cookie - headers = {} - queries = [] - api_client.update_params_for_auth(headers, queries, ["cookie_auth"], "", "", None) - assert headers == {"Cookie": "test-cookie"} - - # Test with request_auth override - headers = {} - queries = [] - request_auth = {"in": "header", "key": "X-CUSTOM-KEY", "value": "custom-value", "type": "apiKey"} - api_client.update_params_for_auth(headers, queries, ["api_key"], "", "", None, request_auth) - assert headers == {"X-CUSTOM-KEY": "custom-value"} - - # Test with invalid auth location - invalid_auth = {"in": "invalid", "key": "x-key", "value": "value", "type": "apiKey"} - with pytest.raises(ApiValueError): - api_client._apply_auth_params({}, [], "", "", None, invalid_auth) - - def test_param_serialize(self, api_client): - """Test param_serialize method""" - with patch.object(api_client, "sanitize_for_serialization") as mock_sanitize, patch.object(api_client, "default_headers", {}): # Empty the default headers - # Set return values for sanitize_for_serialization - mock_sanitize.side_effect = lambda x: x - - # Test with basic parameters - method = "GET" - resource_path = "/test/{id}" - path_params = {"id": "123"} - query_params = {"query": "value"} - header_params = {"header": "value"} - body = {"body": "content"} - - result = api_client.param_serialize(method, resource_path, path_params, query_params, header_params, body, None, None, None, None, None) - - # Verify result - assert isinstance(result, tuple) - assert result[0] == "GET" # method - assert "/test/123" in result[1] # url - assert "query=value" in result[1] # query params in url - assert "header" in result[2] # header_params contains 'header' key - assert result[2]["header"] == "value" # header_params has correct value - assert result[3] == {"body": "content"} # body - - def test_call_api(self, api_client): - """Test call_api method""" - # Mock the rest_client.request method - api_client.rest_client.request = MagicMock() - mock_response = MagicMock() - api_client.rest_client.request.return_value = mock_response - - # Call the method - response = api_client.call_api("GET", "https://api.example.com/test", {"header": "value"}, {"body": "content"}, [("param", "value")], 30) - - # Verify the call to rest_client.request - api_client.rest_client.request.assert_called_once_with( - "GET", "https://api.example.com/test", headers={"header": "value"}, body={"body": "content"}, post_params=[("param", "value")], _request_timeout=30 - ) - - # Verify the result - assert response == mock_response - - # Test exception case - api_client.rest_client.request.side_effect = ApiException(400) - with pytest.raises(ApiException): - api_client.call_api("GET", "https://api.example.com/test") - - def test_response_deserialize(self, api_client): - """Test response_deserialize method""" - # Mock RESTResponse - response_data = MagicMock() - response_data.status = 200 - response_data.data = b'{"name": "test", "value": 123}' - response_data.getheader.return_value = "application/json" - response_data.getheaders.return_value = {"Content-Type": "application/json"} - - # Create a mock response to return - mock_api_response = MagicMock(spec=ApiResponse) - - # Mock deserialize method and ApiResponse constructor - with ( - patch.object(api_client, "deserialize") as mock_deserialize, - patch("codegen_api_client.api_client.ApiResponse", return_value=mock_api_response) as mock_api_response_class, - ): - mock_deserialize.return_value = {"name": "test", "value": 123} - - # Test successful response deserialization - response_types_map = {"200": "TestModel"} - result = api_client.response_deserialize(response_data, response_types_map) - - # Verify ApiResponse was called with correct params - mock_api_response_class.assert_called_once_with(status_code=200, data={"name": "test", "value": 123}, headers={"Content-Type": "application/json"}, raw_data=response_data.data) - - # Verify the result - assert result == mock_api_response - - def test_response_deserialize_error(self, api_client): - """Test response_deserialize method with error response""" - # Mock RESTResponse for error - response_data = MagicMock() - response_data.status = 400 - response_data.data = b'{"error": "Bad Request"}' - response_data.getheader.return_value = "application/json" - response_data.getheaders.return_value = {"Content-Type": "application/json"} - - # Mock methods - with patch.object(api_client, "deserialize") as mock_deserialize, patch("codegen_api_client.exceptions.ApiException.from_response") as mock_exception: - mock_deserialize.return_value = {"error": "Bad Request"} - mock_exception.side_effect = ApiException(400) - - # Test error response - response_types_map = {"400": "ErrorModel"} - with pytest.raises(ApiException): - api_client.response_deserialize(response_data, response_types_map) diff --git a/tests/unit/codegen/agents/test_simple_agent.py b/tests/unit/codegen/agents/test_simple_agent.py deleted file mode 100644 index 522093b87..000000000 --- a/tests/unit/codegen/agents/test_simple_agent.py +++ /dev/null @@ -1,106 +0,0 @@ -"""Simplified test for the Agent class focusing on public interfaces. -This approach avoids the complexity of mocking internal implementations. -""" - -from unittest.mock import MagicMock, patch - -import pytest - -from codegen.agents.agent import Agent -from codegen.agents.constants import CODEGEN_BASE_API_URL - - -class TestAgent: - """Test the public interface of the Agent class.""" - - @pytest.fixture - def mock_agents_api(self): - """Create a mock for the AgentsApi.""" - mock_api = MagicMock() - # Set up response for create_agent_run - mock_create_response = MagicMock() - mock_create_response.id = 123 - mock_create_response.status = "running" - mock_create_response.result = None - mock_create_response.web_url = "https://example.com/agent/123" - - # Set up response for get_agent_run - mock_get_response = MagicMock() - mock_get_response.status = "completed" - mock_get_response.result = {"output": "Task completed successfully"} - - # Configure the mock methods - mock_api.create_agent_run_v1_organizations_org_id_agent_run_post.return_value = mock_create_response - mock_api.get_agent_run_v1_organizations_org_id_agent_run_agent_run_id_get.return_value = mock_get_response - - return mock_api - - @pytest.fixture - def agent(self, mock_agents_api): - """Create an Agent with mocked dependencies.""" - with patch("codegen.agents.agent.ApiClient"), patch("codegen.agents.agent.AgentsApi", return_value=mock_agents_api), patch("codegen.agents.agent.Configuration"): - agent = Agent(token="test-token", org_id=42) - return agent - - def test_initialization(self): - """Test Agent initialization with different parameters.""" - # Test with explicit org_id - with patch("codegen.agents.agent.ApiClient"), patch("codegen.agents.agent.AgentsApi"), patch("codegen.agents.agent.Configuration") as mock_config: - agent = Agent(token="test-token", org_id=42) - assert agent.token == "test-token" - assert agent.org_id == 42 - assert agent.current_job is None - - # Verify Configuration was initialized correctly - mock_config.assert_called_once_with(host=CODEGEN_BASE_API_URL, access_token="test-token") - - # Test with env var for org_id - with patch.dict("os.environ", {"CODEGEN_ORG_ID": "99"}): - agent = Agent(token="test-token") - assert agent.org_id == 99 - - # Test with custom base URL - custom_url = "https://custom-api.example.com" - agent = Agent(token="test-token", org_id=42, base_url=custom_url) - mock_config.assert_called_with(host=custom_url, access_token="test-token") - - def test_run_agent(self, agent, mock_agents_api): - """Test running an agent with a prompt.""" - # Run the agent - job = agent.run("Test prompt") - - # Verify the API was called correctly - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.assert_called_once() - call_args = mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.call_args[1] - assert call_args["org_id"] == 42 - assert call_args["authorization"] == "Bearer test-token" - assert call_args["_headers"] == {"Content-Type": "application/json"} - assert call_args["create_agent_run_input"].prompt == "Test prompt" - - # Verify the job properties - assert job.id == 123 - assert job.status == "running" - assert job.result is None - assert job.web_url == "https://example.com/agent/123" - assert agent.current_job == job - - def test_get_status_no_job(self, agent): - """Test get_status when no job has been run.""" - assert agent.get_status() is None - - def test_exception_handling(self): - """Test handling of API exceptions during agent run.""" - with patch("codegen.agents.agent.ApiClient"), patch("codegen.agents.agent.AgentsApi") as mock_agents_api_class, patch("codegen.agents.agent.Configuration"): - # Setup API to raise exception - mock_agents_api = MagicMock() - mock_agents_api.create_agent_run_v1_organizations_org_id_agent_run_post.side_effect = Exception("API Error") - mock_agents_api_class.return_value = mock_agents_api - - # Initialize agent - agent = Agent(token="test-token", org_id=123) - - # Run agent and expect exception - with pytest.raises(Exception) as excinfo: - agent.run("Execute this instruction") - - assert "API Error" in str(excinfo.value) diff --git a/tests/unit/codegen/gscli/test_cli.py b/tests/unit/codegen/gscli/test_cli.py deleted file mode 100644 index 9c3356d96..000000000 --- a/tests/unit/codegen/gscli/test_cli.py +++ /dev/null @@ -1,2 +0,0 @@ -def test_cli(): - import codegen.gscli # noqa: F401 diff --git a/tests/unit/codegen/conftest.py b/tests/unit/conftest.py similarity index 100% rename from tests/unit/codegen/conftest.py rename to tests/unit/conftest.py diff --git a/tests/unit/codegen/extensions/lsp/conftest.py b/tests/unit/extensions/lsp/conftest.py similarity index 84% rename from tests/unit/codegen/extensions/lsp/conftest.py rename to tests/unit/extensions/lsp/conftest.py index e05c4d5aa..74a3230ec 100644 --- a/tests/unit/codegen/extensions/lsp/conftest.py +++ b/tests/unit/extensions/lsp/conftest.py @@ -15,7 +15,7 @@ @pytest_lsp.fixture( config=ClientServerConfig( - server_command=[sys.executable, "-m", "codegen.extensions.lsp.lsp"], + server_command=[sys.executable, "-m", "graph_sitter.extensions.lsp.lsp"], ), ) async def lsp_client_uninitialized(lsp_client: LanguageClient): @@ -25,7 +25,7 @@ async def lsp_client_uninitialized(lsp_client: LanguageClient): @pytest_lsp.fixture( config=ClientServerConfig( - server_command=[sys.executable, "-m", "codegen.extensions.lsp.lsp"], + server_command=[sys.executable, "-m", "graph_sitter.extensions.lsp.lsp"], ), ) async def client(lsp_client: LanguageClient, codebase: Codebase): diff --git a/tests/unit/codegen/extensions/lsp/test_code_action.py b/tests/unit/extensions/lsp/test_code_action.py similarity index 98% rename from tests/unit/codegen/extensions/lsp/test_code_action.py rename to tests/unit/extensions/lsp/test_code_action.py index 22f2256cf..2bd42c891 100644 --- a/tests/unit/codegen/extensions/lsp/test_code_action.py +++ b/tests/unit/extensions/lsp/test_code_action.py @@ -16,7 +16,7 @@ ) from graph_sitter.core.codebase import Codebase -from tests.unit.codegen.extensions.lsp.utils import apply_edit +from tests.unit.extensions.lsp.utils import apply_edit logger = logging.getLogger(__name__) diff --git a/tests/unit/codegen/extensions/lsp/test_definition.py b/tests/unit/extensions/lsp/test_definition.py similarity index 100% rename from tests/unit/codegen/extensions/lsp/test_definition.py rename to tests/unit/extensions/lsp/test_definition.py diff --git a/tests/unit/codegen/extensions/lsp/test_document_symbols.py b/tests/unit/extensions/lsp/test_document_symbols.py similarity index 100% rename from tests/unit/codegen/extensions/lsp/test_document_symbols.py rename to tests/unit/extensions/lsp/test_document_symbols.py diff --git a/tests/unit/codegen/extensions/lsp/test_progress.py b/tests/unit/extensions/lsp/test_progress.py similarity index 97% rename from tests/unit/codegen/extensions/lsp/test_progress.py rename to tests/unit/extensions/lsp/test_progress.py index 22d803dda..2834fe6ec 100644 --- a/tests/unit/codegen/extensions/lsp/test_progress.py +++ b/tests/unit/extensions/lsp/test_progress.py @@ -5,7 +5,7 @@ from pytest_lsp import LanguageClient, client_capabilities from graph_sitter.core.codebase import Codebase -from tests.unit.codegen.extensions.lsp.utils import apply_edit +from tests.unit.extensions.lsp.utils import apply_edit def check_ascending(reports: list[types.WorkDoneProgressReport]): diff --git a/tests/unit/codegen/extensions/lsp/test_rename.py b/tests/unit/extensions/lsp/test_rename.py similarity index 93% rename from tests/unit/codegen/extensions/lsp/test_rename.py rename to tests/unit/extensions/lsp/test_rename.py index e9a315a5d..88c88e090 100644 --- a/tests/unit/codegen/extensions/lsp/test_rename.py +++ b/tests/unit/extensions/lsp/test_rename.py @@ -9,7 +9,7 @@ ) from graph_sitter.core.codebase import Codebase -from tests.unit.codegen.extensions.lsp.utils import apply_edit +from tests.unit.extensions.lsp.utils import apply_edit @pytest.mark.parametrize( diff --git a/tests/unit/codegen/extensions/lsp/test_workspace_sync.py b/tests/unit/extensions/lsp/test_workspace_sync.py similarity index 99% rename from tests/unit/codegen/extensions/lsp/test_workspace_sync.py rename to tests/unit/extensions/lsp/test_workspace_sync.py index 784c17d4c..78a60c0c4 100644 --- a/tests/unit/codegen/extensions/lsp/test_workspace_sync.py +++ b/tests/unit/extensions/lsp/test_workspace_sync.py @@ -18,7 +18,7 @@ from pytest_lsp import LanguageClient from graph_sitter.core.codebase import Codebase -from tests.unit.codegen.extensions.lsp.utils import apply_edit +from tests.unit.extensions.lsp.utils import apply_edit @pytest.fixture() diff --git a/tests/unit/codegen/extensions/lsp/utils.py b/tests/unit/extensions/lsp/utils.py similarity index 92% rename from tests/unit/codegen/extensions/lsp/utils.py rename to tests/unit/extensions/lsp/utils.py index f6b3f2b34..d7461a8fd 100644 --- a/tests/unit/codegen/extensions/lsp/utils.py +++ b/tests/unit/extensions/lsp/utils.py @@ -1,7 +1,7 @@ from lsprotocol.types import CreateFile, TextDocumentEdit, WorkspaceEdit -from codegen.extensions.lsp.utils import get_path from graph_sitter.core.codebase import Codebase +from graph_sitter.extensions.lsp.utils import get_path def apply_edit(codebase: Codebase, edit: WorkspaceEdit): diff --git a/tests/unit/codegen/extensions/test_message_annotation.py b/tests/unit/extensions/test_message_annotation.py similarity index 99% rename from tests/unit/codegen/extensions/test_message_annotation.py rename to tests/unit/extensions/test_message_annotation.py index c66f00e5e..626c687b5 100644 --- a/tests/unit/codegen/extensions/test_message_annotation.py +++ b/tests/unit/extensions/test_message_annotation.py @@ -2,7 +2,7 @@ # import pytest -# from codegen.extensions.tools.link_annotation import ( +# from graph_sitter.extensions.tools.link_annotation import ( # MessageChannel, # add_links_to_message, # extract_code_snippets, diff --git a/tests/unit/codegen/extensions/test_tools.py b/tests/unit/extensions/test_tools.py similarity index 99% rename from tests/unit/codegen/extensions/test_tools.py rename to tests/unit/extensions/test_tools.py index 588e7a5a7..c17621cfb 100644 --- a/tests/unit/codegen/extensions/test_tools.py +++ b/tests/unit/extensions/test_tools.py @@ -2,7 +2,7 @@ # import pytest -# from codegen.extensions.tools import ( +# from graph_sitter.extensions.tools import ( # create_file, # create_pr, # create_pr_comment, diff --git a/tests/unit/codegen/extensions/test_utils.py b/tests/unit/extensions/test_utils.py similarity index 92% rename from tests/unit/codegen/extensions/test_utils.py rename to tests/unit/extensions/test_utils.py index c980d82f4..ee095c06a 100644 --- a/tests/unit/codegen/extensions/test_utils.py +++ b/tests/unit/extensions/test_utils.py @@ -2,7 +2,7 @@ import pytest -from graph_sitter.extensions.utils import lru_cache, uncache_all +from graph_sitter.compiled.utils import lru_cache, uncache_all def test_lru_cache_with_uncache_all(): diff --git a/tests/unit/codegen/git/utils/test_clone_url.py b/tests/unit/git/utils/test_clone_url.py similarity index 92% rename from tests/unit/codegen/git/utils/test_clone_url.py rename to tests/unit/git/utils/test_clone_url.py index 07f4d174a..f4fe465b2 100644 --- a/tests/unit/codegen/git/utils/test_clone_url.py +++ b/tests/unit/git/utils/test_clone_url.py @@ -1,6 +1,6 @@ import pytest -from codegen.git.utils.clone_url import add_access_token_to_url +from graph_sitter.git.utils.clone_url import add_access_token_to_url @pytest.mark.parametrize( diff --git a/tests/unit/codegen/git/utils/test_language_detection.py b/tests/unit/git/utils/test_language_detection.py similarity index 98% rename from tests/unit/codegen/git/utils/test_language_detection.py rename to tests/unit/git/utils/test_language_detection.py index 3c83f640a..08261f63a 100644 --- a/tests/unit/codegen/git/utils/test_language_detection.py +++ b/tests/unit/git/utils/test_language_detection.py @@ -1,7 +1,7 @@ import pytest -from codegen.git.utils.language import determine_project_language from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.git.utils.language import determine_project_language from graph_sitter.shared.enums.programming_language import ProgrammingLanguage diff --git a/tests/unit/gscli/test_cli.py b/tests/unit/gscli/test_cli.py new file mode 100644 index 000000000..550193d5a --- /dev/null +++ b/tests/unit/gscli/test_cli.py @@ -0,0 +1,2 @@ +def test_cli(): + import graph_sitter.gscli # noqa: F401 diff --git a/tests/unit/runner/sandbox/conftest.py b/tests/unit/runner/sandbox/conftest.py new file mode 100644 index 000000000..1222b40c4 --- /dev/null +++ b/tests/unit/runner/sandbox/conftest.py @@ -0,0 +1,34 @@ +from collections.abc import Generator +from unittest.mock import patch + +import pytest + +from graph_sitter.codebase.config import ProjectConfig +from graph_sitter.core.codebase import Codebase +from graph_sitter.git.repo_operator.repo_operator import RepoOperator +from graph_sitter.runner.sandbox.executor import SandboxExecutor +from graph_sitter.runner.sandbox.runner import SandboxRunner +from graph_sitter.shared.enums.programming_language import ProgrammingLanguage + + +@pytest.fixture +def codebase(tmpdir) -> Codebase: + op = RepoOperator.create_from_files(repo_path=f"{tmpdir}/test-repo", files={"test.py": "a = 1"}, bot_commit=True) + projects = [ProjectConfig(repo_operator=op, programming_language=ProgrammingLanguage.PYTHON)] + codebase = Codebase(projects=projects) + return codebase + + +@pytest.fixture +def executor(codebase: Codebase) -> Generator[SandboxExecutor]: + yield SandboxExecutor(codebase) + + +@pytest.fixture +def runner(codebase: Codebase, tmpdir): + with patch("graph_sitter.runner.sandbox.runner.RepoOperator") as mock_op: + with patch.object(SandboxRunner, "_build_graph") as mock_init_codebase: + mock_init_codebase.return_value = codebase + mock_op.return_value = codebase.op + + yield SandboxRunner(repo_config=codebase.op.repo_config) diff --git a/tests/unit/runner/sandbox/test_executor.py b/tests/unit/runner/sandbox/test_executor.py new file mode 100644 index 000000000..82d6494db --- /dev/null +++ b/tests/unit/runner/sandbox/test_executor.py @@ -0,0 +1,230 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING +from unittest.mock import MagicMock + +import pytest + +from graph_sitter.codebase.config import SessionOptions +from graph_sitter.codebase.flagging.code_flag import CodeFlag +from graph_sitter.codebase.flagging.groupers.enums import GroupBy +from graph_sitter.git.models.codemod_context import CodemodContext +from graph_sitter.runner.models.codemod import GroupingConfig +from graph_sitter.shared.compilation.string_to_code import create_execute_function_from_codeblock + +if TYPE_CHECKING: + from graph_sitter.runner.sandbox.executor import SandboxExecutor + + +@pytest.mark.asyncio +async def test_execute_func_pass_in_codemod_context_takes_priority(executor: SandboxExecutor): + codemod_context = CodemodContext( + CODEMOD_LINK="http://codegen.sh/codemod/5678", + ) + mock_source = """ +print(context.CODEMOD_LINK) +""" + custom_scope = {"context": codemod_context} + code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source, custom_scope=custom_scope) + mock_log = MagicMock() + executor.codebase.log = mock_log + + result = await executor.execute(code_to_exec) + + assert result is not None + + assert mock_log.call_count == 1 + assert mock_log.call_args_list[0][0][0] == "http://codegen.sh/codemod/5678" + + +# @pytest.mark.asyncio +# async def test_init_execute_func_with_pull_request_context(executor: SandboxExecutor): +# mock_source = """ +# print(context.PULL_REQUEST.head.ref) +# print(context.PULL_REQUEST.base.ref) +# """ +# mock_cm_run = MagicMock(epic=MagicMock(id=1234, link="link", user=MagicMock(github_username="user")), codemod_version=MagicMock(source=mock_source)) +# mock_pull = MagicMock(spec=GithubWebhookPR, head=MagicMock(ref="test-head"), base=MagicMock(ref="test-base")) +# codemod_context = get_codemod_context(cm_run=mock_cm_run, pull_request=mock_pull) +# custom_scope = {"context": codemod_context} +# code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source, custom_scope=custom_scope) +# mock_log = MagicMock() +# executor.codebase.log = mock_log +# +# result = await executor.execute(code_to_exec) +# +# assert result is not None +# assert mock_log.call_count == 2 +# assert mock_log.call_args_list[0][0][0] == "test-head" +# assert mock_log.call_args_list[1][0][0] == "test-base" +# +# +# @pytest.mark.asyncio +# async def test_init_execute_func_with_pull_request_context_mock_codebase(executor: SandboxExecutor): +# mock_source = """ +# print(context.PULL_REQUEST.head.ref) +# print(context.PULL_REQUEST.base.ref) +# """ +# mock_cm_run = MagicMock(epic=MagicMock(id=1234, link="link", user=MagicMock(github_username="user")), codemod_version=MagicMock(source=mock_source)) +# mock_pull = MagicMock(spec=GithubWebhookPR, head=MagicMock(ref="test-head"), base=MagicMock(ref="test-base")) +# codemod_context = get_codemod_context(cm_run=mock_cm_run, pull_request=mock_pull) +# custom_scope = {"context": codemod_context} +# code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source, custom_scope=custom_scope) +# +# result = await executor.execute(code_to_exec) +# +# # validate +# assert result is not None +# assert ( +# result.logs +# == """ +# test-head +# test-base +# """.lstrip() +# ) + + +@pytest.mark.asyncio +async def test_run_max_preview_time_exceeded_sets_observation_meta(executor: SandboxExecutor): + mock_source = """ +codebase.files[0].edit("a = 2") +""" + code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source) + result = await executor.execute(code_to_exec, session_options=SessionOptions(max_seconds=0)) + + assert result.is_complete + assert result.observation_meta == {"flags": [], "stop_codemod_exception_type": "MaxPreviewTimeExceeded", "threshold": 0} + + +@pytest.mark.asyncio +async def test_run_max_ai_requests_error_sets_observation_meta(executor: SandboxExecutor): + mock_source = """ +codebase.ai("tell me a joke") +""" + code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source) + result = await executor.execute(code_to_exec, session_options=SessionOptions(max_ai_requests=0)) + + assert result.is_complete + assert result.observation_meta == {"flags": [], "stop_codemod_exception_type": "MaxAIRequestsError", "threshold": 0} + + +@pytest.mark.asyncio +async def test_run_max_transactions_exceeded_sets_observation_meta(executor: SandboxExecutor): + mock_source = """ +codebase.files[0].edit("a = 2") +""" + + code_to_exec = create_execute_function_from_codeblock(codeblock=mock_source) + result = await executor.execute(code_to_exec, session_options=SessionOptions(max_transactions=0)) + + assert result.is_complete + assert result.observation_meta == {"flags": [], "stop_codemod_exception_type": "MaxTransactionsExceeded", "threshold": 0} + + +@pytest.mark.asyncio +async def test_find_flag_groups_with_subdirectories(executor: SandboxExecutor): + groups = await executor.find_flag_groups( + code_flags=[ + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir1/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir2/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir3/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir3/file2.py")), + message="message", + ), + ], + grouping_config=GroupingConfig(subdirectories=["subdir1", "subdir2"]), + ) + assert len(groups) == 1 + assert len(groups[0].flags) == 2 + assert groups[0].flags[0].filepath == "subdir1/file1.py" + assert groups[0].flags[1].filepath == "subdir2/file1.py" + + +@pytest.mark.asyncio +async def test_find_flag_groups_with_group_by(executor: SandboxExecutor): + groups = await executor.find_flag_groups( + code_flags=[ + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir1/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir2/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir3/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir1/file1.py")), + message="message", + ), + ], + grouping_config=GroupingConfig(group_by=GroupBy.FILE), + ) + assert len(groups) == 3 + assert groups[0].segment == "subdir1/file1.py" + assert groups[1].segment == "subdir2/file1.py" + assert groups[2].segment == "subdir3/file1.py" + + assert len(groups[0].flags) == 2 + assert len(groups[1].flags) == 1 + assert len(groups[2].flags) == 1 + + +@pytest.mark.asyncio +@pytest.mark.parametrize("codebase", [121], indirect=True) +async def test_find_flag_groups_with_group_by_app(executor: SandboxExecutor): + groups = await executor.find_flag_groups( + code_flags=[ + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="a/b/app1/test1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="a/b/app2/test1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="a/b/app3/test1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="a/b/app2/test2.py")), + message="message", + ), + ], + grouping_config=GroupingConfig(group_by=GroupBy.APP), + ) + count_by_segment = {group.segment: len(group.flags) for group in groups} + assert count_by_segment == {"a/b/app1": 1, "a/b/app2": 2, "a/b/app3": 1} + + +@pytest.mark.skip(reason="TODO: add max_prs as part of find_flag_groups") +@pytest.mark.asyncio +async def test_find_flag_groups_with_max_prs(executor: SandboxExecutor): + groups = await executor.find_flag_groups( + code_flags=[ + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir1/file1.py")), + message="message", + ), + CodeFlag( + symbol=MagicMock(file=MagicMock(filepath="subdir2/file1.py")), + message="message", + ), + ], + grouping_config=GroupingConfig(group_by=GroupBy.FILE, max_prs=0), + ) + assert len(groups) == 0 diff --git a/tests/unit/runner/sandbox/test_runner.py b/tests/unit/runner/sandbox/test_runner.py new file mode 100644 index 000000000..4ed56ca75 --- /dev/null +++ b/tests/unit/runner/sandbox/test_runner.py @@ -0,0 +1,123 @@ +from unittest.mock import PropertyMock, patch + +import pytest + +from graph_sitter.runner.sandbox.runner import SandboxRunner + + +@pytest.mark.asyncio +@patch("graph_sitter.runner.sandbox.executor.SandboxExecutor") +async def test_sandbox_runner_warmup_builds_graph(mock_executor, runner: SandboxRunner): + await runner.warmup() + assert runner.codebase.files + assert len(runner.codebase.files) == 1 + + +@pytest.mark.asyncio +@patch("graph_sitter.runner.sandbox.runner.SandboxRunner._build_graph") +async def test_sandbox_runner_warmup_builds_graph_throws(mock_build_graph, runner: SandboxRunner): + mock_build_graph.side_effect = Exception("Test exception") + + with pytest.raises(Exception): + await runner.warmup() + + +@pytest.mark.asyncio +@patch("graph_sitter.runner.sandbox.runner.logger") +@patch("graph_sitter.runner.sandbox.runner.SandboxExecutor") +async def test_sandbox_runner_warmup_logs_repo_id(mock_executor, mock_logger, runner: SandboxRunner): + await runner.warmup() + assert runner.codebase.files + assert len(runner.codebase.files) == 1 + assert mock_logger.info.call_count == 1 + assert "Warming runner for test-repo" in mock_logger.info.call_args_list[0][0][0] + + +@pytest.mark.asyncio +@patch("graph_sitter.runner.sandbox.runner.SandboxExecutor") +async def test_sandbox_runner_warmup_starts_with_default_branch(mock_executor, runner: SandboxRunner): + await runner.warmup() # assert True is returned + # assert len(runner.codebase._op.git_cli.branches) == 1 TODO: fix GHA creating master and main branch + assert not runner.codebase._op.git_cli.head.is_detached + assert runner.codebase._op.git_cli.active_branch.name == runner.codebase.default_branch + assert runner.codebase._op.git_cli.head.commit == runner.op.head_commit + + +@pytest.mark.asyncio +@patch("graph_sitter.runner.sandbox.runner.logger") +@patch("graph_sitter.runner.sandbox.runner.SandboxExecutor") +@patch("graph_sitter.core.codebase.Codebase.default_branch", new_callable=PropertyMock) +async def test_sandbox_runner_reset_runner_deletes_branches(mock_branch, mock_executor, mock_logger, runner: SandboxRunner): + mock_branch.return_value = "main" + await runner.warmup() + num_branches = len(runner.codebase._op.git_cli.heads) # TODO: fix GHA creating master and main branch and assert the len is 1 at the start + runner.codebase.checkout(branch="test-branch-a", create_if_missing=True) + runner.codebase.checkout(branch="test-branch-b", create_if_missing=True) + assert len(runner.codebase._op.git_cli.heads) == num_branches + 2 + + +# @pytest.mark.asyncio +# @patch("graph_sitter.runner.sandbox.executor.get_runner_feature_flags") +# @patch("graph_sitter.runner.sandbox.executor.SandboxExecutor.execute") +# async def test_sandbox_runner_run_reset_runner_same_branch_state( +# mock_run_execute_flag_groups, +# mock_ffs, +# runner: SandboxRunner, +# db_mock: DBMock, +# db_mock_connection: MockConnectionProvider, +# ): +# """Test that the branch post warm-up state and the post reset_runner state is the same""" +# mock_ffs.return_value = RunnerFeatureFlags() +# mock_run_execute_flag_groups.return_value = CodemodRunResult() +# session = db_mock_connection.get_session() +# mock_source = """ +# codebase.files[0].edit("a = 2") +# """ +# +# # after warmup sandbox is on default branch at self.commit +# await runner.warmup() +# assert not runner.codebase._op.git_cli.head.is_detached +# assert runner.codebase._op.git_cli.active_branch.name == runner.codebase.default_branch +# assert runner.codebase._op.git_cli.head.commit == runner.commit +# +# mock_instances = [*create_mock_codemod_run(create_epic=True, codemod_version_source=mock_source)] +# with db_mock.from_orm(mock_instances) as mocked_data: +# cm_run = mocked_data[CodemodRunModel][0] +# cm_version = mocked_data[CodemodVersionModel][0] +# epic = mocked_data[TaskEpicModel][0] +# codemod = serialize_mock_cm_run(cm_run, cm_version, epic) +# branch_config = BranchConfig(base_branch=runner.codebase.default_branch) +# request = CreateBranchRequest(codemod=codemod, grouping_config=GroupingConfig(), branch_config=branch_config) +# await runner.create_branch(request=request) +# +# # assert a PR branch was created +# assert "codegen-codemod-1-version-1-run-1-group-0" in runner.codebase._op.git_cli.heads +# +# # after running and resetting runner, sandbox is again on default branch at self.commit +# runner.reset_runner() +# assert len(runner.codebase._op.git_cli.heads) == 1 # now should be on default branch at self.commit +# assert not runner.codebase._op.git_cli.head.is_detached +# assert runner.codebase._op.git_cli.active_branch.name == runner.codebase.default_branch +# assert runner.codebase._op.git_cli.head.commit == runner.commit +# +# +# @pytest.mark.asyncio +# @patch("graph_sitter.runner.sandbox.runner.logger") +# async def test_run_user_code_exception_sets_failure_returns_empty_codemod_run_result(mock_logger, runner: SandboxRunner): +# with pytest.raises(InvalidUserCodeException): +# mock_syntax_error_source = """ +# = 1 +# """ +# mock_db = MagicMock() +# mock_db.get().repo.language = ProgrammingLanguage.PYTHON +# mock_cm_run = MagicMock( +# spec=CodemodRunModel, epic=MagicMock(id=1234, link="link", user=MagicMock(github_username="user"), title="test-epic"), codemod_version=MagicMock(id=123, source=mock_syntax_error_source) +# ) +# req = GetDiffRequest(codemod=serialize_cm_run(mock_cm_run)) +# +# await runner.get_diff(request=req) +# +# assert mock_logger.error.call_count == 1 +# assert "InvalidUserCodeException caught compiling codemod version: 123" in mock_logger.error.call_args_list[0][0][0] +# assert "SyntaxError" in mock_cm_run.error +# assert "invalid syntax" in mock_cm_run.error diff --git a/tests/unit/codegen/runner/utils/test_branch_name.py b/tests/unit/runner/utils/test_branch_name.py similarity index 91% rename from tests/unit/codegen/runner/utils/test_branch_name.py rename to tests/unit/runner/utils/test_branch_name.py index 916b6cdbd..5251be00a 100644 --- a/tests/unit/codegen/runner/utils/test_branch_name.py +++ b/tests/unit/runner/utils/test_branch_name.py @@ -1,6 +1,6 @@ from unittest.mock import MagicMock -from codegen.runner.utils.branch_name import get_head_branch_name +from graph_sitter.runner.utils.branch_name import get_head_branch_name def test_get_head_branch_name_no_name(): diff --git a/tests/unit/codegen/sdk/benchmark/codebase/test_codebase_reset.py b/tests/unit/sdk/benchmark/codebase/test_codebase_reset.py similarity index 100% rename from tests/unit/codegen/sdk/benchmark/codebase/test_codebase_reset.py rename to tests/unit/sdk/benchmark/codebase/test_codebase_reset.py diff --git a/tests/unit/codegen/sdk/code_generation/__init__.py b/tests/unit/sdk/code_generation/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/code_generation/__init__.py rename to tests/unit/sdk/code_generation/__init__.py diff --git a/tests/unit/codegen/sdk/code_generation/test_codemod_writer_decorators.py b/tests/unit/sdk/code_generation/test_codemod_writer_decorators.py similarity index 100% rename from tests/unit/codegen/sdk/code_generation/test_codemod_writer_decorators.py rename to tests/unit/sdk/code_generation/test_codemod_writer_decorators.py diff --git a/tests/unit/codegen/sdk/codebase/__init__.py b/tests/unit/sdk/codebase/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/__init__.py rename to tests/unit/sdk/codebase/__init__.py diff --git a/tests/unit/codegen/sdk/codebase/codebase_graph/test_codebase_graph.py b/tests/unit/sdk/codebase/codebase_graph/test_codebase_graph.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/codebase_graph/test_codebase_graph.py rename to tests/unit/sdk/codebase/codebase_graph/test_codebase_graph.py diff --git a/tests/unit/codegen/sdk/codebase/codebase_graph/test_codebase_reset.py b/tests/unit/sdk/codebase/codebase_graph/test_codebase_reset.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/codebase_graph/test_codebase_reset.py rename to tests/unit/sdk/codebase/codebase_graph/test_codebase_reset.py diff --git a/tests/unit/codegen/sdk/codebase/codebase_graph/test_validation.py b/tests/unit/sdk/codebase/codebase_graph/test_validation.py similarity index 97% rename from tests/unit/codegen/sdk/codebase/codebase_graph/test_validation.py rename to tests/unit/sdk/codebase/codebase_graph/test_validation.py index dcb5c7f22..ec9671578 100644 --- a/tests/unit/codegen/sdk/codebase/codebase_graph/test_validation.py +++ b/tests/unit/sdk/codebase/codebase_graph/test_validation.py @@ -1,7 +1,7 @@ from graph_sitter.codebase.factory.get_session import get_codebase_session from graph_sitter.codebase.validation import PostInitValidationStatus, post_init_validation +from graph_sitter.compiled.utils import uncache_all from graph_sitter.enums import NodeType -from graph_sitter.extensions.utils import uncache_all def test_post_init_validation_valid_graph(tmpdir) -> None: diff --git a/tests/unit/codegen/sdk/codebase/file/example.min.js b/tests/unit/sdk/codebase/file/example.min.js similarity index 100% rename from tests/unit/codegen/sdk/codebase/file/example.min.js rename to tests/unit/sdk/codebase/file/example.min.js diff --git a/tests/unit/codegen/sdk/codebase/file/test_file.py b/tests/unit/sdk/codebase/file/test_file.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/file/test_file.py rename to tests/unit/sdk/codebase/file/test_file.py diff --git a/tests/unit/codegen/sdk/codebase/file/test_file_edit.py b/tests/unit/sdk/codebase/file/test_file_edit.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/file/test_file_edit.py rename to tests/unit/sdk/codebase/file/test_file_edit.py diff --git a/tests/unit/codegen/sdk/codebase/file/test_file_pink.py b/tests/unit/sdk/codebase/file/test_file_pink.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/file/test_file_pink.py rename to tests/unit/sdk/codebase/file/test_file_pink.py diff --git a/tests/unit/codegen/sdk/codebase/file/test_get_relative_path.py b/tests/unit/sdk/codebase/file/test_get_relative_path.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/file/test_get_relative_path.py rename to tests/unit/sdk/codebase/file/test_get_relative_path.py diff --git a/tests/unit/codegen/sdk/codebase/file_graph/test_symbol_parent_statement.py b/tests/unit/sdk/codebase/file_graph/test_symbol_parent_statement.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/file_graph/test_symbol_parent_statement.py rename to tests/unit/sdk/codebase/file_graph/test_symbol_parent_statement.py diff --git a/tests/unit/codegen/sdk/codebase/flagging/test_code_flag.py b/tests/unit/sdk/codebase/flagging/test_code_flag.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/flagging/test_code_flag.py rename to tests/unit/sdk/codebase/flagging/test_code_flag.py diff --git a/tests/unit/codegen/sdk/codebase/flagging/test_group_all.py b/tests/unit/sdk/codebase/flagging/test_group_all.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/flagging/test_group_all.py rename to tests/unit/sdk/codebase/flagging/test_group_all.py diff --git a/tests/unit/codegen/sdk/codebase/session/target_python_file.py b/tests/unit/sdk/codebase/session/target_python_file.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/session/target_python_file.py rename to tests/unit/sdk/codebase/session/target_python_file.py diff --git a/tests/unit/codegen/sdk/codebase/session/test_codebase_from_files.py b/tests/unit/sdk/codebase/session/test_codebase_from_files.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/session/test_codebase_from_files.py rename to tests/unit/sdk/codebase/session/test_codebase_from_files.py diff --git a/tests/unit/codegen/sdk/codebase/session/test_codebase_from_string.py b/tests/unit/sdk/codebase/session/test_codebase_from_string.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/session/test_codebase_from_string.py rename to tests/unit/sdk/codebase/session/test_codebase_from_string.py diff --git a/tests/unit/codegen/sdk/codebase/session/test_codebase_session_corruption.py b/tests/unit/sdk/codebase/session/test_codebase_session_corruption.py similarity index 95% rename from tests/unit/codegen/sdk/codebase/session/test_codebase_session_corruption.py rename to tests/unit/sdk/codebase/session/test_codebase_session_corruption.py index 129dae39c..4293eefe4 100644 --- a/tests/unit/codegen/sdk/codebase/session/test_codebase_session_corruption.py +++ b/tests/unit/sdk/codebase/session/test_codebase_session_corruption.py @@ -11,7 +11,7 @@ def test_get_codebase_session(tmpdir) -> None: # target_file must be a file that shares the same relative path in the codegen-sdk repo # Init Test - target_file = "tests/unit/codegen/sdk/codebase/session/target_python_file.py" + target_file = "tests/unit/sdk/codebase/session/target_python_file.py" assert os.path.exists(target_file), f"Target file {target_file} does not exist! Please change this to a file that exists in codegen-sdk" target_orig_content = open(target_file).read() diff --git a/tests/unit/codegen/sdk/codebase/session/test_verify_output.py b/tests/unit/sdk/codebase/session/test_verify_output.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/session/test_verify_output.py rename to tests/unit/sdk/codebase/session/test_verify_output.py diff --git a/tests/unit/codegen/sdk/codebase/transaction_manager/test_transaction_manager.py b/tests/unit/sdk/codebase/transaction_manager/test_transaction_manager.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/transaction_manager/test_transaction_manager.py rename to tests/unit/sdk/codebase/transaction_manager/test_transaction_manager.py diff --git a/tests/unit/codegen/sdk/codebase/transaction_manager/test_transaction_mangager_checks.py b/tests/unit/sdk/codebase/transaction_manager/test_transaction_mangager_checks.py similarity index 100% rename from tests/unit/codegen/sdk/codebase/transaction_manager/test_transaction_mangager_checks.py rename to tests/unit/sdk/codebase/transaction_manager/test_transaction_mangager_checks.py diff --git a/tests/unit/codegen/sdk/core/interfaces/test_files_interface.py b/tests/unit/sdk/core/interfaces/test_files_interface.py similarity index 100% rename from tests/unit/codegen/sdk/core/interfaces/test_files_interface.py rename to tests/unit/sdk/core/interfaces/test_files_interface.py diff --git a/tests/unit/codegen/sdk/core/interfaces/test_importable_dependencies.py b/tests/unit/sdk/core/interfaces/test_importable_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/core/interfaces/test_importable_dependencies.py rename to tests/unit/sdk/core/interfaces/test_importable_dependencies.py diff --git a/tests/unit/codegen/sdk/core/test_codebase.py b/tests/unit/sdk/core/test_codebase.py similarity index 100% rename from tests/unit/codegen/sdk/core/test_codebase.py rename to tests/unit/sdk/core/test_codebase.py diff --git a/tests/unit/codegen/sdk/core/test_codeowner.py b/tests/unit/sdk/core/test_codeowner.py similarity index 100% rename from tests/unit/codegen/sdk/core/test_codeowner.py rename to tests/unit/sdk/core/test_codeowner.py diff --git a/tests/unit/codegen/sdk/core/test_directory.py b/tests/unit/sdk/core/test_directory.py similarity index 100% rename from tests/unit/codegen/sdk/core/test_directory.py rename to tests/unit/sdk/core/test_directory.py diff --git a/tests/unit/codegen/sdk/core/utils/test_cache_utils.py b/tests/unit/sdk/core/utils/test_cache_utils.py similarity index 100% rename from tests/unit/codegen/sdk/core/utils/test_cache_utils.py rename to tests/unit/sdk/core/utils/test_cache_utils.py diff --git a/tests/unit/codegen/sdk/io/test_file_io.py b/tests/unit/sdk/io/test_file_io.py similarity index 100% rename from tests/unit/codegen/sdk/io/test_file_io.py rename to tests/unit/sdk/io/test_file_io.py diff --git a/tests/unit/codegen/sdk/output/snapshots/test_ast/test_ast_basic/ast.json b/tests/unit/sdk/output/snapshots/test_ast/test_ast_basic/ast.json similarity index 100% rename from tests/unit/codegen/sdk/output/snapshots/test_ast/test_ast_basic/ast.json rename to tests/unit/sdk/output/snapshots/test_ast/test_ast_basic/ast.json diff --git a/tests/unit/codegen/sdk/output/snapshots/test_ast/test_ast_nested/ast-nested.json b/tests/unit/sdk/output/snapshots/test_ast/test_ast_nested/ast-nested.json similarity index 100% rename from tests/unit/codegen/sdk/output/snapshots/test_ast/test_ast_nested/ast-nested.json rename to tests/unit/sdk/output/snapshots/test_ast/test_ast_nested/ast-nested.json diff --git a/tests/unit/codegen/sdk/output/test_ast.py b/tests/unit/sdk/output/test_ast.py similarity index 100% rename from tests/unit/codegen/sdk/output/test_ast.py rename to tests/unit/sdk/output/test_ast.py diff --git a/tests/unit/codegen/sdk/output/test_json.py b/tests/unit/sdk/output/test_json.py similarity index 100% rename from tests/unit/codegen/sdk/output/test_json.py rename to tests/unit/sdk/output/test_json.py diff --git a/tests/unit/codegen/sdk/parser/__init__.py b/tests/unit/sdk/parser/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/parser/__init__.py rename to tests/unit/sdk/parser/__init__.py diff --git a/tests/unit/codegen/sdk/parser/test_get_parser_by_filepath_or_extension.py b/tests/unit/sdk/parser/test_get_parser_by_filepath_or_extension.py similarity index 100% rename from tests/unit/codegen/sdk/parser/test_get_parser_by_filepath_or_extension.py rename to tests/unit/sdk/parser/test_get_parser_by_filepath_or_extension.py diff --git a/tests/unit/codegen/sdk/python/__init__.py b/tests/unit/sdk/python/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/__init__.py rename to tests/unit/sdk/python/__init__.py diff --git a/tests/unit/codegen/sdk/python/autocommit/test_autocommit.py b/tests/unit/sdk/python/autocommit/test_autocommit.py similarity index 100% rename from tests/unit/codegen/sdk/python/autocommit/test_autocommit.py rename to tests/unit/sdk/python/autocommit/test_autocommit.py diff --git a/tests/unit/codegen/sdk/python/class_definition/__init__.py b/tests/unit/sdk/python/class_definition/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/__init__.py rename to tests/unit/sdk/python/class_definition/__init__.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_add_attribute.py b/tests/unit/sdk/python/class_definition/test_class_add_attribute.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_add_attribute.py rename to tests/unit/sdk/python/class_definition/test_class_add_attribute.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_add_comment.py b/tests/unit/sdk/python/class_definition/test_class_add_comment.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_add_comment.py rename to tests/unit/sdk/python/class_definition/test_class_add_comment.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_add_decorator.py b/tests/unit/sdk/python/class_definition/test_class_add_decorator.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_add_decorator.py rename to tests/unit/sdk/python/class_definition/test_class_add_decorator.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_add_method.py b/tests/unit/sdk/python/class_definition/test_class_add_method.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_add_method.py rename to tests/unit/sdk/python/class_definition/test_class_add_method.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_constructor_usages.py b/tests/unit/sdk/python/class_definition/test_class_constructor_usages.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_constructor_usages.py rename to tests/unit/sdk/python/class_definition/test_class_constructor_usages.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_dependencies.py b/tests/unit/sdk/python/class_definition/test_class_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_dependencies.py rename to tests/unit/sdk/python/class_definition/test_class_dependencies.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_editable.py b/tests/unit/sdk/python/class_definition/test_class_editable.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_editable.py rename to tests/unit/sdk/python/class_definition/test_class_editable.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_extended.py b/tests/unit/sdk/python/class_definition/test_class_extended.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_extended.py rename to tests/unit/sdk/python/class_definition/test_class_extended.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_filter.py b/tests/unit/sdk/python/class_definition/test_class_filter.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_filter.py rename to tests/unit/sdk/python/class_definition/test_class_filter.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_inherited_methods.py b/tests/unit/sdk/python/class_definition/test_class_inherited_methods.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_inherited_methods.py rename to tests/unit/sdk/python/class_definition/test_class_inherited_methods.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_method_usages.py b/tests/unit/sdk/python/class_definition/test_class_method_usages.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_method_usages.py rename to tests/unit/sdk/python/class_definition/test_class_method_usages.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_parent_class_names.py b/tests/unit/sdk/python/class_definition/test_class_parent_class_names.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_parent_class_names.py rename to tests/unit/sdk/python/class_definition/test_class_parent_class_names.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_parent_classes.py b/tests/unit/sdk/python/class_definition/test_class_parent_classes.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_parent_classes.py rename to tests/unit/sdk/python/class_definition/test_class_parent_classes.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_properties.py b/tests/unit/sdk/python/class_definition/test_class_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_properties.py rename to tests/unit/sdk/python/class_definition/test_class_properties.py diff --git a/tests/unit/codegen/sdk/python/class_definition/test_class_rename.py b/tests/unit/sdk/python/class_definition/test_class_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/class_definition/test_class_rename.py rename to tests/unit/sdk/python/class_definition/test_class_rename.py diff --git a/tests/unit/codegen/sdk/python/codebase/__init__.py b/tests/unit/sdk/python/codebase/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/__init__.py rename to tests/unit/sdk/python/codebase/__init__.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase.py b/tests/unit/sdk/python/codebase/test_codebase.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase.py rename to tests/unit/sdk/python/codebase/test_codebase.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_auto_commit.py b/tests/unit/sdk/python/codebase/test_codebase_auto_commit.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_auto_commit.py rename to tests/unit/sdk/python/codebase/test_codebase_auto_commit.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_create_file.py b/tests/unit/sdk/python/codebase/test_codebase_create_file.py similarity index 96% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_create_file.py rename to tests/unit/sdk/python/codebase/test_codebase_create_file.py index da7384488..72f1ee420 100644 --- a/tests/unit/codegen/sdk/python/codebase/test_codebase_create_file.py +++ b/tests/unit/sdk/python/codebase/test_codebase_create_file.py @@ -5,7 +5,7 @@ from graph_sitter.codebase.factory.get_session import get_codebase_session from graph_sitter.core.codebase import Codebase from graph_sitter.core.file import File -from tests.unit.codegen.sdk.python.utils.test_file_contents import file1_content, file2_content +from tests.unit.sdk.python.utils.test_file_contents import file1_content, file2_content @pytest.fixture(scope="function") diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_git.py b/tests/unit/sdk/python/codebase/test_codebase_git.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_git.py rename to tests/unit/sdk/python/codebase/test_codebase_git.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_log.py b/tests/unit/sdk/python/codebase/test_codebase_log.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_log.py rename to tests/unit/sdk/python/codebase/test_codebase_log.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_meta.py b/tests/unit/sdk/python/codebase/test_codebase_meta.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_meta.py rename to tests/unit/sdk/python/codebase/test_codebase_meta.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_raise_error.py b/tests/unit/sdk/python/codebase/test_codebase_raise_error.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_raise_error.py rename to tests/unit/sdk/python/codebase/test_codebase_raise_error.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_reset.py b/tests/unit/sdk/python/codebase/test_codebase_reset.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_reset.py rename to tests/unit/sdk/python/codebase/test_codebase_reset.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_codebase_resolution.py b/tests/unit/sdk/python/codebase/test_codebase_resolution.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_codebase_resolution.py rename to tests/unit/sdk/python/codebase/test_codebase_resolution.py diff --git a/tests/unit/codegen/sdk/python/codebase/test_control_flow.py b/tests/unit/sdk/python/codebase/test_control_flow.py similarity index 100% rename from tests/unit/codegen/sdk/python/codebase/test_control_flow.py rename to tests/unit/sdk/python/codebase/test_control_flow.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_comment.py b/tests/unit/sdk/python/comment_docstring/test_comment.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_comment.py rename to tests/unit/sdk/python/comment_docstring/test_comment.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_comment_edit.py b/tests/unit/sdk/python/comment_docstring/test_comment_edit.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_comment_edit.py rename to tests/unit/sdk/python/comment_docstring/test_comment_edit.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_comment_insert_add.py b/tests/unit/sdk/python/comment_docstring/test_comment_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_comment_insert_add.py rename to tests/unit/sdk/python/comment_docstring/test_comment_insert_add.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_docstring.py b/tests/unit/sdk/python/comment_docstring/test_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_docstring.py rename to tests/unit/sdk/python/comment_docstring/test_docstring.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_docstring_edit.py b/tests/unit/sdk/python/comment_docstring/test_docstring_edit.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_docstring_edit.py rename to tests/unit/sdk/python/comment_docstring/test_docstring_edit.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_docstring_insert_add.py b/tests/unit/sdk/python/comment_docstring/test_docstring_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_docstring_insert_add.py rename to tests/unit/sdk/python/comment_docstring/test_docstring_insert_add.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment.py b/tests/unit/sdk/python/comment_docstring/test_inline_comment.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment.py rename to tests/unit/sdk/python/comment_docstring/test_inline_comment.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment_edit.py b/tests/unit/sdk/python/comment_docstring/test_inline_comment_edit.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment_edit.py rename to tests/unit/sdk/python/comment_docstring/test_inline_comment_edit.py diff --git a/tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment_insert_add.py b/tests/unit/sdk/python/comment_docstring/test_inline_comment_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/python/comment_docstring/test_inline_comment_insert_add.py rename to tests/unit/sdk/python/comment_docstring/test_inline_comment_insert_add.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/__init__.py b/tests/unit/sdk/python/detached_symbols/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/__init__.py rename to tests/unit/sdk/python/detached_symbols/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/argument/__init__.py b/tests/unit/sdk/python/detached_symbols/argument/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/argument/__init__.py rename to tests/unit/sdk/python/detached_symbols/argument/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/argument/test_argument_edit.py b/tests/unit/sdk/python/detached_symbols/argument/test_argument_edit.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/argument/test_argument_edit.py rename to tests/unit/sdk/python/detached_symbols/argument/test_argument_edit.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/argument/test_argument_remove.py b/tests/unit/sdk/python/detached_symbols/argument/test_argument_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/argument/test_argument_remove.py rename to tests/unit/sdk/python/detached_symbols/argument/test_argument_remove.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/__init__.py b/tests/unit/sdk/python/detached_symbols/code_block/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/__init__.py rename to tests/unit/sdk/python/detached_symbols/code_block/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_indent.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block_indent.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_indent.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block_indent.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_insert.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block_insert.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_insert.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block_insert.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_remove.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_remove.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block_remove.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_unwrap.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block_unwrap.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_unwrap.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block_unwrap.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_wrap.py b/tests/unit/sdk/python/detached_symbols/code_block/test_code_block_wrap.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/code_block/test_code_block_wrap.py rename to tests/unit/sdk/python/detached_symbols/code_block/test_code_block_wrap.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/decorator/__init__.py b/tests/unit/sdk/python/detached_symbols/decorator/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/decorator/__init__.py rename to tests/unit/sdk/python/detached_symbols/decorator/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_call.py b/tests/unit/sdk/python/detached_symbols/decorator/test_decorator_call.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_call.py rename to tests/unit/sdk/python/detached_symbols/decorator/test_decorator_call.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_name.py b/tests/unit/sdk/python/detached_symbols/decorator/test_decorator_name.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_name.py rename to tests/unit/sdk/python/detached_symbols/decorator/test_decorator_name.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_remove.py b/tests/unit/sdk/python/detached_symbols/decorator/test_decorator_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/decorator/test_decorator_remove.py rename to tests/unit/sdk/python/detached_symbols/decorator/test_decorator_remove.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/decorator/test_insert_argument.py b/tests/unit/sdk/python/detached_symbols/decorator/test_insert_argument.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/decorator/test_insert_argument.py rename to tests/unit/sdk/python/detached_symbols/decorator/test_insert_argument.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/__init__.py b/tests/unit/sdk/python/detached_symbols/function_call/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/__init__.py rename to tests/unit/sdk/python/detached_symbols/function_call/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call.py b/tests/unit/sdk/python/detached_symbols/function_call/test_function_call.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_function_call.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_add_argument.py b/tests/unit/sdk/python/detached_symbols/function_call/test_function_call_add_argument.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_add_argument.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_function_call_add_argument.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_from_usage.py b/tests/unit/sdk/python/detached_symbols/function_call/test_function_call_from_usage.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_from_usage.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_function_call_from_usage.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_is_awaited.py b/tests/unit/sdk/python/detached_symbols/function_call/test_function_call_is_awaited.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_call_is_awaited.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_function_call_is_awaited.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_calls_from_symbol.py b/tests/unit/sdk/python/detached_symbols/function_call/test_function_calls_from_symbol.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_function_calls_from_symbol.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_function_calls_from_symbol.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/function_call/test_manipulations_function_call.py b/tests/unit/sdk/python/detached_symbols/function_call/test_manipulations_function_call.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/function_call/test_manipulations_function_call.py rename to tests/unit/sdk/python/detached_symbols/function_call/test_manipulations_function_call.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/__init__.py b/tests/unit/sdk/python/detached_symbols/parameter/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/__init__.py rename to tests/unit/sdk/python/detached_symbols/parameter/__init__.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_edit.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_edit.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_edit.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_edit.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_editable.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_editable.py similarity index 95% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_editable.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_editable.py index 280921804..e0f093d2b 100644 --- a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_editable.py +++ b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_editable.py @@ -1,7 +1,7 @@ import re from graph_sitter.codebase.factory.get_session import get_codebase_session -from tests.unit.codegen.sdk.python.utils.test_file_contents import file1_content, file2_content +from tests.unit.sdk.python.utils.test_file_contents import file1_content, file2_content def test_function_parameter_edit(tmpdir) -> None: diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_is_optional.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_is_optional.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_is_optional.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_is_optional.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_is_variadic.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_is_variadic.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_is_variadic.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_is_variadic.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_properties.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_properties.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_properties.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_remove.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_remove.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_remove.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_rename.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_rename.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_rename.py diff --git a/tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_set_type_annotation.py b/tests/unit/sdk/python/detached_symbols/parameter/test_parameter_set_type_annotation.py similarity index 100% rename from tests/unit/codegen/sdk/python/detached_symbols/parameter/test_parameter_set_type_annotation.py rename to tests/unit/sdk/python/detached_symbols/parameter/test_parameter_set_type_annotation.py diff --git a/tests/unit/codegen/sdk/python/directory/test_directory.py b/tests/unit/sdk/python/directory/test_directory.py similarity index 100% rename from tests/unit/codegen/sdk/python/directory/test_directory.py rename to tests/unit/sdk/python/directory/test_directory.py diff --git a/tests/unit/codegen/sdk/python/directory/test_directory_move.py b/tests/unit/sdk/python/directory/test_directory_move.py similarity index 100% rename from tests/unit/codegen/sdk/python/directory/test_directory_move.py rename to tests/unit/sdk/python/directory/test_directory_move.py diff --git a/tests/unit/codegen/sdk/python/directory/test_directory_remove.py b/tests/unit/sdk/python/directory/test_directory_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/directory/test_directory_remove.py rename to tests/unit/sdk/python/directory/test_directory_remove.py diff --git a/tests/unit/codegen/sdk/python/editable/test_replace.py b/tests/unit/sdk/python/editable/test_replace.py similarity index 100% rename from tests/unit/codegen/sdk/python/editable/test_replace.py rename to tests/unit/sdk/python/editable/test_replace.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_binary_expression.py b/tests/unit/sdk/python/expressions/test_binary_expression.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_binary_expression.py rename to tests/unit/sdk/python/expressions/test_binary_expression.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_binary_reduce_condition.py b/tests/unit/sdk/python/expressions/test_binary_reduce_condition.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_binary_reduce_condition.py rename to tests/unit/sdk/python/expressions/test_binary_reduce_condition.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_boolean.py b/tests/unit/sdk/python/expressions/test_boolean.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_boolean.py rename to tests/unit/sdk/python/expressions/test_boolean.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_builtin_types.py b/tests/unit/sdk/python/expressions/test_builtin_types.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_builtin_types.py rename to tests/unit/sdk/python/expressions/test_builtin_types.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_chained_attribute_attribute_chain.py b/tests/unit/sdk/python/expressions/test_chained_attribute_attribute_chain.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_chained_attribute_attribute_chain.py rename to tests/unit/sdk/python/expressions/test_chained_attribute_attribute_chain.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_conditional_properties.py b/tests/unit/sdk/python/expressions/test_conditional_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_conditional_properties.py rename to tests/unit/sdk/python/expressions/test_conditional_properties.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_conditional_reduce_condition.py b/tests/unit/sdk/python/expressions/test_conditional_reduce_condition.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_conditional_reduce_condition.py rename to tests/unit/sdk/python/expressions/test_conditional_reduce_condition.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_dict.py b/tests/unit/sdk/python/expressions/test_dict.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_dict.py rename to tests/unit/sdk/python/expressions/test_dict.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_list.py b/tests/unit/sdk/python/expressions/test_list.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_list.py rename to tests/unit/sdk/python/expressions/test_list.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_number.py b/tests/unit/sdk/python/expressions/test_number.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_number.py rename to tests/unit/sdk/python/expressions/test_number.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_string.py b/tests/unit/sdk/python/expressions/test_string.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_string.py rename to tests/unit/sdk/python/expressions/test_string.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_tuple.py b/tests/unit/sdk/python/expressions/test_tuple.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_tuple.py rename to tests/unit/sdk/python/expressions/test_tuple.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_type.py b/tests/unit/sdk/python/expressions/test_type.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_type.py rename to tests/unit/sdk/python/expressions/test_type.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_unpacking.py b/tests/unit/sdk/python/expressions/test_unpacking.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_unpacking.py rename to tests/unit/sdk/python/expressions/test_unpacking.py diff --git a/tests/unit/codegen/sdk/python/expressions/test_value.py b/tests/unit/sdk/python/expressions/test_value.py similarity index 100% rename from tests/unit/codegen/sdk/python/expressions/test_value.py rename to tests/unit/sdk/python/expressions/test_value.py diff --git a/tests/unit/codegen/sdk/python/file/__init__.py b/tests/unit/sdk/python/file/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/__init__.py rename to tests/unit/sdk/python/file/__init__.py diff --git a/tests/unit/codegen/sdk/python/file/test_ast_grep.py b/tests/unit/sdk/python/file/test_ast_grep.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_ast_grep.py rename to tests/unit/sdk/python/file/test_ast_grep.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_add_import.py b/tests/unit/sdk/python/file/test_file_add_import.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_add_import.py rename to tests/unit/sdk/python/file/test_file_add_import.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_add_import_from_import_string.py b/tests/unit/sdk/python/file/test_file_add_import_from_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_add_import_from_import_string.py rename to tests/unit/sdk/python/file/test_file_add_import_from_import_string.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_add_symbol_from_source.py b/tests/unit/sdk/python/file/test_file_add_symbol_from_source.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_add_symbol_from_source.py rename to tests/unit/sdk/python/file/test_file_add_symbol_from_source.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_editable.py b/tests/unit/sdk/python/file/test_file_editable.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_editable.py rename to tests/unit/sdk/python/file/test_file_editable.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_exportable.py b/tests/unit/sdk/python/file/test_file_exportable.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_exportable.py rename to tests/unit/sdk/python/file/test_file_exportable.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_get_function_calls.py b/tests/unit/sdk/python/file/test_file_get_function_calls.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_get_function_calls.py rename to tests/unit/sdk/python/file/test_file_get_function_calls.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_get_import_string.py b/tests/unit/sdk/python/file/test_file_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_get_import_string.py rename to tests/unit/sdk/python/file/test_file_get_import_string.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_global_calls.py b/tests/unit/sdk/python/file/test_file_global_calls.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_global_calls.py rename to tests/unit/sdk/python/file/test_file_global_calls.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_owners.py b/tests/unit/sdk/python/file/test_file_owners.py similarity index 90% rename from tests/unit/codegen/sdk/python/file/test_file_owners.py rename to tests/unit/sdk/python/file/test_file_owners.py index b99e2e165..1a487d91d 100644 --- a/tests/unit/codegen/sdk/python/file/test_file_owners.py +++ b/tests/unit/sdk/python/file/test_file_owners.py @@ -21,7 +21,7 @@ def test_file_owners_codeowners_parser_returns_non_empty_set(tmpdir) -> None: """ mock_codeowners = MagicMock() mock_codeowners.of = lambda file_path: [("TEAM", "@team-owner"), ("USER", "@user-owner")] if file_path == "file.py" else {} - with patch("codegen.git.repo_operator.repo_operator.RepoOperator.codeowners_parser", mock_codeowners): + with patch("graph_sitter.git.repo_operator.repo_operator.RepoOperator.codeowners_parser", mock_codeowners): with get_codebase_session(tmpdir=tmpdir, files={"file.py": content}) as codebase: file = codebase.get_file("file.py") owners = file.owners diff --git a/tests/unit/codegen/sdk/python/file/test_file_properties.py b/tests/unit/sdk/python/file/test_file_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_properties.py rename to tests/unit/sdk/python/file/test_file_properties.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_remove.py b/tests/unit/sdk/python/file/test_file_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_remove.py rename to tests/unit/sdk/python/file/test_file_remove.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_reparse.py b/tests/unit/sdk/python/file/test_file_reparse.py similarity index 98% rename from tests/unit/codegen/sdk/python/file/test_file_reparse.py rename to tests/unit/sdk/python/file/test_file_reparse.py index 6c9bab5ab..cb841422e 100644 --- a/tests/unit/codegen/sdk/python/file/test_file_reparse.py +++ b/tests/unit/sdk/python/file/test_file_reparse.py @@ -4,7 +4,7 @@ from graph_sitter.core.codebase import Codebase from graph_sitter.core.file import File from graph_sitter.enums import EdgeType -from tests.unit.codegen.sdk.python.utils.test_file_contents import file1_content, file2_content +from tests.unit.sdk.python.utils.test_file_contents import file1_content, file2_content @pytest.fixture(scope="function") diff --git a/tests/unit/codegen/sdk/python/file/test_file_statements.py b/tests/unit/sdk/python/file/test_file_statements.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_statements.py rename to tests/unit/sdk/python/file/test_file_statements.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_unicode.py b/tests/unit/sdk/python/file/test_file_unicode.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_unicode.py rename to tests/unit/sdk/python/file/test_file_unicode.py diff --git a/tests/unit/codegen/sdk/python/file/test_file_update_filepath.py b/tests/unit/sdk/python/file/test_file_update_filepath.py similarity index 100% rename from tests/unit/codegen/sdk/python/file/test_file_update_filepath.py rename to tests/unit/sdk/python/file/test_file_update_filepath.py diff --git a/tests/unit/codegen/sdk/python/function/__init__.py b/tests/unit/sdk/python/function/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/__init__.py rename to tests/unit/sdk/python/function/__init__.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_async.py b/tests/unit/sdk/python/function/test_function_async.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_async.py rename to tests/unit/sdk/python/function/test_function_async.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_call_sites.py b/tests/unit/sdk/python/function/test_function_call_sites.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_call_sites.py rename to tests/unit/sdk/python/function/test_function_call_sites.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_dependencies.py b/tests/unit/sdk/python/function/test_function_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_dependencies.py rename to tests/unit/sdk/python/function/test_function_dependencies.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_editable.py b/tests/unit/sdk/python/function/test_function_editable.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_editable.py rename to tests/unit/sdk/python/function/test_function_editable.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_eq.py b/tests/unit/sdk/python/function/test_function_eq.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_eq.py rename to tests/unit/sdk/python/function/test_function_eq.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_exportable.py b/tests/unit/sdk/python/function/test_function_exportable.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_exportable.py rename to tests/unit/sdk/python/function/test_function_exportable.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_flag.py b/tests/unit/sdk/python/function/test_function_flag.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_flag.py rename to tests/unit/sdk/python/function/test_function_flag.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_function_calls.py b/tests/unit/sdk/python/function/test_function_function_calls.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_function_calls.py rename to tests/unit/sdk/python/function/test_function_function_calls.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_get_parameter_by_index.py b/tests/unit/sdk/python/function/test_function_get_parameter_by_index.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_get_parameter_by_index.py rename to tests/unit/sdk/python/function/test_function_get_parameter_by_index.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_importable.py b/tests/unit/sdk/python/function/test_function_importable.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_importable.py rename to tests/unit/sdk/python/function/test_function_importable.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_insert_statements.py b/tests/unit/sdk/python/function/test_function_insert_statements.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_insert_statements.py rename to tests/unit/sdk/python/function/test_function_insert_statements.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_move_to_file.py b/tests/unit/sdk/python/function/test_function_move_to_file.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_move_to_file.py rename to tests/unit/sdk/python/function/test_function_move_to_file.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_nested_functions.py b/tests/unit/sdk/python/function/test_function_nested_functions.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_nested_functions.py rename to tests/unit/sdk/python/function/test_function_nested_functions.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_parse.py b/tests/unit/sdk/python/function/test_function_parse.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_parse.py rename to tests/unit/sdk/python/function/test_function_parse.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_prepend_statements.py b/tests/unit/sdk/python/function/test_function_prepend_statements.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_prepend_statements.py rename to tests/unit/sdk/python/function/test_function_prepend_statements.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_properties.py b/tests/unit/sdk/python/function/test_function_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_properties.py rename to tests/unit/sdk/python/function/test_function_properties.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_remove.py b/tests/unit/sdk/python/function/test_function_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_remove.py rename to tests/unit/sdk/python/function/test_function_remove.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_rename.py b/tests/unit/sdk/python/function/test_function_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_rename.py rename to tests/unit/sdk/python/function/test_function_rename.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_set_docstring.py b/tests/unit/sdk/python/function/test_function_set_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_set_docstring.py rename to tests/unit/sdk/python/function/test_function_set_docstring.py diff --git a/tests/unit/codegen/sdk/python/function/test_function_usages.py b/tests/unit/sdk/python/function/test_function_usages.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_function_usages.py rename to tests/unit/sdk/python/function/test_function_usages.py diff --git a/tests/unit/codegen/sdk/python/function/test_manipulations_function.py b/tests/unit/sdk/python/function/test_manipulations_function.py similarity index 100% rename from tests/unit/codegen/sdk/python/function/test_manipulations_function.py rename to tests/unit/sdk/python/function/test_manipulations_function.py diff --git a/tests/unit/codegen/sdk/python/global_var/__init__.py b/tests/unit/sdk/python/global_var/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/__init__.py rename to tests/unit/sdk/python/global_var/__init__.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_editable.py b/tests/unit/sdk/python/global_var/test_global_var_editable.py similarity index 98% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_editable.py rename to tests/unit/sdk/python/global_var/test_global_var_editable.py index 2aa7c4ebc..3ca354432 100644 --- a/tests/unit/codegen/sdk/python/global_var/test_global_var_editable.py +++ b/tests/unit/sdk/python/global_var/test_global_var_editable.py @@ -1,5 +1,5 @@ from graph_sitter.codebase.factory.get_session import get_codebase_session -from tests.unit.codegen.sdk.python.utils.test_file_contents import file1_content, file2_content +from tests.unit.sdk.python.utils.test_file_contents import file1_content, file2_content def test_global_var_source(tmpdir) -> None: diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_exportable.py b/tests/unit/sdk/python/global_var/test_global_var_exportable.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_exportable.py rename to tests/unit/sdk/python/global_var/test_global_var_exportable.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_has_value.py b/tests/unit/sdk/python/global_var/test_global_var_has_value.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_has_value.py rename to tests/unit/sdk/python/global_var/test_global_var_has_value.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_importable.py b/tests/unit/sdk/python/global_var/test_global_var_importable.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_importable.py rename to tests/unit/sdk/python/global_var/test_global_var_importable.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_properties.py b/tests/unit/sdk/python/global_var/test_global_var_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_properties.py rename to tests/unit/sdk/python/global_var/test_global_var_properties.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_remove.py b/tests/unit/sdk/python/global_var/test_global_var_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_remove.py rename to tests/unit/sdk/python/global_var/test_global_var_remove.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_rename.py b/tests/unit/sdk/python/global_var/test_global_var_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_rename.py rename to tests/unit/sdk/python/global_var/test_global_var_rename.py diff --git a/tests/unit/codegen/sdk/python/global_var/test_global_var_special.py b/tests/unit/sdk/python/global_var/test_global_var_special.py similarity index 100% rename from tests/unit/codegen/sdk/python/global_var/test_global_var_special.py rename to tests/unit/sdk/python/global_var/test_global_var_special.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/__init__.py b/tests/unit/sdk/python/import_resolution/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/__init__.py rename to tests/unit/sdk/python/import_resolution/__init__.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_has_import.py b/tests/unit/sdk/python/import_resolution/test_has_import.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_has_import.py rename to tests/unit/sdk/python/import_resolution/test_has_import.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_editable.py b/tests/unit/sdk/python/import_resolution/test_import_editable.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_editable.py rename to tests/unit/sdk/python/import_resolution/test_import_editable.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_exportable.py b/tests/unit/sdk/python/import_resolution/test_import_exportable.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_exportable.py rename to tests/unit/sdk/python/import_resolution/test_import_exportable.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_from_import_statements.py b/tests/unit/sdk/python/import_resolution/test_import_from_import_statements.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_from_import_statements.py rename to tests/unit/sdk/python/import_resolution/test_import_from_import_statements.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_relative.py b/tests/unit/sdk/python/import_resolution/test_import_relative.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_relative.py rename to tests/unit/sdk/python/import_resolution/test_import_relative.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_remove.py b/tests/unit/sdk/python/import_resolution/test_import_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_remove.py rename to tests/unit/sdk/python/import_resolution/test_import_remove.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_rename.py b/tests/unit/sdk/python/import_resolution/test_import_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_rename.py rename to tests/unit/sdk/python/import_resolution/test_import_rename.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_resolution.py b/tests/unit/sdk/python/import_resolution/test_import_resolution.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_resolution.py rename to tests/unit/sdk/python/import_resolution/test_import_resolution.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_resolved_symbol.py b/tests/unit/sdk/python/import_resolution/test_import_resolved_symbol.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_resolved_symbol.py rename to tests/unit/sdk/python/import_resolution/test_import_resolved_symbol.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_set_import_module.py b/tests/unit/sdk/python/import_resolution/test_import_set_import_module.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_set_import_module.py rename to tests/unit/sdk/python/import_resolution/test_import_set_import_module.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_import_set_import_symbol_alias.py b/tests/unit/sdk/python/import_resolution/test_import_set_import_symbol_alias.py similarity index 100% rename from tests/unit/codegen/sdk/python/import_resolution/test_import_set_import_symbol_alias.py rename to tests/unit/sdk/python/import_resolution/test_import_set_import_symbol_alias.py diff --git a/tests/unit/codegen/sdk/python/import_resolution/test_is_dynamic.py b/tests/unit/sdk/python/import_resolution/test_is_dynamic.py similarity index 99% rename from tests/unit/codegen/sdk/python/import_resolution/test_is_dynamic.py rename to tests/unit/sdk/python/import_resolution/test_is_dynamic.py index ebfec4a85..f0f74b3ca 100644 --- a/tests/unit/codegen/sdk/python/import_resolution/test_is_dynamic.py +++ b/tests/unit/sdk/python/import_resolution/test_is_dynamic.py @@ -1,5 +1,5 @@ -from codegen import Codebase from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.core.codebase import Codebase from graph_sitter.core.function import Function from graph_sitter.core.statements.for_loop_statement import ForLoopStatement from graph_sitter.core.statements.if_block_statement import IfBlockStatement diff --git a/tests/unit/codegen/sdk/python/statements/__init__.py b/tests/unit/sdk/python/statements/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/__init__.py rename to tests/unit/sdk/python/statements/__init__.py diff --git a/tests/unit/codegen/sdk/python/statements/test_assignment_statement_remove.py b/tests/unit/sdk/python/statements/test_assignment_statement_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_assignment_statement_remove.py rename to tests/unit/sdk/python/statements/test_assignment_statement_remove.py diff --git a/tests/unit/codegen/sdk/python/statements/test_assignment_statement_rename.py b/tests/unit/sdk/python/statements/test_assignment_statement_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_assignment_statement_rename.py rename to tests/unit/sdk/python/statements/test_assignment_statement_rename.py diff --git a/tests/unit/codegen/sdk/python/statements/test_assignment_statement_set_assignment_value.py b/tests/unit/sdk/python/statements/test_assignment_statement_set_assignment_value.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_assignment_statement_set_assignment_value.py rename to tests/unit/sdk/python/statements/test_assignment_statement_set_assignment_value.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_assignment_value.py b/tests/unit/sdk/python/statements/test_attribute_assignment_value.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_assignment_value.py rename to tests/unit/sdk/python/statements/test_attribute_assignment_value.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_get_usages.py b/tests/unit/sdk/python/statements/test_attribute_get_usages.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_get_usages.py rename to tests/unit/sdk/python/statements/test_attribute_get_usages.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_properties.py b/tests/unit/sdk/python/statements/test_attribute_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_properties.py rename to tests/unit/sdk/python/statements/test_attribute_properties.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_remove.py b/tests/unit/sdk/python/statements/test_attribute_remove.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_remove.py rename to tests/unit/sdk/python/statements/test_attribute_remove.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_rename.py b/tests/unit/sdk/python/statements/test_attribute_rename.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_rename.py rename to tests/unit/sdk/python/statements/test_attribute_rename.py diff --git a/tests/unit/codegen/sdk/python/statements/test_attribute_set_type_annotation.py b/tests/unit/sdk/python/statements/test_attribute_set_type_annotation.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_attribute_set_type_annotation.py rename to tests/unit/sdk/python/statements/test_attribute_set_type_annotation.py diff --git a/tests/unit/codegen/sdk/python/statements/test_for_loop_statement.py b/tests/unit/sdk/python/statements/test_for_loop_statement.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_for_loop_statement.py rename to tests/unit/sdk/python/statements/test_for_loop_statement.py diff --git a/tests/unit/codegen/sdk/python/statements/test_if_block_reduce_block.py b/tests/unit/sdk/python/statements/test_if_block_reduce_block.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_if_block_reduce_block.py rename to tests/unit/sdk/python/statements/test_if_block_reduce_block.py diff --git a/tests/unit/codegen/sdk/python/statements/test_if_block_statement_properties.py b/tests/unit/sdk/python/statements/test_if_block_statement_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_if_block_statement_properties.py rename to tests/unit/sdk/python/statements/test_if_block_statement_properties.py diff --git a/tests/unit/codegen/sdk/python/statements/test_import_statement.py b/tests/unit/sdk/python/statements/test_import_statement.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_import_statement.py rename to tests/unit/sdk/python/statements/test_import_statement.py diff --git a/tests/unit/codegen/sdk/python/statements/test_match_statement.py b/tests/unit/sdk/python/statements/test_match_statement.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_match_statement.py rename to tests/unit/sdk/python/statements/test_match_statement.py diff --git a/tests/unit/codegen/sdk/python/statements/test_try_catch_statement.py b/tests/unit/sdk/python/statements/test_try_catch_statement.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_try_catch_statement.py rename to tests/unit/sdk/python/statements/test_try_catch_statement.py diff --git a/tests/unit/codegen/sdk/python/statements/test_while_statement.py b/tests/unit/sdk/python/statements/test_while_statement.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_while_statement.py rename to tests/unit/sdk/python/statements/test_while_statement.py diff --git a/tests/unit/codegen/sdk/python/statements/test_with_statement_properties.py b/tests/unit/sdk/python/statements/test_with_statement_properties.py similarity index 100% rename from tests/unit/codegen/sdk/python/statements/test_with_statement_properties.py rename to tests/unit/sdk/python/statements/test_with_statement_properties.py diff --git a/tests/unit/codegen/sdk/python/test_print.py b/tests/unit/sdk/python/test_print.py similarity index 100% rename from tests/unit/codegen/sdk/python/test_print.py rename to tests/unit/sdk/python/test_print.py diff --git a/tests/unit/codegen/sdk/python/utils/__init__.py b/tests/unit/sdk/python/utils/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/python/utils/__init__.py rename to tests/unit/sdk/python/utils/__init__.py diff --git a/tests/unit/codegen/sdk/python/utils/test_file_contents.py b/tests/unit/sdk/python/utils/test_file_contents.py similarity index 100% rename from tests/unit/codegen/sdk/python/utils/test_file_contents.py rename to tests/unit/sdk/python/utils/test_file_contents.py diff --git a/tests/unit/codegen/sdk/typescript/__init__.py b/tests/unit/sdk/typescript/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/__init__.py rename to tests/unit/sdk/typescript/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/autocommit/test_autocommit.py b/tests/unit/sdk/typescript/autocommit/test_autocommit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/autocommit/test_autocommit.py rename to tests/unit/sdk/typescript/autocommit/test_autocommit.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_abstract_class.py b/tests/unit/sdk/typescript/class_definition/test_abstract_class.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_abstract_class.py rename to tests/unit/sdk/typescript/class_definition/test_abstract_class.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_add_attribute.py b/tests/unit/sdk/typescript/class_definition/test_class_add_attribute.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_add_attribute.py rename to tests/unit/sdk/typescript/class_definition/test_class_add_attribute.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_add_decorator.py b/tests/unit/sdk/typescript/class_definition/test_class_add_decorator.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_add_decorator.py rename to tests/unit/sdk/typescript/class_definition/test_class_add_decorator.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_add_method.py b/tests/unit/sdk/typescript/class_definition/test_class_add_method.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_add_method.py rename to tests/unit/sdk/typescript/class_definition/test_class_add_method.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_attributes.py b/tests/unit/sdk/typescript/class_definition/test_class_attributes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_attributes.py rename to tests/unit/sdk/typescript/class_definition/test_class_attributes.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_code_block.py b/tests/unit/sdk/typescript/class_definition/test_class_code_block.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_code_block.py rename to tests/unit/sdk/typescript/class_definition/test_class_code_block.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_comment.py b/tests/unit/sdk/typescript/class_definition/test_class_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_comment.py rename to tests/unit/sdk/typescript/class_definition/test_class_comment.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_constructor_usages.py b/tests/unit/sdk/typescript/class_definition/test_class_constructor_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_constructor_usages.py rename to tests/unit/sdk/typescript/class_definition/test_class_constructor_usages.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_definition_is_jsx.py b/tests/unit/sdk/typescript/class_definition/test_class_definition_is_jsx.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_definition_is_jsx.py rename to tests/unit/sdk/typescript/class_definition/test_class_definition_is_jsx.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_dependencies.py b/tests/unit/sdk/typescript/class_definition/test_class_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_dependencies.py rename to tests/unit/sdk/typescript/class_definition/test_class_dependencies.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_filter.py b/tests/unit/sdk/typescript/class_definition/test_class_filter.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_filter.py rename to tests/unit/sdk/typescript/class_definition/test_class_filter.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_is_exported.py b/tests/unit/sdk/typescript/class_definition/test_class_is_exported.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_is_exported.py rename to tests/unit/sdk/typescript/class_definition/test_class_is_exported.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_method_usages.py b/tests/unit/sdk/typescript/class_definition/test_class_method_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_method_usages.py rename to tests/unit/sdk/typescript/class_definition/test_class_method_usages.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_parameters.py b/tests/unit/sdk/typescript/class_definition/test_class_parameters.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_parameters.py rename to tests/unit/sdk/typescript/class_definition/test_class_parameters.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_parent_class_names.py b/tests/unit/sdk/typescript/class_definition/test_class_parent_class_names.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_parent_class_names.py rename to tests/unit/sdk/typescript/class_definition/test_class_parent_class_names.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_parent_classes.py b/tests/unit/sdk/typescript/class_definition/test_class_parent_classes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_parent_classes.py rename to tests/unit/sdk/typescript/class_definition/test_class_parent_classes.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_rename.py b/tests/unit/sdk/typescript/class_definition/test_class_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_rename.py rename to tests/unit/sdk/typescript/class_definition/test_class_rename.py diff --git a/tests/unit/codegen/sdk/typescript/class_definition/test_class_rename_class_attributes.py b/tests/unit/sdk/typescript/class_definition/test_class_rename_class_attributes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/class_definition/test_class_rename_class_attributes.py rename to tests/unit/sdk/typescript/class_definition/test_class_rename_class_attributes.py diff --git a/tests/unit/codegen/sdk/typescript/codebase/test_codebase_exports.py b/tests/unit/sdk/typescript/codebase/test_codebase_exports.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/codebase/test_codebase_exports.py rename to tests/unit/sdk/typescript/codebase/test_codebase_exports.py diff --git a/tests/unit/codegen/sdk/typescript/codebase/test_codebase_resolution.py b/tests/unit/sdk/typescript/codebase/test_codebase_resolution.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/codebase/test_codebase_resolution.py rename to tests/unit/sdk/typescript/codebase/test_codebase_resolution.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/__init__.py b/tests/unit/sdk/typescript/comment_docstring/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/__init__.py rename to tests/unit/sdk/typescript/comment_docstring/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_comment.py b/tests/unit/sdk/typescript/comment_docstring/test_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_comment.py rename to tests/unit/sdk/typescript/comment_docstring/test_comment.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_comment_edit.py b/tests/unit/sdk/typescript/comment_docstring/test_comment_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_comment_edit.py rename to tests/unit/sdk/typescript/comment_docstring/test_comment_edit.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_comment_insert_add.py b/tests/unit/sdk/typescript/comment_docstring/test_comment_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_comment_insert_add.py rename to tests/unit/sdk/typescript/comment_docstring/test_comment_insert_add.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring.py b/tests/unit/sdk/typescript/comment_docstring/test_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring.py rename to tests/unit/sdk/typescript/comment_docstring/test_docstring.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring_edit.py b/tests/unit/sdk/typescript/comment_docstring/test_docstring_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring_edit.py rename to tests/unit/sdk/typescript/comment_docstring/test_docstring_edit.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring_insert_add.py b/tests/unit/sdk/typescript/comment_docstring/test_docstring_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_docstring_insert_add.py rename to tests/unit/sdk/typescript/comment_docstring/test_docstring_insert_add.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment.py b/tests/unit/sdk/typescript/comment_docstring/test_inline_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment.py rename to tests/unit/sdk/typescript/comment_docstring/test_inline_comment.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment_edit.py b/tests/unit/sdk/typescript/comment_docstring/test_inline_comment_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment_edit.py rename to tests/unit/sdk/typescript/comment_docstring/test_inline_comment_edit.py diff --git a/tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment_insert_add.py b/tests/unit/sdk/typescript/comment_docstring/test_inline_comment_insert_add.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/comment_docstring/test_inline_comment_insert_add.py rename to tests/unit/sdk/typescript/comment_docstring/test_inline_comment_insert_add.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/argument/test_argument_edit.py b/tests/unit/sdk/typescript/detached_symbols/argument/test_argument_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/argument/test_argument_edit.py rename to tests/unit/sdk/typescript/detached_symbols/argument/test_argument_edit.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/argument/test_fetch_parametes.py b/tests/unit/sdk/typescript/detached_symbols/argument/test_fetch_parametes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/argument/test_fetch_parametes.py rename to tests/unit/sdk/typescript/detached_symbols/argument/test_fetch_parametes.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignment.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignment.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignment.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignments.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignments.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignments.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_local_var_assignments.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_variable_usages.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_variable_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_get_variable_usages.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_get_variable_usages.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_indent.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_indent.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_indent.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_indent.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_local_var_assignments.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_local_var_assignments.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_local_var_assignments.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_local_var_assignments.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_unwrap.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_unwrap.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_unwrap.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_unwrap.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_wrap.py b/tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_wrap.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/code_block/test_code_block_wrap.py rename to tests/unit/sdk/typescript/detached_symbols/code_block/test_code_block_wrap.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/decorator/test_decorator_call.py b/tests/unit/sdk/typescript/detached_symbols/decorator/test_decorator_call.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/decorator/test_decorator_call.py rename to tests/unit/sdk/typescript/detached_symbols/decorator/test_decorator_call.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/decorator/test_decorator_name.py b/tests/unit/sdk/typescript/detached_symbols/decorator/test_decorator_name.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/decorator/test_decorator_name.py rename to tests/unit/sdk/typescript/detached_symbols/decorator/test_decorator_name.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_extended_source.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_extended_source.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_extended_source.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_extended_source.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_get_function_definition.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_get_function_definition.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_get_function_definition.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_get_function_definition.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_is_awaited.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_is_awaited.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_is_awaited.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_is_awaited.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_predecessor.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_predecessor.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_predecessor.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_predecessor.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_rename.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_rename.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_rename.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_type_resolution.py b/tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_type_resolution.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/function_call/test_function_call_type_resolution.py rename to tests/unit/sdk/typescript/detached_symbols/function_call/test_function_call_type_resolution.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_deconstructed.py b/tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_deconstructed.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_deconstructed.py rename to tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_deconstructed.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_edit.py b/tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_edit.py rename to tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_edit.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_is_optional.py b/tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_is_optional.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_is_optional.py rename to tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_is_optional.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_is_variadic.py b/tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_is_variadic.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_is_variadic.py rename to tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_is_variadic.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_value.py b/tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_value.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/parameter/test_parameter_value.py rename to tests/unit/sdk/typescript/detached_symbols/parameter/test_parameter_value.py diff --git a/tests/unit/codegen/sdk/typescript/detached_symbols/ts_promise_chain/test_ts_promise_chain.py b/tests/unit/sdk/typescript/detached_symbols/ts_promise_chain/test_ts_promise_chain.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/detached_symbols/ts_promise_chain/test_ts_promise_chain.py rename to tests/unit/sdk/typescript/detached_symbols/ts_promise_chain/test_ts_promise_chain.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_directory_exports.py b/tests/unit/sdk/typescript/export/test_directory_exports.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_directory_exports.py rename to tests/unit/sdk/typescript/export/test_directory_exports.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_aliased.py b/tests/unit/sdk/typescript/export/test_export_aliased.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_aliased.py rename to tests/unit/sdk/typescript/export/test_export_aliased.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_export_statement.py b/tests/unit/sdk/typescript/export/test_export_export_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_export_statement.py rename to tests/unit/sdk/typescript/export/test_export_export_statement.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_get_import_string.py b/tests/unit/sdk/typescript/export/test_export_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_get_import_string.py rename to tests/unit/sdk/typescript/export/test_export_get_import_string.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_get_reexport_source.py b/tests/unit/sdk/typescript/export/test_export_get_reexport_source.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_get_reexport_source.py rename to tests/unit/sdk/typescript/export/test_export_get_reexport_source.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_rename.py b/tests/unit/sdk/typescript/export/test_export_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_rename.py rename to tests/unit/sdk/typescript/export/test_export_rename.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_export_resolve_export.py b/tests/unit/sdk/typescript/export/test_export_resolve_export.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_export_resolve_export.py rename to tests/unit/sdk/typescript/export/test_export_resolve_export.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_exportable_usages.py b/tests/unit/sdk/typescript/export/test_exportable_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_exportable_usages.py rename to tests/unit/sdk/typescript/export/test_exportable_usages.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_external_export.py b/tests/unit/sdk/typescript/export/test_external_export.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_external_export.py rename to tests/unit/sdk/typescript/export/test_external_export.py diff --git a/tests/unit/codegen/sdk/typescript/export/test_get_reexported_exports.py b/tests/unit/sdk/typescript/export/test_get_reexported_exports.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/export/test_get_reexported_exports.py rename to tests/unit/sdk/typescript/export/test_get_reexported_exports.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/__init__.py b/tests/unit/sdk/typescript/expressions/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/__init__.py rename to tests/unit/sdk/typescript/expressions/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/__init__.py b/tests/unit/sdk/typescript/expressions/ternary_expression/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/ternary_expression/__init__.py rename to tests/unit/sdk/typescript/expressions/ternary_expression/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_properties.py b/tests/unit/sdk/typescript/expressions/ternary_expression/test_ternary_properties.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_properties.py rename to tests/unit/sdk/typescript/expressions/ternary_expression/test_ternary_properties.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py b/tests/unit/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py rename to tests/unit/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_binary_expression.py b/tests/unit/sdk/typescript/expressions/test_binary_expression.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_binary_expression.py rename to tests/unit/sdk/typescript/expressions/test_binary_expression.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_binary_reduce_condition.py b/tests/unit/sdk/typescript/expressions/test_binary_reduce_condition.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_binary_reduce_condition.py rename to tests/unit/sdk/typescript/expressions/test_binary_reduce_condition.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_boolean.py b/tests/unit/sdk/typescript/expressions/test_boolean.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_boolean.py rename to tests/unit/sdk/typescript/expressions/test_boolean.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_builtin_types.py b/tests/unit/sdk/typescript/expressions/test_builtin_types.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_builtin_types.py rename to tests/unit/sdk/typescript/expressions/test_builtin_types.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_chained_attribute_attribute_chain.py b/tests/unit/sdk/typescript/expressions/test_chained_attribute_attribute_chain.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_chained_attribute_attribute_chain.py rename to tests/unit/sdk/typescript/expressions/test_chained_attribute_attribute_chain.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_dict.py b/tests/unit/sdk/typescript/expressions/test_dict.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_dict.py rename to tests/unit/sdk/typescript/expressions/test_dict.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_expression.py b/tests/unit/sdk/typescript/expressions/test_expression.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_expression.py rename to tests/unit/sdk/typescript/expressions/test_expression.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_list.py b/tests/unit/sdk/typescript/expressions/test_list.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_list.py rename to tests/unit/sdk/typescript/expressions/test_list.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_number.py b/tests/unit/sdk/typescript/expressions/test_number.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_number.py rename to tests/unit/sdk/typescript/expressions/test_number.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_string.py b/tests/unit/sdk/typescript/expressions/test_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_string.py rename to tests/unit/sdk/typescript/expressions/test_string.py diff --git a/tests/unit/codegen/sdk/typescript/expressions/test_type.py b/tests/unit/sdk/typescript/expressions/test_type.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/expressions/test_type.py rename to tests/unit/sdk/typescript/expressions/test_type.py diff --git a/tests/unit/codegen/sdk/typescript/file/__init__.py b/tests/unit/sdk/typescript/file/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/__init__.py rename to tests/unit/sdk/typescript/file/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_add_import.py b/tests/unit/sdk/typescript/file/test_file_add_import.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_add_import.py rename to tests/unit/sdk/typescript/file/test_file_add_import.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_add_symbol.py b/tests/unit/sdk/typescript/file/test_file_add_symbol.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_add_symbol.py rename to tests/unit/sdk/typescript/file/test_file_add_symbol.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_add_symbol_from_source.py b/tests/unit/sdk/typescript/file/test_file_add_symbol_from_source.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_add_symbol_from_source.py rename to tests/unit/sdk/typescript/file/test_file_add_symbol_from_source.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_editable.py b/tests/unit/sdk/typescript/file/test_file_editable.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_editable.py rename to tests/unit/sdk/typescript/file/test_file_editable.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_export_statements.py b/tests/unit/sdk/typescript/file/test_file_export_statements.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_export_statements.py rename to tests/unit/sdk/typescript/file/test_file_export_statements.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_config.py b/tests/unit/sdk/typescript/file/test_file_get_config.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_config.py rename to tests/unit/sdk/typescript/file/test_file_get_config.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_function.py b/tests/unit/sdk/typescript/file/test_file_get_function.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_function.py rename to tests/unit/sdk/typescript/file/test_file_get_function.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_function_calls.py b/tests/unit/sdk/typescript/file/test_file_get_function_calls.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_function_calls.py rename to tests/unit/sdk/typescript/file/test_file_get_function_calls.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_global_var.py b/tests/unit/sdk/typescript/file/test_file_get_global_var.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_global_var.py rename to tests/unit/sdk/typescript/file/test_file_get_global_var.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_import_string.py b/tests/unit/sdk/typescript/file/test_file_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_import_string.py rename to tests/unit/sdk/typescript/file/test_file_get_import_string.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_get_symbol.py b/tests/unit/sdk/typescript/file/test_file_get_symbol.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_get_symbol.py rename to tests/unit/sdk/typescript/file/test_file_get_symbol.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_global_call.py b/tests/unit/sdk/typescript/file/test_file_global_call.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_global_call.py rename to tests/unit/sdk/typescript/file/test_file_global_call.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_global_vars.py b/tests/unit/sdk/typescript/file/test_file_global_vars.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_global_vars.py rename to tests/unit/sdk/typescript/file/test_file_global_vars.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_graph.py b/tests/unit/sdk/typescript/file/test_file_graph.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_graph.py rename to tests/unit/sdk/typescript/file/test_file_graph.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_import_statemets.py b/tests/unit/sdk/typescript/file/test_file_import_statemets.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_import_statemets.py rename to tests/unit/sdk/typescript/file/test_file_import_statemets.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_imports.py b/tests/unit/sdk/typescript/file/test_file_imports.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_imports.py rename to tests/unit/sdk/typescript/file/test_file_imports.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_remove.py b/tests/unit/sdk/typescript/file/test_file_remove.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_remove.py rename to tests/unit/sdk/typescript/file/test_file_remove.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_statements.py b/tests/unit/sdk/typescript/file/test_file_statements.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_statements.py rename to tests/unit/sdk/typescript/file/test_file_statements.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_symbols.py b/tests/unit/sdk/typescript/file/test_file_symbols.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_symbols.py rename to tests/unit/sdk/typescript/file/test_file_symbols.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_unicode.py b/tests/unit/sdk/typescript/file/test_file_unicode.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_unicode.py rename to tests/unit/sdk/typescript/file/test_file_unicode.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_file_update_filepath.py b/tests/unit/sdk/typescript/file/test_file_update_filepath.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_file_update_filepath.py rename to tests/unit/sdk/typescript/file/test_file_update_filepath.py diff --git a/tests/unit/codegen/sdk/typescript/file/test_ts_config_properties.py b/tests/unit/sdk/typescript/file/test_ts_config_properties.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/file/test_ts_config_properties.py rename to tests/unit/sdk/typescript/file/test_ts_config_properties.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_arrow.py b/tests/unit/sdk/typescript/function/test_function_arrow.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_arrow.py rename to tests/unit/sdk/typescript/function/test_function_arrow.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_assignments.py b/tests/unit/sdk/typescript/function/test_function_assignments.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_assignments.py rename to tests/unit/sdk/typescript/function/test_function_assignments.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_async.py b/tests/unit/sdk/typescript/function/test_function_async.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_async.py rename to tests/unit/sdk/typescript/function/test_function_async.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_call_sites.py b/tests/unit/sdk/typescript/function/test_function_call_sites.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_call_sites.py rename to tests/unit/sdk/typescript/function/test_function_call_sites.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_calls_from_symbol.py b/tests/unit/sdk/typescript/function/test_function_calls_from_symbol.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_calls_from_symbol.py rename to tests/unit/sdk/typescript/function/test_function_calls_from_symbol.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_code_block.py b/tests/unit/sdk/typescript/function/test_function_code_block.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_code_block.py rename to tests/unit/sdk/typescript/function/test_function_code_block.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_comment.py b/tests/unit/sdk/typescript/function/test_function_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_comment.py rename to tests/unit/sdk/typescript/function/test_function_comment.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_decorators.py b/tests/unit/sdk/typescript/function/test_function_decorators.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_decorators.py rename to tests/unit/sdk/typescript/function/test_function_decorators.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_dependencies.py b/tests/unit/sdk/typescript/function/test_function_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_dependencies.py rename to tests/unit/sdk/typescript/function/test_function_dependencies.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_docstring.py b/tests/unit/sdk/typescript/function/test_function_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_docstring.py rename to tests/unit/sdk/typescript/function/test_function_docstring.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_flag.py b/tests/unit/sdk/typescript/function/test_function_flag.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_flag.py rename to tests/unit/sdk/typescript/function/test_function_flag.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_function_calls.py b/tests/unit/sdk/typescript/function/test_function_function_calls.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_function_calls.py rename to tests/unit/sdk/typescript/function/test_function_function_calls.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_function_declaration_docstring.py b/tests/unit/sdk/typescript/function/test_function_function_declaration_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_function_declaration_docstring.py rename to tests/unit/sdk/typescript/function/test_function_function_declaration_docstring.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_get_import_string.py b/tests/unit/sdk/typescript/function/test_function_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_get_import_string.py rename to tests/unit/sdk/typescript/function/test_function_get_import_string.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_get_parameter_by_index.py b/tests/unit/sdk/typescript/function/test_function_get_parameter_by_index.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_get_parameter_by_index.py rename to tests/unit/sdk/typescript/function/test_function_get_parameter_by_index.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_is_exported.py b/tests/unit/sdk/typescript/function/test_function_is_exported.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_is_exported.py rename to tests/unit/sdk/typescript/function/test_function_is_exported.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_is_reexported.py b/tests/unit/sdk/typescript/function/test_function_is_reexported.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_is_reexported.py rename to tests/unit/sdk/typescript/function/test_function_is_reexported.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_jsx.py b/tests/unit/sdk/typescript/function/test_function_jsx.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_jsx.py rename to tests/unit/sdk/typescript/function/test_function_jsx.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_level.py b/tests/unit/sdk/typescript/function/test_function_level.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_level.py rename to tests/unit/sdk/typescript/function/test_function_level.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_move_to_file.py b/tests/unit/sdk/typescript/function/test_function_move_to_file.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_move_to_file.py rename to tests/unit/sdk/typescript/function/test_function_move_to_file.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_nested_functions.py b/tests/unit/sdk/typescript/function/test_function_nested_functions.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_nested_functions.py rename to tests/unit/sdk/typescript/function/test_function_nested_functions.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_parameter_to_interface.py b/tests/unit/sdk/typescript/function/test_function_parameter_to_interface.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_parameter_to_interface.py rename to tests/unit/sdk/typescript/function/test_function_parameter_to_interface.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_parameters.py b/tests/unit/sdk/typescript/function/test_function_parameters.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_parameters.py rename to tests/unit/sdk/typescript/function/test_function_parameters.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_prepend_statements.py b/tests/unit/sdk/typescript/function/test_function_prepend_statements.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_prepend_statements.py rename to tests/unit/sdk/typescript/function/test_function_prepend_statements.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_rename.py b/tests/unit/sdk/typescript/function/test_function_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_rename.py rename to tests/unit/sdk/typescript/function/test_function_rename.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_return_statements.py b/tests/unit/sdk/typescript/function/test_function_return_statements.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_return_statements.py rename to tests/unit/sdk/typescript/function/test_function_return_statements.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_return_type_annotation.py b/tests/unit/sdk/typescript/function/test_function_return_type_annotation.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_return_type_annotation.py rename to tests/unit/sdk/typescript/function/test_function_return_type_annotation.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_set_docstring.py b/tests/unit/sdk/typescript/function/test_function_set_docstring.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_set_docstring.py rename to tests/unit/sdk/typescript/function/test_function_set_docstring.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_set_return_type.py b/tests/unit/sdk/typescript/function/test_function_set_return_type.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_set_return_type.py rename to tests/unit/sdk/typescript/function/test_function_set_return_type.py diff --git a/tests/unit/codegen/sdk/typescript/function/test_function_usages.py b/tests/unit/sdk/typescript/function/test_function_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/function/test_function_usages.py rename to tests/unit/sdk/typescript/function/test_function_usages.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/__init__.py b/tests/unit/sdk/typescript/global_var/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/__init__.py rename to tests/unit/sdk/typescript/global_var/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_comment.py b/tests/unit/sdk/typescript/global_var/test_global_var_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_comment.py rename to tests/unit/sdk/typescript/global_var/test_global_var_comment.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_dependencies.py b/tests/unit/sdk/typescript/global_var/test_global_var_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_dependencies.py rename to tests/unit/sdk/typescript/global_var/test_global_var_dependencies.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_get_import_string.py b/tests/unit/sdk/typescript/global_var/test_global_var_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_get_import_string.py rename to tests/unit/sdk/typescript/global_var/test_global_var_get_import_string.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_has_value.py b/tests/unit/sdk/typescript/global_var/test_global_var_has_value.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_has_value.py rename to tests/unit/sdk/typescript/global_var/test_global_var_has_value.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_inline_comment.py b/tests/unit/sdk/typescript/global_var/test_global_var_inline_comment.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_inline_comment.py rename to tests/unit/sdk/typescript/global_var/test_global_var_inline_comment.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_is_exported.py b/tests/unit/sdk/typescript/global_var/test_global_var_is_exported.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_is_exported.py rename to tests/unit/sdk/typescript/global_var/test_global_var_is_exported.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_parsing.py b/tests/unit/sdk/typescript/global_var/test_global_var_parsing.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_parsing.py rename to tests/unit/sdk/typescript/global_var/test_global_var_parsing.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_rename.py b/tests/unit/sdk/typescript/global_var/test_global_var_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_rename.py rename to tests/unit/sdk/typescript/global_var/test_global_var_rename.py diff --git a/tests/unit/codegen/sdk/typescript/global_var/test_global_var_special.py b/tests/unit/sdk/typescript/global_var/test_global_var_special.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/global_var/test_global_var_special.py rename to tests/unit/sdk/typescript/global_var/test_global_var_special.py diff --git a/tests/unit/codegen/sdk/typescript/statements/__init__.py b/tests/unit/sdk/typescript/import_resolution/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/__init__.py rename to tests/unit/sdk/typescript/import_resolution/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_directory_import.py b/tests/unit/sdk/typescript/import_resolution/test_directory_import.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_directory_import.py rename to tests/unit/sdk/typescript/import_resolution/test_directory_import.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_edge_case.py b/tests/unit/sdk/typescript/import_resolution/test_edge_case.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_edge_case.py rename to tests/unit/sdk/typescript/import_resolution/test_edge_case.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_has_import.py b/tests/unit/sdk/typescript/import_resolution/test_has_import.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_has_import.py rename to tests/unit/sdk/typescript/import_resolution/test_has_import.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_from_export_statement.py b/tests/unit/sdk/typescript/import_resolution/test_import_from_export_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_from_export_statement.py rename to tests/unit/sdk/typescript/import_resolution/test_import_from_export_statement.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_get_import_string.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_get_import_string.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_get_import_string.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_get_import_string.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_remove.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_remove.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_remove.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_remove.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_rename.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_rename.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_rename.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_resolve_import.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_resolve_import.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_resolve_import.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_resolve_import.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_set_import_module.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_set_import_module.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_set_import_module.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_set_import_module.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_set_import_symbol_alias.py b/tests/unit/sdk/typescript/import_resolution/test_import_resolution_set_import_symbol_alias.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_import_resolution_set_import_symbol_alias.py rename to tests/unit/sdk/typescript/import_resolution/test_import_resolution_set_import_symbol_alias.py diff --git a/tests/unit/codegen/sdk/typescript/import_resolution/test_is_dynamic.py b/tests/unit/sdk/typescript/import_resolution/test_is_dynamic.py similarity index 99% rename from tests/unit/codegen/sdk/typescript/import_resolution/test_is_dynamic.py rename to tests/unit/sdk/typescript/import_resolution/test_is_dynamic.py index a74e29c71..e67db4242 100644 --- a/tests/unit/codegen/sdk/typescript/import_resolution/test_is_dynamic.py +++ b/tests/unit/sdk/typescript/import_resolution/test_is_dynamic.py @@ -1,5 +1,5 @@ -from codegen import Codebase from graph_sitter.codebase.factory.get_session import get_codebase_session +from graph_sitter.core.codebase import Codebase from graph_sitter.core.function import Function from graph_sitter.core.statements.for_loop_statement import ForLoopStatement from graph_sitter.core.statements.if_block_statement import IfBlockStatement diff --git a/tests/unit/codegen/sdk/typescript/interface/test_interface_attributes.py b/tests/unit/sdk/typescript/interface/test_interface_attributes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/interface/test_interface_attributes.py rename to tests/unit/sdk/typescript/interface/test_interface_attributes.py diff --git a/tests/unit/codegen/sdk/typescript/interface/test_interface_dependencies.py b/tests/unit/sdk/typescript/interface/test_interface_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/interface/test_interface_dependencies.py rename to tests/unit/sdk/typescript/interface/test_interface_dependencies.py diff --git a/tests/unit/codegen/sdk/typescript/interface/test_interface_get_attribute.py b/tests/unit/sdk/typescript/interface/test_interface_get_attribute.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/interface/test_interface_get_attribute.py rename to tests/unit/sdk/typescript/interface/test_interface_get_attribute.py diff --git a/tests/unit/codegen/sdk/typescript/interface/test_interface_parents.py b/tests/unit/sdk/typescript/interface/test_interface_parents.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/interface/test_interface_parents.py rename to tests/unit/sdk/typescript/interface/test_interface_parents.py diff --git a/tests/unit/codegen/sdk/typescript/language_engine/test_v8_engine.py b/tests/unit/sdk/typescript/language_engine/test_v8_engine.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/language_engine/test_v8_engine.py rename to tests/unit/sdk/typescript/language_engine/test_v8_engine.py diff --git a/tests/unit/codegen/sdk/typescript/move_symbol_to_file/test_move_tsx_to_file.py b/tests/unit/sdk/typescript/move_symbol_to_file/test_move_tsx_to_file.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/move_symbol_to_file/test_move_tsx_to_file.py rename to tests/unit/sdk/typescript/move_symbol_to_file/test_move_tsx_to_file.py diff --git a/tests/unit/codegen/sdk/typescript/namespace/test_namespace.py b/tests/unit/sdk/typescript/namespace/test_namespace.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/namespace/test_namespace.py rename to tests/unit/sdk/typescript/namespace/test_namespace.py diff --git a/tests/unit/codegen/sdk/typescript/namespace/test_namespace_complex_examples.py b/tests/unit/sdk/typescript/namespace/test_namespace_complex_examples.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/namespace/test_namespace_complex_examples.py rename to tests/unit/sdk/typescript/namespace/test_namespace_complex_examples.py diff --git a/tests/unit/codegen/sdk/typescript/namespace/test_namespace_modifications.py b/tests/unit/sdk/typescript/namespace/test_namespace_modifications.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/namespace/test_namespace_modifications.py rename to tests/unit/sdk/typescript/namespace/test_namespace_modifications.py diff --git a/tests/unit/codegen/sdk/typescript/namespace/test_namespace_usage.py b/tests/unit/sdk/typescript/namespace/test_namespace_usage.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/namespace/test_namespace_usage.py rename to tests/unit/sdk/typescript/namespace/test_namespace_usage.py diff --git a/tests/unit/codegen/sdk/typescript/react/test_interface_props.py b/tests/unit/sdk/typescript/react/test_interface_props.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/react/test_interface_props.py rename to tests/unit/sdk/typescript/react/test_interface_props.py diff --git a/tests/unit/codegen/sdk/typescript/statements/assignment_statement/__init__.py b/tests/unit/sdk/typescript/statements/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/assignment_statement/__init__.py rename to tests/unit/sdk/typescript/statements/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/attribute/__init__.py b/tests/unit/sdk/typescript/statements/assignment_statement/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/attribute/__init__.py rename to tests/unit/sdk/typescript/statements/assignment_statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_local_usages.py b/tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_local_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_local_usages.py rename to tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_local_usages.py diff --git a/tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_variable_usages.py b/tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_variable_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_variable_usages.py rename to tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_get_variable_usages.py diff --git a/tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_annotation.py b/tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_annotation.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_annotation.py rename to tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_annotation.py diff --git a/tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_resolution.py b/tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_resolution.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_resolution.py rename to tests/unit/sdk/typescript/statements/assignment_statement/test_assignment_statement_type_resolution.py diff --git a/tests/unit/codegen/sdk/typescript/statements/for_loop_statement/__init__.py b/tests/unit/sdk/typescript/statements/attribute/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/for_loop_statement/__init__.py rename to tests/unit/sdk/typescript/statements/attribute/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_get_local_usages.py b/tests/unit/sdk/typescript/statements/attribute/test_attribute_get_local_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_get_local_usages.py rename to tests/unit/sdk/typescript/statements/attribute/test_attribute_get_local_usages.py diff --git a/tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_properties.py b/tests/unit/sdk/typescript/statements/attribute/test_attribute_properties.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_properties.py rename to tests/unit/sdk/typescript/statements/attribute/test_attribute_properties.py diff --git a/tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_rename.py b/tests/unit/sdk/typescript/statements/attribute/test_attribute_rename.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_rename.py rename to tests/unit/sdk/typescript/statements/attribute/test_attribute_rename.py diff --git a/tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_set_type_annotation.py b/tests/unit/sdk/typescript/statements/attribute/test_attribute_set_type_annotation.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/attribute/test_attribute_set_type_annotation.py rename to tests/unit/sdk/typescript/statements/attribute/test_attribute_set_type_annotation.py diff --git a/tests/unit/codegen/sdk/typescript/statements/if_block_statement/__init__.py b/tests/unit/sdk/typescript/statements/for_loop_statement/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/if_block_statement/__init__.py rename to tests/unit/sdk/typescript/statements/for_loop_statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/for_loop_statement/test_for_loop_statement.py b/tests/unit/sdk/typescript/statements/for_loop_statement/test_for_loop_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/for_loop_statement/test_for_loop_statement.py rename to tests/unit/sdk/typescript/statements/for_loop_statement/test_for_loop_statement.py diff --git a/tests/unit/codegen/sdk/typescript/statements/statement/__init__.py b/tests/unit/sdk/typescript/statements/if_block_statement/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/statement/__init__.py rename to tests/unit/sdk/typescript/statements/if_block_statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/if_block_statement/test_if_block_reduce_block.py b/tests/unit/sdk/typescript/statements/if_block_statement/test_if_block_reduce_block.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/if_block_statement/test_if_block_reduce_block.py rename to tests/unit/sdk/typescript/statements/if_block_statement/test_if_block_reduce_block.py diff --git a/tests/unit/codegen/sdk/typescript/statements/if_block_statement/test_if_block_statement_properties.py b/tests/unit/sdk/typescript/statements/if_block_statement/test_if_block_statement_properties.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/if_block_statement/test_if_block_statement_properties.py rename to tests/unit/sdk/typescript/statements/if_block_statement/test_if_block_statement_properties.py diff --git a/tests/unit/codegen/sdk/typescript/statements/try_catch_statement/__init__.py b/tests/unit/sdk/typescript/statements/statement/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/try_catch_statement/__init__.py rename to tests/unit/sdk/typescript/statements/statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/statement/test_statement_get_variable_usages.py b/tests/unit/sdk/typescript/statements/statement/test_statement_get_variable_usages.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/statement/test_statement_get_variable_usages.py rename to tests/unit/sdk/typescript/statements/statement/test_statement_get_variable_usages.py diff --git a/tests/unit/codegen/sdk/typescript/statements/switch_statement/test_switch_statement.py b/tests/unit/sdk/typescript/statements/switch_statement/test_switch_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/switch_statement/test_switch_statement.py rename to tests/unit/sdk/typescript/statements/switch_statement/test_switch_statement.py diff --git a/tests/unit/codegen/sdk/typescript/statements/while_statement/__init__.py b/tests/unit/sdk/typescript/statements/try_catch_statement/__init__.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/while_statement/__init__.py rename to tests/unit/sdk/typescript/statements/try_catch_statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/try_catch_statement/test_try_catch_statement.py b/tests/unit/sdk/typescript/statements/try_catch_statement/test_try_catch_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/try_catch_statement/test_try_catch_statement.py rename to tests/unit/sdk/typescript/statements/try_catch_statement/test_try_catch_statement.py diff --git a/src/graph_sitter/extensions/py.typed b/tests/unit/sdk/typescript/statements/while_statement/__init__.py similarity index 100% rename from src/graph_sitter/extensions/py.typed rename to tests/unit/sdk/typescript/statements/while_statement/__init__.py diff --git a/tests/unit/codegen/sdk/typescript/statements/while_statement/test_while_statement.py b/tests/unit/sdk/typescript/statements/while_statement/test_while_statement.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/statements/while_statement/test_while_statement.py rename to tests/unit/sdk/typescript/statements/while_statement/test_while_statement.py diff --git a/tests/unit/codegen/sdk/typescript/test_print.py b/tests/unit/sdk/typescript/test_print.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/test_print.py rename to tests/unit/sdk/typescript/test_print.py diff --git a/tests/unit/codegen/sdk/typescript/tsx/test_tsx_edit.py b/tests/unit/sdk/typescript/tsx/test_tsx_edit.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/tsx/test_tsx_edit.py rename to tests/unit/sdk/typescript/tsx/test_tsx_edit.py diff --git a/tests/unit/codegen/sdk/typescript/tsx/test_tsx_parsing.py b/tests/unit/sdk/typescript/tsx/test_tsx_parsing.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/tsx/test_tsx_parsing.py rename to tests/unit/sdk/typescript/tsx/test_tsx_parsing.py diff --git a/tests/unit/codegen/sdk/typescript/type/test_type_attributes.py b/tests/unit/sdk/typescript/type/test_type_attributes.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/type/test_type_attributes.py rename to tests/unit/sdk/typescript/type/test_type_attributes.py diff --git a/tests/unit/codegen/sdk/typescript/type/test_type_dependencies.py b/tests/unit/sdk/typescript/type/test_type_dependencies.py similarity index 100% rename from tests/unit/codegen/sdk/typescript/type/test_type_dependencies.py rename to tests/unit/sdk/typescript/type/test_type_dependencies.py diff --git a/tests/unit/codegen/shared/compilation/test_codeblock_validation.py b/tests/unit/shared/compilation/test_codeblock_validation.py similarity index 100% rename from tests/unit/codegen/shared/compilation/test_codeblock_validation.py rename to tests/unit/shared/compilation/test_codeblock_validation.py diff --git a/tests/unit/codegen/shared/compilation/test_function_compilation.py b/tests/unit/shared/compilation/test_function_compilation.py similarity index 100% rename from tests/unit/codegen/shared/compilation/test_function_compilation.py rename to tests/unit/shared/compilation/test_function_compilation.py diff --git a/tests/unit/codegen/shared/compilation/test_function_construction.py b/tests/unit/shared/compilation/test_function_construction.py similarity index 100% rename from tests/unit/codegen/shared/compilation/test_function_construction.py rename to tests/unit/shared/compilation/test_function_construction.py diff --git a/tests/unit/codegen/shared/compilation/test_string_to_code.py b/tests/unit/shared/compilation/test_string_to_code.py similarity index 98% rename from tests/unit/codegen/shared/compilation/test_string_to_code.py rename to tests/unit/shared/compilation/test_string_to_code.py index 49ba9ca39..20adffa68 100644 --- a/tests/unit/codegen/shared/compilation/test_string_to_code.py +++ b/tests/unit/shared/compilation/test_string_to_code.py @@ -2,7 +2,7 @@ import pytest -from codegen.git.models.pr_options import PROptions +from graph_sitter.git.models.pr_options import PROptions from graph_sitter.shared.compilation.string_to_code import create_execute_function_from_codeblock from graph_sitter.shared.exceptions.compilation import DangerousUserCodeException, InvalidUserCodeException from graph_sitter.shared.exceptions.control_flow import StopCodemodException diff --git a/tests/workspace/test_workspace_operations.py b/tests/workspace/test_workspace_operations.py deleted file mode 100644 index 0f84f7601..000000000 --- a/tests/workspace/test_workspace_operations.py +++ /dev/null @@ -1,222 +0,0 @@ -from codegen.workspace import Workspace -from graph_sitter.codebase.factory.get_session import get_codebase_session - - -def test_view_file(tmpdir) -> None: - # language=python - content = """ -def hello(): - print("Hello, world!") - -class Greeter: - def greet(self): - return "Hi!" - -from typing import List -""" - with get_codebase_session(tmpdir=tmpdir, files={"test.py": content}) as codebase: - workspace = Workspace(codebase) - - # Test viewing an existing file - result = workspace.view_file("test.py") - assert result["filepath"] == "test.py" - assert "def hello():" in result["content"] - assert result["extension"] == ".py" - assert result["name"] == "test" - assert "hello" in result["functions"] - assert "Greeter" in result["classes"] - assert "from typing import List" in result["imports"] - - # Test viewing a non-existent file - try: - workspace.view_file("nonexistent.py") - assert False, "Should raise FileNotFoundError" - except FileNotFoundError: - pass - - -def test_list_directory(tmpdir) -> None: - # language=python - files = { - "src/main.py": "print('main')", - "src/utils/helper.py": "print('helper')", - "src/utils/tools.py": "print('tools')", - } - - with get_codebase_session(tmpdir=tmpdir, files=files) as codebase: - workspace = Workspace(codebase) - - # Test listing root directory - root_result = workspace.list_directory("./") - assert root_result["name"] == "" # Root directory has empty name - assert "src" in root_result["subdirectories"] # Just directory name - assert len(root_result["files"]) == 0 # No files in root - - # Test listing src directory - src_result = workspace.list_directory("src") - assert src_result["name"] == "src" - assert "main.py" in src_result["files"] # Just filename - assert "utils" in src_result["subdirectories"] # Just directory name - - # Test listing utils directory - utils_result = workspace.list_directory("src/utils") - assert utils_result["name"] == "utils" - assert "helper.py" in utils_result["files"] # Just filename - assert "tools.py" in utils_result["files"] # Just filename - assert len(utils_result["subdirectories"]) == 0 # No subdirectories - - # Test listing non-existent directory - try: - workspace.list_directory("nonexistent") - assert False, "Should raise NotADirectoryError" - except NotADirectoryError: - pass - - -def test_search(tmpdir) -> None: - # language=python - files = { - "src/users.py": """ -def get_user(id: int): - return {"id": id} - -def create_user(name: str): - return {"name": name} -""", - "src/posts.py": """ -def get_post(id: int): - return {"id": id} -""", - } - - with get_codebase_session(tmpdir=tmpdir, files=files) as codebase: - workspace = Workspace(codebase) - - # Test searching across all files - all_results = workspace.search("get_") - assert len(all_results["results"]) == 2 # Should find in both files - - # Test searching with directory filter - filtered_results = workspace.search("get_", target_directories=["src/users.py"]) - assert len(filtered_results["results"]) == 1 # Should only find in users.py - - -def test_file_operations(tmpdir) -> None: - with get_codebase_session(tmpdir=tmpdir) as codebase: - workspace = Workspace(codebase) - - # Test creating a file - create_result = workspace.create_file("test.py", "print('hello')") - assert create_result["filepath"] == "test.py" - assert "print('hello')" in create_result["content"] - - # Test creating a duplicate file - try: - workspace.create_file("test.py") - assert False, "Should raise FileExistsError" - except FileExistsError: - pass - - # Test editing a file - edit_result = workspace.edit_file("test.py", "print('updated')") - assert "print('updated')" in edit_result["content"] - - # Test deleting a file - delete_result = workspace.delete_file("test.py") - assert delete_result["status"] == "success" - assert delete_result["deleted_file"] == "test.py" - - # Test deleting non-existent file - try: - workspace.delete_file("nonexistent.py") - assert False, "Should raise FileNotFoundError" - except FileNotFoundError: - pass - - -def test_commit(tmpdir) -> None: - with get_codebase_session(tmpdir=tmpdir) as codebase: - workspace = Workspace(codebase) - - # Create and edit some files - workspace.create_file("test.py", "print('hello')") - workspace.edit_file("test.py", "print('updated')") - - # Test commit - result = workspace.commit() - assert result["status"] == "success" - - # Verify changes persisted - view_result = workspace.view_file("test.py") - assert "print('updated')" in view_result["content"] - - -def test_reveal_symbol(tmpdir) -> None: - # language=python - files = { - "src/data.py": """ -from src.utils import validate_input - -def process_data(data: str) -> dict: - if validate_input(data): - return {"data": data} - return {"error": "Invalid data"} -""", - "src/utils.py": """ -def validate_input(data: str) -> bool: - return len(data) > 0 - -def unused_function(): - pass -""", - "src/api.py": """ -from src.data import process_data - -def handle_request(request_data: str) -> dict: - return process_data(request_data) - -def another_handler(data: str) -> dict: - return handle_request(data) -""", - } - - with get_codebase_session(tmpdir=tmpdir, files=files) as codebase: - workspace = Workspace(codebase) - - # Test revealing process_data function with degree=1 - result = workspace.reveal_symbol("process_data", degree=1) - - # Check basic symbol info - assert result["symbol"]["name"] == "process_data" - assert result["symbol"]["type"] == "Function" - assert "process_data" in result["symbol"]["source"] - - # Check immediate dependencies (should find validate_input through import) - deps = result["dependencies"] - assert len(deps) == 1 - assert deps[0]["name"] == "validate_input" - - # Check immediate usages (should find handle_request) - usages = result["usages"] - assert len(usages) == 1 - assert usages[0]["name"] == "handle_request" - - # Test with degree=2 to see deeper relationships - deep_result = workspace.reveal_symbol("process_data", degree=2) - - # Should now see both handle_request and another_handler - assert len(deep_result["usages"]) == 2 - usage_names = {u["name"] for u in deep_result["usages"]} - assert usage_names == {"handle_request", "another_handler"} - - # Test revealing a symbol with no dependencies or usages - unused_result = workspace.reveal_symbol("unused_function") - assert len(unused_result["dependencies"]) == 0 - assert len(unused_result["usages"]) == 0 - - # Test revealing non-existent symbol - try: - workspace.reveal_symbol("nonexistent_function") - assert False, "Should raise ValueError" - except ValueError: - pass diff --git a/uv.lock b/uv.lock index e093d80be..92c4b8efe 100644 --- a/uv.lock +++ b/uv.lock @@ -505,21 +505,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/93/27/bf74dc1494625c3b14dbcdb93740defd7b8c58dae3736be8d264f2a643fb/click_option_group-0.5.7-py3-none-any.whl", hash = "sha256:96b9f52f397ef4d916f81929bd6c1f85e89046c7a401a64e72a61ae74ad35c24", size = 11483 }, ] -[[package]] -name = "codegen-api-client" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, - { name = "python-dateutil" }, - { name = "typing-extensions" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/69/df/8a2bf96f96df71f44619dbd003852804dedd5c331846ad99e5476749bf96/codegen_api_client-1.0.0.tar.gz", hash = "sha256:4e925e25dfdda4afaba8c0b223c5bf2736da2a38d34ee30a92777692e4f34783", size = 26173 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/31/66/5bafb6e567d636e87a2fbedeca2300bc1a3a21a7b8cd5ec418e94538b57d/codegen_api_client-1.0.0-py3-none-any.whl", hash = "sha256:12f8fcfabe512bc88917fa750784d75b79b3a50495dc2c311c58ea83120f44a7", size = 44767 }, -] - [[package]] name = "codegen-sdk-pink" version = "0.1.0" @@ -1145,7 +1130,6 @@ source = { editable = "." } dependencies = [ { name = "astor" }, { name = "click" }, - { name = "codegen-api-client" }, { name = "codeowners" }, { name = "colorlog" }, { name = "dataclasses-json" }, @@ -1235,7 +1219,6 @@ dev = [ { name = "black" }, { name = "braintrust" }, { name = "cibuildwheel", extra = ["uv"] }, - { name = "codegen-api-client" }, { name = "coverage" }, { name = "cython" }, { name = "deptry" }, @@ -1271,7 +1254,6 @@ requires-dist = [ { name = "astor", specifier = ">=0.8.1,<1.0.0" }, { name = "attrs", marker = "extra == 'lsp'", specifier = ">=25.1.0" }, { name = "click", specifier = ">=8.1.7" }, - { name = "codegen-api-client" }, { name = "codegen-sdk-pink", marker = "extra == 'pink'", specifier = ">=0.1.0" }, { name = "codeowners", specifier = ">=0.6.0,<1.0.0" }, { name = "colorlog", specifier = ">=6.9.0" }, @@ -1353,7 +1335,6 @@ dev = [ { name = "black", specifier = ">=24.8.0" }, { name = "braintrust", specifier = ">=0.0.160" }, { name = "cibuildwheel", extras = ["uv"], specifier = ">=2.22.0" }, - { name = "codegen-api-client", specifier = ">=1.0.0" }, { name = "coverage", specifier = ">=7.6.1,<8.0.0" }, { name = "cython", specifier = ">=3.0.11" }, { name = "deptry", specifier = ">=0.22.0" },