isa-data 1.0.0__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.
- isa_data-1.0.0/PKG-INFO +172 -0
- isa_data-1.0.0/README.md +121 -0
- isa_data-1.0.0/isa_data/__init__.py +28 -0
- isa_data-1.0.0/isa_data/adapters/__init__.py +27 -0
- isa_data-1.0.0/isa_data/adapters/base/__init__.py +14 -0
- isa_data-1.0.0/isa_data/adapters/base/base_adapter.py +240 -0
- isa_data-1.0.0/isa_data/adapters/base/database_adapter.py +1010 -0
- isa_data-1.0.0/isa_data/adapters/file_adapters/__init__.py +68 -0
- isa_data-1.0.0/isa_data/adapters/file_adapters/base_adapter.py +372 -0
- isa_data-1.0.0/isa_data/adapters/file_adapters/csv_adapter.py +584 -0
- isa_data-1.0.0/isa_data/adapters/file_adapters/document_adapter.py +741 -0
- isa_data-1.0.0/isa_data/adapters/file_adapters/excel_adapter.py +467 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/__init__.py +81 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/base_sink_adapter.py +165 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/csv_adapter.py +451 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/delta_lake_adapter.py +417 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/duckdb_adapter.py +283 -0
- isa_data-1.0.0/isa_data/adapters/sink_adapters/parquet_adapter.py +466 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/README.md +361 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/__init__.py +65 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/base_adapter.py +215 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/bigquery_adapter.py +468 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/clickhouse_adapter.py +393 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/deltalake_adapter.py +434 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/elasticsearch_adapter.py +456 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/mongodb_adapter.py +343 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/mysql_adapter.py +283 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/oracle_adapter.py +333 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/postgresql_adapter.py +323 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/redis_adapter.py +401 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/registry.py +306 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/s3_adapter.py +546 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/snowflake_adapter.py +334 -0
- isa_data-1.0.0/isa_data/adapters/source_adapters/sqlserver_adapter.py +320 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/README.md +99 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/__init__.py +88 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/__init__.py +85 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/apicurio_backend.py +277 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/auth/__init__.py +15 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/auth/api_key.py +28 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/auth/base.py +54 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/auth/manual_upload.py +27 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/auth/oauth2.py +79 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/base_collector.py +161 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/checkpoint.py +72 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/file_feed_collector.py +250 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/http_client.py +175 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/managed_web_data_collector.py +49 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/manifest_loader.py +221 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/pagination.py +184 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/rate_limiter.py +105 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/result.py +61 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/_base/schema_validator.py +232 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/__init__.py +16 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/_stub.py +42 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/amazon_ads.py +339 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/amazon_spapi.py +213 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/amazon_vc.py +122 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/coupang.py +261 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/douyin.py +280 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/ga4.py +285 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/google_ads.py +386 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/homedepot.py +194 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/jd.py +476 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/lazada.py +311 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/lowes.py +151 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/meta_ads.py +416 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/overstock.py +285 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/ozon.py +245 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/pdd.py +323 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/rakuten.py +308 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/shopee.py +252 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/shopify.py +239 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/temu.py +339 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/tmall.py +610 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/walmart_connect.py +322 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/walmart_marketplace.py +458 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/wayfair.py +98 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/wildberries.py +237 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/connectors/xiaomi.py +256 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/providers/__init__.py +44 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/providers/_managed_base.py +177 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/providers/bright_data.py +106 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/providers/oxylabs.py +110 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/providers/router.py +102 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/__init__.py +0 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/conftest.py +111 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_amazon_ads_connector.py +322 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_amazon_spapi_connector.py +305 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_apicurio_backend.py +278 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_auth.py +107 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_base_collector.py +104 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_checkpoint.py +42 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_connectors_smoke.py +158 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_coupang_connector.py +303 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_douyin_connector.py +251 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_file_feed_collector.py +147 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_ga4_connector.py +380 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_google_ads_connector.py +415 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_homedepot_connector.py +279 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_http_client.py +80 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_jd_connector.py +469 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_lazada_connector.py +389 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_lowes_connector.py +219 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_managed_web_providers.py +165 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_manifest_loader.py +66 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_meta_ads_connector.py +314 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_overstock_connector.py +336 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_ozon_connector.py +248 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_pagination.py +54 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_pdd_connector.py +314 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_rakuten_connector.py +346 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_rate_limiter.py +40 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_schema_validator.py +41 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_shopee_connector.py +322 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_shopify_connector.py +274 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_smoke.py +37 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_temu_connector.py +404 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_tmall_connector.py +638 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_walmart_connect_connector.py +363 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_walmart_marketplace_connector.py +425 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_wildberries_connector.py +252 -0
- isa_data-1.0.0/isa_data/adapters/vendor_collectors/tests/test_xiaomi_connector.py +248 -0
- isa_data-1.0.0/isa_data/api/__init__.py +3 -0
- isa_data-1.0.0/isa_data/api/v1/__init__.py +45 -0
- isa_data-1.0.0/isa_data/api/v1/access_control.py +145 -0
- isa_data-1.0.0/isa_data/api/v1/active_metadata.py +176 -0
- isa_data-1.0.0/isa_data/api/v1/agent_fleet.py +736 -0
- isa_data-1.0.0/isa_data/api/v1/analytics.py +133 -0
- isa_data-1.0.0/isa_data/api/v1/audit.py +123 -0
- isa_data-1.0.0/isa_data/api/v1/catalog.py +3713 -0
- isa_data-1.0.0/isa_data/api/v1/catalog_auth.py +89 -0
- isa_data-1.0.0/isa_data/api/v1/commerce_products.py +115 -0
- isa_data-1.0.0/isa_data/api/v1/copilot.py +246 -0
- isa_data-1.0.0/isa_data/api/v1/digital.py +430 -0
- isa_data-1.0.0/isa_data/api/v1/digital_assets.py +413 -0
- isa_data-1.0.0/isa_data/api/v1/enterprise_audit.py +343 -0
- isa_data-1.0.0/isa_data/api/v1/etl.py +599 -0
- isa_data-1.0.0/isa_data/api/v1/fabric.py +386 -0
- isa_data-1.0.0/isa_data/api/v1/federation.py +435 -0
- isa_data-1.0.0/isa_data/api/v1/governance.py +286 -0
- isa_data-1.0.0/isa_data/api/v1/governance_lineage.py +195 -0
- isa_data-1.0.0/isa_data/api/v1/governance_notifications.py +110 -0
- isa_data-1.0.0/isa_data/api/v1/indicators.py +196 -0
- isa_data-1.0.0/isa_data/api/v1/ingestion.py +515 -0
- isa_data-1.0.0/isa_data/api/v1/lake.py +718 -0
- isa_data-1.0.0/isa_data/api/v1/lineage.py +884 -0
- isa_data-1.0.0/isa_data/api/v1/me.py +918 -0
- isa_data-1.0.0/isa_data/api/v1/me_cost_tracker.py +363 -0
- isa_data-1.0.0/isa_data/api/v1/me_metrics.py +203 -0
- isa_data-1.0.0/isa_data/api/v1/me_rate_limit.py +161 -0
- isa_data-1.0.0/isa_data/api/v1/me_storage.py +124 -0
- isa_data-1.0.0/isa_data/api/v1/metadata.py +707 -0
- isa_data-1.0.0/isa_data/api/v1/notebook.py +223 -0
- isa_data-1.0.0/isa_data/api/v1/quality.py +730 -0
- isa_data-1.0.0/isa_data/api/v1/scm_products.py +68 -0
- isa_data-1.0.0/isa_data/api/v1/unified_products.py +180 -0
- isa_data-1.0.0/isa_data/api/v1/user.py +614 -0
- isa_data-1.0.0/isa_data/api/v1/vector_stores.py +537 -0
- isa_data-1.0.0/isa_data/contracts/__init__.py +2 -0
- isa_data-1.0.0/isa_data/contracts/com_products.py +3351 -0
- isa_data-1.0.0/isa_data/contracts/data_products/__init__.py +139 -0
- isa_data-1.0.0/isa_data/contracts/data_products/analysis_result_record.schema.json +276 -0
- isa_data-1.0.0/isa_data/contracts/data_products/analysis_run_record.schema.json +126 -0
- isa_data-1.0.0/isa_data/contracts/data_products/artifact_definition.schema.json +300 -0
- isa_data-1.0.0/isa_data/contracts/data_products/artifact_surface.py +369 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/analysis_result_notebook_only.json +34 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/analysis_result_with_model_run.json +38 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/analysis_run_notebook_only.json +23 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/analysis_run_with_model_run.json +27 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/artifact_market_opportunity_model_pack.json +35 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/artifact_product_360_table.json +34 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/model_governance_ad_budget_recommendations.json +80 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/model_governance_customer_risk.json +77 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/model_governance_market_opportunity.json +31 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/model_governance_price_recommendation_agent.json +34 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_ad_budget_recommendations.json +146 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_customer_risk.json +144 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_kpi_snapshot.json +166 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_market_opportunity.json +186 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_price_recommendations.json +146 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/publication/commercial_tower_product_360.json +142 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/worked/content_generation_context.json +371 -0
- isa_data-1.0.0/isa_data/contracts/data_products/examples/worked/product_360.json +265 -0
- isa_data-1.0.0/isa_data/contracts/data_products/framework.py +1576 -0
- isa_data-1.0.0/isa_data/contracts/data_products/interface_definition.schema.json +249 -0
- isa_data-1.0.0/isa_data/contracts/data_products/legacy_adapters.py +569 -0
- isa_data-1.0.0/isa_data/contracts/data_products/model_governance_definition.schema.json +489 -0
- isa_data-1.0.0/isa_data/contracts/data_products/policy_definition.schema.json +254 -0
- isa_data-1.0.0/isa_data/contracts/data_products/product_certification_report.schema.json +660 -0
- isa_data-1.0.0/isa_data/contracts/data_products/product_certification_snapshot.schema.json +632 -0
- isa_data-1.0.0/isa_data/contracts/data_products/product_definition.schema.json +543 -0
- isa_data-1.0.0/isa_data/contracts/data_products/product_status_record.schema.json +751 -0
- isa_data-1.0.0/isa_data/core/__init__.py +54 -0
- isa_data-1.0.0/isa_data/core/billing.py +374 -0
- isa_data-1.0.0/isa_data/core/clients/__init__.py +293 -0
- isa_data-1.0.0/isa_data/core/clients/duckdb_client.py +94 -0
- isa_data-1.0.0/isa_data/core/clients/minio_client.py +109 -0
- isa_data-1.0.0/isa_data/core/clients/model_client.py +283 -0
- isa_data-1.0.0/isa_data/core/clients/nats_client.py +190 -0
- isa_data-1.0.0/isa_data/core/clients/neo4j_client.py +109 -0
- isa_data-1.0.0/isa_data/core/clients/postgres_client.py +101 -0
- isa_data-1.0.0/isa_data/core/clients/qdrant_client.py +107 -0
- isa_data-1.0.0/isa_data/core/clients/redis_client.py +105 -0
- isa_data-1.0.0/isa_data/core/config/__init__.py +86 -0
- isa_data-1.0.0/isa_data/core/config/app_config.py +218 -0
- isa_data-1.0.0/isa_data/core/config/consul_config.py +57 -0
- isa_data-1.0.0/isa_data/core/config/data_config.py +280 -0
- isa_data-1.0.0/isa_data/core/config/infra_config.py +85 -0
- isa_data-1.0.0/isa_data/core/config/logging_config.py +47 -0
- isa_data-1.0.0/isa_data/core/config/model_config.py +53 -0
- isa_data-1.0.0/isa_data/core/config/service_config.py +62 -0
- isa_data-1.0.0/isa_data/core/edition.py +57 -0
- isa_data-1.0.0/isa_data/core/errors.py +161 -0
- isa_data-1.0.0/isa_data/core/health.py +153 -0
- isa_data-1.0.0/isa_data/core/logging.py +118 -0
- isa_data-1.0.0/isa_data/core/metrics.py +262 -0
- isa_data-1.0.0/isa_data/core/middleware.py +37 -0
- isa_data-1.0.0/isa_data/core/pool_config.py +57 -0
- isa_data-1.0.0/isa_data/core/resilience.py +166 -0
- isa_data-1.0.0/isa_data/core/security.py +65 -0
- isa_data-1.0.0/isa_data/db/__init__.py +19 -0
- isa_data-1.0.0/isa_data/db/session.py +134 -0
- isa_data-1.0.0/isa_data/main.py +424 -0
- isa_data-1.0.0/isa_data/models/__init__.py +60 -0
- isa_data-1.0.0/isa_data/models/base.py +34 -0
- isa_data-1.0.0/isa_data/models/dto/__init__.py +93 -0
- isa_data-1.0.0/isa_data/models/dto/base_models.py +88 -0
- isa_data-1.0.0/isa_data/models/dto/data_models.py +184 -0
- isa_data-1.0.0/isa_data/models/dto/graph_models.py +193 -0
- isa_data-1.0.0/isa_data/models/dto/interfaces.py +289 -0
- isa_data-1.0.0/isa_data/models/dto/pdf_models.py +139 -0
- isa_data-1.0.0/isa_data/models/notebook_run.py +137 -0
- isa_data-1.0.0/isa_data/models/product_spec.py +214 -0
- isa_data-1.0.0/isa_data/models/project.py +218 -0
- isa_data-1.0.0/isa_data/models/vector_store.py +273 -0
- isa_data-1.0.0/isa_data/processors/__init__.py +5 -0
- isa_data-1.0.0/isa_data/processors/chunking/__init__.py +139 -0
- isa_data-1.0.0/isa_data/processors/chunking/audio/__init__.py +35 -0
- isa_data-1.0.0/isa_data/processors/chunking/audio/chunker.py +750 -0
- isa_data-1.0.0/isa_data/processors/chunking/audio/config.py +58 -0
- isa_data-1.0.0/isa_data/processors/chunking/audio/convenience.py +232 -0
- isa_data-1.0.0/isa_data/processors/chunking/audio/strategies.py +31 -0
- isa_data-1.0.0/isa_data/processors/chunking/base.py +226 -0
- isa_data-1.0.0/isa_data/processors/chunking/image/__init__.py +32 -0
- isa_data-1.0.0/isa_data/processors/chunking/image/chunker.py +659 -0
- isa_data-1.0.0/isa_data/processors/chunking/image/config.py +54 -0
- isa_data-1.0.0/isa_data/processors/chunking/image/convenience.py +257 -0
- isa_data-1.0.0/isa_data/processors/chunking/image/strategies.py +27 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/__init__.py +5 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/conftest.py +372 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_audio_chunking.py +835 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_image_chunking.py +453 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_text_chunking.py +443 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_timeseries_chunking.py +1032 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_unified_chunker.py +657 -0
- isa_data-1.0.0/isa_data/processors/chunking/tests/test_video_chunking.py +559 -0
- isa_data-1.0.0/isa_data/processors/chunking/text/__init__.py +42 -0
- isa_data-1.0.0/isa_data/processors/chunking/text/chunker.py +884 -0
- isa_data-1.0.0/isa_data/processors/chunking/text/config.py +63 -0
- isa_data-1.0.0/isa_data/processors/chunking/text/convenience.py +313 -0
- isa_data-1.0.0/isa_data/processors/chunking/text/strategies.py +28 -0
- isa_data-1.0.0/isa_data/processors/chunking/timeseries/__init__.py +44 -0
- isa_data-1.0.0/isa_data/processors/chunking/timeseries/chunker.py +957 -0
- isa_data-1.0.0/isa_data/processors/chunking/timeseries/config.py +76 -0
- isa_data-1.0.0/isa_data/processors/chunking/timeseries/convenience.py +408 -0
- isa_data-1.0.0/isa_data/processors/chunking/timeseries/strategies.py +34 -0
- isa_data-1.0.0/isa_data/processors/chunking/unified.py +396 -0
- isa_data-1.0.0/isa_data/processors/chunking/video/__init__.py +36 -0
- isa_data-1.0.0/isa_data/processors/chunking/video/chunker.py +762 -0
- isa_data-1.0.0/isa_data/processors/chunking/video/config.py +59 -0
- isa_data-1.0.0/isa_data/processors/chunking/video/convenience.py +229 -0
- isa_data-1.0.0/isa_data/processors/chunking/video/strategies.py +34 -0
- isa_data-1.0.0/isa_data/processors/data_processors/__init__.py +32 -0
- isa_data-1.0.0/isa_data/processors/data_processors/analytics/__init__.py +10 -0
- isa_data-1.0.0/isa_data/processors/data_processors/analytics/statistics_processor.py +780 -0
- isa_data-1.0.0/isa_data/processors/data_processors/base_data_processor.py +380 -0
- isa_data-1.0.0/isa_data/processors/data_processors/core/__init__.py +15 -0
- isa_data-1.0.0/isa_data/processors/data_processors/core/data_quality_processor.py +1430 -0
- isa_data-1.0.0/isa_data/processors/data_processors/docs/csv_processor.md +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/docs/metadata_extractor.md +260 -0
- isa_data-1.0.0/isa_data/processors/data_processors/management/metadata/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/management/metadata/metadata_extractor.py +942 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/__init__.py +25 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/cleaning/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/cleaning/column_standardizer.py +363 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/csv_processor.py +402 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/loading/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/loading/file_format_detector.py +175 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/validation/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/preprocessors/validation/data_type_analyzer.py +400 -0
- isa_data-1.0.0/isa_data/processors/data_processors/tests/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/tests/test_metadata_extractor.py +206 -0
- isa_data-1.0.0/isa_data/processors/data_processors/tests/test_semantic_enricher.py +310 -0
- isa_data-1.0.0/isa_data/processors/data_processors/transformation/__init__.py +37 -0
- isa_data-1.0.0/isa_data/processors/data_processors/transformation/data_aggregator.py +492 -0
- isa_data-1.0.0/isa_data/processors/data_processors/transformation/transform_base.py +457 -0
- isa_data-1.0.0/isa_data/processors/data_processors/utilities/__init__.py +8 -0
- isa_data-1.0.0/isa_data/processors/data_processors/utilities/feature_processor.py +1658 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/chart_generators/__init__.py +43 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/chart_generators/chart_base.py +397 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/chart_generators/static_chart_generator.py +510 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/export_engines/__init__.py +26 -0
- isa_data-1.0.0/isa_data/processors/data_processors/visualization/export_engines/export_base.py +415 -0
- isa_data-1.0.0/isa_data/processors/file_processors/__init__.py +69 -0
- isa_data-1.0.0/isa_data/processors/file_processors/asset_detector.py +843 -0
- isa_data-1.0.0/isa_data/processors/file_processors/audio_processor.py +595 -0
- isa_data-1.0.0/isa_data/processors/file_processors/docs/markdown_processor.md +184 -0
- isa_data-1.0.0/isa_data/processors/file_processors/docs/pdf_processor.md +324 -0
- isa_data-1.0.0/isa_data/processors/file_processors/docs/regex_extractor.md +0 -0
- isa_data-1.0.0/isa_data/processors/file_processors/image_processor.py +435 -0
- isa_data-1.0.0/isa_data/processors/file_processors/markdown_processor.py +253 -0
- isa_data-1.0.0/isa_data/processors/file_processors/office_processor.py +929 -0
- isa_data-1.0.0/isa_data/processors/file_processors/pdf_processor.py +1093 -0
- isa_data-1.0.0/isa_data/processors/file_processors/regex_extractor.py +271 -0
- isa_data-1.0.0/isa_data/processors/file_processors/table_processor.py +630 -0
- isa_data-1.0.0/isa_data/processors/file_processors/tests/__init__.py +0 -0
- isa_data-1.0.0/isa_data/processors/file_processors/tests/pdf_processor_test_results.json +4481 -0
- isa_data-1.0.0/isa_data/processors/file_processors/tests/test_markdown_processor.py +388 -0
- isa_data-1.0.0/isa_data/processors/file_processors/tests/test_pdf_processoer.py +257 -0
- isa_data-1.0.0/isa_data/processors/file_processors/tests/test_regex_extractor.py +0 -0
- isa_data-1.0.0/isa_data/processors/file_processors/text_chunking.py +1384 -0
- isa_data-1.0.0/isa_data/processors/file_processors/text_processor.py +300 -0
- isa_data-1.0.0/isa_data/processors/file_processors/unified_asset_processor.py +774 -0
- isa_data-1.0.0/isa_data/processors/file_processors/video_processor.py +726 -0
- isa_data-1.0.0/isa_data/repositories/__init__.py +15 -0
- isa_data-1.0.0/isa_data/repositories/vector_store_repository.py +285 -0
- isa_data-1.0.0/isa_data/routers_registry.py +178 -0
- isa_data-1.0.0/isa_data/routes_registry.py +129 -0
- isa_data-1.0.0/isa_data/services/__init__.py +9 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/__init__.py +29 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/__init__.py +19 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/active_metadata_service.py +155 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/change_detector.py +67 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/config.py +49 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/models.py +61 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/schema_monitor.py +81 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/active_metadata/schema_store.py +124 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/catalog/__init__.py +57 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/catalog/data_catalog_service.py +1357 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/catalog/models.py +385 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/__init__.py +99 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/adapters/__init__.py +5 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/adapters/generic_jdbc_adapter.py +315 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/backend_registry.py +229 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/catalog_sync_engine.py +316 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/__init__.py +27 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/auth.py +122 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/bi_backend.py +421 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/client.py +309 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/deploy/__init__.py +86 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/deploy/backends.py +261 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/deploy/gate.py +96 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/deploy/plan.py +677 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/errors.py +98 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/governance_backend.py +529 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/handoff/__init__.py +80 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/handoff/config.py +242 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/handoff/ct_assertions.py +105 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/handoff/ct_projections.py +548 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/handoff/engine.py +894 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/indicator_backend.py +342 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/master_data_backend.py +183 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/provisioning/__init__.py +68 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/provisioning/dialect.py +125 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/provisioning/env_context.py +157 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/provisioning/translator.py +397 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/scaffolding/__init__.py +70 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/scaffolding/config.py +82 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/scaffolding/engine.py +324 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin/warehouse_backend.py +356 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/dataphin_adapter.py +490 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/external_schema_monitor.py +181 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/federated_adapter.py +84 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/federated_lineage_merger.py +220 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/iceberg/__init__.py +34 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/iceberg/errors.py +28 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/iceberg/hms_catalog.py +404 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/iceberg_adapter.py +352 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/landing_zone_service.py +228 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/local_indicator_backend.py +113 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/local_warehouse_backend.py +82 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/models.py +70 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/platform_registry.py +116 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/protocols.py +384 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/query_router.py +283 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/federation/sync_models.py +88 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/intelligent_query_service.py +1367 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/__init__.py +160 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/ai_impact_analyzer.py +420 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/ai_lineage_service.py +567 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/ai_sql_parser.py +437 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/impact_analyzer.py +440 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/lineage_explainer.py +563 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/lineage_graph.py +639 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/lineage_store.py +623 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/models.py +251 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/product_lineage.py +307 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/semantic_column_mapper.py +522 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/lineage/sql_parser.py +511 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/metadata/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/metadata/base_metadata_store.py +59 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/__init__.py +185 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/ai_anomaly_detector.py +487 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/ai_profiler.py +738 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/ai_quality_service.py +604 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/ai_rules_engine.py +497 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/knowledge_quality_evaluator.py +296 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/models.py +775 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/rules_engine.py +598 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/quality/unified_quality_service.py +149 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/query/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/query/base_query_executor.py +99 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/__init__.py +59 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/dimension_mapper.py +430 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/metric_resolver.py +480 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/metrics_store.py +63 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/models.py +327 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/semantic_resolver.py +698 -0
- isa_data-1.0.0/isa_data/services/data_fabric_service/semantic/term_resolver.py +468 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/__init__.py +22 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/access_control/__init__.py +26 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/access_control/models.py +103 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/access_control/rbac_service.py +237 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/agent_fleet/__init__.py +100 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/agent_fleet/detection_events_consumer.py +325 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/agent_fleet/entity_extractor.py +690 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/agent_fleet/response_vectorizer.py +727 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/__init__.py +24 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/config.py +34 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/data_eda.py +806 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/duckdb_executor.py +23 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/incremental_refresh.py +28 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/materialized_view_service.py +53 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/mv_builder.py +53 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/mv_registry_store.py +75 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/query_router.py +22 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/analytics/scheduler.py +42 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/audit/__init__.py +38 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/audit/audit_service.py +211 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/audit/models.py +88 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/augmentation/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/augmentation/augmentation_service.py +220 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/augmentation/data_enrichment.py +272 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/augmentation/external_integration.py +184 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/augmentation/merge_validation.py +311 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/cdc_processor.py +718 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/clean_data_analytics_service.py +444 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/data_analytics_service.py +2047 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/digital_assets/__init__.py +35 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/digital_assets/asset_landing.py +447 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/ingestion/README.md +579 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/ingestion/__init__.py +40 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/ingestion/batch_processor.py +555 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/ingestion/cdc_listener.py +343 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/ingestion/ingestion_service.py +703 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/data_explorer.py +922 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/metadata_catalog_service.py +1319 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/metadata_embedding.py +972 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/metadata_semantic_service.py +635 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/metadata_store_service.py +520 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/metadata/semantic_enricher.py +979 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/quality/__init__.py +39 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/quality/quality_assessment.py +797 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/quality/quality_improvement.py +853 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/quality/quality_management_service.py +720 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/management/quality/quality_monitoring.py +1077 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/pipeline_orchestrator.py +753 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/__init__.py +34 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/data_cleaning.py +476 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/data_loading.py +312 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/data_validation.py +447 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/dataframe_preprocessor.py +112 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/preprocessor/preprocessor_service.py +792 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/query_matcher.py +1050 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/sql_executor.py +2162 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/sql_generator.py +821 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/sql_guardrail.py +207 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/query/sql_query_service.py +542 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/residency/__init__.py +40 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/residency/policy.py +317 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/__init__.py +35 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/agent_fleet/README.md +233 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/agent_fleet/__init__.py +58 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/agent_fleet/agent_iceberg_writer.py +1084 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/base_data_lake.py +75 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/data_lake_service.py +524 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/delta_lake_manager.py +412 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/data_persistence.py +494 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/data_storage_service.py +458 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/storage_catalog.py +495 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/storage_path_resolver.py +398 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/deprecated/storage_target_selection.py +508 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/iceberg_std_writer.py +402 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/storage/zone_management_service.py +547 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/__init__.py +71 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/change_data_processor.py +426 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/incremental_processor.py +562 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/models.py +318 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/streaming_ingestion.py +497 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/streaming/upsert_manager.py +490 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/__init__.py +24 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/business_rules.py +564 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/data_aggregation.py +302 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/feature_engineering.py +454 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/lang_extractor.py +1096 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/transformation/transformation_service.py +359 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/visualization/__init__.py +0 -0
- isa_data-1.0.0/isa_data/services/data_infra_service/visualization/data_visualization.py +1213 -0
- isa_data-1.0.0/isa_data/services/data_product_service/README.md +252 -0
- isa_data-1.0.0/isa_data/services/data_product_service/__init__.py +34 -0
- isa_data-1.0.0/isa_data/services/data_product_service/analytics/__init__.py +60 -0
- isa_data-1.0.0/isa_data/services/data_product_service/analytics/user_churn_prediction.py +578 -0
- isa_data-1.0.0/isa_data/services/data_product_service/analytics/user_intent_prediction.py +513 -0
- isa_data-1.0.0/isa_data/services/data_product_service/analytics/user_ltv_prediction.py +455 -0
- isa_data-1.0.0/isa_data/services/data_product_service/analytics/user_trends.py +431 -0
- isa_data-1.0.0/isa_data/services/data_product_service/base/__init__.py +9 -0
- isa_data-1.0.0/isa_data/services/data_product_service/base/base_product.py +271 -0
- isa_data-1.0.0/isa_data/services/data_product_service/basic/__init__.py +19 -0
- isa_data-1.0.0/isa_data/services/data_product_service/basic/user_360.py +446 -0
- isa_data-1.0.0/isa_data/services/data_product_service/basic/user_order_history.py +271 -0
- isa_data-1.0.0/isa_data/services/data_product_service/basic/user_profile.py +313 -0
- isa_data-1.0.0/isa_data/services/data_product_service/behavior/__init__.py +62 -0
- isa_data-1.0.0/isa_data/services/data_product_service/behavior/user_behavior_patterns.py +433 -0
- isa_data-1.0.0/isa_data/services/data_product_service/behavior/user_engagement_metrics.py +549 -0
- isa_data-1.0.0/isa_data/services/data_product_service/behavior/user_feature_usage.py +502 -0
- isa_data-1.0.0/isa_data/services/data_product_service/behavior/user_journey_analysis.py +569 -0
- isa_data-1.0.0/isa_data/services/data_product_service/catalog_seed/__init__.py +33 -0
- isa_data-1.0.0/isa_data/services/data_product_service/catalog_seed/isa_data_products.py +388 -0
- isa_data-1.0.0/isa_data/services/data_product_service/commerce/__init__.py +34 -0
- isa_data-1.0.0/isa_data/services/data_product_service/commerce/com_product_service.py +779 -0
- isa_data-1.0.0/isa_data/services/data_product_service/commerce/isa_model_client.py +218 -0
- isa_data-1.0.0/isa_data/services/data_product_service/consumer_contracts.py +524 -0
- isa_data-1.0.0/isa_data/services/data_product_service/context/__init__.py +12 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/__init__.py +43 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/alert_dispatcher.py +278 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/certification_runner.py +354 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/cross_modal_lineage.py +105 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/curation_gate.py +101 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/federation_monitor.py +92 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/gdpr_service.py +118 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/gold_promotion_gate.py +124 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/notification_service.py +268 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/output_port_service.py +351 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/pii_classification_service.py +137 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/pii_detector.py +202 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/policy_evaluator.py +579 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/product_status_service.py +351 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/product_versioning.py +152 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/publication_workflow.py +445 -0
- isa_data-1.0.0/isa_data/services/data_product_service/governance/sla_monitor_service.py +481 -0
- isa_data-1.0.0/isa_data/services/data_product_service/lineage/__init__.py +36 -0
- isa_data-1.0.0/isa_data/services/data_product_service/lineage/lineage_models.py +142 -0
- isa_data-1.0.0/isa_data/services/data_product_service/lineage/lineage_service.py +99 -0
- isa_data-1.0.0/isa_data/services/data_product_service/recommendations/__init__.py +76 -0
- isa_data-1.0.0/isa_data/services/data_product_service/recommendations/user_content_recommendations.py +696 -0
- isa_data-1.0.0/isa_data/services/data_product_service/recommendations/user_graph_recommendations.py +784 -0
- isa_data-1.0.0/isa_data/services/data_product_service/recommendations/user_product_recommendations.py +882 -0
- isa_data-1.0.0/isa_data/services/data_product_service/recommendations/user_social_recommendations.py +791 -0
- isa_data-1.0.0/isa_data/services/data_product_service/scm/__init__.py +2 -0
- isa_data-1.0.0/isa_data/services/data_product_service/scm/scm_product_service.py +219 -0
- isa_data-1.0.0/isa_data/services/data_product_service/scoping.py +79 -0
- isa_data-1.0.0/isa_data/services/data_product_service/social/__init__.py +12 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/__init__.py +37 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/cross_type_relationships.py +116 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/knowledge_product_registry.py +140 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/knowledge_quality_evaluator.py +126 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/knowledge_quality_gate.py +159 -0
- isa_data-1.0.0/isa_data/services/data_product_service/unified/knowledge_zone_manager.py +182 -0
- isa_data-1.0.0/isa_data/services/digital_service/ARCHITECTURE.md +329 -0
- isa_data-1.0.0/isa_data/services/digital_service/__init__.py +51 -0
- isa_data-1.0.0/isa_data/services/digital_service/base/__init__.py +32 -0
- isa_data-1.0.0/isa_data/services/digital_service/base/base_rag_service.py +1054 -0
- isa_data-1.0.0/isa_data/services/digital_service/base/rag_exceptions.py +34 -0
- isa_data-1.0.0/isa_data/services/digital_service/base/rag_models.py +298 -0
- isa_data-1.0.0/isa_data/services/digital_service/config/__init__.py +4 -0
- isa_data-1.0.0/isa_data/services/digital_service/config/analytics_config.py +112 -0
- isa_data-1.0.0/isa_data/services/digital_service/config/eval_datasets/basic_functionality.json +39 -0
- isa_data-1.0.0/isa_data/services/digital_service/config/eval_datasets/multihop_reasoning.json +17 -0
- isa_data-1.0.0/isa_data/services/digital_service/config/eval_datasets/multilingual.json +17 -0
- isa_data-1.0.0/isa_data/services/digital_service/docs/rag_status.md +148 -0
- isa_data-1.0.0/isa_data/services/digital_service/enhanced_digital_service.py +1547 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/__init__.py +20 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/dataset_manager.py +251 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/diagnostic_service.py +615 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/evaluation_service.py +379 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/metrics_service.py +543 -0
- isa_data-1.0.0/isa_data/services/digital_service/evaluation/reporting_service.py +376 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/__init__.py +24 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/crag_rag_service.py +775 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/custom_rag_service.py +1626 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/__init__.py +17 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/attribute_extractor.py +379 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/core/__init__.py +40 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/core/config.py +302 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/core/dask_manager.py +266 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/core/strategies.py +639 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/core/types.py +254 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/attribute_extractor.md +451 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/design_guidance.md +266 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/entity_extractor.md +470 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/graph_constructor.md +283 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/knowledge_retriever.md +373 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/neo4j_client.md +415 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/neo4j_store.md +352 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/docs/relation_extractor.md +292 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/domains/business.yaml +291 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/domains/codebase.yaml +303 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/domains/medical.yaml +262 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/embedding_utils.py +247 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/entity_extractor.py +478 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/graph_constructor.py +1155 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/knowledge_retriever.py +578 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/neo4j_store.py +266 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag/relation_extractor.py +448 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/graph_rag_service.py +733 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/hyde_rag_service.py +423 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/pageindex/__init__.py +46 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/pageindex/index_generator.py +591 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/pageindex/tree_search.py +436 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/pageindex/utils.py +326 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/pageindex_rag_service.py +513 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/rag_fusion_service.py +499 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/raptor_rag_service.py +729 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/self_rag_service.py +725 -0
- isa_data-1.0.0/isa_data/services/digital_service/patterns/simple_rag_service.py +562 -0
- isa_data-1.0.0/isa_data/services/digital_service/pdf_extract_service.py +721 -0
- isa_data-1.0.0/isa_data/services/digital_service/rag_factory.py +883 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/__init__.py +63 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/chunking_adapter.py +407 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/convenience_functions.py +125 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/deep_search/__init__.py +10 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/deep_search/models.py +224 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/deep_search/result_fusion.py +313 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/policy_agent.py +402 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/retrieval_funnel.py +264 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/retrieval_supervisor.py +331 -0
- isa_data-1.0.0/isa_data/services/digital_service/utils/search_adapter.py +543 -0
- isa_data-1.0.0/isa_data/services/feature_store_service/__init__.py +43 -0
- isa_data-1.0.0/isa_data/services/model_import_service.py +566 -0
- isa_data-1.0.0/isa_data/services/notebook_service/__init__.py +34 -0
- isa_data-1.0.0/isa_data/services/notebook_service/executor.py +466 -0
- isa_data-1.0.0/isa_data/services/notebook_service/metrics_extractor.py +206 -0
- isa_data-1.0.0/isa_data/services/notebook_service/models.py +160 -0
- isa_data-1.0.0/isa_data/services/notebook_service/storage.py +257 -0
- isa_data-1.0.0/isa_data/services/product_spec/__init__.py +48 -0
- isa_data-1.0.0/isa_data/services/product_spec/deploy_contract/__init__.py +86 -0
- isa_data-1.0.0/isa_data/services/product_spec/deploy_contract/loader.py +299 -0
- isa_data-1.0.0/isa_data/services/product_spec/deploy_contract/namespace.py +127 -0
- isa_data-1.0.0/isa_data/services/product_spec/deploy_contract/protocol.py +577 -0
- isa_data-1.0.0/isa_data/services/product_spec/seed_data.py +123 -0
- isa_data-1.0.0/isa_data/services/product_spec/seeder.py +105 -0
- isa_data-1.0.0/isa_data/services/product_spec/spec_source.py +319 -0
- isa_data-1.0.0/isa_data/services/vector_service/__init__.py +226 -0
- isa_data-1.0.0/isa_data/services/vector_service/backends/__init__.py +28 -0
- isa_data-1.0.0/isa_data/services/vector_service/backends/factory.py +181 -0
- isa_data-1.0.0/isa_data/services/vector_service/backends/milvus_backend.py +266 -0
- isa_data-1.0.0/isa_data/services/vector_service/backends/qdrant_backend.py +470 -0
- isa_data-1.0.0/isa_data/services/vector_service/base/__init__.py +52 -0
- isa_data-1.0.0/isa_data/services/vector_service/base/exceptions.py +63 -0
- isa_data-1.0.0/isa_data/services/vector_service/base/models.py +130 -0
- isa_data-1.0.0/isa_data/services/vector_service/base/vector_db.py +457 -0
- isa_data-1.0.0/isa_data/services/vector_service/chunking/__init__.py +67 -0
- isa_data-1.0.0/isa_data/services/vector_service/chunking/advanced_chunkers.py +828 -0
- isa_data-1.0.0/isa_data/services/vector_service/chunking/chunking_service.py +1154 -0
- isa_data-1.0.0/isa_data/services/vector_service/chunking/models.py +136 -0
- isa_data-1.0.0/isa_data/services/vector_service/search/__init__.py +29 -0
- isa_data-1.0.0/isa_data/services/vector_service/search/hybrid_search.py +433 -0
- isa_data-1.0.0/isa_data/services/vector_service/search/mmr_reranker.py +426 -0
- isa_data-1.0.0/isa_data/services/vector_service/updates/__init__.py +36 -0
- isa_data-1.0.0/isa_data/services/vector_service/updates/incremental_service.py +624 -0
- isa_data-1.0.0/isa_data/services/vector_store/__init__.py +69 -0
- isa_data-1.0.0/isa_data/services/vector_store/integrations.py +330 -0
- isa_data-1.0.0/isa_data/services/vector_store/manager.py +344 -0
- isa_data-1.0.0/isa_data/services/vector_store/pipeline.py +255 -0
- isa_data-1.0.0/isa_data/services/vector_store/providers.py +173 -0
- isa_data-1.0.0/isa_data/services/vector_store/schemas.py +105 -0
- isa_data-1.0.0/isa_data.egg-info/PKG-INFO +172 -0
- isa_data-1.0.0/isa_data.egg-info/SOURCES.txt +689 -0
- isa_data-1.0.0/isa_data.egg-info/dependency_links.txt +1 -0
- isa_data-1.0.0/isa_data.egg-info/requires.txt +44 -0
- isa_data-1.0.0/isa_data.egg-info/top_level.txt +1 -0
- isa_data-1.0.0/pyproject.toml +120 -0
- isa_data-1.0.0/setup.cfg +4 -0
- isa_data-1.0.0/tests/test_async_data.py +662 -0
- isa_data-1.0.0/tests/test_async_digital.py +563 -0
- isa_data-1.0.0/tests/test_pageindex_evaluation.py +454 -0
isa_data-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: isa-data
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: isA_Data — data analytics, data-fabric, and data-product SDK for the isA platform
|
|
5
|
+
Author: Data Analytics Team
|
|
6
|
+
License: Proprietary
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: fastapi>=0.104.1
|
|
10
|
+
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
11
|
+
Requires-Dist: python-multipart>=0.0.9
|
|
12
|
+
Requires-Dist: pydantic>=2.5.0
|
|
13
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
14
|
+
Requires-Dist: asyncpg>=0.29.0
|
|
15
|
+
Requires-Dist: psycopg[binary]>=3.0.0
|
|
16
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0
|
|
17
|
+
Requires-Dist: duckdb>=0.9.0
|
|
18
|
+
Requires-Dist: numpy>=1.24.0
|
|
19
|
+
Requires-Dist: pandas>=2.0.0
|
|
20
|
+
Requires-Dist: polars-lts-cpu>=0.20.0
|
|
21
|
+
Requires-Dist: pyarrow>=14.0.0
|
|
22
|
+
Requires-Dist: openpyxl>=3.1.0
|
|
23
|
+
Requires-Dist: matplotlib>=3.8.0
|
|
24
|
+
Requires-Dist: httpx>=0.25.2
|
|
25
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
26
|
+
Requires-Dist: requests>=2.31.0
|
|
27
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
28
|
+
Requires-Dist: pyyaml>=6.0
|
|
29
|
+
Requires-Dist: structlog>=23.2.0
|
|
30
|
+
Requires-Dist: python-logging-loki>=0.3.1
|
|
31
|
+
Requires-Dist: prometheus-client>=0.19.0
|
|
32
|
+
Requires-Dist: feast<0.50,>=0.40
|
|
33
|
+
Requires-Dist: redis>=5.0.0
|
|
34
|
+
Requires-Dist: isa-common>=0.6.0
|
|
35
|
+
Requires-Dist: isa-model[cloud]>=0.5.7
|
|
36
|
+
Provides-Extra: bigdata
|
|
37
|
+
Requires-Dist: deltalake>=1.2.0; extra == "bigdata"
|
|
38
|
+
Requires-Dist: minio>=7.2.0; extra == "bigdata"
|
|
39
|
+
Requires-Dist: pyiceberg[hive]>=0.7.0; extra == "bigdata"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
44
|
+
Requires-Dist: pytest-aiohttp>=1.0.0; extra == "dev"
|
|
45
|
+
Requires-Dist: aiosqlite>=0.19.0; extra == "dev"
|
|
46
|
+
Requires-Dist: papermill>=2.4.0; extra == "dev"
|
|
47
|
+
Requires-Dist: nbformat>=5.10; extra == "dev"
|
|
48
|
+
Requires-Dist: nbclient>=0.10; extra == "dev"
|
|
49
|
+
Requires-Dist: jupyter-client>=8.0.0; extra == "dev"
|
|
50
|
+
Requires-Dist: ipykernel>=6.29; extra == "dev"
|
|
51
|
+
|
|
52
|
+
# isA_Data
|
|
53
|
+
|
|
54
|
+
**Cloud Data Analytics & Processing Center**
|
|
55
|
+
|
|
56
|
+
## 🎯 Purpose
|
|
57
|
+
|
|
58
|
+
独立的数据分析云服务,处理数据处理、分析、可视化等任务。
|
|
59
|
+
从 `isA_MCP/tools/services/data_analytics_service` 迁移而来,提供 API 服务。
|
|
60
|
+
|
|
61
|
+
## 🏗️ Architecture
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
isA_Data/
|
|
65
|
+
├── app/
|
|
66
|
+
│ ├── main.py # FastAPI 主服务
|
|
67
|
+
│ ├── config.py # 配置管理
|
|
68
|
+
│ └── api/
|
|
69
|
+
│ ├── analytics.py # 数据分析端点
|
|
70
|
+
│ ├── processing.py # 数据处理端点
|
|
71
|
+
│ └── visualization.py # 数据可视化端点
|
|
72
|
+
│
|
|
73
|
+
├── services/
|
|
74
|
+
│ ├── analytics/ # [迁移自 isA_MCP]
|
|
75
|
+
│ │ ├── pandas_ops.py # Pandas 操作
|
|
76
|
+
│ │ ├── statistical.py # 统计分析
|
|
77
|
+
│ │ └── ml_analysis.py # ML 分析
|
|
78
|
+
│ │
|
|
79
|
+
│ ├── processing/
|
|
80
|
+
│ │ ├── etl.py # ETL 处理
|
|
81
|
+
│ │ ├── cleaning.py # 数据清洗
|
|
82
|
+
│ │ └── transformation.py # 数据转换
|
|
83
|
+
│ │
|
|
84
|
+
│ └── storage/
|
|
85
|
+
│ ├── database.py # 数据库操作
|
|
86
|
+
│ └── cache.py # 缓存管理
|
|
87
|
+
│
|
|
88
|
+
├── core/
|
|
89
|
+
│ ├── logging.py
|
|
90
|
+
│ └── clients/
|
|
91
|
+
│ └── model_client.py # ISA Model 客户端
|
|
92
|
+
│
|
|
93
|
+
├── deployment/
|
|
94
|
+
│ ├── docker/
|
|
95
|
+
│ │ └── Dockerfile
|
|
96
|
+
│ └── kubernetes/
|
|
97
|
+
│ └── deployment.yaml
|
|
98
|
+
│
|
|
99
|
+
├── tests/
|
|
100
|
+
│ └── test_analytics.py
|
|
101
|
+
│
|
|
102
|
+
├── requirements.txt
|
|
103
|
+
└── README.md
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 📡 API Endpoints
|
|
107
|
+
|
|
108
|
+
### Data Analytics
|
|
109
|
+
```
|
|
110
|
+
POST /api/v1/data/analyze
|
|
111
|
+
POST /api/v1/data/statistics
|
|
112
|
+
POST /api/v1/data/ml/predict
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Data Processing
|
|
116
|
+
```
|
|
117
|
+
POST /api/v1/data/clean
|
|
118
|
+
POST /api/v1/data/transform
|
|
119
|
+
POST /api/v1/data/aggregate
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Data Visualization
|
|
123
|
+
```
|
|
124
|
+
POST /api/v1/data/visualize/chart
|
|
125
|
+
POST /api/v1/data/visualize/dashboard
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 🚀 Usage
|
|
129
|
+
|
|
130
|
+
### As Standalone Service
|
|
131
|
+
```bash
|
|
132
|
+
# Start server
|
|
133
|
+
uvicorn app.main:app --host 0.0.0.0 --port 8001
|
|
134
|
+
|
|
135
|
+
# Or with Docker
|
|
136
|
+
docker-compose up
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Called from isA_MCP
|
|
140
|
+
```python
|
|
141
|
+
# isA_MCP 中通过 API 调用
|
|
142
|
+
from tools.services.data_analytics_service import ISA_Data_Client
|
|
143
|
+
|
|
144
|
+
client = ISA_Data_Client(base_url="http://localhost:8001")
|
|
145
|
+
result = await client.analyze_data(
|
|
146
|
+
data=df,
|
|
147
|
+
analysis_type="descriptive"
|
|
148
|
+
)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## 💡 Benefits
|
|
152
|
+
|
|
153
|
+
1. **专注**: 专门处理数据相关任务
|
|
154
|
+
2. **性能**: 可以部署在大内存机器上处理大数据
|
|
155
|
+
3. **隔离**: 数据处理故障不影响 MCP 主服务
|
|
156
|
+
4. **可复用**: 多个服务都可以调用数据分析能力
|
|
157
|
+
5. **扩展**: 未来可以添加更多数据源和分析能力
|
|
158
|
+
|
|
159
|
+
## 🔄 Migration Status
|
|
160
|
+
|
|
161
|
+
- [ ] Phase 1: 基础架构搭建
|
|
162
|
+
- [ ] Phase 2: 迁移 data_analytics 模块
|
|
163
|
+
- [ ] Phase 3: FastAPI 端点实现
|
|
164
|
+
- [ ] Phase 4: 数据库集成
|
|
165
|
+
- [ ] Phase 5: isA_MCP 集成测试
|
|
166
|
+
- [ ] Phase 6: 生产部署
|
|
167
|
+
|
|
168
|
+
## 🔗 Related Projects
|
|
169
|
+
|
|
170
|
+
- **isA_MCP**: MCP 工具层(API 调用端)
|
|
171
|
+
- **isA_OS**: Web & OS 操作云服务
|
|
172
|
+
- **isA_Model**: 模型服务
|
isa_data-1.0.0/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# isA_Data
|
|
2
|
+
|
|
3
|
+
**Cloud Data Analytics & Processing Center**
|
|
4
|
+
|
|
5
|
+
## 🎯 Purpose
|
|
6
|
+
|
|
7
|
+
独立的数据分析云服务,处理数据处理、分析、可视化等任务。
|
|
8
|
+
从 `isA_MCP/tools/services/data_analytics_service` 迁移而来,提供 API 服务。
|
|
9
|
+
|
|
10
|
+
## 🏗️ Architecture
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
isA_Data/
|
|
14
|
+
├── app/
|
|
15
|
+
│ ├── main.py # FastAPI 主服务
|
|
16
|
+
│ ├── config.py # 配置管理
|
|
17
|
+
│ └── api/
|
|
18
|
+
│ ├── analytics.py # 数据分析端点
|
|
19
|
+
│ ├── processing.py # 数据处理端点
|
|
20
|
+
│ └── visualization.py # 数据可视化端点
|
|
21
|
+
│
|
|
22
|
+
├── services/
|
|
23
|
+
│ ├── analytics/ # [迁移自 isA_MCP]
|
|
24
|
+
│ │ ├── pandas_ops.py # Pandas 操作
|
|
25
|
+
│ │ ├── statistical.py # 统计分析
|
|
26
|
+
│ │ └── ml_analysis.py # ML 分析
|
|
27
|
+
│ │
|
|
28
|
+
│ ├── processing/
|
|
29
|
+
│ │ ├── etl.py # ETL 处理
|
|
30
|
+
│ │ ├── cleaning.py # 数据清洗
|
|
31
|
+
│ │ └── transformation.py # 数据转换
|
|
32
|
+
│ │
|
|
33
|
+
│ └── storage/
|
|
34
|
+
│ ├── database.py # 数据库操作
|
|
35
|
+
│ └── cache.py # 缓存管理
|
|
36
|
+
│
|
|
37
|
+
├── core/
|
|
38
|
+
│ ├── logging.py
|
|
39
|
+
│ └── clients/
|
|
40
|
+
│ └── model_client.py # ISA Model 客户端
|
|
41
|
+
│
|
|
42
|
+
├── deployment/
|
|
43
|
+
│ ├── docker/
|
|
44
|
+
│ │ └── Dockerfile
|
|
45
|
+
│ └── kubernetes/
|
|
46
|
+
│ └── deployment.yaml
|
|
47
|
+
│
|
|
48
|
+
├── tests/
|
|
49
|
+
│ └── test_analytics.py
|
|
50
|
+
│
|
|
51
|
+
├── requirements.txt
|
|
52
|
+
└── README.md
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 📡 API Endpoints
|
|
56
|
+
|
|
57
|
+
### Data Analytics
|
|
58
|
+
```
|
|
59
|
+
POST /api/v1/data/analyze
|
|
60
|
+
POST /api/v1/data/statistics
|
|
61
|
+
POST /api/v1/data/ml/predict
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Data Processing
|
|
65
|
+
```
|
|
66
|
+
POST /api/v1/data/clean
|
|
67
|
+
POST /api/v1/data/transform
|
|
68
|
+
POST /api/v1/data/aggregate
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Data Visualization
|
|
72
|
+
```
|
|
73
|
+
POST /api/v1/data/visualize/chart
|
|
74
|
+
POST /api/v1/data/visualize/dashboard
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 🚀 Usage
|
|
78
|
+
|
|
79
|
+
### As Standalone Service
|
|
80
|
+
```bash
|
|
81
|
+
# Start server
|
|
82
|
+
uvicorn app.main:app --host 0.0.0.0 --port 8001
|
|
83
|
+
|
|
84
|
+
# Or with Docker
|
|
85
|
+
docker-compose up
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Called from isA_MCP
|
|
89
|
+
```python
|
|
90
|
+
# isA_MCP 中通过 API 调用
|
|
91
|
+
from tools.services.data_analytics_service import ISA_Data_Client
|
|
92
|
+
|
|
93
|
+
client = ISA_Data_Client(base_url="http://localhost:8001")
|
|
94
|
+
result = await client.analyze_data(
|
|
95
|
+
data=df,
|
|
96
|
+
analysis_type="descriptive"
|
|
97
|
+
)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 💡 Benefits
|
|
101
|
+
|
|
102
|
+
1. **专注**: 专门处理数据相关任务
|
|
103
|
+
2. **性能**: 可以部署在大内存机器上处理大数据
|
|
104
|
+
3. **隔离**: 数据处理故障不影响 MCP 主服务
|
|
105
|
+
4. **可复用**: 多个服务都可以调用数据分析能力
|
|
106
|
+
5. **扩展**: 未来可以添加更多数据源和分析能力
|
|
107
|
+
|
|
108
|
+
## 🔄 Migration Status
|
|
109
|
+
|
|
110
|
+
- [ ] Phase 1: 基础架构搭建
|
|
111
|
+
- [ ] Phase 2: 迁移 data_analytics 模块
|
|
112
|
+
- [ ] Phase 3: FastAPI 端点实现
|
|
113
|
+
- [ ] Phase 4: 数据库集成
|
|
114
|
+
- [ ] Phase 5: isA_MCP 集成测试
|
|
115
|
+
- [ ] Phase 6: 生产部署
|
|
116
|
+
|
|
117
|
+
## 🔗 Related Projects
|
|
118
|
+
|
|
119
|
+
- **isA_MCP**: MCP 工具层(API 调用端)
|
|
120
|
+
- **isA_OS**: Web & OS 操作云服务
|
|
121
|
+
- **isA_Model**: 模型服务
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Data Analytics Service Package
|
|
4
|
+
|
|
5
|
+
A comprehensive data analytics service implementing the MCP architecture.
|
|
6
|
+
Provides tools and services for data extraction, processing, and analysis.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# Package metadata
|
|
10
|
+
__version__ = "1.0.0"
|
|
11
|
+
__author__ = "Data Analytics Team"
|
|
12
|
+
|
|
13
|
+
# Core functionality - only import what actually exists and works
|
|
14
|
+
try:
|
|
15
|
+
from .models.dto.base_models import AssetType
|
|
16
|
+
|
|
17
|
+
# Only import working components
|
|
18
|
+
__all__ = ["AssetType"]
|
|
19
|
+
|
|
20
|
+
except ImportError as e:
|
|
21
|
+
# Graceful fallback if imports fail
|
|
22
|
+
__all__ = []
|
|
23
|
+
print(f"Warning: Some data analytics components not available: {e}")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def get_version():
|
|
27
|
+
"""Get package version."""
|
|
28
|
+
return __version__
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Database, file, and graph adapters for metadata extraction
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from .source_adapters import (
|
|
7
|
+
DatabaseAdapter,
|
|
8
|
+
PostgreSQLAdapter,
|
|
9
|
+
MySQLAdapter,
|
|
10
|
+
SQLServerAdapter,
|
|
11
|
+
)
|
|
12
|
+
from .file_adapters import FileAdapter, ExcelAdapter, CSVAdapter, DocumentAdapter
|
|
13
|
+
|
|
14
|
+
# Graph adapters not available
|
|
15
|
+
# from .graph_adapters import Neo4jAdapter
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"DatabaseAdapter",
|
|
19
|
+
"PostgreSQLAdapter",
|
|
20
|
+
"MySQLAdapter",
|
|
21
|
+
"SQLServerAdapter",
|
|
22
|
+
"FileAdapter",
|
|
23
|
+
"ExcelAdapter",
|
|
24
|
+
"CSVAdapter",
|
|
25
|
+
"DocumentAdapter",
|
|
26
|
+
# "Neo4jAdapter" # Not available
|
|
27
|
+
]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""
|
|
2
|
+
isa_data.adapters.base
|
|
3
|
+
======================
|
|
4
|
+
|
|
5
|
+
The IDataSource/IDataTarget adapter family (distinct from the metadata-extractor
|
|
6
|
+
``source_adapters`` family). ``BaseAdapter`` provides the common lifecycle
|
|
7
|
+
(initialize/health_check/capabilities/stats); ``UnifiedDatabaseAdapter`` is the
|
|
8
|
+
concrete async SQL DataSource/DataTarget over asyncpg/aiomysql/aiosqlite.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from .base_adapter import BaseAdapter
|
|
12
|
+
from .database_adapter import UnifiedDatabaseAdapter
|
|
13
|
+
|
|
14
|
+
__all__ = ["BaseAdapter", "UnifiedDatabaseAdapter"]
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Base Adapter for Data Analytics Service
|
|
4
|
+
|
|
5
|
+
Provides common functionality for all adapters.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import asyncio
|
|
9
|
+
import logging
|
|
10
|
+
from abc import ABC, abstractmethod
|
|
11
|
+
from typing import Dict, Any, Optional
|
|
12
|
+
from datetime import datetime
|
|
13
|
+
|
|
14
|
+
from isa_data.models.dto.interfaces import IAdapter
|
|
15
|
+
from isa_data.models.dto.data_models import DataSource, DataTarget
|
|
16
|
+
|
|
17
|
+
logger = logging.getLogger(__name__)
|
|
18
|
+
|
|
19
|
+
class BaseAdapter(IAdapter, ABC):
|
|
20
|
+
"""
|
|
21
|
+
Base adapter class providing common functionality
|
|
22
|
+
|
|
23
|
+
All adapters should inherit from this class and implement
|
|
24
|
+
the abstract methods for their specific data source/target type.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self, name: str, adapter_type: str):
|
|
28
|
+
self.name = name
|
|
29
|
+
self.adapter_type = adapter_type
|
|
30
|
+
self.config: Dict[str, Any] = {}
|
|
31
|
+
self.is_initialized = False
|
|
32
|
+
self.last_health_check: Optional[datetime] = None
|
|
33
|
+
self.health_status = "unknown"
|
|
34
|
+
self.connection = None
|
|
35
|
+
|
|
36
|
+
# Statistics tracking
|
|
37
|
+
self.stats = {
|
|
38
|
+
'total_operations': 0,
|
|
39
|
+
'successful_operations': 0,
|
|
40
|
+
'failed_operations': 0,
|
|
41
|
+
'last_operation_time': None,
|
|
42
|
+
'average_response_time': 0.0
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
self.logger = logging.getLogger(f"{__name__}.{name}")
|
|
46
|
+
|
|
47
|
+
async def initialize(self, config: Dict[str, Any]) -> bool:
|
|
48
|
+
"""
|
|
49
|
+
Initialize adapter with configuration
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
config: Adapter configuration
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
True if initialization successful
|
|
56
|
+
"""
|
|
57
|
+
try:
|
|
58
|
+
self.config = config
|
|
59
|
+
self.logger.info(f"Initializing {self.name} adapter")
|
|
60
|
+
|
|
61
|
+
# Validate configuration
|
|
62
|
+
if not await self._validate_config(config):
|
|
63
|
+
raise ValueError(f"Invalid configuration for {self.name} adapter")
|
|
64
|
+
|
|
65
|
+
# Perform adapter-specific initialization
|
|
66
|
+
await self._initialize_adapter()
|
|
67
|
+
|
|
68
|
+
self.is_initialized = True
|
|
69
|
+
self.logger.info(f"{self.name} adapter initialized successfully")
|
|
70
|
+
return True
|
|
71
|
+
|
|
72
|
+
except Exception as e:
|
|
73
|
+
self.logger.error(f"Failed to initialize {self.name} adapter: {e}")
|
|
74
|
+
self.is_initialized = False
|
|
75
|
+
return False
|
|
76
|
+
|
|
77
|
+
async def health_check(self) -> bool:
|
|
78
|
+
"""
|
|
79
|
+
Check if adapter is healthy
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
True if adapter is healthy
|
|
83
|
+
"""
|
|
84
|
+
try:
|
|
85
|
+
if not self.is_initialized:
|
|
86
|
+
self.health_status = "not_initialized"
|
|
87
|
+
return False
|
|
88
|
+
|
|
89
|
+
# Perform adapter-specific health check
|
|
90
|
+
is_healthy = await self._perform_health_check()
|
|
91
|
+
|
|
92
|
+
self.health_status = "healthy" if is_healthy else "unhealthy"
|
|
93
|
+
self.last_health_check = datetime.now()
|
|
94
|
+
|
|
95
|
+
return is_healthy
|
|
96
|
+
|
|
97
|
+
except Exception as e:
|
|
98
|
+
self.logger.error(f"Health check failed for {self.name} adapter: {e}")
|
|
99
|
+
self.health_status = "error"
|
|
100
|
+
self.last_health_check = datetime.now()
|
|
101
|
+
return False
|
|
102
|
+
|
|
103
|
+
def get_capabilities(self) -> Dict[str, Any]:
|
|
104
|
+
"""
|
|
105
|
+
Get adapter capabilities
|
|
106
|
+
|
|
107
|
+
Returns:
|
|
108
|
+
Dictionary containing adapter capabilities
|
|
109
|
+
"""
|
|
110
|
+
base_capabilities = {
|
|
111
|
+
'name': self.name,
|
|
112
|
+
'type': self.adapter_type,
|
|
113
|
+
'initialized': self.is_initialized,
|
|
114
|
+
'health_status': self.health_status,
|
|
115
|
+
'last_health_check': self.last_health_check.isoformat() if self.last_health_check else None,
|
|
116
|
+
'statistics': self.stats.copy()
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
# Add adapter-specific capabilities
|
|
120
|
+
specific_capabilities = self._get_specific_capabilities()
|
|
121
|
+
base_capabilities.update(specific_capabilities)
|
|
122
|
+
|
|
123
|
+
return base_capabilities
|
|
124
|
+
|
|
125
|
+
def get_stats(self) -> Dict[str, Any]:
|
|
126
|
+
"""Get adapter statistics"""
|
|
127
|
+
return self.stats.copy()
|
|
128
|
+
|
|
129
|
+
def _update_stats(self, operation_time: float, success: bool):
|
|
130
|
+
"""Update adapter statistics"""
|
|
131
|
+
self.stats['total_operations'] += 1
|
|
132
|
+
self.stats['last_operation_time'] = datetime.now().isoformat()
|
|
133
|
+
|
|
134
|
+
if success:
|
|
135
|
+
self.stats['successful_operations'] += 1
|
|
136
|
+
else:
|
|
137
|
+
self.stats['failed_operations'] += 1
|
|
138
|
+
|
|
139
|
+
# Update average response time
|
|
140
|
+
if self.stats['successful_operations'] > 0:
|
|
141
|
+
current_avg = self.stats['average_response_time']
|
|
142
|
+
total_successful = self.stats['successful_operations']
|
|
143
|
+
self.stats['average_response_time'] = (
|
|
144
|
+
(current_avg * (total_successful - 1) + operation_time) / total_successful
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
async def _execute_with_stats(self, operation_name: str, operation_func, *args, **kwargs):
|
|
148
|
+
"""Execute operation with statistics tracking"""
|
|
149
|
+
import time
|
|
150
|
+
start_time = time.time()
|
|
151
|
+
|
|
152
|
+
try:
|
|
153
|
+
self.logger.debug(f"Executing {operation_name} operation")
|
|
154
|
+
result = await operation_func(*args, **kwargs)
|
|
155
|
+
|
|
156
|
+
execution_time = time.time() - start_time
|
|
157
|
+
self._update_stats(execution_time, True)
|
|
158
|
+
|
|
159
|
+
self.logger.debug(f"{operation_name} completed in {execution_time:.2f}s")
|
|
160
|
+
return result
|
|
161
|
+
|
|
162
|
+
except Exception as e:
|
|
163
|
+
execution_time = time.time() - start_time
|
|
164
|
+
self._update_stats(execution_time, False)
|
|
165
|
+
|
|
166
|
+
self.logger.error(f"{operation_name} failed after {execution_time:.2f}s: {e}")
|
|
167
|
+
raise
|
|
168
|
+
|
|
169
|
+
# Abstract methods that must be implemented by subclasses
|
|
170
|
+
|
|
171
|
+
@abstractmethod
|
|
172
|
+
async def _validate_config(self, config: Dict[str, Any]) -> bool:
|
|
173
|
+
"""
|
|
174
|
+
Validate adapter configuration
|
|
175
|
+
|
|
176
|
+
Args:
|
|
177
|
+
config: Configuration to validate
|
|
178
|
+
|
|
179
|
+
Returns:
|
|
180
|
+
True if configuration is valid
|
|
181
|
+
"""
|
|
182
|
+
pass
|
|
183
|
+
|
|
184
|
+
@abstractmethod
|
|
185
|
+
async def _initialize_adapter(self) -> None:
|
|
186
|
+
"""
|
|
187
|
+
Perform adapter-specific initialization
|
|
188
|
+
|
|
189
|
+
This method should establish connections, validate credentials,
|
|
190
|
+
and perform any other setup required for the adapter.
|
|
191
|
+
"""
|
|
192
|
+
pass
|
|
193
|
+
|
|
194
|
+
@abstractmethod
|
|
195
|
+
async def _perform_health_check(self) -> bool:
|
|
196
|
+
"""
|
|
197
|
+
Perform adapter-specific health check
|
|
198
|
+
|
|
199
|
+
Returns:
|
|
200
|
+
True if adapter is healthy
|
|
201
|
+
"""
|
|
202
|
+
pass
|
|
203
|
+
|
|
204
|
+
@abstractmethod
|
|
205
|
+
def _get_specific_capabilities(self) -> Dict[str, Any]:
|
|
206
|
+
"""
|
|
207
|
+
Get adapter-specific capabilities
|
|
208
|
+
|
|
209
|
+
Returns:
|
|
210
|
+
Dictionary containing adapter-specific capabilities
|
|
211
|
+
"""
|
|
212
|
+
pass
|
|
213
|
+
|
|
214
|
+
# Utility methods
|
|
215
|
+
|
|
216
|
+
def _ensure_initialized(self):
|
|
217
|
+
"""Ensure adapter is initialized"""
|
|
218
|
+
if not self.is_initialized:
|
|
219
|
+
raise RuntimeError(f"{self.name} adapter is not initialized")
|
|
220
|
+
|
|
221
|
+
async def _safe_close_connection(self):
|
|
222
|
+
"""Safely close connection if it exists"""
|
|
223
|
+
if self.connection:
|
|
224
|
+
try:
|
|
225
|
+
if hasattr(self.connection, 'close'):
|
|
226
|
+
close_method = getattr(self.connection, 'close')
|
|
227
|
+
if asyncio.iscoroutinefunction(close_method):
|
|
228
|
+
await close_method()
|
|
229
|
+
else:
|
|
230
|
+
close_method()
|
|
231
|
+
elif hasattr(self.connection, 'disconnect'):
|
|
232
|
+
disconnect_method = getattr(self.connection, 'disconnect')
|
|
233
|
+
if asyncio.iscoroutinefunction(disconnect_method):
|
|
234
|
+
await disconnect_method()
|
|
235
|
+
else:
|
|
236
|
+
disconnect_method()
|
|
237
|
+
except Exception as e:
|
|
238
|
+
self.logger.warning(f"Error closing connection: {e}")
|
|
239
|
+
finally:
|
|
240
|
+
self.connection = None
|