Skip to content

test: migrate app_dsl_service tests to testcontainers#34429

Merged
asukaminato0721 merged 4 commits intolanggenius:mainfrom
volcano303:test/migrate-app-dsl-service-tests-to-testcontainers
Apr 13, 2026
Merged

test: migrate app_dsl_service tests to testcontainers#34429
asukaminato0721 merged 4 commits intolanggenius:mainfrom
volcano303:test/migrate-app-dsl-service-tests-to-testcontainers

Conversation

@volcano303
Copy link
Copy Markdown
Contributor

Summary

Migrate SQL-related tests from api/tests/unit_tests/services/test_app_dsl_service.py and api/tests/unit_tests/services/test_app_dsl_service_import_yaml_url.py to testcontainers integration tests at api/tests/test_containers_integration_tests/services/test_app_dsl_service.py.

Both unit test files are deleted. All test scenarios (version compatibility, import validation, YAML URL handling, import flow, confirm import, check dependencies, create/update app, export DSL, dependency extraction, encryption/decryption, and utility tests) are consolidated into the TC file. Redis interactions now use real Redis via extensions.ext_redis.redis_client instead of mocks. External services (WorkflowService, DependenciesAnalysisService, etc.) remain mocked.

Part of #32454

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues.
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran make lint and make type-check (backend) and cd web && npx lint-staged (frontend) to appease the lint gods

@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Apr 2, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-02 05:07:43.161116042 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-02 05:07:32.212120958 +0000
@@ -455,7 +455,7 @@
 ERROR Class member `MockModelClass.invoke_llm` overrides parent class `PluginModelClient` in an inconsistent manner [bad-override]
    --> tests/integration_tests/model_runtime/__mock/plugin_model.py:235:9
 ERROR `unpatch` may be uninitialized [unbound-name]
-  --> tests/integration_tests/plugin/__mock/http.py:67:9
+  --> tests/integration_tests/plugin/__mock/http.py:62:9
 ERROR Object of class `TestWorkflowDraftVariableServiceResetVariable` has no attribute `_test_user_id` [missing-attribute]
    --> tests/integration_tests/services/test_workflow_draft_variable_service.py:610:21
 ERROR Object of class `TestWorkflowDraftVariableServiceResetVariable` has no attribute `_test_user_id` [missing-attribute]
@@ -475,63 +475,63 @@
 ERROR Argument `FilterIndexConfig | None` is not assignable to parameter `filter_index_config` with type `FilterIndexConfig` in function `tcvectordb.rpc.model.collection.RPCCollection.__init__` [bad-argument-type]
   --> tests/integration_tests/vdb/__mock/tcvectordb.py:95:33
 ERROR Missing argument `min_connection` in function `core.rag.datasource.vdb.analyticdb.analyticdb_vector_sql.AnalyticdbVectorBySqlConfig.__init__` [missing-argument]
-  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:18:55
+  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:16:55
 ERROR Missing argument `max_connection` in function `core.rag.datasource.vdb.analyticdb.analyticdb_vector_sql.AnalyticdbVectorBySqlConfig.__init__` [missing-argument]
-  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:18:55
+  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:16:55
 ERROR Object of class `NoneType` has no attribute `delete` [missing-attribute]
-  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:45:9
+  --> tests/integration_tests/vdb/analyticdb/test_analyticdb.py:43:9
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/baidu/test_baidu.py:26:26
+  --> tests/integration_tests/vdb/baidu/test_baidu.py:22:26
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/baidu/test_baidu.py:30:29
+  --> tests/integration_tests/vdb/baidu/test_baidu.py:26:29
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/chroma/test_chroma.py:29:29
+  --> tests/integration_tests/vdb/chroma/test_chroma.py:28:29
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/couchbase/test_couchbase.py:44:26
+  --> tests/integration_tests/vdb/couchbase/test_couchbase.py:43:26
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:45:29
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:41:29
 ERROR Object of class `NoneType` has no attribute `add_texts` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:67:9
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:63:9
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:70:16
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:66:16
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:78:20
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:74:20
 ERROR Object of class `NoneType` has no attribute `add_texts` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:94:9
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:90:9
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/hologres/test_hologres.py:97:16
+  --> tests/integration_tests/vdb/hologres/test_hologres.py:93:16
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-   --> tests/integration_tests/vdb/hologres/test_hologres.py:107:15
+   --> tests/integration_tests/vdb/hologres/test_hologres.py:103:15
 ERROR Object of class `NoneType` has no attribute `delete` [missing-attribute]
-   --> tests/integration_tests/vdb/hologres/test_hologres.py:113:9
+   --> tests/integration_tests/vdb/hologres/test_hologres.py:109:9
 ERROR Object of class `NoneType` has no attribute `create` [missing-attribute]
-   --> tests/integration_tests/vdb/hologres/test_hologres.py:120:13
+   --> tests/integration_tests/vdb/hologres/test_hologres.py:116:13
 ERROR Object of class `NoneType` has no attribute `delete` [missing-attribute]
-   --> tests/integration_tests/vdb/hologres/test_hologres.py:137:13
+   --> tests/integration_tests/vdb/hologres/test_hologres.py:133:13
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/huawei/test_huawei_cloud.py:23:26
+  --> tests/integration_tests/vdb/huawei/test_huawei_cloud.py:19:26
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/huawei/test_huawei_cloud.py:27:29
+  --> tests/integration_tests/vdb/huawei/test_huawei_cloud.py:23:29
 ERROR Missing argument `using_ugc` in function `core.rag.datasource.vdb.lindorm.lindorm_vector.LindormVectorStore.__init__` [missing-argument]
-  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:21:41
+  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:19:41
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:31:15
+  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:29:15
 ERROR Missing argument `using_ugc` in function `core.rag.datasource.vdb.lindorm.lindorm_vector.LindormVectorStore.__init__` [missing-argument]
-  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:40:41
+  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:38:41
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:52:15
+  --> tests/integration_tests/vdb/lindorm/test_lindorm.py:50:15
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/matrixone/test_matrixone.py:20:15
+  --> tests/integration_tests/vdb/matrixone/test_matrixone.py:19:15
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/milvus/test_milvus.py:24:29
+  --> tests/integration_tests/vdb/milvus/test_milvus.py:23:29
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/milvus/test_milvus.py:28:15
+  --> tests/integration_tests/vdb/milvus/test_milvus.py:27:15
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/myscale/test_myscale.py:25:15
+  --> tests/integration_tests/vdb/myscale/test_myscale.py:24:15
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/oceanbase/test_oceanbase.py:36:15
+  --> tests/integration_tests/vdb/oceanbase/test_oceanbase.py:35:15
 ERROR `config` may be uninitialized [unbound-name]
