Skip to content

oss sync - #370

Merged
ebetica merged 1 commit into
mainfrom
oss-sync-2026-07-28
Jul 28, 2026
Merged

oss sync#370
ebetica merged 1 commit into
mainfrom
oss-sync-2026-07-28

Conversation

@ebetica

@ebetica ebetica commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Regenerated from the internal monorepo with evoscale sync-open-source, then formatted with this repo's own pixi run lint-all.

Provenance

  • Sync source: internal ed19808f6a63fe5bbe7cfb5a49378c76f92403cf, which is internal main @ 2a456e6366 plus the one-line source fix described under predicted_aligned_error.py below.
  • Version held at 3.3.0 — no version bump, no pyproject.toml or pixi.lock change (lock was already up to date, so there is zero lock churn in this PR).

Substantive vs formatter churn. The raw sync touched 71 files (+567/-314), but almost all of that was formatter churn: the internal repo and this repo have different ruff settings (this repo sets skip-magic-trailing-comma/split-on-trailing-comma = false, so it collapses the exploded import and signature forms the internal formatter emits). After running this repo's own linter the diff is the 6 files below, +25/-15 — all real content. Nothing here is reformatting.

Changes

File Substantive change
esm/utils/msa/msa.py (+msa_test.py) Preserve A3M insertions in from_a3m. The old assert len(seq) == len(entries[0].sequence) fired incorrectly whenever insertions were kept — which is the default (remove_insertions=False) — because preserved insertions make rows different lengths. Replaced with a match-column-count check that raises ValueError, plus a regression test. Docstring/comment that still claimed remove_insertions=True was the default are corrected.
esm/sdk/forge.py potential_sequence_of_concern now defaults to False on SequenceStructureForgeInferenceClient.inverse_fold and .async_inverse_fold, so it is no longer a required positional argument. 2 lines.
esm/utils/structure/predicted_aligned_error.py compute_tm now uses @torch.no_grad() rather than the bare @torch.no_grad. Runtime behaviour is identical (no_grad.__new__ already routes the bare form through cls()(func)), but the called form is what the other 7 no_grad decorators in the package use, and type checkers no longer infer the decorated function as a no_grad instance. 1 line.
esm/models/vqvae.py Comment-only. Drops the two # ty:ignore[unknown-argument] suppressions at the compute_tm call site, which the line above makes unnecessary. No code change.
_assets/esmfold2_folding.png Folding figure refreshed: OpenFold3 bars now come from the paired-MSA-fix run.

Net effect on type-checking: this removes 3 ty:ignore comments rather than adding any. Those 3 had been added directly in this repo and were therefore reverted by every sync; fixing the decorator upstream makes the sync idempotent here.

Verification

All run against this synced tree in this repo's own pixi env, with no monorepo on sys.path (asserted: monorepo on sys.path: False).

pytest esm/utils/msa/msa_test.py -q            ->  16 passed
pixi run lint-all                              ->  all hooks pass except `ty` (see below);
                                                   leaves the committed tree unmodified
ty check --python .pixi/envs/dev                ->  All checks passed

Plus a targeted script asserting, for the three non-MSA files: both inverse_fold signatures default to False; compute_tm returns requires_grad=False with finite pTM in [0,1] and is deterministic across the kwargs call path vqvae uses; StructureTokenDecoder imports and retains its compute_tm call with no ty:ignore left.

Honest limitations

  • The local ty pre-commit hook reports 228 error[unresolved-import] for torch/numpy. That is the hook failing to locate the pixi env's site-packages, not a code issue — ty check --python .pixi/envs/dev is clean, and CI's test-precommit job passes. It reported 3 real errors before the @torch.no_grad() change and 0 after.
  • I did not get a clean full-suite pytest run. Invoking msa_test.py together with molecular_complex_test.py / input_builder_test.py / prepare_input_test.py deadlocks in futex_wait with ~100 open pipes; this reproduces independently of this diff and I did not diagnose it. Verification above is therefore targeted per changed file, not a full-suite pass — I am not claiming the full suite green.
  • Not run: the GPU model-card snippet suite (needs a Hub weight download) and tests/oss_pytests/ client tests (need a Forge API token). Nothing in this diff touches the HF model code or the client transport.

@github-actions

Copy link
Copy Markdown
Tests Skipped Failures Errors Time
44 1 💤 0 ❌ 0 🔥 16.909s ⏱️

@ebetica
ebetica merged commit 26b0bc2 into main Jul 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants