FastAPI fastapi/ package: reference and legacy import pairs vs independent AST import truth (tools/py_import_truth.py)
v0.20     truth  47 SCC[3] | reference  47 missing  0 spurious  0 | legacy  39 missing  9 spurious  1
v0.41     truth  56 SCC[3] | reference  56 missing  0 spurious  0 | legacy  48 missing  9 spurious  1
v0.61     truth  67 SCC[6] | reference  67 missing  0 spurious  0 | legacy  54 missing 14 spurious  1
      legacy missing: fastapi/__init__.py -> fastapi/applications.py
      legacy missing: fastapi/__init__.py -> fastapi/background.py
      legacy missing: fastapi/__init__.py -> fastapi/datastructures.py
      legacy missing: fastapi/__init__.py -> fastapi/exceptions.py
      legacy missing: fastapi/__init__.py -> fastapi/param_functions.py
      legacy missing: fastapi/__init__.py -> fastapi/requests.py
      legacy missing: fastapi/__init__.py -> fastapi/responses.py
      legacy missing: fastapi/__init__.py -> fastapi/routing.py
      legacy missing: fastapi/__init__.py -> fastapi/websockets.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/api_key.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/http.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/oauth2.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/open_id_connect_url.py
      legacy missing: fastapi/utils.py -> fastapi/__init__.py
      legacy spurious: fastapi/security/__init__.py -> fastapi/__init__.py
v0.69     truth  74 SCC[6] | reference  74 missing  0 spurious  0 | legacy  61 missing 14 spurious  1
v0.85.2   truth  77 SCC[7] | reference  77 missing  0 spurious  0 | legacy  64 missing 14 spurious  1
v0.104.1  truth  95 SCC[7, 3] | reference  95 missing  0 spurious  0 | legacy  73 missing 24 spurious  2
v0.115    truth  94 SCC[7, 3] | reference  94 missing  0 spurious  0 | legacy  72 missing 24 spurious  2
v0.119    truth 125 SCC[7, 7] | reference 120 missing  6 spurious  1 | legacy  87 missing 41 spurious  3
      reference spurious: fastapi/_compat/__init__.py -> fastapi/__init__.py
v0.129    truth 105 SCC[7, 4] | reference 104 missing  2 spurious  1 | legacy  79 missing 29 spurious  3
      reference spurious: fastapi/_compat/__init__.py -> fastapi/__init__.py
      legacy missing: fastapi/__init__.py -> fastapi/applications.py
      legacy missing: fastapi/__init__.py -> fastapi/background.py
      legacy missing: fastapi/__init__.py -> fastapi/datastructures.py
      legacy missing: fastapi/__init__.py -> fastapi/exceptions.py
      legacy missing: fastapi/__init__.py -> fastapi/param_functions.py
      legacy missing: fastapi/__init__.py -> fastapi/requests.py
      legacy missing: fastapi/__init__.py -> fastapi/responses.py
      legacy missing: fastapi/__init__.py -> fastapi/routing.py
      legacy missing: fastapi/__init__.py -> fastapi/websockets.py
      legacy missing: fastapi/_compat/__init__.py -> fastapi/_compat/shared.py
      legacy missing: fastapi/_compat/__init__.py -> fastapi/_compat/v2.py
      legacy missing: fastapi/_compat/v2.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/_compat/v2.py -> fastapi/_compat/shared.py
      legacy missing: fastapi/datastructures.py -> fastapi/_compat/v2.py
      legacy missing: fastapi/dependencies/models.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/dependencies/utils.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/encoders.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/openapi/models.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/openapi/utils.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/param_functions.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/params.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/routing.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/api_key.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/http.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/oauth2.py
      legacy missing: fastapi/security/__init__.py -> fastapi/security/open_id_connect_url.py
      legacy missing: fastapi/utils.py -> fastapi/__init__.py
      legacy missing: fastapi/utils.py -> fastapi/_compat/__init__.py
      legacy missing: fastapi/utils.py -> fastapi/_compat/v2.py
      legacy spurious: fastapi/_compat/__init__.py -> fastapi/__init__.py
      legacy spurious: fastapi/datastructures.py -> fastapi/__init__.py
      legacy spurious: fastapi/security/__init__.py -> fastapi/__init__.py

True cycles (AST) and the edges between their members, v0.85.2 and v0.129
v0.85.2 all [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py']]
v0.85.2 runtime [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py']]
v0.85.2 import_time [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py']]
     routing.py -> dependencies/utils.py module line 24
     routing.py -> dependencies/utils.py module line 24
     routing.py -> dependencies/utils.py module line 24
     routing.py -> dependencies/utils.py module line 24
     routing.py -> utils.py module line 33
     routing.py -> utils.py module line 33
     routing.py -> utils.py module line 33
     routing.py -> utils.py module line 33
     routing.py -> utils.py module line 33
     __init__.py -> applications.py module line 7
     __init__.py -> routing.py module line 22
     utils.py -> __init__.py module line 8
     utils.py -> routing.py type_checking line 18
     applications.py -> routing.py module line 15
     applications.py -> exception_handlers.py module line 18
     applications.py -> exception_handlers.py module line 18
     applications.py -> openapi/utils.py module line 30
     applications.py -> utils.py module line 33
     exception_handlers.py -> utils.py module line 3
     dependencies/utils.py -> utils.py module line 33
     dependencies/utils.py -> utils.py module line 33
     openapi/utils.py -> routing.py module line 7
     openapi/utils.py -> dependencies/utils.py module line 10
     openapi/utils.py -> dependencies/utils.py module line 10
     openapi/utils.py -> utils.py module line 16
     openapi/utils.py -> utils.py module line 16
     openapi/utils.py -> utils.py module line 16
     openapi/utils.py -> utils.py module line 16
v0.129 all [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py'], ['_compat/__init__.py', '_compat/v2.py', 'openapi/models.py', 'params.py']]
v0.129 runtime [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py'], ['_compat/__init__.py', '_compat/v2.py', 'openapi/models.py', 'params.py']]
v0.129 import_time [['__init__.py', 'applications.py', 'dependencies/utils.py', 'exception_handlers.py', 'openapi/utils.py', 'routing.py', 'utils.py'], ['_compat/__init__.py', '_compat/v2.py']]
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> dependencies/utils.py module line 39
     routing.py -> utils.py module line 57
     routing.py -> utils.py module line 57
     routing.py -> utils.py module line 57
     routing.py -> utils.py module line 57
     __init__.py -> applications.py module line 7
     __init__.py -> routing.py module line 23
     utils.py -> __init__.py module line 9
     utils.py -> routing.py type_checking line 23
     applications.py -> routing.py module line 10
     applications.py -> exception_handlers.py module line 12
     applications.py -> exception_handlers.py module line 12
     applications.py -> exception_handlers.py module line 12
     applications.py -> openapi/utils.py module line 25
     applications.py -> utils.py module line 28
     exception_handlers.py -> utils.py module line 3
     dependencies/utils.py -> utils.py module line 52
     dependencies/utils.py -> utils.py module line 52
     openapi/utils.py -> routing.py module line 8
     openapi/utils.py -> dependencies/utils.py module line 20
     openapi/utils.py -> dependencies/utils.py module line 20
     openapi/utils.py -> dependencies/utils.py module line 20
     openapi/utils.py -> dependencies/utils.py module line 20
     openapi/utils.py -> utils.py module line 33
     openapi/utils.py -> utils.py module line 33
     openapi/utils.py -> utils.py module line 33
