Last 12 weeks · 40 commits
5 of 6 standards met
Summary: Switch sapp's Python type checker from Pyre to Pyrefly, Meta's new Python type checker that replaces Pyre. OSS CI workflow: . Replaces the manual install + step with the official composite action, keeping the Python version matrix (3.10, 3.11, 3.12) and the existing dependency install step. Added an explicit step before so the pyrefly action runs against the same Python interpreter the dependencies were installed under. Lint workflow (.github/workflows/lint.yml): Pin Python to 3.12 for ufmt/flake8 jobs (avoids a Python 3.14 beta that was breaking ufmt's multiprocessing with ). Bump action versions to match pyrefly.yml: and . Bump with so the OSS formatter matches fbcode's internal Black. Without this, the two disagreed on formatting and ping-ponged. Type-checker configuration (pyrefly.toml): mirrors the old list. keeps the vendored stubs discoverable for import resolution. collapses sapp's legacy SQLAlchemy ORM usage to . Real SQLAlchemy inline types are stricter about Core vs ORM patterns and surface mismatches sapp didn't satisfy (under pyre the same issues were silently suppressed -- 150+ errors in alone). honors legacy / comments. sapp has 240+ such comments that would otherwise be ignored by pyrefly's default config. Code fixes: in : the method builds a namedtuple at runtime but was unannotated. Pyrefly inferred , causing ~25 downstream errors when model records were passed to TraceGraph helpers. in : the list holds click-decorated functions, which are instances after decoration. Delete stale (no longer referenced). Remove unused import in . Apply Black 25.x formatting to two blocks in and that had pre-existing drift. README badge: workflow -> workflow (the old workflow was deleted so the badge was broken). Error suppressions: Pyrefly is stricter than Pyre and surfaces errors Pyre silently allowed. Pre-existing errors are suppressed with comments so this migration is behavior-preserving. Some suppressions use bare (no error kind) because fbcode's internal pyrefly and OSS pyrefly 0.62 sometimes report the same underlying issue under different error kinds (e.g., vs ). Python-3.10-specific suppression on in : the enum member shadows 's descriptor, which pyrefly 0.62 on 3.10 flags but 3.11/3.12 accept. Differential Revision: D102020447
Repository: facebook/sapp. Description: Post Processor for Facebook Static Analysis Tools. Stars: 142, Forks: 48. Primary language: Python. Languages: Python (91.8%), JavaScript (7.8%), CSS (0.2%), Shell (0.1%), HTML (0.1%). License: MIT. Open PRs: 15, open issues: 8. Last activity: 3d ago. Community health: 87%. Top contributors: 0xedward, arthaud, alexblanck, abishekvashok, dkgi, fahndrich, yuhshin-oss, williewillus, scottblaha, stroxler and others.