-  --> tests/integration_tests/vdb/opengauss/test_opengauss.py:37:20
+  --> tests/integration_tests/vdb/opengauss/test_opengauss.py:36:20
 ERROR Argument `list[Unknown] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
    --> tests/integration_tests/vdb/opensearch/test_opensearch.py:163:20
 ERROR `None` is not subscriptable [unsupported-operation]
@@ -541,53 +541,53 @@
 ERROR `None` is not subscriptable [unsupported-operation]
    --> tests/integration_tests/vdb/opensearch/test_opensearch.py:181:16
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/oracle/test_oraclevector.py:24:45
+  --> tests/integration_tests/vdb/oracle/test_oraclevector.py:23:45
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/pgvecto_rs/test_pgvecto_rs.py:27:29
+  --> tests/integration_tests/vdb/pgvecto_rs/test_pgvecto_rs.py:26:29
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/pgvecto_rs/test_pgvecto_rs.py:31:15
+  --> tests/integration_tests/vdb/pgvecto_rs/test_pgvecto_rs.py:30:15
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:32:42
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:31:42
 ERROR Object of class `NoneType` has no attribute `add_texts` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:62:9
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:61:9
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:67:22
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:66:22
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:72:23
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:71:23
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:78:16
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:77:16
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:88:19
+  --> tests/integration_tests/vdb/qdrant/test_qdrant.py:87:19
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:35:15
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:34:15
 ERROR Object of class `NoneType` has no attribute `create` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:41:9
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:40:9
 ERROR Object of class `NoneType` has no attribute `_tablestore_client` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:46:31
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:45:31
 ERROR Object of class `NoneType` has no attribute `_table_name` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:47:28
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:46:28
 ERROR Object of class `NoneType` has no attribute `_index_name` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:48:28
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:47:28
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:57:16
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:56:16
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:62:16
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:61:16
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:67:16
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:66:16
 ERROR Object of class `NoneType` has no attribute `_config` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:70:12
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:69:12
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:76:16
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:75:16
 ERROR Object of class `NoneType` has no attribute `_config` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:79:12
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:78:12
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:86:16
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:85:16
 ERROR Object of class `NoneType` has no attribute `delete` [missing-attribute]
-  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:91:13
+  --> tests/integration_tests/vdb/tablestore/test_tablestore.py:90:13
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/tcvectordb/test_tencent.py:33:26
+  --> tests/integration_tests/vdb/tcvectordb/test_tencent.py:29:26
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/tcvectordb/test_tencent.py:37:29
+  --> tests/integration_tests/vdb/tcvectordb/test_tencent.py:33:29
 ERROR Object of class `NoneType` has no attribute `create` [missing-attribute]
   --> tests/integration_tests/vdb/test_vector_store.py:52:9
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
@@ -607,35 +607,35 @@
 ERROR `connection` may be uninitialized [unbound-name]
   --> tests/integration_tests/vdb/tidb_vector/check_tiflash_ready.py:30:12
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/tidb_vector/test_tidb_vector.py:31:45
+  --> tests/integration_tests/vdb/tidb_vector/test_tidb_vector.py:29:45
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/tidb_vector/test_tidb_vector.py:35:15
+  --> tests/integration_tests/vdb/tidb_vector/test_tidb_vector.py:33:15
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/upstash/test_upstash_vector.py:20:15
+  --> tests/integration_tests/vdb/upstash/test_upstash_vector.py:19:15
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/upstash/test_upstash_vector.py:24:45
+  --> tests/integration_tests/vdb/upstash/test_upstash_vector.py:23:45
 ERROR Object of class `NoneType` has no attribute `search_by_vector` [missing-attribute]
-  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:28:26
+  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:24:26
 ERROR Object of class `NoneType` has no attribute `search_by_full_text` [missing-attribute]
-  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:32:29
+  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:28:29
 ERROR Object of class `NoneType` has no attribute `get_ids_by_metadata_field` [missing-attribute]
-  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:36:15
+  --> tests/integration_tests/vdb/vikingdb/test_vikingdb.py:32:15
 ERROR Argument `Literal['unsupported_language']` is not assignable to parameter `language` with type `CodeLanguage` in function `core.helper.code_executor.code_executor.CodeExecutor.execute_workflow_code_template` [bad-argument-type]
   --> tests/integration_tests/workflow/nodes/code_executor/test_code_executor.py:10:62
 ERROR Argument `dict[Unknown, Unknown]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.code.code_node.CodeNode.__init__` [bad-argument-type]
-  --> tests/integration_tests/workflow/nodes/test_code.py:68:16
+  --> tests/integration_tests/workflow/nodes/test_code.py:67:16
 ERROR Argument `dict[Unknown, Unknown]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.http_request.node.HttpRequestNode.__init__` [bad-argument-type]
-  --> tests/integration_tests/workflow/nodes/test_http.py:79:16
+  --> tests/integration_tests/workflow/nodes/test_http.py:78:16
 ERROR Argument `type[ToolFileManager]` is not assignable to parameter `tool_file_manager_factory` with type `() -> ToolFileManagerProtocol` in function `graphon.nodes.http_request.node.HttpRequestNode.__init__` [bad-argument-type]
-  --> tests/integration_tests/workflow/nodes/test_http.py:84:35
+  --> tests/integration_tests/workflow/nodes/test_http.py:83:35
 ERROR Argument `dict[str, dict[str, dict[str, dict[str, str] | str] | str | Unknown | None] | str] | dict[str, dict[str, str] | str]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.http_request.node.HttpRequestNode.__init__` [bad-argument-type]
-   --> tests/integration_tests/workflow/nodes/test_http.py:728:16
+   --> tests/integration_tests/workflow/nodes/test_http.py:727:16
 ERROR Argument `type[ToolFileManager]` is not assignable to parameter `tool_file_manager_factory` with type `() -> ToolFileManagerProtocol` in function `graphon.nodes.http_request.node.HttpRequestNode.__init__` [bad-argument-type]
-   --> tests/integration_tests/workflow/nodes/test_http.py:733:35
+   --> tests/integration_tests/workflow/nodes/test_http.py:732:35
 ERROR Argument `dict[Unknown, Unknown]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.llm.node.LLMNode.__init__` [bad-argument-type]
   --> tests/integration_tests/workflow/nodes/test_llm.py:80:16
 ERROR Argument `dict[Unknown, Unknown]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.parameter_extractor.parameter_extractor_node.ParameterExtractorNode.__init__` [bad-argument-type]
-  --> tests/integration_tests/workflow/nodes/test_parameter_extractor.py:74:16
+  --> tests/integration_tests/workflow/nodes/test_parameter_extractor.py:75:16
 ERROR Argument `dict[str, dict[str, list[dict[str, list[str] | str]] | str] | str]` is not assignable to parameter `config` with type `NodeConfigDict` in function `graphon.nodes.template_transform.template_transform_node.TemplateTransformNode.__init__` [bad-argument-type]
   --> tests/integration_tests/workflow/nodes/test_template_transform.py:91:16
 ERROR Argument `_SimpleJinja2Renderer` is not assignable to parameter `jinja2_template_renderer` with type `Jinja2TemplateRenderer` in function `graphon.nodes.template_transform.template_transform_node.TemplateTransformNode.__init__` [bad-argument-type]
@@ -907,15 +907,47 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:176:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:698:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:729:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:801:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:932:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:949:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:992:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1008:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1048:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1064:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1085:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1102:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1131:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1156:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1193:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1240:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1347:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1384:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1423:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1432:21
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1588:33
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -3011,7 +3043,7 @@
 ERROR Cannot index into `str` [bad-index]
    --> tests/unit_tests/core/app/apps/pipeline/test_pipeline_generate_response_converter.py:112:12
 ERROR Class `PipelineRunner` has no class attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/core/app/apps/pipeline/test_pipeline_generator.py:341:12
+   --> tests/unit_tests/core/app/apps/pipeline/test_pipeline_generator.py:340:12
 ERROR Argument `SimpleNamespace` is not assignable to parameter `application_generate_entity` with type `RagPipelineGenerateEntity` in function `core.app.apps.pipeline.pipeline_runner.PipelineRunner.__init__` [bad-argument-type]
   --> tests/unit_tests/core/app/apps/pipeline/test_pipeline_runner.py:65:37
 ERROR Argument `SimpleNamespace` is not assignable to parameter `application_generate_entity` with type `RagPipelineGenerateEntity` in function `core.app.apps.pipeline.pipeline_runner.PipelineRunner.__init__` [bad-argument-type]
@@ -6717,50 +6749,6 @@
    --> tests/unit_tests/services/retention/workflow_run/test_restore_archived_workflow_run.py:759:71
 ERROR `in` is not supported between `Literal['not found']` and `None` [not-iterable]
    --> tests/unit_tests/services/retention/workflow_run/test_restore_archived_workflow_run.py:906:16
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:214:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:228:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:229:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:379:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:383:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:402:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:419:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:462:13
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:545:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:557:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:575:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:614:13
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:628:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:661:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:675:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:693:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:710:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:762:19
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:786:23
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:807:65
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:814:60
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:926:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-02 07:16:58.028188394 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-02 07:16:46.685958720 +0000
@@ -1,5 +1,13 @@
 ERROR Object of class `App` has no attribute `access_mode` [missing-attribute]
    --> controllers/console/app/app.py:571:13
+ERROR Argument `((*args: Unknown, **kwargs: Unknown) -> OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | tuple[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | OrderedDict[Unknown, list[Unknown]] | OrderedDict[Unknown, Unknown] | dict[Unknown, OrderedDict[Unknown, Unknown] | dict[Unknown, Unknown]] | dict[Unknown, list[Unknown]] | dict[Unknown, Unknown] | list[Unknown]]] | dict[Unknown, Unknown] | list[OrderedDict[Unknown, OrderedDict[Unknown, Unknown] |\n\n... (truncated) ...

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates AppDslService SQL-related tests from unit-test style (mocked DB/Redis) to Testcontainers-based integration tests, consolidating scenarios into the existing container test suite and switching Redis assertions to use a real Redis instance.

Changes:

  • Deleted two unit test modules for AppDslService (including YAML URL handling tests).
  • Consolidated the removed test coverage into api/tests/test_containers_integration_tests/services/test_app_dsl_service.py.
  • Updated Redis interactions in tests to use extensions.ext_redis.redis_client (real Redis) rather than mocks, while continuing to mock external services (workflow/deps analysis/etc.).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
api/tests/unit_tests/services/test_app_dsl_service.py Removed in favor of containerized integration coverage.
api/tests/unit_tests/services/test_app_dsl_service_import_yaml_url.py Removed; YAML URL scenarios moved into container tests.
api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Added/expanded integration tests covering import/export/confirm/deps/encryption flows with real DB + Redis.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Outdated
@volcano303
Copy link
Copy Markdown
Contributor Author

volcano303 commented Apr 2, 2026

@asukaminato0721 could you please take a look at this PR?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-02 16:14:44.022791026 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-02 16:14:35.530708926 +0000
@@ -814,15 +814,47 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:144:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:599:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:627:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:684:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:805:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:822:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:863:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:879:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:919:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:933:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:954:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:971:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:996:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1017:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1050:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1091:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1186:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1212:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1243:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1249:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1377:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -6316,50 +6348,6 @@
    --> tests/unit_tests/services/retention/workflow_run/test_restore_archived_workflow_run.py:759:71
 ERROR `in` is not supported between `Literal['not found']` and `None` [not-iterable]
    --> tests/unit_tests/services/retention/workflow_run/test_restore_archived_workflow_run.py:906:16
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:214:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:228:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:229:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:379:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:383:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:402:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:419:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:462:13
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:545:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:557:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:575:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:614:13
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:628:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:661:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:675:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:693:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:710:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:762:19
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:786:23
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:807:65
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:814:60
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:926:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]

@volcano303
Copy link
Copy Markdown
Contributor Author

@asukaminato0721 Could you please review this again and share any feedback?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 4, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-04 10:26:19.234369931 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-04 10:26:10.700406789 +0000
@@ -824,15 +824,47 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:144:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:599:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:627:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:684:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:807:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:826:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:867:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:885:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:925:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:939:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:960:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:977:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1002:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1023:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1056:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1097:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1192:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1218:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1249:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1255:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1383:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -6338,50 +6370,6 @@
     --> tests/unit_tests/services/test_annotation_service.py:1214:59
 ERROR TypedDict `AnnotationSettingDisabledDict` does not have key `embedding_model` [bad-typed-dict-key]
     --> tests/unit_tests/services/test_annotation_service.py:1251:27
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:214:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:228:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:229:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:379:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:383:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:402:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:419:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:462:13
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:545:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:557:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:575:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:614:13
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:628:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:661:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:675:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:693:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:710:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:762:19
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:786:23
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:807:65
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:814:60
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:926:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]

@volcano303
Copy link
Copy Markdown
Contributor Author

@asukaminato0721 Thank you for your feedbacks. Could you please take another look on this?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 5, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-05 23:36:06.688639541 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-05 23:35:56.989701145 +0000
@@ -824,15 +824,47 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:144:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:599:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:627:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:684:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:805:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:822:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:863:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:879:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:919:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:933:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:954:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:971:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:996:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1017:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1050:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1091:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1186:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1212:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1243:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1249:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1377:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -6338,50 +6370,6 @@
     --> tests/unit_tests/services/test_annotation_service.py:1214:59
 ERROR TypedDict `AnnotationSettingDisabledDict` does not have key `embedding_model` [bad-typed-dict-key]
     --> tests/unit_tests/services/test_annotation_service.py:1251:27
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:214:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:228:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:229:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:379:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:383:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:402:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:419:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:462:13
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:545:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:557:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:575:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:614:13
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:628:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:661:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:675:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:693:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:710:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:762:19
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:786:23
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:807:65
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:814:60
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:926:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]
@@ -6519,25 +6507,25 @@
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.SegmentService.delete_child_chunk` [bad-argument-type]
    --> tests/unit_tests/services/test_dataset_service_segment.py:206:64
 ERROR Argument `list[Unknown] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:466:20
