databao-context-engine 0.7.0__tar.gz → 0.7.1.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/PKG-INFO +15 -12
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/README.md +13 -9
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/pyproject.toml +3 -3
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/__init__.py +8 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/build_runner.py +86 -80
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/build_service.py +63 -37
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/build_wiring.py +4 -7
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/build_sources/context_loader.py +88 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/cli/commands.py +71 -0
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/cli/datasources.py +119 -0
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/cli/user_input_cb_impl.py +42 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/databao_context_domain_manager.py +1 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/databao_context_engine.py +41 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/datasource_context.py +12 -4
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/mcp/mcp_server.py +165 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/build_plugin.py +3 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/config.py +1 -2
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/athena/athena_connector.py +20 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/athena/athena_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/athena/athena_introspector.py +0 -12
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/base_connector.py +27 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/base_db_plugin.py +18 -8
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/base_introspector.py +148 -92
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/bigquery/bigquery_connector.py +85 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/bigquery/bigquery_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/bigquery/bigquery_introspector.py +1 -75
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/clickhouse/clickhouse_connector.py +23 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/clickhouse/clickhouse_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/clickhouse/clickhouse_introspector.py +0 -11
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/database_context_explorer.py +93 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/databases_types.py +45 -5
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/duckdb/duckdb_connector.py +25 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/duckdb/duckdb_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/duckdb/duckdb_introspector.py +69 -78
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/introspection_model_builder.py +4 -47
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/introspection_scope_matcher.py +21 -17
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/mssql/mssql_connector.py +60 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mssql/mssql_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mssql/mssql_introspector.py +2 -52
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/mysql/mysql_connector.py +32 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mysql/mysql_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mysql/mysql_introspector.py +66 -78
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/postgresql/postgresql_connector.py +39 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/postgresql/postgresql_db_plugin.py +4 -4
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/postgresql/postgresql_introspector.py +66 -233
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/postgresql/sync_asyncpg_connection.py +153 -0
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/profiling_config.py +19 -0
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/snowflake/snowflake_connector.py +36 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/snowflake/snowflake_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/snowflake/snowflake_introspector.py +48 -66
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/plugins/databases/sqlite/sqlite_connector.py +43 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sqlite/sqlite_db_plugin.py +3 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sqlite/sqlite_introspector.py +0 -35
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/types.py +1 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/duckdb_tools.py +10 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/plugin_loader.py +19 -3
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/resources/parquet_introspector.py +1 -1
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/init_project.py +2 -0
- databao_context_engine-0.7.1.dev1/src/databao_context_engine/serialization/yaml.py +84 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/chunk_repository.py +25 -31
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/datasource_context_repository.py +23 -20
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/embedding_model_registry_repository.py +33 -32
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/embedding_repository.py +36 -30
- databao_context_engine-0.7.0/src/databao_context_engine/cli/datasources.py +0 -20
- databao_context_engine-0.7.0/src/databao_context_engine/mcp/mcp_server.py +0 -106
- databao_context_engine-0.7.0/src/databao_context_engine/serialization/yaml.py +0 -54
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/LICENSE.md +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/export_results.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/plugin_execution.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/build_sources/types.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/cli/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/cli/info.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/config/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/config/log_config.yaml +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/config/logging.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/check_config.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/config_wizard.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/datasource_discovery.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/execute_sql_query.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/sql_read_only.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/datasources/types.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/event_journal/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/event_journal/writer.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/generate_configs_schemas.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/init_domain.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/introspection/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/introspection/property_extract.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/api.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/config.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/descriptions/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/descriptions/ollama.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/descriptions/provider.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/embeddings/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/embeddings/ollama.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/embeddings/provider.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/errors.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/factory.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/install.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/prompts/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/prompts/ollama.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/prompts/provider.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/runtime.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/llm/service.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/main.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/mcp/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/mcp/mcp_runner.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/perf/core.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/plugin_utils.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/sql/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/pluginlib/sql/sql_types.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/athena/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/athena/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/bigquery/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/bigquery/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/clickhouse/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/clickhouse/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/context_enricher.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/database_chunker.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/duckdb/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/duckdb/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/introspection_scope.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mssql/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mssql/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mysql/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/mysql/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/postgresql/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/postgresql/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sampling_scope.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sampling_scope_matcher.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/snowflake/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/snowflake/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sqlite/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/databases/sqlite/config_file.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/context_filtering.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/dbt_chunker.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/dbt_context_extractor.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/dbt_plugin.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/dbt/types_artifacts.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/files/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/files/docling_chunker.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/files/pdf_plugin.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/files/unstructured_files_plugin.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/resources/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/resources/parquet_chunker.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/resources/parquet_plugin.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/plugins/resources/types.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/progress/progress.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/info.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/layout.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/project_config.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/resources/examples/src/databases/example_postgres.yaml +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/resources/examples/src/files/documentation.md +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/project/resources/examples/src/files/notes.txt +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/py.typed +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/search_context/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/search_context/chunk_search_repository.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/search_context/search_runner.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/search_context/search_service.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/search_context/search_wiring.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/serialization/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/chunk_embedding_service.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/embedding_shard_resolver.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/factories.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/models.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/persistence_service.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/services/table_name_policy.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/connection.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/exceptions/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/exceptions/exceptions.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/migrate.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/migrations/V01__init.sql +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/migrations/V02__add_keyword_index_text.sql +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/migrations/V03__add_indexed_datasource_table.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/migrations/V03__add_indexed_datasource_table.sql +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/models.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/repositories/factories.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/storage/transaction.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/system/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/system/properties.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/templating/__init__.py +0 -0
- {databao_context_engine-0.7.0 → databao_context_engine-0.7.1.dev1}/src/databao_context_engine/templating/renderer.py +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: databao-context-engine
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1.dev1
|
|
4
4
|
Summary: Semantic context for your LLMs — generated automatically
|
|
5
5
|
License-Expression: Apache-2.0 AND LicenseRef-Additional-Terms
|
|
6
6
|
License-File: LICENSE.md
|
|
7
|
-
Requires-Dist: click>=8.3.0
|
|
8
7
|
Requires-Dist: duckdb>=1.4.3
|
|
9
8
|
Requires-Dist: pyyaml>=6.0.3
|
|
10
9
|
Requires-Dist: requests>=2.32.5
|
|
@@ -23,7 +22,7 @@ Requires-Dist: docling>=2.70.0 ; extra == 'pdf'
|
|
|
23
22
|
Requires-Dist: asyncpg>=0.31.0 ; extra == 'postgresql'
|
|
24
23
|
Requires-Dist: snowflake-connector-python>=4.2.0 ; extra == 'snowflake'
|
|
25
24
|
Requires-Python: >=3.11
|
|
26
|
-
Project-URL: Homepage, https://
|
|
25
|
+
Project-URL: Homepage, https://jetbrains.com/databao/
|
|
27
26
|
Project-URL: Source, https://github.com/JetBrains/databao-context-engine
|
|
28
27
|
Provides-Extra: athena
|
|
29
28
|
Provides-Extra: bigquery
|
|
@@ -48,10 +47,10 @@ Description-Content-Type: text/markdown
|
|
|
48
47
|
No more copying schemas. No manual documentation. Just accurate answers.
|
|
49
48
|
</p>
|
|
50
49
|
<p align="center">
|
|
51
|
-
<a href="https://databao
|
|
50
|
+
<a href="https://jetbrains.com/databao">Website</a> •
|
|
52
51
|
<a href="#quickstart">Quickstart</a> •
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
<a href="https://docs.databao.app">Docs</a> •
|
|
53
|
+
<a href="https://discord.gg/hEUqCcWdVh">Discord</a>
|
|
55
54
|
</p>
|
|
56
55
|
|
|
57
56
|
---
|
|
@@ -124,22 +123,26 @@ pip install databao-context-engine
|
|
|
124
123
|
### 1. Create a domain
|
|
125
124
|
|
|
126
125
|
```python
|
|
127
|
-
# Initialize the domain in
|
|
126
|
+
# Initialize the domain in a temporary directory
|
|
128
127
|
from databao_context_engine import init_dce_domain
|
|
128
|
+
from pathlib import Path
|
|
129
|
+
import tempfile
|
|
129
130
|
|
|
130
131
|
domain_manager = init_dce_domain(Path(tempfile.mkdtemp()))
|
|
131
132
|
|
|
132
133
|
# Or use an existing project
|
|
133
134
|
from databao_context_engine import DatabaoContextDomainManager
|
|
134
135
|
|
|
135
|
-
domain_manager = DatabaoContextDomainManager(domain_dir=Path("
|
|
136
|
+
domain_manager = DatabaoContextDomainManager(domain_dir=Path("domain_dir"))
|
|
136
137
|
```
|
|
137
138
|
|
|
138
139
|
### 2. Configure data sources
|
|
139
140
|
|
|
140
141
|
```python
|
|
141
142
|
from databao_context_engine import (
|
|
143
|
+
CheckDatasourceConnectionResult,
|
|
142
144
|
DatasourceConnectionStatus,
|
|
145
|
+
DatasourceId,
|
|
143
146
|
DatasourceType,
|
|
144
147
|
)
|
|
145
148
|
|
|
@@ -153,11 +156,10 @@ postgres_datasource_id = domain_manager.create_datasource_config(
|
|
|
153
156
|
).datasource.id
|
|
154
157
|
|
|
155
158
|
# Check the connection to the datasource is valid
|
|
156
|
-
check_result = domain_manager.check_datasource_connection()
|
|
159
|
+
check_result: dict[DatasourceId, CheckDatasourceConnectionResult] = domain_manager.check_datasource_connection()
|
|
157
160
|
|
|
158
161
|
assert len(check_result) == 1
|
|
159
|
-
assert check_result[
|
|
160
|
-
assert check_result[0].connection_status == DatasourceConnectionStatus.VALID
|
|
162
|
+
assert check_result[postgres_datasource_id].connection_status == DatasourceConnectionStatus.VALID
|
|
161
163
|
```
|
|
162
164
|
|
|
163
165
|
### 3. Build context
|
|
@@ -236,6 +238,7 @@ Apache 2.0 — use it however you want. See the [LICENSE](LICENSE.md) file for d
|
|
|
236
238
|
</p>
|
|
237
239
|
|
|
238
240
|
<p align="center">
|
|
239
|
-
<a href="https://databao
|
|
241
|
+
<a href="https://jetbrains.com/databao">Website</a> •
|
|
242
|
+
<a href="https://docs.databao.app">Docs</a> •
|
|
240
243
|
<a href="https://discord.gg/hEUqCcWdVh">Discord</a>
|
|
241
244
|
</p>
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
No more copying schemas. No manual documentation. Just accurate answers.
|
|
12
12
|
</p>
|
|
13
13
|
<p align="center">
|
|
14
|
-
<a href="https://databao
|
|
14
|
+
<a href="https://jetbrains.com/databao">Website</a> •
|
|
15
15
|
<a href="#quickstart">Quickstart</a> •
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
<a href="https://docs.databao.app">Docs</a> •
|
|
17
|
+
<a href="https://discord.gg/hEUqCcWdVh">Discord</a>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -87,22 +87,26 @@ pip install databao-context-engine
|
|
|
87
87
|
### 1. Create a domain
|
|
88
88
|
|
|
89
89
|
```python
|
|
90
|
-
# Initialize the domain in
|
|
90
|
+
# Initialize the domain in a temporary directory
|
|
91
91
|
from databao_context_engine import init_dce_domain
|
|
92
|
+
from pathlib import Path
|
|
93
|
+
import tempfile
|
|
92
94
|
|
|
93
95
|
domain_manager = init_dce_domain(Path(tempfile.mkdtemp()))
|
|
94
96
|
|
|
95
97
|
# Or use an existing project
|
|
96
98
|
from databao_context_engine import DatabaoContextDomainManager
|
|
97
99
|
|
|
98
|
-
domain_manager = DatabaoContextDomainManager(domain_dir=Path("
|
|
100
|
+
domain_manager = DatabaoContextDomainManager(domain_dir=Path("domain_dir"))
|
|
99
101
|
```
|
|
100
102
|
|
|
101
103
|
### 2. Configure data sources
|
|
102
104
|
|
|
103
105
|
```python
|
|
104
106
|
from databao_context_engine import (
|
|
107
|
+
CheckDatasourceConnectionResult,
|
|
105
108
|
DatasourceConnectionStatus,
|
|
109
|
+
DatasourceId,
|
|
106
110
|
DatasourceType,
|
|
107
111
|
)
|
|
108
112
|
|
|
@@ -116,11 +120,10 @@ postgres_datasource_id = domain_manager.create_datasource_config(
|
|
|
116
120
|
).datasource.id
|
|
117
121
|
|
|
118
122
|
# Check the connection to the datasource is valid
|
|
119
|
-
check_result = domain_manager.check_datasource_connection()
|
|
123
|
+
check_result: dict[DatasourceId, CheckDatasourceConnectionResult] = domain_manager.check_datasource_connection()
|
|
120
124
|
|
|
121
125
|
assert len(check_result) == 1
|
|
122
|
-
assert check_result[
|
|
123
|
-
assert check_result[0].connection_status == DatasourceConnectionStatus.VALID
|
|
126
|
+
assert check_result[postgres_datasource_id].connection_status == DatasourceConnectionStatus.VALID
|
|
124
127
|
```
|
|
125
128
|
|
|
126
129
|
### 3. Build context
|
|
@@ -199,6 +202,7 @@ Apache 2.0 — use it however you want. See the [LICENSE](LICENSE.md) file for d
|
|
|
199
202
|
</p>
|
|
200
203
|
|
|
201
204
|
<p align="center">
|
|
202
|
-
<a href="https://databao
|
|
205
|
+
<a href="https://jetbrains.com/databao">Website</a> •
|
|
206
|
+
<a href="https://docs.databao.app">Docs</a> •
|
|
203
207
|
<a href="https://discord.gg/hEUqCcWdVh">Discord</a>
|
|
204
208
|
</p>
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "databao-context-engine"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.1.dev1"
|
|
4
4
|
description = "Semantic context for your LLMs — generated automatically"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
7
7
|
license = "Apache-2.0 AND LicenseRef-Additional-Terms"
|
|
8
8
|
license-files = ["LICENSE.md"]
|
|
9
9
|
dependencies = [
|
|
10
|
-
"click>=8.3.0",
|
|
11
10
|
"duckdb>=1.4.3",
|
|
12
11
|
"pyyaml>=6.0.3",
|
|
13
12
|
"requests>=2.32.5",
|
|
@@ -24,7 +23,7 @@ default-optional-dependency-keys = [
|
|
|
24
23
|
]
|
|
25
24
|
|
|
26
25
|
[project.urls]
|
|
27
|
-
Homepage = "https://
|
|
26
|
+
Homepage = "https://jetbrains.com/databao/"
|
|
28
27
|
Source = "https://github.com/JetBrains/databao-context-engine"
|
|
29
28
|
|
|
30
29
|
[project.optional-dependencies]
|
|
@@ -59,6 +58,7 @@ build-backend = "uv_build"
|
|
|
59
58
|
|
|
60
59
|
[dependency-groups]
|
|
61
60
|
dev = [
|
|
61
|
+
"click>=8.3.0",
|
|
62
62
|
"mypy>=1.18.2",
|
|
63
63
|
"pre-commit>=4.5.1",
|
|
64
64
|
"pytest>=9.0.2",
|
|
@@ -41,6 +41,11 @@ from databao_context_engine.plugins.databases.clickhouse.config_file import (
|
|
|
41
41
|
ClickhouseConfigFile,
|
|
42
42
|
ClickhouseConnectionProperties,
|
|
43
43
|
)
|
|
44
|
+
from databao_context_engine.plugins.databases.database_context_explorer import (
|
|
45
|
+
DatabaseSchemaLite,
|
|
46
|
+
DatabaseTableDetails,
|
|
47
|
+
DatabaseTableLite,
|
|
48
|
+
)
|
|
44
49
|
from databao_context_engine.plugins.databases.duckdb.config_file import DuckDBConfigFile, DuckDBConnectionConfig
|
|
45
50
|
from databao_context_engine.plugins.databases.mssql.config_file import MSSQLConfigFile, MSSQLConnectionProperties
|
|
46
51
|
from databao_context_engine.plugins.databases.mysql.config_file import MySQLConfigFile, MySQLConnectionProperties
|
|
@@ -138,4 +143,7 @@ __all__ = [
|
|
|
138
143
|
"DbtContextFilterStructuredRule",
|
|
139
144
|
"DbtContextFilterRule",
|
|
140
145
|
"ParquetConfigFile",
|
|
146
|
+
"DatabaseSchemaLite",
|
|
147
|
+
"DatabaseTableLite",
|
|
148
|
+
"DatabaseTableDetails",
|
|
141
149
|
]
|
|
@@ -18,12 +18,11 @@ from databao_context_engine.build_sources.types import (
|
|
|
18
18
|
from databao_context_engine.datasources.datasource_context import (
|
|
19
19
|
DatasourceContext,
|
|
20
20
|
hash_context_file,
|
|
21
|
-
read_datasource_type_from_context,
|
|
22
21
|
)
|
|
23
22
|
from databao_context_engine.datasources.datasource_discovery import discover_datasources, prepare_source
|
|
24
|
-
from databao_context_engine.datasources.types import PreparedConfig, PreparedDatasource
|
|
23
|
+
from databao_context_engine.datasources.types import DatasourceId, PreparedConfig, PreparedDatasource
|
|
25
24
|
from databao_context_engine.pluginlib.build_plugin import DatasourceType
|
|
26
|
-
from databao_context_engine.plugins.plugin_loader import
|
|
25
|
+
from databao_context_engine.plugins.plugin_loader import NoPluginFoundForDatasource
|
|
27
26
|
from databao_context_engine.progress.progress import ProgressCallback, ProgressEmitter, ProgressStep
|
|
28
27
|
from databao_context_engine.project.layout import ProjectLayout
|
|
29
28
|
|
|
@@ -44,6 +43,21 @@ def _build_step_plan(*, should_index: bool, should_enrich_context: bool) -> tupl
|
|
|
44
43
|
return tuple(steps)
|
|
45
44
|
|
|
46
45
|
|
|
46
|
+
def _emit_all_build_step_as_completed(
|
|
47
|
+
*,
|
|
48
|
+
progress: ProgressCallback | None,
|
|
49
|
+
datasource_id: str | DatasourceId,
|
|
50
|
+
should_index: bool,
|
|
51
|
+
should_enrich_context: bool,
|
|
52
|
+
) -> None:
|
|
53
|
+
emitter = ProgressEmitter(progress)
|
|
54
|
+
for step in _build_step_plan(should_index=should_index, should_enrich_context=should_enrich_context):
|
|
55
|
+
emitter.datasource_step_completed(
|
|
56
|
+
datasource_id=str(datasource_id),
|
|
57
|
+
step=step,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
|
|
47
61
|
@perf.perf_run(
|
|
48
62
|
operation="build",
|
|
49
63
|
attrs=lambda *, should_index, should_enrich_context, **_: {
|
|
@@ -55,8 +69,8 @@ def _build_step_plan(*, should_index: bool, should_enrich_context: bool) -> tupl
|
|
|
55
69
|
def build(
|
|
56
70
|
*,
|
|
57
71
|
project_layout: ProjectLayout,
|
|
58
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
59
72
|
build_service: BuildService,
|
|
73
|
+
datasource_ids: list[DatasourceId] | None,
|
|
60
74
|
should_index: bool,
|
|
61
75
|
should_enrich_context: bool,
|
|
62
76
|
progress: ProgressCallback | None = None,
|
|
@@ -73,7 +87,8 @@ def build(
|
|
|
73
87
|
Returns:
|
|
74
88
|
A list of per-datasource build results.
|
|
75
89
|
"""
|
|
76
|
-
|
|
90
|
+
if not datasource_ids:
|
|
91
|
+
datasource_ids = discover_datasources(project_layout)
|
|
77
92
|
|
|
78
93
|
emitter = ProgressEmitter(progress)
|
|
79
94
|
|
|
@@ -98,7 +113,6 @@ def build(
|
|
|
98
113
|
try:
|
|
99
114
|
result = _build_one_datasource(
|
|
100
115
|
project_layout=project_layout,
|
|
101
|
-
plugin_loader=plugin_loader,
|
|
102
116
|
build_service=build_service,
|
|
103
117
|
datasource_id=datasource_id,
|
|
104
118
|
should_index=should_index,
|
|
@@ -151,7 +165,6 @@ def build(
|
|
|
151
165
|
def _build_one_datasource(
|
|
152
166
|
*,
|
|
153
167
|
project_layout: ProjectLayout,
|
|
154
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
155
168
|
build_service: BuildService,
|
|
156
169
|
datasource_id,
|
|
157
170
|
should_index: bool,
|
|
@@ -169,15 +182,6 @@ def _build_one_datasource(
|
|
|
169
182
|
f'Found datasource of type "{prepared_source.datasource_type.full_type}" with name {prepared_source.datasource_id.datasource_path}'
|
|
170
183
|
)
|
|
171
184
|
|
|
172
|
-
plugin = plugin_loader.get_plugin_for_datasource_type(prepared_source.datasource_type)
|
|
173
|
-
if plugin is None:
|
|
174
|
-
logger.warning(
|
|
175
|
-
"No plugin for '%s' (datasource=%s) — skipping.",
|
|
176
|
-
prepared_source.datasource_type.full_type,
|
|
177
|
-
prepared_source.datasource_id.relative_path_to_config_file(),
|
|
178
|
-
)
|
|
179
|
-
return BuildDatasourceResult(datasource_id=datasource_id, status=DatasourceStatus.SKIPPED)
|
|
180
|
-
|
|
181
185
|
ProgressEmitter(progress).datasource_step_plan_set(
|
|
182
186
|
datasource_id=str(datasource_id),
|
|
183
187
|
step_plan=_build_step_plan(
|
|
@@ -186,33 +190,48 @@ def _build_one_datasource(
|
|
|
186
190
|
),
|
|
187
191
|
)
|
|
188
192
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
193
|
+
try:
|
|
194
|
+
result = build_service.build_context(
|
|
195
|
+
prepared_source=prepared_source,
|
|
196
|
+
progress=progress,
|
|
197
|
+
)
|
|
194
198
|
|
|
195
|
-
|
|
196
|
-
|
|
199
|
+
if should_enrich_context:
|
|
200
|
+
result = build_service.enrich_built_context(built_context=result, progress=progress)
|
|
197
201
|
|
|
198
|
-
|
|
199
|
-
|
|
202
|
+
output_dir = project_layout.output_dir
|
|
203
|
+
context_file_path = export_build_result(output_dir, result)
|
|
200
204
|
|
|
201
|
-
|
|
205
|
+
perf.set_attribute("context_size_bytes", context_file_path.stat().st_size)
|
|
202
206
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
if should_index:
|
|
208
|
+
context_hash = hash_context_file(
|
|
209
|
+
datasource_id=prepared_source.datasource_id, context_path=context_file_path
|
|
210
|
+
)
|
|
211
|
+
build_service.index_built_context(built_context=result, context_hash=context_hash, progress=progress)
|
|
212
|
+
|
|
213
|
+
return BuildDatasourceResult(
|
|
214
|
+
datasource_id=datasource_id,
|
|
215
|
+
status=DatasourceStatus.OK,
|
|
216
|
+
datasource_type=DatasourceType(full_type=result.datasource_type),
|
|
217
|
+
context_built_at=datetime.now(),
|
|
218
|
+
context_file_path=context_file_path,
|
|
207
219
|
)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
220
|
+
except NoPluginFoundForDatasource as e:
|
|
221
|
+
logger.warning(
|
|
222
|
+
"No plugin for '%s' (datasource=%s) — skipping.",
|
|
223
|
+
e.datasource_type.full_type,
|
|
224
|
+
prepared_source.datasource_id.relative_path_to_config_file(),
|
|
225
|
+
)
|
|
226
|
+
# Since the plugin was not found, no build steps were emitted but the plan was set:
|
|
227
|
+
# we need to emit all steps as completed
|
|
228
|
+
_emit_all_build_step_as_completed(
|
|
229
|
+
progress=progress,
|
|
230
|
+
datasource_id=datasource_id,
|
|
231
|
+
should_index=should_index,
|
|
232
|
+
should_enrich_context=should_enrich_context,
|
|
233
|
+
)
|
|
234
|
+
return BuildDatasourceResult(datasource_id=datasource_id, status=DatasourceStatus.SKIPPED)
|
|
216
235
|
|
|
217
236
|
|
|
218
237
|
def _is_datasource_enabled(prepared_source: PreparedDatasource) -> bool:
|
|
@@ -233,7 +252,6 @@ def _is_datasource_enabled(prepared_source: PreparedDatasource) -> bool:
|
|
|
233
252
|
def run_enrich_context(
|
|
234
253
|
*,
|
|
235
254
|
project_layout: ProjectLayout,
|
|
236
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
237
255
|
build_service: BuildService,
|
|
238
256
|
contexts: list[DatasourceContext],
|
|
239
257
|
should_index: bool,
|
|
@@ -250,7 +268,6 @@ def run_enrich_context(
|
|
|
250
268
|
result = _enrich_one_context(
|
|
251
269
|
project_layout=project_layout,
|
|
252
270
|
context=context,
|
|
253
|
-
plugin_loader=plugin_loader,
|
|
254
271
|
build_service=build_service,
|
|
255
272
|
should_index=should_index,
|
|
256
273
|
)
|
|
@@ -286,46 +303,40 @@ def _enrich_one_context(
|
|
|
286
303
|
*,
|
|
287
304
|
project_layout: ProjectLayout,
|
|
288
305
|
context: DatasourceContext,
|
|
289
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
290
306
|
build_service: BuildService,
|
|
291
307
|
should_index: bool,
|
|
292
308
|
) -> EnrichContextResult:
|
|
293
309
|
perf.set_attribute("context_size_bytes", len(context.context.encode("utf-8")))
|
|
294
310
|
|
|
295
|
-
|
|
296
|
-
|
|
311
|
+
try:
|
|
312
|
+
enriched_context = build_service.enrich_datasource_context(context=context)
|
|
297
313
|
|
|
298
|
-
|
|
299
|
-
|
|
314
|
+
output_dir = project_layout.output_dir
|
|
315
|
+
context_file_path = export_build_result(output_dir, enriched_context)
|
|
316
|
+
|
|
317
|
+
if should_index:
|
|
318
|
+
context_hash = hash_context_file(datasource_id=context.datasource_id, context_path=context_file_path)
|
|
319
|
+
build_service.index_built_context(built_context=enriched_context, context_hash=context_hash)
|
|
320
|
+
|
|
321
|
+
return EnrichContextResult(
|
|
322
|
+
datasource_id=context.datasource_id,
|
|
323
|
+
status=DatasourceStatus.OK,
|
|
324
|
+
context_file_path=context_file_path,
|
|
325
|
+
)
|
|
326
|
+
except NoPluginFoundForDatasource as e:
|
|
300
327
|
logger.warning(
|
|
301
328
|
"No plugin for datasource type '%s' — skipping context enrichment for datasource %s.",
|
|
302
|
-
|
|
329
|
+
e.datasource_type.full_type,
|
|
303
330
|
context.datasource_id,
|
|
304
331
|
)
|
|
305
332
|
return EnrichContextResult(datasource_id=context.datasource_id, status=DatasourceStatus.SKIPPED)
|
|
306
333
|
|
|
307
|
-
enriched_context = build_service.enrich_datasource_context(context=context, plugin=plugin)
|
|
308
|
-
|
|
309
|
-
output_dir = project_layout.output_dir
|
|
310
|
-
context_file_path = export_build_result(output_dir, enriched_context)
|
|
311
|
-
|
|
312
|
-
if should_index:
|
|
313
|
-
context_hash = hash_context_file(datasource_id=context.datasource_id, context_path=context_file_path)
|
|
314
|
-
build_service.index_built_context(built_context=enriched_context, plugin=plugin, context_hash=context_hash)
|
|
315
|
-
|
|
316
|
-
return EnrichContextResult(
|
|
317
|
-
datasource_id=context.datasource_id,
|
|
318
|
-
status=DatasourceStatus.OK,
|
|
319
|
-
context_file_path=context_file_path,
|
|
320
|
-
)
|
|
321
|
-
|
|
322
334
|
|
|
323
335
|
@perf.perf_run(operation="index")
|
|
324
336
|
@perf.perf_span("index.total")
|
|
325
337
|
def run_indexing(
|
|
326
338
|
*,
|
|
327
339
|
project_layout: ProjectLayout,
|
|
328
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
329
340
|
build_service: BuildService,
|
|
330
341
|
contexts: list[DatasourceContext],
|
|
331
342
|
progress: ProgressCallback | None = None,
|
|
@@ -356,9 +367,7 @@ def run_indexing(
|
|
|
356
367
|
try:
|
|
357
368
|
logger.info(f"Indexing datasource {context.datasource_id}")
|
|
358
369
|
|
|
359
|
-
result = _index_one_context(
|
|
360
|
-
context=context, plugin_loader=plugin_loader, build_service=build_service, progress=progress
|
|
361
|
-
)
|
|
370
|
+
result = _index_one_context(context=context, build_service=build_service, progress=progress)
|
|
362
371
|
|
|
363
372
|
results.append(result)
|
|
364
373
|
if result.status == DatasourceStatus.OK:
|
|
@@ -406,28 +415,25 @@ def run_indexing(
|
|
|
406
415
|
def _index_one_context(
|
|
407
416
|
*,
|
|
408
417
|
context: DatasourceContext,
|
|
409
|
-
plugin_loader: DatabaoContextPluginLoader,
|
|
410
418
|
build_service: BuildService,
|
|
411
419
|
progress: ProgressCallback | None = None,
|
|
412
420
|
) -> IndexDatasourceResult:
|
|
413
421
|
perf.set_attribute("context_size_bytes", len(context.context.encode("utf-8")))
|
|
414
422
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
423
|
+
ProgressEmitter(progress).datasource_step_plan_set(
|
|
424
|
+
datasource_id=str(context.datasource_id),
|
|
425
|
+
step_plan=BuildService.index_step_plan(),
|
|
426
|
+
)
|
|
427
|
+
try:
|
|
428
|
+
build_service.index_datasource_context(context=context, progress=progress)
|
|
429
|
+
return IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.OK)
|
|
430
|
+
except NoPluginFoundForDatasource as e:
|
|
420
431
|
logger.warning(
|
|
421
432
|
"No plugin for datasource type '%s' — skipping indexing for %s.",
|
|
422
|
-
|
|
433
|
+
e.datasource_type.full_type,
|
|
423
434
|
context.datasource_id,
|
|
424
435
|
)
|
|
436
|
+
# Since the plugin was not found, no index steps were emitted but the plan was set:
|
|
437
|
+
# we need to emit all steps as completed
|
|
438
|
+
BuildService.emit_all_index_step_as_completed(progress=progress, datasource_id=context.datasource_id)
|
|
425
439
|
return IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.SKIPPED)
|
|
426
|
-
|
|
427
|
-
ProgressEmitter(progress).datasource_step_plan_set(
|
|
428
|
-
datasource_id=str(context.datasource_id),
|
|
429
|
-
step_plan=BuildService.index_step_plan(),
|
|
430
|
-
)
|
|
431
|
-
|
|
432
|
-
build_service.index_datasource_context(context=context, plugin=plugin, progress=progress)
|
|
433
|
-
return IndexDatasourceResult(datasource_id=context.datasource_id, status=DatasourceStatus.OK)
|