# -*- coding: utf-8 -*- """iAOP-Core · 数据总线 + 时序库(Data Bus)—— 模板化封装。 对应 PRD 5.2「② 数据总线 + 时序库」与 Issue #4(EPIC): 复用 Kafka + TDengine + PostgreSQL + MinIO,全部改为**按模板配置** topic / 时序库表 / 关系表 / 对象桶,换行业只改模板资产(YAML + 点位字典), 内核代码零改动;批量写入缓冲 + 幂等去重,保障「数据不丢不重」。 模块: - templating 模板命名推导(Kafka topic/分区、TDengine 表、PG schema、MinIO 桶); - kafka_naming Kafka topic 命名/分区模板化组件(配置外置 + 点位维度覆盖 + 生产路由); - tdengine_schema 时序超级表/子表 DDL + 批量 INSERT SQL 生成; - postgres_schema 关系库 schema(模板/模型/用户/权限)+ 授权语句; - minio_lifecycle MinIO 对象桶 + 生命周期策略模板化(mc mb/ilm + S3 兼容策略 JSON); - batch_writer 批量写入缓冲(StoreSink 抽象 / MemorySink / TdengineSink), 批量聚合 + 幂等去重 + 失败重试(不丢不重)。 测试:`python -m unittest discover -s tests -v`(在 core/data-bus 目录下执行)。 """ __version__ = "0.2.0" from .batch_writer import ( DEDUP_KEYS, BatchWriter, MemorySink, StoreSink, TdengineSink, ) from .kafka_naming import KafkaTopicNaming from .minio_lifecycle import MinioLifecycle from .postgres_schema import generate_grant_ddl, generate_schema_ddl from .tdengine_schema import ( PointSpec, build_batch_insert, generate_schema, generate_subtable_ddls, generate_supertable_ddl, specs_from_point_dict_rows, ) from .templating import TemplateNaming, sanitize, sanitize_sql __all__ = [ "TemplateNaming", "sanitize", "sanitize_sql", "KafkaTopicNaming", "MinioLifecycle", "PointSpec", "generate_supertable_ddl", "generate_subtable_ddls", "generate_schema", "specs_from_point_dict_rows", "build_batch_insert", "generate_schema_ddl", "generate_grant_ddl", "StoreSink", "MemorySink", "TdengineSink", "BatchWriter", "DEDUP_KEYS", ]