{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "label": "engine.py", "file_type": "code", "source_file": "app/infrastructure/db/engine.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "label": "get_engine()", "file_type": "code", "source_file": "app/infrastructure/db/engine.py", "source_location": "L22", "_callable": true}, {"id": "asyncengine", "label": "AsyncEngine", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/infrastructure/db/engine.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "label": "get_sessionmaker()", "file_type": "code", "source_file": "app/infrastructure/db/engine.py", "source_location": "L34", "_callable": true}, {"id": "async_sessionmaker", "label": "async_sessionmaker", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/infrastructure/db/engine.py"}, {"id": "asyncsession", "label": "AsyncSession", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/app/infrastructure/db/engine.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "label": "session_scope()", "file_type": "code", "source_file": "app/infrastructure/db/engine.py", "source_location": "L43", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "label": "dispose_engine()", "file_type": "code", "source_file": "app/infrastructure/db/engine.py", "source_location": "L56", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_1", "label": "Async engine + session factory, created lazily from settings. The engine is pro", "file_type": "rationale", "source_file": "app/infrastructure/db/engine.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_44", "label": "Transactional session for workers/scripts: commit on success, rollback on error.", "file_type": "rationale", "source_file": "app/infrastructure/db/engine.py", "source_location": "L44"}, {"id": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_57", "label": "Dispose the pooled engine on shutdown. Safe to call if never initialized.", "file_type": "rationale", "source_file": "app/infrastructure/db/engine.py", "source_location": "L57"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "collections_abc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L7", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "contextlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "functools", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "sqlalchemy_ext_asyncio", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L18", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "target": "asyncengine", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L34", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "target": "async_sessionmaker", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L34", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "target": "asyncsession", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L34", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L43", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "target": "asyncsession", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L43", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L56", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "target": "async_sessionmaker", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L35", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_sessionmaker", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L45", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L59", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L1", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_44", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L44", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_rationale_57", "target": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/infrastructure/db/engine.py", "source_location": "L57", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "callee": "get_settings", "is_member_call": false, "source_file": "app/infrastructure/db/engine.py", "source_location": "L23", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_get_engine", "callee": "create_async_engine", "is_member_call": false, "source_file": "app/infrastructure/db/engine.py", "source_location": "L24", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "callee": "get_sessionmaker()", "is_member_call": false, "source_file": "app/infrastructure/db/engine.py", "source_location": "L45", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "callee": "commit", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L48", "receiver": "session"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "callee": "rollback", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L50", "receiver": "session"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_session_scope", "callee": "close", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L53", "receiver": "session"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "callee": "cache_info", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L58", "receiver": "get_engine"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "callee": "dispose", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L59", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "callee": "cache_clear", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L60", "receiver": "get_engine"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_app_infrastructure_db_engine_dispose_engine", "callee": "cache_clear", "is_member_call": true, "source_file": "app/infrastructure/db/engine.py", "source_location": "L61", "receiver": "get_sessionmaker"}]}