P2PySonar2 GitHub repository
Type inferencer and indexer · Python 3.10–3.14

Explore inferred types and a whole-project Python index.

Walk through a real multi-file Python project and inspect definitions, references, inferred types, overrides, decorators, modern syntax, and explicit coverage boundaries. Every page is generated locally—no hosted analysis service required.

9Python files
186Definitions
321Cross references
97%Static names resolved
Guided examples

Six short paths through the semantic graph

Pick a question, open the source, then follow the highlighted symbols and hover facts.

Coverage-aware indexing

An honest index records what it could not resolve.

PySonar2 reports coverage and limitations alongside inferred types, definitions, and references. Resolved static relationships remain distinct from dynamic behavior the index cannot model.

Read the conformance results →
fully indexed symbolready
{ "coverageStatus": "complete", "applicable": true, "confidence": "high" }
dynamic injectionstop
{ "coverageStatus": "complete", "applicable": false, "confidence": "unsupported" }

unsupportedSemantics is reported for behavior outside the static model instead of presenting an incomplete index as complete.

Capability matrix

More than go-to-definition

Every capability below is backed by a small source example you can open and navigate.

01

Imports & re-exports

Follow public aliases through package APIs and module attributes.

pysonar_demo/__init__.py
02

Annotation-assisted flow

Use declared types when runtime evidence remains unknown.

pysonar_demo/models.py
03

Properties & attributes

Resolve computed properties to their inferred value types.

pysonar_demo/models.py
04

C3 override families

Connect base methods, overrides, and calls in Python MRO order.

pysonar_demo/strategies.py
05

Decorator factories

Propagate a decorator's returned object type to the exposed name.

pysonar_demo/decorators.py
06

Descriptor aliases

Keep same-name static method aliases in one impact surface.

pysonar_demo/decorators.py
07

Walrus bindings

Navigate assignment-expression targets and later reads.

pysonar_demo/syntax.py
08

Pattern captures

Retain bindings created inside structural match cases.

pysonar_demo/syntax.py
09

Typed comprehensions

Carry element types through filtered list comprehensions.

pysonar_demo/syntax.py
10

Async results

Distinguish an awaitable call from its awaited result.

pysonar_demo/feed.py
11

Recursive inference

Track values through recursive calls and numeric branches.

pysonar_demo/scoring.py
12

Cross-file orchestration

Trace constructors, collections, and calls across service boundaries.

pysonar_demo/service.py
Analyzed workspace

Project files demo_project/

Choose a file to inspect its static names, definitions, references, and inferred types.

main.pyApplication entry point and cross-module calls.pysonar_demo/__init__.pyPackage exports and cross-file references.pysonar_demo/decorators.pyDecorator factories, returned object types, and descriptor aliases.pysonar_demo/feed.pyAwaitable calls, awaited result types, and data normalization.pysonar_demo/models.pyDomain classes, constructors, and computed state.pysonar_demo/scoring.pyFunctions, recursion, and numeric type flow.pysonar_demo/service.pyOrchestration, branching, and collection inference.pysonar_demo/strategies.pyC3 inheritance, overrides, class methods, and static methods.pysonar_demo/syntax.pyWalrus bindings, match captures, typed comprehensions, and modern parameters.