+   --> tests/unit_tests/services/test_dataset_service_segment.py:469:20
 ERROR Type `None` is not iterable [not-iterable]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:467:49
+   --> tests/unit_tests/services/test_dataset_service_segment.py:470:49
 ERROR Type `None` is not iterable [not-iterable]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:468:47
+   --> tests/unit_tests/services/test_dataset_service_segment.py:471:47
 ERROR Type `None` is not iterable [not-iterable]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:469:61
+   --> tests/unit_tests/services/test_dataset_service_segment.py:472:61
 ERROR Type `None` is not iterable [not-iterable]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:470:60
+   --> tests/unit_tests/services/test_dataset_service_segment.py:473:60
 ERROR Type `None` is not iterable [not-iterable]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:471:68
+   --> tests/unit_tests/services/test_dataset_service_segment.py:474:68
 ERROR Argument `SimpleNamespace` is not assignable to parameter `segment` with type `DocumentSegment` in function `services.dataset_service.SegmentService.update_child_chunk` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:813:49
+   --> tests/unit_tests/services/test_dataset_service_segment.py:826:49
 ERROR Argument `SimpleNamespace` is not assignable to parameter `document` with type `Document` in function `services.dataset_service.SegmentService.update_child_chunk` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:813:68
+   --> tests/unit_tests/services/test_dataset_service_segment.py:826:68
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.SegmentService.update_child_chunk` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:813:87
+   --> tests/unit_tests/services/test_dataset_service_segment.py:826:87
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.SegmentService.delete_child_chunk` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_segment.py:827:60
+   --> tests/unit_tests/services/test_dataset_service_segment.py:840:60
 ERROR Argument `Literal['']` is not assignable to parameter `plan` with type `CloudPlan` in function `DocumentIndexingTaskProxyTestDataFactory.create_mock_features` [bad-argument-type]
    --> tests/unit_tests/services/test_document_indexing_task_proxy.py:260:114
 ERROR Argument `None` is not assignable to parameter `plan` with type `CloudPlan` in function `DocumentIndexingTaskProxyTestDataFactory.create_mock_features` [bad-argument-type]

Comment thread api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Outdated
Comment thread api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Outdated
Comment thread api/tests/test_containers_integration_tests/services/test_app_dsl_service.py Outdated
@asukaminato0721 asukaminato0721 self-requested a review April 6, 2026 07:15
auto-merge was automatically disabled April 6, 2026 12:28

Head branch was pushed to by a user without write access

@volcano303 volcano303 force-pushed the test/migrate-app-dsl-service-tests-to-testcontainers branch from 1bf6f6e to 8c15b4f Compare April 6, 2026 12:45
@volcano303
Copy link
Copy Markdown
Contributor Author

@asukaminato0721 Really thank you for your review and I’ve addressed all. I’d appreciate it if you could take another look.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 6, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-06 13:16:05.695183468 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-06 13:15:57.091265159 +0000
@@ -818,15 +818,47 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:138:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:581:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:609:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:666:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:787:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:804:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:845:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:861:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:901:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:915:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:936:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:953:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:978:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:999:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1032:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1073:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1168:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1194:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1225:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1231:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1359:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -6332,50 +6364,6 @@
     --> tests/unit_tests/services/test_annotation_service.py:1214:59
 ERROR TypedDict `AnnotationSettingDisabledDict` does not have key `embedding_model` [bad-typed-dict-key]
     --> tests/unit_tests/services/test_annotation_service.py:1251:27
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:214:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:228:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:229:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:379:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:383:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:402:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:419:51
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:462:13
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:545:5
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:557:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:575:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:614:13
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:628:17
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:661:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:675:30
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:693:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:710:44
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:762:19
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:786:23
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:807:65
-ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:814:60
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:926:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]

@asukaminato0721
Copy link
Copy Markdown
Contributor

@dosu in this pr, is here any mock / Simple namespace that can be removed?

@dosubot dosubot Bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:XXL This PR changes 1000+ lines, ignoring generated files. labels Apr 7, 2026
@github-actions github-actions Bot added the web This relates to changes on the web. label Apr 7, 2026
@volcano303 volcano303 force-pushed the test/migrate-app-dsl-service-tests-to-testcontainers branch from 142f7f0 to b7def4b Compare April 7, 2026 12:31
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:XL This PR changes 500-999 lines, ignoring generated files. labels Apr 7, 2026
@github-actions github-actions Bot removed the web This relates to changes on the web. label Apr 7, 2026
@volcano303 volcano303 force-pushed the test/migrate-app-dsl-service-tests-to-testcontainers branch from 4289ec0 to 449b6ef Compare April 7, 2026 13:10
@volcano303
Copy link
Copy Markdown
Contributor Author

@asukaminato0721 Could you merge this PR please?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 8, 2026

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-08 13:59:11.733055108 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-08 13:59:03.618094886 +0000
@@ -1,5 +1,5 @@
 ERROR Object of class `App` has no attribute `access_mode` [missing-attribute]
-   --> controllers/console/app/app.py:560:13
+   --> controllers/console/app/app.py:562:13
 ERROR Argument `str | None` is not assignable to parameter `language` with type `str` in function `services.account_service.AccountService.send_email_register_email` [bad-argument-type]
   --> controllers/console/auth/email_register.py:78:108
 ERROR Object of class `MissingRouter` has no attribute `get` [missing-attribute]
@@ -724,15 +724,15 @@
 ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (host=str, port=int, decode_responses=Literal[False]) [no-matching-overload]
   --> tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_streams_channel.py:38:27
 ERROR Object of class `TypeEngine` has no attribute `length` [missing-attribute]
-   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:104:16
+  --> tests/test_containers_integration_tests/models/test_types_enum_text.py:96:16
 ERROR Object of class `NoneType` has no attribute `user_type` [missing-attribute]
-   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:141:20
+   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:133:20
 ERROR Object of class `NoneType` has no attribute `user_type_nullable` [missing-attribute]
-   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:142:20
+   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:134:20
 ERROR Object of class `NoneType` has no attribute `user_type` [missing-attribute]
-   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:146:20
+   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:138:20
 ERROR Object of class `NoneType` has no attribute `user_type_nullable` [missing-attribute]
-   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:147:20
+   --> tests/test_containers_integration_tests/models/test_types_enum_text.py:139:20
 ERROR Cannot instantiate `DifyAPISQLAlchemyWorkflowNodeExecutionRepository` because the following members are abstract: `save`, `save_execution_data`, `get_by_workflow_execution` [bad-instantiation]
    --> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py:122:70
 ERROR Generator function should return `Generator` [bad-return]
@@ -836,15 +836,45 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:138:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:589:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:617:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:674:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:748:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:765:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:804:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:844:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:858:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:879:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:896:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:921:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:942:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:975:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1016:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1111:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1137:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1168:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1174:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1302:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -1882,7 +1912,7 @@
 ERROR `SimpleNamespace` is not assignable to attribute `request` with type `Request` [bad-assignment]
    --> tests/unit_tests/controllers/files/test_upload.py:170:26
 ERROR Could not find name `Import` [unknown-name]
-   --> tests/unit_tests/controllers/inner_api/app/test_dsl.py:119:71
+   --> tests/unit_tests/controllers/inner_api/app/test_dsl.py:117:71
 ERROR Missing argument `tenant_model` in function `protected_view` [missing-argument]
    --> tests/unit_tests/controllers/inner_api/plugin/test_plugin_wraps.py:168:44
 ERROR Missing argument `user_model` in function `protected_view` [missing-argument]
@@ -2033,7 +2063,7 @@
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:207:51
 ERROR Argument value `Literal[101]` violates Pydantic `le` constraint `Literal[100]` for field `limit` [bad-argument-type]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:209:51
-ERROR Argument `Literal['neutral']` is not assignable to parameter `rating` with type `Literal['dislike', 'like'] | None` in function `controllers.common.controller_schemas.MessageFeedbackPayload.__init__` [bad-argument-type]
+ERROR Argument `Literal['neutral']` is not assignable to parameter `rating` with type `Literal['dislike', 'like'] | None` in function `controllers.web.message.MessageFeedbackPayload.__init__` [bad-argument-type]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:235:43
 ERROR Argument `Literal['invalid']` is not assignable to parameter `response_mode` with type `Literal['blocking', 'streaming']` in function `controllers.web.message.MessageMoreLikeThisQuery.__init__` [bad-argument-type]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:245:52
@@ -2045,9 +2075,9 @@
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:286:35
 ERROR Argument value `Literal[101]` violates Pydantic `le` constraint `Literal[100]` for field `limit` [bad-argument-type]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:288:35
-ERROR Missing argument `message_id` in function `controllers.common.controller_schemas.SavedMessageCreatePayload.__init__` [missing-argument]
+ERROR Missing argument `message_id` in function `controllers.web.saved_message.SavedMessageCreatePayload.__init__` [missing-argument]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:308:38
-ERROR Missing argument `inputs` in function `controllers.common.controller_schemas.WorkflowRunPayload.__init__` [missing-argument]
+ERROR Missing argument `inputs` in function `controllers.web.workflow.WorkflowRunPayload.__init__` [missing-argument]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:329:31
 ERROR `in` is not supported between `Literal['webapp-logo']` and `None` [not-iterable]
    --> tests/unit_tests/controllers/web/test_site.py:126:16
