diff --git a/.codegen/codemods/test_language/test_language.py b/.codegen/codemods/test_language/test_language.py index 19ae4c0bd..30323d73c 100644 --- a/.codegen/codemods/test_language/test_language.py +++ b/.codegen/codemods/test_language/test_language.py @@ -1,9 +1,9 @@ -import codegen -from codegen.sdk.core.codebase import Codebase -from codegen.shared.enums.programming_language import ProgrammingLanguage +import graph_sitter +from graph_sitter.core.codebase import Codebase +from graph_sitter.shared.enums.programming_language import ProgrammingLanguage -@codegen.function("test-language", subdirectories=["src/codegen/cli"], language=ProgrammingLanguage.PYTHON) +@graph_sitter.function("test-language", subdirectories=["src/codegen/cli"], language=ProgrammingLanguage.PYTHON) def run(codebase: Codebase): file = codebase.get_file("src/codegen/cli/errors.py") print(f"File: {file.path}") diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6aa953d41..4a9b8f68b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,10 @@ jobs: unit-tests: needs: access-check runs-on: ubuntu-latest + strategy: + matrix: + group: [1, 2, 3, 4, 5, 6, 7, 8] + steps: - uses: actions/checkout@v4 with: @@ -38,9 +42,10 @@ jobs: uv run pytest \ -n auto \ --cov src \ - --cov-report=json \ + --splits 8 --group ${{ matrix.group }} \ + # --cov-report=json \ --timeout 15 \ - -o junit_suite_name="${{github.job}}" \ + -o junit_suite_name="${{github.job}}-${{ matrix.group }}" \ tests/unit - uses: ./.github/actions/report diff --git a/docs/building-with-graph-sitter/function-decorator.mdx b/docs/building-with-graph-sitter/function-decorator.mdx index 0010afa66..4ded11a7c 100644 --- a/docs/building-with-graph-sitter/function-decorator.mdx +++ b/docs/building-with-graph-sitter/function-decorator.mdx @@ -1,6 +1,6 @@ --- title: Function Decorator -sidebarTitle: "@codegen.function" +sidebarTitle: "@graph_sitter.function" icon: "at" iconType: "solid" --- @@ -11,17 +11,17 @@ The `function` decorator is used to define codegen functions within your applica ## Usage -To use the `function` decorator, simply annotate your function with `@codegen.function` and provide a name as an argument. +To use the `function` decorator, simply annotate your function with `@graph_sitter.function` and provide a name as an argument. ### Example ```python -@codegen.function('my-function') +@graph_sitter.function('my-function') def run(codebase): pass ``` -In this example, the function `run` is decorated with `@codegen.function` and given the name `'my-function'`. This name will be used when the function is ran. +In this example, the function `run` is decorated with `@graph_sitter.function` and given the name `'my-function'`. This name will be used when the function is ran. ## Parameters diff --git a/docs/building-with-graph-sitter/reusable-codemods.mdx b/docs/building-with-graph-sitter/reusable-codemods.mdx index 0e5602a13..c5cf6344f 100644 --- a/docs/building-with-graph-sitter/reusable-codemods.mdx +++ b/docs/building-with-graph-sitter/reusable-codemods.mdx @@ -5,7 +5,7 @@ icon: "arrows-rotate" iconType: "solid" --- -Graph-sitter enables you to create reusable code transformations using Python functions decorated with `@codegen.function`. These codemods can be shared, versioned, and run by your team. +Graph-sitter enables you to create reusable code transformations using Python functions decorated with `@graph_sitter.function`. These codemods can be shared, versioned, and run by your team. ## Creating Codemods @@ -18,10 +18,10 @@ gs create rename-function . This creates a new codemod in your `.codegen/codemods` directory: ```python -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("rename-function") +@graph_sitter.function("rename-function") def run(codebase: Codebase): """Add a description of what this codemod does.""" # Add your code here @@ -64,15 +64,15 @@ The execution flow: A codemod consists of three main parts: -1. The `@codegen.function` decorator that names your codemod +1. The `@graph_sitter.function` decorator that names your codemod 2. A `run` function that takes a `Codebase` parameter 3. Your transformation logic using the Codebase API ```python -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("update-imports") +@graph_sitter.function("update-imports") def run(codebase: Codebase): """Update import statements to use new package names.""" for file in codebase.files: @@ -93,7 +93,7 @@ class RenameArgs(BaseModel): old_name: str new_name: str -@codegen.function("rename-function") +@graph_sitter.function("rename-function") def run(codebase: Codebase, arguments: RenameArgs): """Rename a function across the codebase.""" old_func = codebase.get_function(arguments.old_name) diff --git a/docs/cli/create.mdx b/docs/cli/create.mdx index eca5b28e0..30d24fb46 100644 --- a/docs/cli/create.mdx +++ b/docs/cli/create.mdx @@ -41,10 +41,10 @@ When you run `gs create rename-function .`, it creates: The generated codemod will have this structure: ```python -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("rename-function") +@graph_sitter.function("rename-function") def run(codebase: Codebase): """Add a description of what this codemod does.""" # Add your code here diff --git a/docs/tutorials/training-data.mdx b/docs/tutorials/training-data.mdx index 79784136f..ce14a7c1b 100644 --- a/docs/tutorials/training-data.mdx +++ b/docs/tutorials/training-data.mdx @@ -31,7 +31,7 @@ First, we will do a "graph expansion" for each function - grab the function's so First, let's import the types we need from Codegen: ```python -import codegen +import graph_sitter from graph_sitter import Codebase from codegen.sdk.core.external_module import ExternalModule from codegen.sdk.core.import_resolution import Import diff --git a/examples/STRUCTURE.md b/examples/STRUCTURE.md index 91dc6ee3c..c27deb1a5 100644 --- a/examples/STRUCTURE.md +++ b/examples/STRUCTURE.md @@ -25,7 +25,7 @@ Your `run.py` should follow this structure, demonstrated well in the `generate_t 1. **Imports at the top** ```python - import codegen + import graph_sitter from graph_sitter import Codebase from codegen.sdk.core import Function # ... other imports @@ -42,7 +42,7 @@ Your `run.py` should follow this structure, demonstrated well in the `generate_t 1. **Main Graph-sitter function with decorator** ```python - @codegen.function("your-function-name") + @graph_sitter.function("your-function-name") def run(codebase: Codebase): """Clear docstring explaining what the function does. @@ -98,7 +98,7 @@ Choose between these approaches based on: 1. **Function Decorator** - - Always use `@codegen.function()` with a descriptive name + - Always use `@graph_sitter.function()` with a descriptive name - Name should match the example's purpose 1. **Utility Functions** @@ -136,7 +136,7 @@ def get_function_context(function) -> dict: # Main transformation with decorator -@codegen.function("generate-training-data") +@graph_sitter.function("generate-training-data") def run(codebase: Codebase): """Generate training data using a node2vec-like approach... diff --git a/examples/examples/codegen-mcp-server/server.py b/examples/examples/codegen-mcp-server/server.py index ddc7bb8b6..f990329c5 100644 --- a/examples/examples/codegen-mcp-server/server.py +++ b/examples/examples/codegen-mcp-server/server.py @@ -167,7 +167,7 @@ def codegen_system_prompt(): ```python from graph_sitter import Codebase -@codegen.function('{name}') +@graph_sitter.function('{name}') def codemod(codebase: Codebase): for function in codebase.functions: if not function.usages: @@ -355,9 +355,9 @@ async def run_codemod( return {"error": "Invalid JSON in arguments parameter"} # Create a session for the codemod - from graph_sitter.cli.auth.session import CodegenSession + from graph_sitter.cli.auth.session import CliSession - session = CodegenSession(state.parsed_codebase.repo_path) + session = CliSession(state.parsed_codebase.repo_path) session.codebase = state.parsed_codebase # Capture output diff --git a/examples/examples/cyclomatic_complexity/run.py b/examples/examples/cyclomatic_complexity/run.py index 04f1e4b5f..d396dfafb 100644 --- a/examples/examples/cyclomatic_complexity/run.py +++ b/examples/examples/cyclomatic_complexity/run.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter 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 @@ -6,7 +6,7 @@ from graph_sitter.core.statements.while_statement import WhileStatement -@codegen.function("cyclomatic-complexity") +@graph_sitter.function("cyclomatic-complexity") def run(codebase: Codebase): def calculate_cyclomatic_complexity(code_block): # Initialize cyclomatic complexity count diff --git a/examples/examples/delete_dead_code/run.py b/examples/examples/delete_dead_code/run.py index 95c6e8c8f..c0b1f410d 100644 --- a/examples/examples/delete_dead_code/run.py +++ b/examples/examples/delete_dead_code/run.py @@ -1,8 +1,8 @@ -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("delete-dead-code") +@graph_sitter.function("delete-dead-code") def run(codebase: Codebase): removed_functions_count = 0 removed_variables_count = 0 diff --git a/examples/examples/dict_to_schema/run.py b/examples/examples/dict_to_schema/run.py index ba9f86f7c..06640885d 100644 --- a/examples/examples/dict_to_schema/run.py +++ b/examples/examples/dict_to_schema/run.py @@ -1,8 +1,8 @@ -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("dict-to-pydantic-schema") +@graph_sitter.function("dict-to-pydantic-schema") def run(codebase: Codebase): """Convert dictionary literals to Pydantic models in a Python codebase. diff --git a/examples/examples/document_functions/run.py b/examples/examples/document_functions/run.py index f2ad132f9..53c2e46e6 100644 --- a/examples/examples/document_functions/run.py +++ b/examples/examples/document_functions/run.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.import_resolution import Import @@ -54,7 +54,7 @@ def get_extended_context(symbol: Symbol, degree: int) -> tuple[set[Symbol], set[ return dependencies, usages -@codegen.function("document-functions") +@graph_sitter.function("document-functions") def run(codebase: Codebase): # Define the maximum degree of dependencies and usages to consider for context N_DEGREE = 2 diff --git a/examples/examples/fragment_to_shorthand/run.py b/examples/examples/fragment_to_shorthand/run.py index 861d9f5a7..311864f20 100644 --- a/examples/examples/fragment_to_shorthand/run.py +++ b/examples/examples/fragment_to_shorthand/run.py @@ -1,8 +1,8 @@ -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("fragment_to_shorthand") +@graph_sitter.function("fragment_to_shorthand") def run(codebase: Codebase): print("šŸ” Starting Fragment syntax conversion...") diff --git a/examples/examples/freezegun_to_timemachine_migration/run.py b/examples/examples/freezegun_to_timemachine_migration/run.py index 5182fd801..118cf2fe3 100644 --- a/examples/examples/freezegun_to_timemachine_migration/run.py +++ b/examples/examples/freezegun_to_timemachine_migration/run.py @@ -1,8 +1,8 @@ -import codegen +import graph_sitter from graph_sitter import Codebase -@codegen.function("freezegun-to-timemachine") +@graph_sitter.function("freezegun-to-timemachine") def run(codebase: Codebase): """Convert FreezeGun usage to TimeMachine in test files. diff --git a/examples/examples/generate_training_data/run.py b/examples/examples/generate_training_data/run.py index 57ac60980..df13f8045 100644 --- a/examples/examples/generate_training_data/run.py +++ b/examples/examples/generate_training_data/run.py @@ -1,6 +1,6 @@ import json -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.external_module import ExternalModule from graph_sitter.core.import_resolution import Import @@ -42,7 +42,7 @@ def get_function_context(function) -> dict: return context -@codegen.function("generate-training-data") +@graph_sitter.function("generate-training-data") def run(codebase: Codebase): """Generate training data using a node2vec-like approach for code embeddings. diff --git a/examples/examples/modules_dependencies/run.py b/examples/examples/modules_dependencies/run.py index 094d8f761..284cceeb9 100644 --- a/examples/examples/modules_dependencies/run.py +++ b/examples/examples/modules_dependencies/run.py @@ -1,9 +1,9 @@ -import codegen +import graph_sitter import networkx as nx from graph_sitter import Codebase -@codegen.function("visualize-modules-dependencies") +@graph_sitter.function("visualize-modules-dependencies") def run(codebase: Codebase): # Create a directed graph G = nx.DiGraph() diff --git a/examples/examples/openapi_decorators/run.py b/examples/examples/openapi_decorators/run.py index 2cf92c55c..608408de3 100644 --- a/examples/examples/openapi_decorators/run.py +++ b/examples/examples/openapi_decorators/run.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter from graph_sitter import Codebase @@ -169,7 +169,7 @@ def analyze_method_params(method) -> dict: return schema -@codegen.function("add-openapi-decorators") +@graph_sitter.function("add-openapi-decorators") def run(codebase: Codebase): """Add OpenAPI decorators (@response and @expect) to API endpoints.""" analytics = {} diff --git a/examples/examples/promises_to_async_await/run.py b/examples/examples/promises_to_async_await/run.py index edc78918c..bbf8eb1d9 100644 --- a/examples/examples/promises_to_async_await/run.py +++ b/examples/examples/promises_to_async_await/run.py @@ -1,9 +1,9 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.statements.statement import StatementType -@codegen.function("promises-to-async-await") +@graph_sitter.function("promises-to-async-await") def run(codebase: Codebase): """Convert a repeated use of a promise chain to async await in the official twilio js client library twilio/twilio-node repository. diff --git a/examples/examples/python2_to_python3/run.py b/examples/examples/python2_to_python3/run.py index 904f77629..b7a2a3318 100644 --- a/examples/examples/python2_to_python3/run.py +++ b/examples/examples/python2_to_python3/run.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter from graph_sitter import Codebase # Initialize codebase @@ -115,7 +115,7 @@ def update_iterators(file): stmt.edit(new_stmt) -@codegen.function("python2-to-python3") +@graph_sitter.function("python2-to-python3") def run(): """Main function to run the Python 2 to 3 conversion""" print("šŸš€ Starting Python 2 to 3 conversion...\n") diff --git a/examples/examples/reexport_management/run.py b/examples/examples/reexport_management/run.py index d8eb7e512..4f4565562 100644 --- a/examples/examples/reexport_management/run.py +++ b/examples/examples/reexport_management/run.py @@ -1,11 +1,11 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.typescript.file import TSImport processed_imports = set() -@codegen.function("reexport_management") +@graph_sitter.function("reexport_management") def run(codebase: Codebase): print("šŸš€ Starting reexport analysis...") for file in codebase.files: diff --git a/examples/examples/remove_default_exports/run.py b/examples/examples/remove_default_exports/run.py index 6bf3581bb..50d7f3f9e 100644 --- a/examples/examples/remove_default_exports/run.py +++ b/examples/examples/remove_default_exports/run.py @@ -1,9 +1,9 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.typescript.file import TSFile -@codegen.function("remove-default-exports") +@graph_sitter.function("remove-default-exports") def run(codebase: Codebase): """Convert default exports to named exports in TypeScript files. diff --git a/examples/examples/sqlalchemy_1.6_to_2.0/run.py b/examples/examples/sqlalchemy_1.6_to_2.0/run.py index 34a3bcb3d..4b18ad8f6 100644 --- a/examples/examples/sqlalchemy_1.6_to_2.0/run.py +++ b/examples/examples/sqlalchemy_1.6_to_2.0/run.py @@ -1,10 +1,10 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall from graph_sitter.core.expressions.chained_attribute import ChainedAttribute -@codegen.function("sqlalchemy-1.4-to-2.0") +@graph_sitter.function("sqlalchemy-1.4-to-2.0") def run(codebase: Codebase): """ Convert SQLAlchemy 1.4 codebases to 2.0. diff --git a/examples/examples/sqlalchemy_soft_delete/run.py b/examples/examples/sqlalchemy_soft_delete/run.py index 3daa2fa24..12c33f870 100644 --- a/examples/examples/sqlalchemy_soft_delete/run.py +++ b/examples/examples/sqlalchemy_soft_delete/run.py @@ -2,7 +2,7 @@ import subprocess from pathlib import Path -import codegen +import graph_sitter from graph_sitter.core.detached_symbols.function_call import FunctionCall @@ -61,7 +61,7 @@ def clone_repo(repo_url: str, repo_path: Path) -> None: subprocess.run(["git", "clone", repo_url, str(repo_path)], check=True) -@codegen.function("sqlalchemy-soft-delete") +@graph_sitter.function("sqlalchemy-soft-delete") def process_soft_deletes(codebase): """Process soft delete conditions for join methods in the codebase.""" soft_delete_models = { diff --git a/examples/examples/sqlalchemy_type_annotations/run.py b/examples/examples/sqlalchemy_type_annotations/run.py index 24f80d15e..bbbeedfc9 100644 --- a/examples/examples/sqlalchemy_type_annotations/run.py +++ b/examples/examples/sqlalchemy_type_annotations/run.py @@ -2,7 +2,7 @@ import shutil import subprocess -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall @@ -21,7 +21,7 @@ def cleanup_git_repo(repo_path: str) -> None: shutil.rmtree(git_dir) -@codegen.function("sqlalchemy-type-annotations") +@graph_sitter.function("sqlalchemy-type-annotations") def run(codebase: Codebase): """Add Mapped types to SQLAlchemy models in a codebase. diff --git a/examples/examples/unittest_to_pytest/run.py b/examples/examples/unittest_to_pytest/run.py index f17b7a8ad..21f2312c3 100644 --- a/examples/examples/unittest_to_pytest/run.py +++ b/examples/examples/unittest_to_pytest/run.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter from graph_sitter import Codebase # Initialize codebase @@ -53,7 +53,7 @@ def {fixture_name}(): print(f"šŸ—‘ļø Removed setUp method from class {cls.name}") -@codegen.function("unittest-to-pytest") +@graph_sitter.function("unittest-to-pytest") def run(codebase: Codebase): """Main function to run the unittest to pytest conversion""" print("šŸš€ Starting unittest to pytest conversion...") diff --git a/examples/examples/usesuspensequery_to_usesuspensequeries/run.py b/examples/examples/usesuspensequery_to_usesuspensequeries/run.py index 2da970eab..1e6ee2187 100644 --- a/examples/examples/usesuspensequery_to_usesuspensequeries/run.py +++ b/examples/examples/usesuspensequery_to_usesuspensequeries/run.py @@ -1,9 +1,9 @@ -import codegen +import graph_sitter from graph_sitter import Codebase from graph_sitter.core.detached_symbols.function_call import FunctionCall -@codegen.function("useSuspenseQuery-to-useSuspenseQueries") +@graph_sitter.function("useSuspenseQuery-to-useSuspenseQueries") def run(codebase: Codebase): """Convert useSuspenseQuery calls to useSuspenseQueries in a React codebase. diff --git a/examples/examples/visualize_codebases/blast_radius.py b/examples/examples/visualize_codebases/blast_radius.py index 445c5716a..804418a4e 100644 --- a/examples/examples/visualize_codebases/blast_radius.py +++ b/examples/examples/visualize_codebases/blast_radius.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter import networkx as nx from graph_sitter import Codebase from graph_sitter.core.dataclasses.usage import Usage @@ -83,7 +83,7 @@ def create_blast_radius_visualization(symbol: PySymbol, depth: int = 0): create_blast_radius_visualization(usage_symbol, depth + 1) -@codegen.function("visualize-function-blast-radius") +@graph_sitter.function("visualize-function-blast-radius") def run(codebase: Codebase): """ Generate a visualization showing the blast radius of changes to a function. diff --git a/examples/examples/visualize_codebases/call_trace.py b/examples/examples/visualize_codebases/call_trace.py index 5dc85a979..123795d83 100644 --- a/examples/examples/visualize_codebases/call_trace.py +++ b/examples/examples/visualize_codebases/call_trace.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter import networkx as nx from graph_sitter import Codebase from graph_sitter.core.class_definition import Class @@ -86,7 +86,7 @@ def create_downstream_call_trace(src_func: Function, depth: int = 0): create_downstream_call_trace(func, depth + 1) -@codegen.function("visualize-function-call-relationships") +@graph_sitter.function("visualize-function-call-relationships") def run(codebase: Codebase): """Generate a visualization of function call relationships in a codebase. diff --git a/examples/examples/visualize_codebases/dependency_trace.py b/examples/examples/visualize_codebases/dependency_trace.py index 64168839f..43831fbc6 100644 --- a/examples/examples/visualize_codebases/dependency_trace.py +++ b/examples/examples/visualize_codebases/dependency_trace.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter import networkx as nx from graph_sitter import Codebase from graph_sitter.core.class_definition import Class @@ -52,7 +52,7 @@ def create_dependencies_visualization(symbol: Symbol, depth: int = 0): create_dependencies_visualization(dep_symbol, depth + 1) -@codegen.function("visualize-symbol-dependencies") +@graph_sitter.function("visualize-symbol-dependencies") def run(codebase: Codebase): """Generate a visualization of symbol dependencies in a codebase. diff --git a/examples/examples/visualize_codebases/method_relationships.py b/examples/examples/visualize_codebases/method_relationships.py index 1e1a5f837..bdfc8b068 100644 --- a/examples/examples/visualize_codebases/method_relationships.py +++ b/examples/examples/visualize_codebases/method_relationships.py @@ -1,4 +1,4 @@ -import codegen +import graph_sitter import networkx as nx from graph_sitter import Codebase from graph_sitter.core.class_definition import Class @@ -77,7 +77,7 @@ def create_downstream_call_trace(src_func: Function, depth: int = 0): create_downstream_call_trace(func, depth + 1) -@codegen.function("visualize-class-method-relationships") +@graph_sitter.function("visualize-class-method-relationships") def run(codebase: Codebase): """Generate a visualization of method call relationships within a class. diff --git a/pyproject.toml b/pyproject.toml index df14b5c5c..2f0dd094f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -160,6 +160,7 @@ dev-dependencies = [ "modal>=0.73.25", "pytest-lsp>=1.0.0b1", "cython>=3.0.11", + "pytest-split>=0.10.0", ] [tool.uv.workspace] diff --git a/src/graph_sitter/cli/auth/session.py b/src/graph_sitter/cli/auth/session.py index 354e0916c..f9d138172 100644 --- a/src/graph_sitter/cli/auth/session.py +++ b/src/graph_sitter/cli/auth/session.py @@ -13,7 +13,7 @@ from graph_sitter.git.repo_operator.local_git_repo import LocalGitRepo -class CodegenSession: +class CliSession: """Represents an authenticated codegen session with user and repository context""" repo_path: Path @@ -38,7 +38,7 @@ def __init__(self, repo_path: Path, git_token: str | None = None) -> None: session_manager.set_active_session(repo_path) @classmethod - def from_active_session(cls) -> "CodegenSession | None": + def from_active_session(cls) -> "CliSession | None": active_session = session_manager.get_active_session() if not active_session: return None @@ -84,4 +84,4 @@ def _validate(self) -> None: raise click.Abort() def __str__(self) -> str: - return f"CodegenSession(user={self.config.repository.user_name}, repo={self.config.repository.repo_name})" + return f"CliSession(user={self.config.repository.user_name}, repo={self.config.repository.repo_name})" diff --git a/src/graph_sitter/cli/codemod/convert.py b/src/graph_sitter/cli/codemod/convert.py index 8c99420f4..240812418 100644 --- a/src/graph_sitter/cli/codemod/convert.py +++ b/src/graph_sitter/cli/codemod/convert.py @@ -6,11 +6,11 @@ def convert_to_cli(input: str, language: str, name: str) -> str: # Run this codemod using `gs run {name}` OR the `run_codemod` MCP tool. # 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 +import graph_sitter from graph_sitter.core.codebase import Codebase -@codegen.function('{name}') +@graph_sitter.function('{name}') def run(codebase: Codebase): {indent(input, " ")} diff --git a/src/graph_sitter/cli/commands/create/main.py b/src/graph_sitter/cli/commands/create/main.py index 80d8fab06..a1750ec17 100644 --- a/src/graph_sitter/cli/commands/create/main.py +++ b/src/graph_sitter/cli/commands/create/main.py @@ -3,7 +3,7 @@ import rich import rich_click as click -from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.session import CliSession 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 @@ -52,7 +52,7 @@ def make_relative(path: Path) -> str: @click.argument("name", type=str) @click.argument("path", type=click.Path(path_type=Path), default=None) @click.option("--overwrite", is_flag=True, help="Overwrites function if it already exists.") -def create_command(session: CodegenSession, name: str, path: Path | None, overwrite: bool = False): +def create_command(session: CliSession, name: str, path: Path | None, overwrite: bool = False): """Create a new codegen function. NAME is the name/label for the function diff --git a/src/graph_sitter/cli/commands/init/main.py b/src/graph_sitter/cli/commands/init/main.py index 1271e743d..7a37bea5d 100644 --- a/src/graph_sitter/cli/commands/init/main.py +++ b/src/graph_sitter/cli/commands/init/main.py @@ -4,7 +4,7 @@ import rich import rich_click as click -from graph_sitter.cli.auth.session import CodegenSession +from graph_sitter.cli.auth.session import CliSession 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 @@ -30,7 +30,7 @@ def init_command(path: str | None = None, token: str | None = None, language: st rich.print(format_command("gs init")) sys.exit(1) - session = CodegenSession(repo_path=repo_path, git_token=token) + session = CliSession(repo_path=repo_path, git_token=token) if language: session.config.repository.language = language.upper() session.config.save() diff --git a/src/graph_sitter/cli/commands/list/main.py b/src/graph_sitter/cli/commands/list/main.py index cec12c91e..37a3b5198 100644 --- a/src/graph_sitter/cli/commands/list/main.py +++ b/src/graph_sitter/cli/commands/list/main.py @@ -35,5 +35,5 @@ def list_command(): rich.print(format_command("gs run