Nimblesite / Nimblesite/Basilisk
Basilisk ships no standard-library type information — stdlib recognition is name-only
@MelbourneDeveloper is already working on this.
Since Jul 25, 2026.
- Dominant language
- Rust
- Stars
- 54
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
Problem
Basilisk contains no type information for the Python standard library. What we call stdlib "resolution" is a compile-time list of module names (built from typeshed's VERSIONS file into a phf set) whose only job is suppressing imports_unresolved on lines like import os. No stub content for any stdlib module exists anywhere in the product — a stdlib import resolves to no file (resolved_path = None), so populate_imported_symbols skips it and every downstream consumer sees nothing.
Observable symptoms
- #289 (reopened): hovering
Mockinsession = Mock()renders only(import) from unittest.mock import MagicMock, Mock, patch— no class info, no constructor hint. The same holds for every symbol imported from the stdlib:Path,Thread,datetime,urlparse, … - The only stdlib type knowledge in the product is a hand-maintained table of ~50
strmethod signatures added for #288 (builtin_members.rs). Curating the stdlib by hand one bug report at a time does not scale and guarantees repeat issues like #289. - Our own spec and code claim stdlib type data exists when it does not:
[STUBRES-TYPESHED]and the resolution table inCHECKER-STUB-RESOLUTION-SPEC.mddescribe typeshed stdlib stubs "bundled intobasilisk-stubs", and theStubSource::Typeshedenum variant is documented as "bundled typeshed, compiled into the binary". Thetypeshed-pathconfig exists to override a bundled default that isn't there.
What is blocked by this gap
Any feature that must know what a stdlib name is — hover signatures and constructor hints, signature help, completions on stdlib types, go-to-type-definition into the stdlib, and any future checker-side use of stdlib types.
What needs to be decided
The typing spec's import-resolution ordering (step 3) assumes checkers have stdlib typeshed stubs, noting they "will usually be vendored by type checkers" (https://typing.python.org/en/latest/spec/distributing.html#import-resolution-ordering). We need to answer, deliberately rather than by accident:
- Do we need stdlib type data at all to meet the product bar ("one IDE extension for a complete, fast workflow"), and which features require it at what fidelity?
- If we need it, where must the data live, given the constraints that actually bind us: deterministic out-of-the-box behavior, offline/air-gapped users, hermetic builds (
make benchand CI do clean fresh builds), binary/repo size, license/attribution obligations of redistributing the data, and keeping the stubs refreshable against upstream. - If we decide we do NOT need it,
[STUBRES-TYPESHED],StubSource::Typeshed, and thetypeshed-pathdocs must be corrected to stop claiming a bundled stdlib source exists.
This issue deliberately specifies the problem only — no solution is prescribed here.
Refs #289, #288.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.