@@ -4953,39 +4983,39 @@
 ERROR Object of class `FunctionType` has no attribute `call_count` [missing-attribute]
     --> tests/unit_tests/core/rag/rerank/test_reranker.py:1630:16
 ERROR Argument `list[float] | None` is not assignable to parameter `obj` with type `Sized` in function `len` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:1949:20
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:1951:20
 ERROR Could not find name `metadata_name` [unknown-name]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:2769:29
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:2771:29
 ERROR Could not find name `metadata_name` [unknown-name]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:2770:29
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:2772:29
 ERROR Argument `Iterator[Any | Unknown] | Iterator[Any]` is not assignable to parameter `invoke_result` with type `Generator[Unknown]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval._handle_invoke_result` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:3782:64
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:3784:64
 ERROR Argument `Iterator[Any | Unknown] | Iterator[Any]` is not assignable to parameter `invoke_result` with type `Generator[Unknown]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval._handle_invoke_result` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:3786:67
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:3788:67
 ERROR `None` is not subscriptable [unsupported-operation]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4025:16
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4027:16
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4559:40
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4561:40
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4611:40
-ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataFilteringCondition | None` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4616:40
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4613:40
+ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataCondition | None` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4618:40
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4632:36
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4634:36
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4662:36
-ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataFilteringCondition | None` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4667:36
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4664:36
+ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataCondition | None` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4669:36
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.single_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4675:36
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4677:36
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.multiple_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4711:36
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4713:36
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.multiple_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4739:36
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4741:36
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.multiple_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4797:40
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4799:40
 ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `available_datasets` with type `list[Dataset]` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval.multiple_retrieve` [bad-argument-type]
-    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4841:44
+    --> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:4843:44
 ERROR Argument `Iterator[Any | Unknown] | Iterator[Any]` is not assignable to parameter `invoke_result` with type `Generator[Unknown]` in function `core.rag.retrieval.router.multi_dataset_react_route.ReactMultiDatasetRouter._handle_invoke_result` [bad-argument-type]
    --> tests/unit_tests/core/rag/retrieval/test_multi_dataset_react_route.py:199:52
 ERROR Argument `None` is not assignable to parameter `text` with type `str` in function `core.rag.splitter.text_splitter.RecursiveCharacterTextSplitter.split_text` [bad-argument-type]
@@ -6264,7 +6294,7 @@
 ERROR Could not import `MetadataValue` from `services.entities.knowledge_entities.knowledge_entities` [missing-module-attribute]
   --> tests/unit_tests/services/dataset_metadata.py:95:5
 ERROR Argument `str` is not assignable to parameter `indexing_technique` with type `Literal['economy', 'high_quality']` in function `services.entities.knowledge_entities.rag_pipeline_entities.KnowledgeConfiguration.__init__` [bad-argument-type]
-   --> tests/unit_tests/services/dataset_service_test_helpers.py:447:28
+   --> tests/unit_tests/services/dataset_service_test_helpers.py:449:28
 ERROR Argument `Literal['']` is not assignable to parameter `plan` with type `CloudPlan` in function `DocumentIndexingTaskProxyTestDataFactory.create_mock_features` [bad-argument-type]
    --> tests/unit_tests/services/document_indexing_task_proxy.py:831:114
 ERROR Argument `None` is not assignable to parameter `plan` with type `CloudPlan` in function `DocumentIndexingTaskProxyTestDataFactory.create_mock_features` [bad-argument-type]
@@ -6281,7 +6311,7 @@
   --> tests/unit_tests/services/enterprise/test_plugin_manager_service.py:60:25
 ERROR Argument `None` is not assignable to parameter `response` with type `Response` in function `httpx._exceptions.HTTPStatusError.__init__` [bad-argument-type]
   --> tests/unit_tests/services/enterprise/test_plugin_manager_service.py:61:26
-ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataFilteringCondition | None` in function `services.external_knowledge_service.ExternalDatasetService.fetch_external_knowledge_retrieval` [bad-argument-type]
+ERROR Argument `SimpleNamespace` is not assignable to parameter `metadata_condition` with type `MetadataCondition | None` in function `services.external_knowledge_service.ExternalDatasetService.fetch_external_knowledge_retrieval` [bad-argument-type]
    --> tests/unit_tests/services/external_dataset_service.py:851:36
 ERROR Cannot index into `list[Unknown]` [bad-index]
    --> tests/unit_tests/services/hit_service.py:430:20
@@ -6356,20 +6386,6 @@
     --> tests/unit_tests/services/test_annotation_service.py:1214:59
 ERROR TypedDict `AnnotationSettingDisabledDict` does not have key `embedding_model` [bad-typed-dict-key]
     --> tests/unit_tests/services/test_annotation_service.py:1251:27
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:222:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:236:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:237:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:387:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:391:5
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:553:5
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:934:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]
@@ -6388,20 +6404,12 @@
    --> tests/unit_tests/services/test_async_workflow_service.py:323:22
 ERROR Argument `None` is not assignable to parameter `file` with type `FileStorage` in function `services.audio_service.AudioService.transcript_asr` [bad-argument-type]
    --> tests/unit_tests/services/test_audio_service.py:317:61
-ERROR Argument `BillingInfo` is not assignable to parameter `result` with type `dict[Unknown, Unknown]` in function `TestBillingServiceSubscriptionInfoDataType._assert_billing_info_types` [bad-argument-type]
-    --> tests/unit_tests/services/test_billing_service.py:1649:41
-ERROR Argument `BillingInfo` is not assignable to parameter `result` with type `dict[Unknown, Unknown]` in function `TestBillingServiceSubscriptionInfoDataType._assert_billing_info_types` [bad-argument-type]
-    --> tests/unit_tests/services/test_billing_service.py:1658:41
-ERROR Argument `BillingInfo` is not assignable to parameter `result` with type `dict[Unknown, Unknown]` in function `TestBillingServiceSubscriptionInfoDataType._assert_billing_info_types` [bad-argument-type]
-    --> tests/unit_tests/services/test_billing_service.py:1669:41
-ERROR Argument `BillingInfo` is not assignable to parameter `result` with type `dict[Unknown, Unknown]` in function `TestBillingServiceSubscriptionInfoDataType._assert_billing_info_types` [bad-argument-type]
-    --> tests/unit_tests/services/test_billing_service.py:1680:41
 ERROR Argument `FakeRepo` is not assignable to parameter `workflow_run_repo` with type `APIWorkflowRunRepository | None` in function `services.retention.workflow_run.clear_free_plan_expired_workflow_run_logs.WorkflowRunCleanup.__init__` [bad-argument-type]
    --> tests/unit_tests/services/test_clear_free_plan_expired_workflow_run_logs.py:114:49
 ERROR Class member `FixedDateTime.now` overrides parent class `datetime` in an inconsistent manner [bad-override]
-   --> tests/unit_tests/services/test_clear_free_plan_tenant_expired_logs.py:411:13
+   --> tests/unit_tests/services/test_clear_free_plan_tenant_expired_logs.py:397:13
 ERROR Class member `FixedDateTime.now` overrides parent class `datetime` in an inconsistent manner [bad-override]
-   --> tests/unit_tests/services/test_clear_free_plan_tenant_expired_logs.py:505:13
+   --> tests/unit_tests/services/test_clear_free_plan_tenant_expired_logs.py:491:13
 ERROR Argument `SimpleNamespace` is not assignable to parameter `account` with type `Account` in function `services.dataset_service.DatasetService.create_empty_dataset` [bad-argument-type]
    --> tests/unit_tests/services/test_dataset_service_dataset.py:310:93
 ERROR Argument `SimpleNamespace` is not assignable to parameter `account` with type `Account` in function `services.dataset_service.DatasetService.create_empty_dataset` [bad-argument-type]
@@ -6409,37 +6417,37 @@
 ERROR Argument `SimpleNamespace` is not assignable to parameter `account` with type `Account` in function `services.dataset_service.DatasetService.create_empty_dataset` [bad-argument-type]
    --> tests/unit_tests/services/test_dataset_service_dataset.py:377:25
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.DatasetService._update_pipeline_knowledge_base_node_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:665:70
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:658:70
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.DatasetService._update_pipeline_knowledge_base_node_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:675:70
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:668:70
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.DatasetService._update_pipeline_knowledge_base_node_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:714:70
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:707:70
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `services.dataset_service.DatasetService._update_pipeline_knowledge_base_node_data` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:737:74
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:730:74
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:804:9
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:797:9
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:842:9
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:835:9
 ERROR Argument `None` is not assignable to parameter `embedding_model_provider` with type `str` in function `tests.unit_tests.services.dataset_service_test_helpers.DatasetServiceUnitDataFactory.create_dataset_mock` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:908:38
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:901:38
 ERROR Argument `None` is not assignable to parameter `embedding_model` with type `str` in function `tests.unit_tests.services.dataset_service_test_helpers.DatasetServiceUnitDataFactory.create_dataset_mock` [bad-argument-type]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:909:29
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:902:29
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-   --> tests/unit_tests/services/test_dataset_service_dataset.py:967:9
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:960:9
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1002:9
+   --> tests/unit_tests/services/test_dataset_service_dataset.py:995:9
 ERROR Argument `SimpleNamespace` is not assignable to parameter `user` with type `Account | None` in function `services.dataset_service.DatasetService.check_dataset_operator_permission` [bad-argument-type]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1410:67
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1403:67
 ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset | None` in function `services.dataset_service.DatasetService.check_dataset_operator_permission` [bad-argument-type]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1413:81
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1406:81
 ERROR Argument `SimpleNamespace` is not assignable to parameter `user` with type `Account | None` in function `services.dataset_service.DatasetService.check_dataset_operator_permission` [bad-argument-type]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1426:67
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1419:67
 ERROR Argument `SimpleNamespace` is not assignable to parameter `user` with type `Account | None` in function `services.dataset_service.DatasetService.check_dataset_operator_permission` [bad-argument-type]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1439:71
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1432:71
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1498:9
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1491:9
 ERROR Object of class `FakeAccount` has no attribute `current_tenant_id` [missing-attribute]
-    --> tests/unit_tests/services/test_dataset_service_dataset.py:1520:9
+    --> tests/unit_tests/services/test_dataset_service_dataset.py:1513:9
 ERROR Argument `SimpleNamespace` is not assignable to parameter `current_user` with type `Account` in function `services.dataset_service.DocumentService.prepare_document_batch_download_zip` [bad-argument-type]
    --> tests/unit_tests/services/test_dataset_service_document.py:340:34
 ERROR Argument `SimpleNamespace` is not assignable to parameter `current_user` with type `Account` in function `services.dataset_service.DocumentService.prepare_document_batch_download_zip` [bad-argument-type]

@volcano303
Copy link
Copy Markdown
Contributor Author

volcano303 commented Apr 8, 2026

Please execute CI test.

@volcano303
Copy link
Copy Markdown
Contributor Author

Hi @asukaminato0721 Could you please take another look at this?

@github-actions
Copy link
Copy Markdown
Contributor

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-10 08:27:21.238219566 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-10 08:27:10.177211807 +0000
@@ -1,7 +1,7 @@
 ERROR Object of class `App` has no attribute `access_mode` [missing-attribute]
-   --> controllers/console/app/app.py:561:13
+   --> controllers/console/app/app.py:560:13
 ERROR Argument `str | None` is not assignable to parameter `language` with type `str` in function `services.account_service.AccountService.send_email_register_email` [bad-argument-type]
-  --> controllers/console/auth/email_register.py:75:108
+  --> controllers/console/auth/email_register.py:78:108
 ERROR Object of class `MissingRouter` has no attribute `get` [missing-attribute]
   --> controllers/console/init_validate.py:31:2
 ERROR Object of class `MissingRouter` has no attribute `post` [missing-attribute]
@@ -17,9 +17,11 @@
 ERROR Class member `EasyUIBasedGenerateTaskPipeline._application_generate_entity` overrides parent class `BasedGenerateTaskPipeline` in an inconsistent manner [bad-override]
   --> core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py:75:5
 ERROR `+=` is not supported between `list[PromptMessageContentUnionTypes]` and `str` [unsupported-operation]
-   --> core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py:321:29
+   --> core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py:323:29
 ERROR Argument `list[Unknown]` is not assignable to parameter `value` with type `SQLCoreOperations[dict[str, Any]] | dict[str, Any]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py:388:27
