Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

[WIP]: persistent analysis, part I #1218

Closed
wants to merge 97 commits into from

Conversation

MikhailArkhipov
Copy link

@MikhailArkhipov MikhailArkhipov commented Jun 18, 2019

Closes #1112
Closes #1177
Closes #1178
Closes #1205
Closes #1221

Works in basic scenarios like import sys. Should be merged in inactive state - remove creation of the database service in Server initialization by commenting out

_services.AddService(new ModuleDatabase(_services));
  • Introduces 'qualified name' to types. This is how type is identified in the module saved analysis. For example, A.B.C for method C inside method B in class A. i:mod:z is an instance of type z defined in module mod.
  • Provides model classes for modules, classes, functions, properties, variables.
  • Fixes issues when declaring module for Union and collections from typing was actually builtins.
  • Uses LiteDb to save models to file. Currently uses one file per module for convenience of debugging.
  • Splits PythonModule to partial classes.
  • Provides code to recostruct types from qualified names.
  • Implements database service to get module constructed from the db instead of running analysis.

See outstanding issues in the epic on what is not handled yet.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
1 participant