certflow.config.models module¶
配置数据模型
使用 Pydantic 定义配置数据结构,提供类型验证和自动补全.
- class RootConfig(*, app=<factory>, paths=<factory>, sales_plan=<factory>, certificate=<factory>, import_deduplication=<factory>, database=<factory>, logging=<factory>, ui=<factory>, color_mapping=<factory>, numbering=None, duplicate_check=None, unique_key=None, priority_rules=None, export=None, sales_plan_fill=None, field_fallbacks=None, field_fill_rules=None, sales_importer=None, qualified_list=None, import_mapping=None, export_debug=None, test_report=None, printer=None, environment=None, colors=None, image_backgrounds=None, field_templates=None, print_templates=None, vba_import=None, certificate_print=None, completed_orders_backfill=None, query_page=<factory>, sync=None, print=None, background=None, print_log_empty_markers=None, grouping=None, sorting=None, **extra_data)[源代码]¶
基类:
BaseModel根配置模型
所有配置的顶层容器,聚合所有子配置模块. 通过 extra='allow' 保留未建模的 YAML 节点,确保 _cfg() 能读取所有配置.
- 参数:
app (AppConfig)
paths (PathsConfig)
sales_plan (SalesPlanConfig)
certificate (CertificateConfig)
import_deduplication (ImportDeduplicationConfig)
database (DatabaseConfig)
logging (LoggingConfig)
ui (UIConfig)
color_mapping (ColorMappingConfig)
numbering (NumberingConfig | None)
duplicate_check (DuplicateCheckConfig | None)
unique_key (UniqueKeyConfig | None)
priority_rules (PriorityRulesConfig | None)
export (ExportConfig | None)
sales_importer (SalesImporterConfig | None)
import_mapping (ImportMappingConfig | None)
test_report (TestReportConfig | None)
printer (PrinterConfig | None)
environment (EnvironmentConfig | None)
colors (ColorsConfig | None)
image_backgrounds (ImageBackgroundsConfig | None)
vba_import (VBAImportConfig | None)
certificate_print (CertificatePrintConfig | None)
completed_orders_backfill (CompletedOrdersBackfillConfig | None)
grouping (GroupingConfig | None)
sorting (SortingConfig | None)
extra_data (Any)
- app¶
应用基础配置
- paths¶
路径配置
- sales_plan¶
销售计划配置
- certificate¶
合格证配置
- import_deduplication¶
导入去重配置
- database¶
数据库配置
- logging¶
日志配置
- ui¶
UI配置
- color_mapping¶
颜色映射配置
- numbering¶
编号规则配置(V2)
- Type:
- duplicate_check¶
重复检查配置(V2)
- Type:
- unique_key¶
唯一键配置(V2)
- Type:
- priority_rules¶
优先级规则配置(V2)
- Type:
- export¶
导出配置(V2)
- Type:
- sales_importer¶
销售计划导入器配置(V2)
- Type:
- import_mapping¶
导入列映射配置(V2)
- Type:
- test_report¶
试压报告配置(V2)
- Type:
- printer¶
打印机配置(V2)
- Type:
- environment¶
环境信息配置(V2)
- Type:
- colors¶
颜色常量配置(V2)
- Type:
- image_backgrounds¶
图片背景配置(V2)
- Type:
- vba_import¶
VBA导入配置(V2)
- Type:
- certificate_print¶
合格证打印配置(V2)
- Type:
- model_config = {'extra': 'allow'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- paths: PathsConfig¶
- sales_plan: SalesPlanConfig¶
- certificate: CertificateConfig¶
- import_deduplication: ImportDeduplicationConfig¶
- database: DatabaseConfig¶
- logging: LoggingConfig¶
- color_mapping: ColorMappingConfig¶
- numbering: NumberingConfig | None¶
- duplicate_check: DuplicateCheckConfig | None¶
- unique_key: UniqueKeyConfig | None¶
- priority_rules: PriorityRulesConfig | None¶
- export: ExportConfig | None¶
- sales_importer: SalesImporterConfig | None¶
- import_mapping: ImportMappingConfig | None¶
- test_report: TestReportConfig | None¶
- printer: PrinterConfig | None¶
- environment: EnvironmentConfig | None¶
- colors: ColorsConfig | None¶
- image_backgrounds: ImageBackgroundsConfig | None¶
- vba_import: VBAImportConfig | None¶
- certificate_print: CertificatePrintConfig | None¶
- completed_orders_backfill: CompletedOrdersBackfillConfig | None¶
- grouping: GroupingConfig | None¶
- sorting: SortingConfig | None¶
- classmethod validate_log_level(v)[源代码]¶
验证日志级别是否有效
- 参数:
v (LoggingConfig) -- 待验证的日志配置对象
- 返回:
验证通过的日志配置对象
- 返回类型:
- 抛出:
ValueError -- 当日志级别不在有效值范围内时抛出
- class AppConfig(*, name='CertFlow', version='2.0.0', year=2026, organization='CertFlow Team', debug=False)[源代码]¶
基类:
BaseModel应用基础配置模型
定义应用程序的基本信息,包括名称、版本、组织等元数据.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PathsConfig(*, database=<factory>, temp=<factory>, logs='logs', resources='resources', templates=<factory>, sales_plan=None, qualified_list=None, nameplate_db=None, quality_cert=None, transfer_docs=None, backup=None, output=None, excel_layout=None, images=None)[源代码]¶
基类:
BaseModel路径配置集合模型
聚合所有文件路径相关的配置,包括数据库、临时文件、日志等路径.
- 参数:
database (DatabasePaths)
temp (TempPaths)
logs (str)
resources (str)
templates (TemplatePaths)
- database¶
数据库路径配置
- Type:
certflow.config.models.DatabasePaths
- temp¶
临时文件路径配置
- Type:
certflow.config.models.TempPaths
- templates¶
模板文件路径配置
- database: DatabasePaths¶
- temp: TempPaths¶
- templates: TemplatePaths¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class TemplatePaths(*, base='data/templates/', certificate_chinese='data/templates/中文合格证模板.xlsx', certificate_bilingual='data/templates/中英文合格证模板.xlsx', certificate_russian='', test_report_small='', test_report_medium='', quality_cert_file='')[源代码]¶
基类:
BaseModel模板路径配置模型
定义各类模板文件的存储路径.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SalesPlanConfig(*, excel_config=<factory>, column_mapping=<factory>, header_detection=None, styled_import_columns=<factory>, header_row=2, data_start_row=3, required_fields=<factory>, valid_row_check=<factory>)[源代码]¶
基类:
BaseModel销售计划配置模型
定义销售计划Excel文件的解析规则,包括列映射、表头位置等.
- 参数:
excel_config (ExcelReadConfig)
column_mapping (ColumnMappingConfig)
header_detection (HeaderDetectionConfig | None)
header_row (int)
data_start_row (int)
valid_row_check (ValidRowCheck)
- excel_config¶
Excel 读取配置
- column_mapping¶
列映射配置
- Type:
certflow.config.models.ColumnMappingConfig
- header_detection¶
表头自动检测配置
- Type:
- valid_row_check¶
有效行检查配置
- Type:
certflow.config.models.ValidRowCheck
- excel_config: ExcelReadConfig¶
- column_mapping: ColumnMappingConfig¶
- header_detection: HeaderDetectionConfig | None¶
- valid_row_check: ValidRowCheck¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ExcelReadConfig(*, sheet_name=0, header_row=1, skip_rows=None, use_cols=None)[源代码]¶
基类:
BaseModelExcel 读取配置模型
定义 Excel 文件读取时的基本参数.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class HeaderDetectionConfig(*, enabled=True, keywords=<factory>, max_rows=20)[源代码]¶
基类:
BaseModel表头自动检测配置模型
定义表头检测的启停和匹配规则.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SuffixRule(*, field=None, keywords, suffix, exclude=None)[源代码]¶
基类:
BaseModel合格证后缀规则模型
根据关键词匹配规则生成证书编号后缀.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class CertificateConfig(*, prefix='CERT', date_format='%Y%m%d', format_template='{prefix}{date}{seq:04d}', suffix_rules=<factory>, defaults=<factory>)[源代码]¶
基类:
BaseModel合格证配置模型
定义合格证编号的生成规则.
- 参数:
- suffix_rules¶
后缀匹配规则列表
- suffix_rules: list[SuffixRule]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ImportDeduplicationConfig(*, strategy='skip', check_within_file=True, check_against_db=True, unique_key_fields=<factory>, update_on_duplicate=True, monitored_fields=<factory>, duplicate_handling=None, unique_key_generation=None, field_normalization=None)[源代码]¶
基类:
BaseModel导入去重配置模型
定义数据导入时的重复检测和处理策略.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class DatabaseConfig(*, type='sqlite', echo=False, pool_size=5, max_overflow=10)[源代码]¶
基类:
BaseModel数据库配置模型
定义数据库连接参数和行为.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class LoggingConfig(*, level='INFO', file='logs/certflow.log', format='{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}', rotation='10 MB', retention='30 days', compression='zip', debug_modules=<factory>, **extra_data)[源代码]¶
基类:
BaseModel日志配置模型
定义日志输出格式、轮转策略等参数.
- 参数:
- model_config = {'extra': 'allow'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class UIConfig(*, window=<factory>, table=<factory>, status_bar=<factory>, query_page=<factory>)[源代码]¶
基类:
BaseModelUI配置集合模型
聚合所有用户界面相关的配置.
- 参数:
window (WindowConfig)
table (TableConfig)
status_bar (StatusBarConfig)
query_page (dict)
- window¶
窗口配置
- Type:
certflow.config.models.WindowConfig
- table¶
表格配置
- Type:
certflow.config.models.TableConfig
- status_bar¶
状态栏配置
- Type:
certflow.config.models.StatusBarConfig
- window: WindowConfig¶
- table: TableConfig¶
- status_bar: StatusBarConfig¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ColorMappingConfig(*, status_colors=<factory>, priority_colors=<factory>, vba_colors=None, font_color_to_shipping=None, bg_color_to_status=None, theme_font_colors=None, font_colors=None, bg_colors=None)[源代码]¶
基类:
BaseModel颜色映射配置模型
定义状态和优先级到颜色的映射关系.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class NumberingConfig(*, prefix='V', format='{prefix}{year}{month}{seq:03d}{suffix}', suffixes=<factory>, auto_number_mode=None, suffix_rules=<factory>)[源代码]¶
基类:
BaseModel编号规则配置模型(V2新增)
定义V2版本的自动编号生成规则.
- 参数:
- suffix_rules¶
后缀规则列表
- suffix_rules: list[NumberingSuffixRule]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class NumberingSuffixRule(*, field=None, keywords=<factory>, suffix='', exclude=None)[源代码]¶
基类:
BaseModel编号后缀规则模型(V2新增)
根据字段值或关键词匹配规则生成编号后缀.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class DuplicateCheckConfig(*, fields=<factory>)[源代码]¶
基类:
BaseModel重复检查配置模型(V2新增)
定义数据重复检查的字段列表.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class UniqueKeyConfig(*, separator='|', date_to_serial=True, fields=<factory>, key_field_fallbacks=None)[源代码]¶
基类:
BaseModel唯一标识规则配置模型(V2新增)
定义唯一键的生成规则.
- 参数:
- fields¶
构成唯一键的字段列表
- fields: list[UniqueKeyField]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class UniqueKeyField(*, name, required=False)[源代码]¶
基类:
BaseModel唯一键字段模型(V2新增)
定义构成唯一键的字段及其约束.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PriorityRulesConfig(*, high_threshold=10000, medium_threshold=5000, high_label='高', medium_label='中', low_label='低', high_color='#e74c3c', medium_color='#f39c12', low_color='#27ae60')[源代码]¶
基类:
BaseModel优先级规则配置模型(V2新增)
定义基于金额的优先级判定规则和颜色.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ExportConfig(*, hyperlink_column=44, hyperlink_ref_prefix='AR', hyperlink_width=20, summary=None)[源代码]¶
基类:
BaseModel导出配置模型(V2新增)
定义数据导出的格式和行为.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SalesImporterConfig(*, field_mapping=<factory>, color_columns=None, selection_info_columns=None)[源代码]¶
基类:
BaseModel销售计划导入器配置模型(V2新增)
定义销售计划Excel导入的字段映射和颜色列配置.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class VBAImportConfig(*, sales_plan_files=None, qualified_list=None, field_mapping=<factory>, color_mapping=None, duplicate_check_fields=None)[源代码]¶
基类:
BaseModelVBA导入逻辑配置模型(V2新增)
定义VBA导入功能的文件路径、字段映射和重复检查规则.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class CertificatePrintConfig(*, printer=None, print_area=None, batch=None, paper=None, layout=None, font=None, print_fields=None, templates=None, numbering_modes=None)[源代码]¶
基类:
BaseModel合格证打印配置模型(V2新增)
定义合格证打印的打印机、打印区域、批处理等配置.
- 参数:
layout (PrintLayoutConfig | None)
font (PrintFontConfig | None)
print_fields (list[PrintFieldConfig] | None)
templates (dict[str, CertificatePrintTemplateConfig] | None)
- layout¶
打印布局配置
- Type:
- font¶
打印字体配置
- Type:
- print_fields¶
打印字段列表
- Type:
- templates¶
模板配置字典
- Type:
dict[str, certflow.config.models.CertificatePrintTemplateConfig] | None
- layout: PrintLayoutConfig | None¶
- font: PrintFontConfig | None¶
- print_fields: list[PrintFieldConfig] | None¶
- templates: dict[str, CertificatePrintTemplateConfig] | None¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class CertificatePrintTemplateConfig(*, name='', style_code=1, picture_options=None, fields=<factory>)[源代码]¶
基类:
BaseModel合格证打印模板配置模型(V2新增)
定义完整打印模板的配置.
- 参数:
- fields¶
模板字段列表
- fields: list[CertificatePrintTemplate]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class CertificatePrintTemplate(*, excel_row, vba_col, field_name)[源代码]¶
基类:
BaseModel合格证打印模板字段模型(V2新增)
定义单个字段在打印模板中的位置映射.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PrintLayoutConfig(*, label_x=3, value_x=20, start_y=22, line_spacing=6.5, font_size=9, x_offset=14, y_offset=0)[源代码]¶
基类:
BaseModel打印布局配置模型
定义打印坐标、偏移和字体大小.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PrintFontConfig(*, name='SimSun', weight=400)[源代码]¶
基类:
BaseModel打印字体配置模型
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PrintFieldConfig(*, label, key, offset=0)[源代码]¶
基类:
BaseModel打印字段配置模型
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class TestReportConfig(*, company_name='', form_code='')[源代码]¶
基类:
BaseModel试压报告配置模型(V2新增)
定义试压报告的相关配置.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class PrinterConfig(*, default='')[源代码]¶
基类:
BaseModel打印机配置模型(V2新增)
定义默认打印机设置.
- 参数:
default (str)
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class EnvironmentConfig(*, computer_name='${COMPUTERNAME:Unknown}', username='${USERNAME:Unknown}')[源代码]¶
基类:
BaseModel环境信息配置模型(V2新增)
定义运行时环境信息,支持环境变量替换.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ColorsConfig(*, yellow=65535, blue=16711680, red=255, green=65280, light_blue=15773696)[源代码]¶
基类:
BaseModel颜色常量值配置模型(V2新增)
定义VBA中使用的颜色常量值.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ImageBackgroundsConfig(*, chinese='', bilingual='', russian='')[源代码]¶
基类:
BaseModel图片背景配置模型(V2新增)
定义不同语言版本的证书背景图片路径.
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ImportMappingConfig(*, preprocessor=None, column_mapping=None, default_values=None)[源代码]¶
基类:
BaseModel数据导入列映射配置模型(V2新增)
定义Excel导入时的预处理、列映射和默认值.
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class GroupingConfig(*, group_keys=<factory>, group_keys_no_project=<factory>, numbering=<factory>)[源代码]¶
基类:
BaseModel分组配置(V3新增)
第一层分组:按业务键分组,生成组内序号
- 参数:
numbering (GroupingNumberingConfig)
- numbering: GroupingNumberingConfig¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class GroupingNumberingConfig(*, use_global_prefix=True, prefix_format='G{:03d}', seq_format='{:03d}', separator='-', full_seq_field='group_seq', group_index_field='_group_index', group_key_field='_group_key')[源代码]¶
基类:
BaseModel分组序号配置
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SortingConfig(*, keys=<factory>)[源代码]¶
基类:
BaseModel排序配置(V3新增)
第二层排序:组内按产品键排序
- 参数:
keys (list[SortingKey])
- keys: list[SortingKey]¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class SortingKey(*, field, order='asc')[源代码]¶
基类:
BaseModel排序键配置(V3新增)
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class CompletedOrdersBackfillConfig(*, file_path='temp/excel/已完成工单【202601--202612】.xlsx', match_field='生产令号', source_field='供货类型', db_match_field='production_order_no', db_target_field='supply_type', overwrite_existing=False, backup_before_update=True, backup_suffix='_before_supply_type_backfill')[源代码]¶
基类:
BaseModel已完成工单回填配置模型
定义从"已完成工单"Excel的月份工作表中读取"供货类型"字段并回填到数据库的规则。 核心设计:
只处理月份工作表(2026-01~2026-12)
按字段名称(列标题)匹配,不依赖列号/列字母
通过 production_order_no 匹配(同一生产令号所有记录回填相同值)
- 参数:
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].