+   --> core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py:390:27
+ERROR `defaultdict[str, dict[Unknown, Unknown]]` is not assignable to `defaultdict[ModelType, dict[str, ModelSettings]]` [bad-assignment]
+    --> core/entities/provider_configuration.py:1531:79
 ERROR No matching overload found for function `core.model_manager.ModelInstance.invoke_llm` called with arguments: (prompt_messages=list[UserPromptMessage], model_parameters=dict[str, int], stream=Literal[False]) [no-matching-overload]
   --> core/llm_generator/llm_generator.py:85:60
 ERROR No matching overload found for function `core.model_manager.ModelInstance.invoke_llm` called with arguments: (prompt_messages=list[UserPromptMessage], model_parameters=dict[str, float | int], stream=Literal[False]) [no-matching-overload]
@@ -38,26 +40,6 @@
    --> core/llm_generator/llm_generator.py:394:60
 ERROR No matching overload found for function `core.model_manager.ModelInstance.invoke_llm` called with arguments: (prompt_messages=list[SystemPromptMessage | UserPromptMessage], model_parameters=dict[str, float], stream=Literal[False]) [no-matching-overload]
    --> core/llm_generator/llm_generator.py:582:60
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:172:17
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:197:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:217:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:239:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:256:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:281:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:309:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:328:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:344:13
-ERROR Missing positional argument `function` in function `ModelInstance._round_robin_invoke` [bad-argument-count]
-   --> core/model_manager.py:361:13
 ERROR Argument `dict[str, list[str] | str | None]` is not assignable to parameter `attributes` with type `dict[str, str] | None` in function `mlflow.tracing.fluent.start_span_no_context` [bad-argument-type]
    --> core/ops/mlflow_trace/mlflow_trace.py:271:24
 ERROR Argument `dict[str, dict[str, Any] | str | None]` is not assignable to parameter `attributes` with type `dict[str, str] | None` in function `mlflow.tracing.fluent.start_span_no_context` [bad-argument-type]
@@ -70,6 +52,8 @@
    --> core/ops/mlflow_trace/mlflow_trace.py:415:24
 ERROR Class member `OpsTraceProviderConfigMap.__getitem__` overrides parent class `UserDict` in an inconsistent manner [bad-param-name-override]
    --> core/ops/ops_trace_manager.py:206:9
+ERROR Runtime checkable protocol `Generator` has an unsafe overlap with type `BaseModel | Generator[BaseModel | Mapping[Unknown, Unknown] | str] | Mapping[Unknown, Unknown]` [unsafe-overlap]
+ --> core/plugin/backwards_invocation/base.py:9:33
 ERROR Object of class `NoneType` has no attribute `data_source_type` [missing-attribute]
    --> core/rag/datasource/keyword/jieba/jieba.py:142:36
 ERROR Object of class `NoneType` has no attribute `keyword_table` [missing-attribute]
@@ -78,6 +62,8 @@
    --> core/rag/datasource/keyword/jieba/jieba.py:157:29
 ERROR Argument `object` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__` [bad-argument-type]
   --> core/rag/datasource/keyword/jieba/jieba_keyword_table_handler.py:88:35
+ERROR Class member `AnalyticdbVector.add_texts` overrides parent class `BaseVector` in an inconsistent manner [bad-override]
+  --> core/rag/datasource/vdb/analyticdb/analyticdb_vector.py:43:9
 ERROR Argument `str | None` is not assignable to parameter `namespace_password` with type `str` in function `alibabacloud_gpdb20160503.models._create_namespace_request.CreateNamespaceRequest.__init__` [bad-argument-type]
    --> core/rag/datasource/vdb/analyticdb/analyticdb_vector_openapi.py:120:40
 ERROR Argument `str | None` is not assignable to parameter `namespace_password` with type `str` in function `alibabacloud_gpdb20160503.models._describe_collection_request.DescribeCollectionRequest.__init__` [bad-argument-type]
@@ -142,22 +128,24 @@
    --> core/rag/datasource/vdb/elasticsearch/elasticsearch_vector.py:355:40
 ERROR Unpacked keyword argument `bool | Unknown | None` is not assignable to parameter `max_retries` with type `Decimal | bool | bytes | float | int | str` in function `ElasticSearchConfig.__init__` [bad-argument-type]
    --> core/rag/datasource/vdb/elasticsearch/elasticsearch_vector.py:355:40
+ERROR `tuple[str, str]` is not assignable to TypedDict key `basic_auth` with type `bool | int | list[str]` [bad-typed-dict-key]
+  --> core/rag/datasource/vdb/huawei/huawei_cloud_vector.py:51:36
 ERROR Class member `LindormVectorStore.add_texts` overrides parent class `BaseVector` in an inconsistent manner [bad-override]
-  --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:93:9
+  --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:84:9
 ERROR `str | None` is not assignable to TypedDict key `routing` with type `str` [bad-typed-dict-key]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:142:57
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:133:57
 ERROR Object of class `NoneType` has no attribute `get` [missing-attribute]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:392:35
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:383:35
 ERROR `None` is not subscriptable [unsupported-operation]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:395:29
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:386:29
 ERROR `None` is not subscriptable [unsupported-operation]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:396:30
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:387:30
 ERROR `None` is not subscriptable [unsupported-operation]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:397:33
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:388:33
 ERROR `None` is not subscriptable [unsupported-operation]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:398:33
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:389:33
 ERROR `None` is not subscriptable [unsupported-operation]
-   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:401:30
+   --> core/rag/datasource/vdb/lindorm/lindorm_vector.py:392:30
 ERROR Cannot index into `Coroutine[Unknown, Unknown, Unknown]` [bad-index]
   --> core/rag/datasource/vdb/milvus/milvus_vector.py:96:50
 ERROR Argument `dict[Unknown, Unknown] | str` is not assignable to parameter `version` with type `str` in function `packaging.version.parse` [bad-argument-type]
@@ -166,16 +154,18 @@
    --> core/rag/datasource/vdb/oceanbase/oceanbase_vector.py:160:28
 ERROR Class member `OceanBaseVector.add_texts` overrides parent class `BaseVector` in an inconsistent manner [bad-override]
    --> core/rag/datasource/vdb/oceanbase/oceanbase_vector.py:240:9
+ERROR `tuple[Never, Never]` is not assignable to TypedDict key `http_auth` with type `type[Urllib3HttpConnection] | bool | int | list[dict[str, int | str]]` [bad-typed-dict-key]
+  --> core/rag/datasource/vdb/opensearch/opensearch_vector.py:72:35
 ERROR Class member `OpenSearchVector.add_texts` overrides parent class `BaseVector` in an inconsistent manner [bad-override]
-   --> core/rag/datasource/vdb/opensearch/opensearch_vector.py:110:9
+  --> core/rag/datasource/vdb/opensearch/opensearch_vector.py:95:9
 ERROR `dict[str, dict[Field | str, list[float] | Any]]` is not assignable to TypedDict key with type `dict[Field, dict[Field | str, list[float] | Any]]` [bad-typed-dict-key]
-   --> core/rag/datasource/vdb/opensearch/opensearch_vector.py:204:33
+   --> core/rag/datasource/vdb/opensearch/opensearch_vector.py:189:33
 ERROR No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, str | None]) [no-matching-overload]
    --> core/rag/datasource/vdb/oracle/oraclevector.py:139:31
 ERROR Function declared to return `bool`, but one or more paths are missing an explicit `return` [bad-return]
    --> core/rag/datasource/vdb/oracle/oraclevector.py:191:39
 ERROR No matching overload found for function `sqlalchemy.sql.sqltypes.UUID.__init__` called with arguments: (as_uuid=Literal[True]) [no-matching-overload]
-  --> core/rag/datasource/vdb/pgvecto_rs/pgvecto_rs.py:66:32
+  --> core/rag/datasource/vdb/pgvecto_rs/pgvecto_rs.py:67:32
 ERROR Argument `str | None` is not assignable to parameter `database_name` with type `str` in function `tcvectordb.rpc.client.stub.RPCVectorDBClient.describe_collection` [bad-argument-type]
   --> core/rag/datasource/vdb/tencent/tencent_vector.py:82:35
 ERROR Object of class `FilterIndex` has no attribute `dimension`
@@ -286,17 +276,17 @@
 ERROR Object of class `BaseOxmlElement` has no attribute `body` [missing-attribute]
    --> core/rag/extractor/word_extractor.py:426:24
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/paragraph_index_processor.py:203:33
+   --> core/rag/index_processor/processor/paragraph_index_processor.py:198:33
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/paragraph_index_processor.py:204:16
+   --> core/rag/index_processor/processor/paragraph_index_processor.py:199:16
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/parent_child_index_processor.py:245:33
+   --> core/rag/index_processor/processor/parent_child_index_processor.py:239:33
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/parent_child_index_processor.py:246:16
+   --> core/rag/index_processor/processor/parent_child_index_processor.py:240:16
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/qa_index_processor.py:209:33
+   --> core/rag/index_processor/processor/qa_index_processor.py:204:33
 ERROR Object of class `Document` has no attribute `score` [missing-attribute]
-   --> core/rag/index_processor/processor/qa_index_processor.py:210:16
+   --> core/rag/index_processor/processor/qa_index_processor.py:205:16
 ERROR No matching overload found for function `core.model_manager.ModelInstance.invoke_llm` called with arguments: (prompt_messages=list[SystemPromptMessage | UserPromptMessage], tools=list[PromptMessageTool], stream=Literal[False], model_parameters=dict[str, float | int]) [no-matching-overload]
   --> core/rag/retrieval/router/multi_dataset_function_call_router.py:32:58
 ERROR Class member `MCPToolProviderController.entity` overrides parent class `ToolProviderController` in an inconsistent manner [bad-override]
@@ -306,7 +296,11 @@
 ERROR `(method: str, url: str, max_retries: int = ..., **kwargs: Any) -> httpx._models.Response` is not assignable to attribute `perform_request` with type `(self: CloudScraper, method: Unknown, url: Unknown, *args: Unknown, **kwargs: Unknown) -> requests.models.Response` [bad-assignment]
   --> core/tools/utils/web_reader_tool.py:66:35
 ERROR `list[Never]` is not assignable to attribute `tools` with type `Never` [bad-assignment]
-   --> core/tools/workflow_as_tool/provider.py:238:26
+   --> core/tools/workflow_as_tool/provider.py:237:26
+ERROR Returned type `dict[object, str]` is not assignable to declared return type `dict[str, Any] | None` [bad-return]
+   --> core/workflow/human_input_compat.py:183:16
+ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (connection_pool=ConnectionPool) [no-matching-overload]
+   --> extensions/ext_redis.py:244:38
 ERROR Cannot index into `Literal['']` [bad-index]
   --> extensions/storage/huawei_obs_storage.py:27:23
 ERROR Cannot index into `Literal['']` [bad-index]
@@ -316,9 +310,13 @@
 ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (host=int | str | Unknown, port=int | str | Unknown, password=int | str | Unknown | None, db=int, ssl=bool, ssl_ca_certs=str | None, ssl_cert_reqs=Any | None, ssl_certfile=Any | None, ssl_keyfile=Any | None, socket_timeout=Literal[5], socket_connect_timeout=Literal[5], health_check_interval=Literal[30]) [no-matching-overload]
   --> schedule/queue_monitor_task.py:14:21
 ERROR Object of class `Tenant` has no attribute `role` [missing-attribute]
-    --> services/account_service.py:1154:13
+    --> services/account_service.py:1153:13
+ERROR Runtime checkable protocol `Generator` has an unsafe overlap with type `Iterable[bytes]` [unsafe-overlap]
+   --> services/audio_service.py:143:41
 ERROR No matching overload found for function `flask.helpers.stream_with_context` called with arguments: (Generator[bytes]) [no-matching-overload]
    --> services/audio_service.py:144:56
+ERROR Runtime checkable protocol `Generator` has an unsafe overlap with type `Iterable[bytes]` [unsafe-overlap]
+   --> services/audio_service.py:150:37
 ERROR No matching overload found for function `flask.helpers.stream_with_context` called with arguments: (Generator[bytes]) [no-matching-overload]
    --> services/audio_service.py:151:52
 ERROR Argument `str | None` is not assignable to parameter `value` with type `SQLCoreOperations[str] | str` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
@@ -349,16 +347,20 @@
   --> services/hit_testing_service.py:94:21
 ERROR `handled_tenant_count` was assigned in the current scope before the nonlocal declaration [unknown-name]
   --> services/plugin/plugin_migration.py:91:34
-ERROR `dict[str, Any]` is not assignable to attribute `credentials` with type `Never` [bad-assignment]
-   --> services/trigger/trigger_provider_service.py:446:40
-ERROR `int` is not assignable to attribute `credential_expires_at` with type `Never` [bad-assignment]
-   --> services/trigger/trigger_provider_service.py:447:50
 ERROR Object of class `dict` has no attribute `encode`
 ERROR Object of class `dict` has no attribute `encode`
+ERROR Returned type `EndUser | Unknown | None` is not assignable to declared return type `Account | EndUser` [bad-return]
+   --> tasks/app_generate/workflow_execute_task.py:219:24
+ERROR `Account | Unknown | None` is not assignable to `Account` [bad-assignment]
+   --> tasks/app_generate/workflow_execute_task.py:224:29
+ERROR Runtime checkable protocol `Generator` has an unsafe overlap with type `Generator[Mapping[str, Any] | str] | Mapping[str, Any]` [unsafe-overlap]
+   --> tasks/app_generate/workflow_execute_task.py:440:37
+ERROR Runtime checkable protocol `Generator` has an unsafe overlap with type `Generator[Mapping[str, Any] | str] | Mapping[str, Any]` [unsafe-overlap]
+   --> tasks/app_generate/workflow_execute_task.py:494:37
 ERROR `Literal['error']` is not assignable to attribute `status` with type `Never` [bad-assignment]
-   --> tasks/regenerate_summary_index_task.py:276:61
+   --> tasks/regenerate_summary_index_task.py:278:61
 ERROR `str` is not assignable to attribute `error` with type `Never` [bad-assignment]
-   --> tasks/regenerate_summary_index_task.py:277:60
+   --> tasks/regenerate_summary_index_task.py:279:60
 ERROR Class member `AsyncWorkflowCFSPlanScheduler.plan` overrides parent class `CFSPlanScheduler` in an inconsistent manner [bad-override]
   --> tasks/workflow_cfs_scheduler/cfs_scheduler.py:19:5
 ERROR Argument `Literal['normal']` is not assignable to parameter `value` with type `AppStatus | SQLCoreOperations[AppStatus]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
