[project] name = "program-model" version = "0.1.0" description = "Buttercup contextualizer" readme = "README.md" authors = [{ name = "Trail of Bits", email = "opensource@trailofbits" }] requires-python = ">=3.10,<3.13" dependencies = [ "gremlinpython==3.7.3", "common", "protobuf (>=3.20, <=3.20.3)", "tree-sitter>=0.24.0", "tree-sitter-language-pack>=0.4.0", ] [project.scripts] buttercup-program-model = "buttercup.program_model.__cli__:main" [tool.uv.sources] common = { path = "../common", editable = true } [tool.hatch.build.targets.wheel] packages = ["src/buttercup"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.ruff] extend-exclude = [ "aixcc-kythe", "src/buttercup/program_model/data/kythe/proto/", ] [dependency-groups] dev = ["pytest>=8.3.4", "ruff>=0.9.2", "mypy>=1.15.0"] [tool.mypy] plugins = ["pydantic.mypy"] mypy_path = "src" packages = "buttercup" allow_redefinition = true check_untyped_defs = true disallow_incomplete_defs = true disallow_untyped_defs = true ignore_missing_imports = true no_implicit_optional = true show_error_codes = true sqlite_cache = true strict_equality = true warn_no_return = true warn_redundant_casts = true warn_return_any = true warn_unreachable = true warn_unused_configs = true warn_unused_ignores = true exclude = []