Merge pull request #15 from pythonbpf/static-type-checks

Static type checks
This commit is contained in:
varunrmallya
2025-10-02 01:38:46 +05:30
committed by GitHub
5 changed files with 19 additions and 19 deletions

View File

@ -5,10 +5,7 @@ name: Format
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
jobs:
pre-commit:

View File

@ -41,16 +41,15 @@ repos:
- id: ruff
args: ["--fix", "--show-fixes"]
- id: ruff-format
exclude: ^(docs)
exclude: ^(docs)|^(tests)|^(examples)
## Checking static types
#- repo: https://github.com/pre-commit/mirrors-mypy
# rev: "v1.10.0"
# hooks:
# - id: mypy
# files: "setup.py"
# args: []
# additional_dependencies: [types-setuptools]
# Checking static types
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.10.0"
hooks:
- id: mypy
exclude: ^(tests)|^(examples)
additional_dependencies: [types-setuptools]
# Changes tabs to spaces
- repo: https://github.com/Lucas-C/pre-commit-hooks

View File

@ -141,7 +141,7 @@ def compile() -> bool:
success = True
success = compile_to_ir(str(caller_file), str(ll_file)) and success
success = (
success = bool(
subprocess.run(
[
"llc",

View File

@ -1,13 +1,13 @@
from llvmlite import ir
import ast
from typing import Any
from .helper import HelperHandlerRegistry, handle_helper_call
from .type_deducer import ctypes_to_ir
from .binary_ops import handle_binary_op
from .expr_pass import eval_expr, handle_expr
local_var_metadata = {}
local_var_metadata: dict[str | Any, Any] = {}
def get_probe_string(func_node):
@ -656,9 +656,9 @@ def infer_return_type(func_node: ast.FunctionDef):
except Exception:
return type(e).__name__
for node in ast.walk(func_node):
if isinstance(node, ast.Return):
t = _expr_type(node.value)
for walked_node in ast.walk(func_node):
if isinstance(walked_node, ast.Return):
t = _expr_type(walked_node.value)
if found_type is None:
found_type = t
elif found_type != t:

View File

@ -1,7 +1,11 @@
from collections.abc import Callable
from typing import Any
class MapProcessorRegistry:
"""Registry for map processor functions"""
_processors = {}
_processors: dict[str, Callable[..., Any]] = {}
@classmethod
def register(cls, map_type_name):