@@ -715,6 +717,12 @@
    --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:270:29
 ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/helpers/execution_extra_content.py:49:14
+ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (host=str, port=int, decode_responses=Literal[False]) [no-matching-overload]
+  --> tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_channel.py:40:27
+ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (host=str, port=int, decode_responses=Literal[False]) [no-matching-overload]
+  --> tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_sharded_channel.py:44:27
+ERROR No matching overload found for function `redis.client.Redis.__init__` called with arguments: (host=str, port=int, decode_responses=Literal[False]) [no-matching-overload]
+  --> tests/test_containers_integration_tests/libs/broadcast_channel/redis/test_streams_channel.py:38:27
 ERROR Object of class `TypeEngine` has no attribute `length` [missing-attribute]
    --> tests/test_containers_integration_tests/models/test_types_enum_text.py:104:16
 ERROR Object of class `NoneType` has no attribute `user_type` [missing-attribute]
@@ -828,15 +836,45 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:138:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:589:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:617:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:674:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:748:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:765:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:802:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:842:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:856:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:877:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:894:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:919:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:940:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:973:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1014:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1109:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1135:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1166:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1172:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1300:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -1005,7 +1043,7 @@
   --> tests/test_containers_integration_tests/services/test_file_service.py:69:20
 ERROR Argument `Literal['normal']` is not assignable to parameter `status` with type `SQLCoreOperations[TenantStatus] | TenantStatus` in function `models.account.Tenant.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_file_service.py:78:20
-ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
+ERROR Argument `str` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_human_input_delivery_test.py:32:18
 ERROR Unexpected keyword argument `whole_workspace` in function `core.workflow.human_input_compat.EmailRecipients.__init__` [unexpected-keyword]
    --> tests/test_containers_integration_tests/services/test_human_input_delivery_test_service.py:239:44
@@ -1089,16 +1127,6 @@
    --> tests/test_containers_integration_tests/services/test_model_provider_service.py:149:24
 ERROR Argument `str` is not assignable to parameter `model_type` with type `ModelType | SQLCoreOperations[ModelType]` in function `models.provider.ProviderModelSetting.__init__` [bad-argument-type]
    --> tests/test_containers_integration_tests/services/test_model_provider_service.py:187:24
-ERROR `None` is not subscriptable [unsupported-operation]
-   --> tests/test_containers_integration_tests/services/test_recommended_app_service.py:198:16
-ERROR `None` is not subscriptable [unsupported-operation]
-   --> tests/test_containers_integration_tests/services/test_recommended_app_service.py:213:20
-ERROR `None` is not subscriptable [unsupported-operation]
-   --> tests/test_containers_integration_tests/services/test_recommended_app_service.py:263:16
-ERROR `None` is not subscriptable [unsupported-operation]
-   --> tests/test_containers_integration_tests/services/test_recommended_app_service.py:264:20
-ERROR `None` is not subscriptable [unsupported-operation]
-   --> tests/test_containers_integration_tests/services/test_recommended_app_service.py:265:20
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
   --> tests/test_containers_integration_tests/services/test_saved_message_service.py:87:38
 ERROR Argument `Literal['account']` is not assignable to parameter `created_by_role` with type `CreatorUserRole | SQLCoreOperations[CreatorUserRole]` in function `models.web.SavedMessage.__init__` [bad-argument-type]
@@ -1182,9 +1210,9 @@
 ERROR Argument `Literal['normal']` is not assignable to parameter `status` with type `SQLCoreOperations[TenantStatus] | TenantStatus` in function `models.account.Tenant.__init__` [bad-argument-type]
    --> tests/test_containers_integration_tests/services/test_webapp_auth_service.py:142:20
 ERROR Argument `Literal['active']` is not assignable to parameter `status` with type `AccountStatus | SQLCoreOperations[AccountStatus]` in function `models.account.Account.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_webapp_auth_service.py:345:20
+   --> tests/test_containers_integration_tests/services/test_webapp_auth_service.py:346:20
 ERROR Argument `Literal['normal']` is not assignable to parameter `status` with type `SQLCoreOperations[TenantStatus] | TenantStatus` in function `models.account.Tenant.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_webapp_auth_service.py:715:20
+   --> tests/test_containers_integration_tests/services/test_webapp_auth_service.py:717:20
 ERROR Argument `dict[str, dict[str, list[dict[str, bool | str]] | str]]` is not assignable to parameter `node_config` with type `NodeConfigDict` in function `services.trigger.webhook_service.WebhookService.extract_and_validate_webhook_data` [bad-argument-type]
    --> tests/test_containers_integration_tests/services/test_webhook_service.py:288:88
 ERROR Argument `dict[str, dict[str, str]]` is not assignable to parameter `node_config` with type `NodeConfigDict` in function `services.trigger.webhook_service.WebhookService.extract_and_validate_webhook_data` [bad-argument-type]
@@ -1645,7 +1673,7 @@
   --> tests/test_containers_integration_tests/tasks/test_mail_owner_transfer_task.py:64:20
 ERROR Argument `Literal['normal']` is not assignable to parameter `status` with type `SQLCoreOperations[TenantStatus] | TenantStatus` in function `models.account.Tenant.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/tasks/test_mail_owner_transfer_task.py:72:20
-ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
+ERROR Argument `str` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/tasks/test_mail_owner_transfer_task.py:81:18
 ERROR Argument `Literal['active']` is not assignable to parameter `status` with type `AccountStatus | SQLCoreOperations[AccountStatus]` in function `models.account.Account.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/tasks/test_rag_pipeline_run_tasks.py:72:20
@@ -1659,7 +1687,7 @@
    --> tests/test_containers_integration_tests/test_workflow_pause_integration.py:696:20
 ERROR Argument `Literal['active']` is not assignable to parameter `status` with type `AccountStatus | SQLCoreOperations[AccountStatus]` in function `models.account.Account.__init__` [bad-argument-type]
    --> tests/test_containers_integration_tests/test_workflow_pause_integration.py:705:20
-ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
+ERROR Argument `str` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
   --> tests/test_containers_integration_tests/trigger/conftest.py:36:79
 ERROR Argument `dict[str, dict[str, dict[str, str] | str] | str]` is not assignable to parameter `node_config` with type `NodeConfigDict` in function `core.trigger.debug.event_selectors.TriggerDebugEventPoller.__init__` [bad-argument-type]
    --> tests/test_containers_integration_tests/trigger/test_trigger_e2e.py:301:21
@@ -3074,129 +3102,129 @@
 ERROR Cannot index into `str` [bad-index]
    --> tests/unit_tests/core/app/apps/workflow/test_generate_response_converter.py:134:16
 ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow` with type `Workflow` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:83:18
+  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:82:18
 ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:84:23
+  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:83:23
 ERROR Argument `SimpleNamespace` is not assignable to parameter `user` with type `Account | EndUser` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:85:14
+  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:84:14
 ERROR Argument `(**kwargs: Unknown) -> None` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:87:33
