diff --git a/.circleci/ats.sh b/.circleci/ats.sh index 8d0bcb3cf..0177e8494 100755 --- a/.circleci/ats.sh +++ b/.circleci/ats.sh @@ -33,4 +33,3 @@ if [ ! -s codecov_ats/tests_to_run.txt ]; then run_count=1 echo "Added ${TESTS_TO_RUN} as fallback. New run count: $run_count" fi - diff --git a/.circleci/config.yml b/.circleci/config.yml index ab288240d..46d2b5cd8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -528,6 +528,3 @@ workflows: requires: - linux-wheels - osx-wheels - - - diff --git a/.github/codecov.yml b/.github/codecov.yml index c943f5891..defec98ab 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -71,4 +71,3 @@ cli: - "--verbose" - "-n=auto" python_path: ".venv/bin/python" - diff --git a/.gitignore b/.gitignore index 4b1da69de..ef6b42612 100644 --- a/.gitignore +++ b/.gitignore @@ -65,4 +65,4 @@ graph-sitter-types/typings/** coverage.json tests/integration/verified_codemods/codemod_data/repo_commits.json .codegen/* -.benchmarks/* \ No newline at end of file +.benchmarks/* diff --git a/.lfsconfig b/.lfsconfig index ce560ac64..f1ff0bb49 100644 --- a/.lfsconfig +++ b/.lfsconfig @@ -1,2 +1,2 @@ [lfs] - url = git@github.com:codegen-sh/graph-sitter-private.git \ No newline at end of file + url = git@github.com:codegen-sh/graph-sitter-private.git diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e147af2bc..a1c6f407b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -43,7 +43,7 @@ repos: exclude_types: [mdx, pyi] - id: check-yaml - id: end-of-file-fixer - files: .*/expected_diff.patch + exclude: (src/codemods/eval)|(tests/unit/skills/snapshots)|(tests/unit/codegen/sdk/output)|(tests/integration/verified_codemods)|(docs/) - id: check-merge-conflict - repo: https://github.com/python-jsonschema/check-jsonschema @@ -80,6 +80,13 @@ repos: entry: scripts/disallowed-words-check.sh language: script files: '' # Check all files + - id: generate-runner-imports + name: Generate Runner Imports + entry: bash -c "uv run --frozen python -m codegen.gscli.main generate runner-imports src/codegen/shared/compilation/function_imports.py" + language: system + pass_filenames: false + always_run: true + - repo: https://github.com/renovatebot/pre-commit-hooks rev: 39.120.4 hooks: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3d27630db..1be7c5304 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -69,4 +69,3 @@ git push origin v0.YOUR_VERSION ``` This will trigger a release job to build this new version. - diff --git a/mypy.ini b/mypy.ini index 5d62d120b..d186be42f 100644 --- a/mypy.ini +++ b/mypy.ini @@ -49,4 +49,3 @@ exclude = (?x)( | tests/unit/skills/snapshots/* ) plugins = pydantic.mypy - diff --git a/pyproject.toml b/pyproject.toml index 48fc6d5e0..b633effaf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -153,14 +153,7 @@ max-line-length = 200 [tool.ruff] line-length = 200 -exclude = [ - "app/codemod/compilation/function_imports.py", # generated import list to compile uesr code with - 'codegen_tests/**/expected*/**', - 'codegen_tests/**/original/**', - 'codegen_tests/projects/**/codebase/**', - 'docs/**', - 'scripts/Debugging/**', -] +exclude = ["src/codegen/shared/compilation/function_imports.py", 'docs/**'] lint.select = ["F", "E", "W", "I", "UP", "D", "RUF", "DTZ"] lint.ignore = [ @@ -192,9 +185,8 @@ lint.exclude = [ ] # disable just linting for notebooks (allow for formatting) lint.pydocstyle.convention = "google" [tool.ruff.lint.isort] -known-first-party = ["app"] -known-third-party = ["git"] -#known-local-folder=[] +known-first-party = ["codegen"] + [tool.coverage.run] branch = true plugins = ["Cython.Coverage"] diff --git a/scripts/setup-lfs.sh b/scripts/setup-lfs.sh index e69ad1e4e..5325aacae 100755 --- a/scripts/setup-lfs.sh +++ b/scripts/setup-lfs.sh @@ -2,4 +2,4 @@ ./scripts/install-deps.sh git lfs install -git lfs pull \ No newline at end of file +git lfs pull diff --git a/scripts/setup.sh b/scripts/setup.sh index 2e98a41c1..0a120eac2 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -6,4 +6,4 @@ uv tool update-shell uv venv && source .venv/bin/activate uv sync pre-commit install -pre-commit install-hooks \ No newline at end of file +pre-commit install-hooks diff --git a/src/codegen/gsbuild/build.py b/src/codegen/gsbuild/build.py index 789d23ef1..55b695ffc 100644 --- a/src/codegen/gsbuild/build.py +++ b/src/codegen/gsbuild/build.py @@ -21,5 +21,4 @@ class SpecialBuildHook(BuildHookInterface): def initialize(self, version: str, build_data: dict[str, Any]) -> None: file = Path(self.root) / "src" / "codegen" / "sdk" / "__init__.py" update_init_file(file) - build_data["artifacts"].append(f"/{file}") diff --git a/src/codegen/gscli/__init__.py b/src/codegen/gscli/__init__.py index 8b1378917..e69de29bb 100644 --- a/src/codegen/gscli/__init__.py +++ b/src/codegen/gscli/__init__.py @@ -1 +0,0 @@ - diff --git a/src/codegen/gscli/generate/commands.py b/src/codegen/gscli/generate/commands.py index cdc24944a..47c87f79d 100644 --- a/src/codegen/gscli/generate/commands.py +++ b/src/codegen/gscli/generate/commands.py @@ -186,3 +186,7 @@ def generate_codegen_sdk_docs(docs_dir: str) -> None: json.dump(mint_data, mint_file, indent=2) print(colored("Updated mint.json with new page sets", "green")) + + +if __name__ == "__main__": + generate() diff --git a/src/codegen/gscli/generate/runner_imports.py b/src/codegen/gscli/generate/runner_imports.py index 53da72531..02daedbba 100644 --- a/src/codegen/gscli/generate/runner_imports.py +++ b/src/codegen/gscli/generate/runner_imports.py @@ -14,6 +14,7 @@ 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 """ @@ -34,13 +35,16 @@ {gs_public_imports} """.strip() -IMPORT_FILE_TEMPLATE = ''' -# This file is auto-generated, do not modify manually. Edit this in codegen-backend/cli/generate/runner_imports.py. +IMPORT_FILE_TEMPLATE = ( + ''' +# This file is auto-generated, do not modify manually. Edit this in src/codegen/gscli/generate/runner_imports.py. def get_generated_imports(): return """ {import_str} """ '''.strip() + + "\n" +) def get_runner_imports(include_codegen=True, include_private_imports: bool = True) -> str: diff --git a/src/codegen/runner/sandbox/executor.py b/src/codegen/runner/sandbox/executor.py index afc15bfd0..6304d694e 100644 --- a/src/codegen/runner/sandbox/executor.py +++ b/src/codegen/runner/sandbox/executor.py @@ -53,7 +53,7 @@ async def find_flag_groups(self, code_flags: list[CodeFlag], grouping_config: Gr # =====[ Group the code flags ]===== logger.info(f"> Grouping CodeFlags by config: {grouping_config}") - grouper = get_grouper_by_group_by(grouping_config.group_by, repo_id=self.codebase.op.repo_config.id) + grouper = get_grouper_by_group_by(grouping_config.group_by) groups = grouper.create_all_groups(flags=code_flags, repo_operator=self.codebase.op) logger.info(f"> Created {len(groups)} groups") return groups diff --git a/src/codegen/sdk/core/global_context.py b/src/codegen/sdk/core/global_context.py deleted file mode 100644 index 08e430adb..000000000 --- a/src/codegen/sdk/core/global_context.py +++ /dev/null @@ -1,20 +0,0 @@ -from dataclasses import dataclass, field -from typing import TYPE_CHECKING - -from codegen.sdk.codebase.config import DefaultConfig, GraphSitterConfig -from codegen.sdk.codebase.multigraph import MultiGraph -from codegen.sdk.core.plugins import PLUGINS - -if TYPE_CHECKING: - from codegen.sdk.core.codebase import Codebase - from codegen.sdk.core.function import Function - - -@dataclass -class GlobalContext[TFunction: Function]: - multigraph: MultiGraph[TFunction] = field(default_factory=MultiGraph) - config: GraphSitterConfig = DefaultConfig - - def execute_plugins(self, codebase: "Codebase"): - for plugin in PLUGINS: - plugin.execute(codebase) diff --git a/src/codegen/shared/compilation/README.md b/src/codegen/shared/compilation/README.md index 626ceb7ea..d6913e076 100644 --- a/src/codegen/shared/compilation/README.md +++ b/src/codegen/shared/compilation/README.md @@ -5,4 +5,3 @@ This includes: - Catching and logging any compilation errors - Monkey patching built-ins like print - etc - diff --git a/src/codegen/shared/compilation/function_imports.py b/src/codegen/shared/compilation/function_imports.py index 5937d906e..67ce6f0b3 100644 --- a/src/codegen/shared/compilation/function_imports.py +++ b/src/codegen/shared/compilation/function_imports.py @@ -1,4 +1,4 @@ -# This file is auto-generated, do not modify manually. Edit this in codegen-backend/cli/generate/runner_imports.py. +# This file is auto-generated, do not modify manually. Edit this in src/codegen/gscli/generate/runner_imports.py. def get_generated_imports(): return """ # External imports @@ -12,10 +12,11 @@ def get_generated_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 codegen.sdk.codebase.control_flow import StopCodemodException +from codegen.shared.exceptions.control_flow import StopCodemodException # GraphSitter imports (public) from codegen.sdk.codebase.flagging.enums import FlagKwargs