+  --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:86:33
 ERROR Argument `SimpleNamespace` is not assignable to parameter `publisher` with type `AppGeneratorTTSPublisher | None` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._listen_audio_msg` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:145:57
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:144:57
 ERROR `(err: Unknown) -> Unknown` is not assignable to attribute `error_to_stream_response` with type `(self: BasedGenerateTaskPipeline, e: Exception) -> ErrorStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:160:65
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:159:65
 ERROR `(**kwargs: Unknown) -> Literal['started']` is not assignable to attribute `workflow_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_run_id: str, workflow_id: str, reason: WorkflowStartReason) -> WorkflowStartStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:172:83
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:171:83
 ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:188:89
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:187:89
 ERROR `(**kwargs: Unknown) -> Literal['finish']` is not assignable to attribute `workflow_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_id: str, status: WorkflowExecutionStatus, graph_runtime_state: GraphRuntimeState, error: str | None = None, exceptions_count: int = 0) -> WorkflowFinishStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:213:84
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:212:84
 ERROR `(err: Unknown) -> Unknown` is not assignable to attribute `error_to_stream_response` with type `(self: BasedGenerateTaskPipeline, e: Exception) -> ErrorStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:215:65
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:214:65
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_handle_text_chunk_event_publishes_tts._Publisher` is not assignable to parameter `tts_publisher` with type `AppGeneratorTTSPublisher | None` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:235:68
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:234:68
 ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_message` with type `MessageQueueMessage | WorkflowQueueMessage | None` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:235:96
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:234:96
 ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:238:16
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:237:16
 ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:243:89
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:242:89
 ERROR `(**kwargs: Unknown) -> Literal['finish']` is not assignable to attribute `workflow_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_id: str, status: WorkflowExecutionStatus, graph_runtime_state: GraphRuntimeState, error: str | None = None, exceptions_count: int = 0) -> WorkflowFinishStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:265:84
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:264:84
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_save_workflow_app_log_created_from._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._save_workflow_app_log` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:285:49
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:284:49
 ERROR `(**kwargs: Unknown) -> Literal['iter']` is not assignable to attribute `workflow_iteration_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationStartEvent) -> IterationNodeStartStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:292:93
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:291:93
 ERROR `(**kwargs: Unknown) -> Literal['next']` is not assignable to attribute `workflow_iteration_next_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationNextEvent) -> IterationNodeNextStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:293:92
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:292:92
 ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_iteration_completed_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationCompletedEvent) -> IterationNodeCompletedStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:294:97
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:293:97
 ERROR `(**kwargs: Unknown) -> Literal['loop']` is not assignable to attribute `workflow_loop_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopStartEvent) -> LoopNodeStartStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:295:88
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:294:88
 ERROR `(**kwargs: Unknown) -> Literal['loop_next']` is not assignable to attribute `workflow_loop_next_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopNextEvent) -> LoopNodeNextStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:296:87
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:295:87
 ERROR `(**kwargs: Unknown) -> Literal['loop_done']` is not assignable to attribute `workflow_loop_completed_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopCompletedEvent) -> LoopNodeCompletedStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:297:92
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:296:92
 ERROR `(**kwargs: Unknown) -> Literal['filled']` is not assignable to attribute `human_input_form_filled_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueHumanInputFormFilledEvent, task_id: str) -> HumanInputFormFilledResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:298:92
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:297:92
 ERROR `(**kwargs: Unknown) -> Literal['timeout']` is not assignable to attribute `human_input_form_timeout_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueHumanInputFormTimeoutEvent, task_id: str) -> HumanInputFormTimeoutResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:299:93
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:298:93
 ERROR `(**kwargs: Unknown) -> Literal['log']` is not assignable to attribute `handle_agent_log` with type `(self: WorkflowResponseConverter, task_id: str, event: QueueAgentLogEvent) -> AgentLogStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:300:66
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:299:66
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, tts_publisher: AppGeneratorTTSPublisher | None = None, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:392:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:391:45
 ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow` with type `Workflow` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:448:22
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:447:22
 ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:449:27
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:448:27
 ERROR Argument `(**kwargs: Unknown) -> None` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:452:37
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:451:37
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_wrapper_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:461:53
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:460:53
 ERROR Object of class `tuple` has no attribute `workflow_run_id` [missing-attribute]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:465:16
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:464:16
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_wrapper_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:468:53
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:467:53
 ERROR Object of class `Generator` has no attribute `workflow_run_id` [missing-attribute]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:490:16
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:489:16
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, tts_publisher: AppGeneratorTTSPublisher | None = None, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:534:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:533:45
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, tts_publisher: AppGeneratorTTSPublisher | None = None, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:544:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:543:45
 ERROR `(**kwargs: Unknown) -> Iterator[Any]` is not assignable to attribute `_process_stream_response` with type `(self: WorkflowAppGenerateTaskPipeline, tts_publisher: AppGeneratorTTSPublisher | None = None, trace_manager: TraceQueueManager | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:581:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:580:45
 ERROR `(**kwargs: Unknown) -> Literal['retry']` is not assignable to attribute `workflow_node_retry_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeRetryEvent, task_id: str) -> NodeRetryStreamResponse | None` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:671:88
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:670:88
 ERROR `(**kwargs: Unknown) -> Literal['started']` is not assignable to attribute `workflow_node_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeStartedEvent, task_id: str) -> NodeStartStreamResponse | None` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:676:88
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:675:88
 ERROR `(**kwargs: Unknown) -> Literal['failed']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:682:89
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:681:89
 ERROR `(**kwargs: Unknown) -> Literal['finish']` is not assignable to attribute `workflow_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_id: str, status: WorkflowExecutionStatus, graph_runtime_state: GraphRuntimeState, error: str | None = None, exceptions_count: int = 0) -> WorkflowFinishStreamResponse` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:708:84
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:707:84
 ERROR `(**kwargs: Unknown) -> list[str]` is not assignable to attribute `workflow_pause_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueWorkflowPausedEvent, task_id: str, graph_runtime_state: GraphRuntimeState) -> list[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:716:83
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:715:83
 ERROR `(event: QueuePingEvent, **kwargs: Unknown) -> Iterator[PingStreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_ping_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueuePingEvent, **kwargs: Unknown) -> Generator[PingStreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:735:39
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:734:39
 ERROR `(event: QueueStopEvent | QueueWorkflowFailedEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_workflow_failed_and_stop_events` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueStopEvent | QueueWorkflowFailedEvent, *, trace_manager: TraceQueueManager | None = None, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:738:60
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:737:60
 ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `AppQueueEvent` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._dispatch_event` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:743:46
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:742:46
 ERROR `() -> Iterator[MessageQueueMessage | WorkflowQueueMessage] | Iterator[Any]` is not assignable to attribute `listen` with type `(self: AppQueueManager) -> Generator[MessageQueueMessage | WorkflowQueueMessage, Unknown]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:751:61
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:750:61
 ERROR `(event: QueueWorkflowStartedEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_workflow_started_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueWorkflowStartedEvent, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:759:51
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:758:51
 ERROR `(event: QueueTextChunkEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_text_chunk_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueTextChunkEvent, *, tts_publisher: AppGeneratorTTSPublisher | None = None, queue_message: MessageQueueMessage | WorkflowQueueMessage | None = None, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:760:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:759:45
 ERROR `(event: AppQueueEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_dispatch_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: AppQueueEvent, *, tts_publisher: AppGeneratorTTSPublisher | None = None, trace_manager: TraceQueueManager | None = None, queue_message: MessageQueueMessage | WorkflowQueueMessage | None = None) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:761:36
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:760:36
 ERROR `(event: QueueErrorEvent, **kwargs: Unknown) -> Iterator[ErrorStreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_error_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueErrorEvent, **kwargs: Unknown) -> Generator[ErrorStreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:762:40
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:761:40
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_process_stream_response_main_match_paths_and_cleanup._Publisher` is not assignable to parameter `tts_publisher` with type `AppGeneratorTTSPublisher | None` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._process_stream_response` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:769:74
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:768:74
 ERROR `() -> Iterator[MessageQueueMessage | WorkflowQueueMessage] | Iterator[Any]` is not assignable to attribute `listen` with type `(self: AppQueueManager) -> Generator[MessageQueueMessage | WorkflowQueueMessage, Unknown]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:776:61
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:775:61
 ERROR `(event: QueueStopEvent | QueueWorkflowFailedEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_workflow_failed_and_stop_events` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueStopEvent | QueueWorkflowFailedEvent, *, trace_manager: TraceQueueManager | None = None, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:779:60
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:778:60
 ERROR `() -> Iterator[MessageQueueMessage | WorkflowQueueMessage] | Iterator[Any]` is not assignable to attribute `listen` with type `(self: AppQueueManager) -> Generator[MessageQueueMessage | WorkflowQueueMessage, Unknown]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:782:61
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:781:61
 ERROR `(event: QueueWorkflowPausedEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_workflow_paused_event` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueWorkflowPausedEvent, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:785:50
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:784:50
 ERROR `() -> Iterator[MessageQueueMessage | WorkflowQueueMessage] | Iterator[Any]` is not assignable to attribute `listen` with type `(self: AppQueueManager) -> Generator[MessageQueueMessage | WorkflowQueueMessage, Unknown]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:788:61
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:787:61
 ERROR `(event: QueueStopEvent | QueueWorkflowFailedEvent, **kwargs: Unknown) -> Iterator[StreamResponse] | Iterator[Any]` is not assignable to attribute `_handle_workflow_failed_and_stop_events` with type `(self: WorkflowAppGenerateTaskPipeline, event: QueueStopEvent | QueueWorkflowFailedEvent, *, trace_manager: TraceQueueManager | None = None, **kwargs: Unknown) -> Generator[StreamResponse]` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:791:60
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:790:60
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_save_workflow_app_log_covers_invoke_from_variants._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._save_workflow_app_log` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:804:49
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:803:49
 ERROR Object of class `object` has no attribute `created_from` [missing-attribute]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:805:16
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:804:16
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_save_workflow_app_log_covers_invoke_from_variants._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._save_workflow_app_log` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:808:49
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:807:49
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_save_workflow_app_log_covers_invoke_from_variants._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._save_workflow_app_log` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:813:49
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:812:49
 ERROR Argument `TestWorkflowGenerateTaskPipeline.test_save_workflow_app_log_covers_invoke_from_variants._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline._save_workflow_app_log` [bad-argument-type]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:817:49
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:816:49
 ERROR `(**kwargs: Unknown) -> TestWorkflowGenerateTaskPipeline.test_save_output_for_event_writes_draft_variables._Saver` is not assignable to attribute `_draft_var_saver_factory` with type `DraftVariableSaverFactory` [bad-assignment]
-   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:833:45
+   --> tests/unit_tests/core/app/apps/workflow/test_generate_task_pipeline_core.py:832:45
 ERROR `Literal['unknown']` is not assignable to attribute `stopped_by` with type `QueueStopEvent.StopBy` [bad-assignment]
   --> tests/unit_tests/core/app/entities/test_queue_entities.py:11:28
 ERROR Object of class `Mapping` has no attribute `close` [missing-attribute]
@@ -5538,7 +5566,7 @@
 ERROR Argument `None` is not assignable to parameter `output_schema` with type `Mapping[str, Any]` in function `core.tools.entities.tool_entities.ToolEntity.__init__` [bad-argument-type]
   --> tests/unit_tests/core/tools/test_tool_entities.py:27:66
 ERROR Argument `Generator[Unknown] | None` is not assignable to parameter `iterable` with type `Iterable[Unknown]` in function `list.__init__` [bad-argument-type]
-   --> tests/unit_tests/core/tools/test_tool_file_manager.py:241:25
+   --> tests/unit_tests/core/tools/test_tool_file_manager.py:253:25
 ERROR `SimpleNamespace` is not assignable to attribute `entity` with type `ToolProviderEntityWithPlugin` [bad-assignment]
    --> tests/unit_tests/core/tools/test_tool_manager.py:300:32
 ERROR Argument `SimpleNamespace` is not assignable to parameter `agent_tool` with type `AgentToolEntity` in function `core.tools.tool_manager.ToolManager.get_agent_tool_runtime` [bad-argument-type]
@@ -5966,17 +5994,17 @@
 ERROR Argument `object` is not assignable to parameter `node_data_memory` with type `MemoryConfig | None` in function `core.workflow.node_factory.fetch_memory` [bad-argument-type]
    --> tests/unit_tests/core/workflow/test_node_factory.py:102:30
 ERROR Argument `SimpleNamespace` is not assignable to parameter `graph_init_params` with type `GraphInitParams` in function `core.workflow.node_factory.DifyNodeFactory.__init__` [bad-argument-type]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:294:35
+   --> tests/unit_tests/core/workflow/test_node_factory.py:249:35
 ERROR `SimpleNamespace` is not assignable to attribute `graph_runtime_state` with type `GraphRuntimeState` [bad-assignment]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:357:39
+   --> tests/unit_tests/core/workflow/test_node_factory.py:312:39
 ERROR `SimpleNamespace` is not assignable to attribute `_dify_context` with type `DifyRunContext` [bad-assignment]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:358:33
+   --> tests/unit_tests/core/workflow/test_node_factory.py:313:33
 ERROR `form_repository` may be uninitialized [unbound-name]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:497:49
+   --> tests/unit_tests/core/workflow/test_node_factory.py:452:49
 ERROR `SimpleNamespace` is not assignable to attribute `_dify_context` with type `DifyRunContext` [bad-assignment]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:640:33
+   --> tests/unit_tests/core/workflow/test_node_factory.py:595:33
 ERROR `SimpleNamespace` is not assignable to attribute `graph_runtime_state` with type `GraphRuntimeState` [bad-assignment]
-   --> tests/unit_tests/core/workflow/test_node_factory.py:641:39
+   --> tests/unit_tests/core/workflow/test_node_factory.py:596:39
 ERROR Object of class `ExternalRecipient` has no attribute `reference_id` [missing-attribute]
   --> tests/unit_tests/core/workflow/test_node_\n\n... (truncated) ...

@github-actions
Copy link
Copy Markdown
Contributor

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-04-10 11:24:50.251318526 +0000
+++ /tmp/pyrefly_pr.txt	2026-04-10 11:24:39.918276287 +0000
@@ -828,15 +828,45 @@
 ERROR Argument `Literal['app']` is not assignable to parameter `value` with type `ApiTokenType | SQLCoreOperations[ApiTokenType]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
   --> tests/test_containers_integration_tests/services/test_api_token_service.py:27:26
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:112:42
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:138:42
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:589:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.check_dependencies` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:617:55
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:674:17
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:748:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:765:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app` with type `App | None` in function `services.app_dsl_service.AppDslService._create_or_update_app` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:802:21
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:842:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:856:34
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:877:48
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService.export_dsl` [bad-argument-type]
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:894:48
 ERROR Argument `Literal['simple']` is not assignable to parameter `prompt_type` with type `PromptType | SQLCoreOperations[PromptType]` in function `models.model.AppModelConfig.__init__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:246:25
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:919:25
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:290:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:940:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:338:20
+   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:973:20
 ERROR Argument `Literal['workflow']` is not assignable to parameter `value` with type `AppMode | SQLCoreOperations[AppMode]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:395:20
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1014:20
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1109:23
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_workflow_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1135:27
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1166:69
+ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `services.app_dsl_service.AppDslService._append_model_config_export_data` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1172:64
+ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
+    --> tests/test_containers_integration_tests/services/test_app_dsl_service.py:1300:73
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
    --> tests/test_containers_integration_tests/services/test_app_generate_service.py:173:38
 ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
@@ -6364,20 +6394,6 @@
     --> tests/unit_tests/services/test_annotation_service.py:1214:59
 ERROR TypedDict `AnnotationSettingDisabledDict` does not have key `embedding_model` [bad-typed-dict-key]
     --> tests/unit_tests/services/test_annotation_service.py:1251:27
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:222:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:236:5
-ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:237:12
-ERROR Object of class `FunctionType` has no attribute `reset_mock` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:387:5
-ERROR Object of class `FunctionType` has no attribute `assert_called_once_with` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:391:5
-ERROR Object of class `FunctionType` has no attribute `assert_called` [missing-attribute]
-   --> tests/unit_tests/services/test_app_dsl_service.py:553:5
-ERROR Argument `list[SimpleNamespace]` is not assignable to parameter `dsl_dependencies` with type `list[PluginDependency]` in function `services.app_dsl_service.AppDslService.get_leaked_dependencies` [bad-argument-type]
-   --> tests/unit_tests/services/test_app_dsl_service.py:934:61
 ERROR Argument `_FakeStreams` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.streams_channel.StreamsBroadcastChannel.__init__` [bad-argument-type]
   --> tests/unit_tests/services/test_app_generate_service_streaming_integration.py:95:36
 ERROR Argument `_FakeRedisClient` is not assignable to parameter `redis_client` with type `Redis[Unknown] | RedisCluster[Unknown]` in function `libs.broadcast_channel.redis.channel.BroadcastChannel.__init__` [bad-argument-type]

@asukaminato0721
Copy link
Copy Markdown
Contributor

@dosu how about this pr

@dosubot
Copy link
Copy Markdown

dosubot Bot commented Apr 13, 2026

It looks like the feedback from @asukaminato0721 about removing MagicMock() sessions has been addressed. Comparing the current diff to the previous version:

  • test_create_or_update_app_creates_workflow_app_and_saves_dependencies — now uses db_session_with_containers and mock_external_service_dependencies (real DB session + real account via _create_test_app_and_account) instead of the old MagicMock() session with DummyApp(SimpleNamespace) and monkeypatched app_dsl_service.App. The old _app_mock helper and DummyApp class are gone.

  • test_create_or_update_app_chat_creates_model_config_and_sends_event — also now uses db_session_with_containers and mock_external_service_dependencies with a real app/account, instead of the old MagicMock() session with DummyModelConfig(SimpleNamespace) and monkeypatched AppModelConfig.

  • The old _app_mock() helper (which created MagicMock(spec=App)) and _FakeHttpResponse class from the deleted unit test files are fully removed.

The PR overall looks solid. The remaining SimpleNamespace usages are intentional — they're used in tests that exercise static/class methods or isolated logic paths where creating a full DB-backed object would be unnecessary overhead (e.g., export data filtering, dependency extraction, version compatibility checks). The remaining MagicMock usages are for external services (WorkflowService, DependenciesAnalysisService, ssrf_proxy responses, etc.) which are appropriately kept as mocks since they're outside the scope of this testcontainers migration.

The PR is waiting on CI and a final review from @asukaminato0721.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
Chat with Dosu Open in Cursor  Share on X

@asukaminato0721 asukaminato0721 added this pull request to the merge queue Apr 13, 2026
Merged via the queue into langgenius:main with commit e823635 Apr 13, 2026
28 checks passed
HanqingZ pushed a commit to HanqingZ/dify that referenced this pull request Apr 23, 2026
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants