certflow.config package¶
配置模块
提供配置加载和管理功能,是CertFlow配置系统的入口模块.
该模块导出配置加载器和配置模型的主要类,方便其他模块统一导入使用.
- Exports:
ConfigLoader: 配置加载器类,负责加载YAML配置文件、处理环境变量和文件包含 RootConfig: 根配置模型类,定义所有配置项的数据结构和验证规则 get_config: 全局配置单例获取函数,提供便捷的配置访问接口
示例
>>> from certflow.config import get_config, ConfigLoader
>>>
>>> # 方式1: 使用全局单例
>>> config = get_config()
>>> print(config.app.name)
"CertFlow"
>>>
>>> # 方式2: 创建独立加载器实例
>>> loader = ConfigLoader()
>>> config = loader.load("custom_config.yaml")
- class ConfigLoader(config_dir=None)[源代码]¶
基类:
object配置加载器,负责加载和处理YAML配置文件
提供完整的配置文件加载功能,包括环境变量替换、配置文件包含和配置验证. 支持从指定目录加载YAML格式的配置文件,并自动处理配置中的动态内容.
- 参数:
config_dir (Path | None)
- config_dir¶
配置文件所在目录的路径,默认为项目根目录下的config文件夹
- _config¶
内部存储的配置对象,仅在调用load()后有效
示例
>>> from pathlib import Path >>> loader = ConfigLoader(Path("/path/to/config")) >>> config = loader.load("app_config.yaml") >>> print(config.database.host)
- __init__(config_dir=None)[源代码]¶
初始化配置加载器实例
如果不指定配置目录,会自动定位到项目根目录下的config文件夹. 开发环境: 通过当前文件向上查找4级父目录确定. 打包环境: 使用可执行文件所在目录 (sys.frozen).
- 参数:
config_dir (Path | None) -- 配置文件所在目录路径,默认为None时自动使用项目config目录
- load(config_file='config.yaml')[源代码]¶
加载配置文件并进行处理
执行完整的配置加载流程: 读取文件 -> 展开顶层包含 -> 解析YAML -> 处理嵌套包含 -> 替换环境变量 -> 验证配置结构.
- 参数:
config_file (str) -- 配置文件名,默认为"config.yaml"
- 返回:
经过验证的配置对象,包含所有处理后的配置数据
- 返回类型:
- 抛出:
FileNotFoundError -- 指定的配置文件不存在
yaml.YAMLError -- YAML语法错误或格式不正确
ValidationError -- 配置内容不符合定义的数据模型
- property config: RootConfig¶
获取已加载的配置对象
该属性提供对加载后的配置对象的只读访问. 必须先调用load()方法,否则会抛出运行时错误.
- 返回:
已加载的配置对象
- 返回类型:
- 抛出:
RuntimeError -- 配置尚未加载,需要先调用load()方法
- 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, templates=None, vba_import=None, certificate_print=None, completed_orders_backfill=None, query_page=<factory>, grouping=None, sorting=None)[源代码]¶
基类:
BaseModel根配置模型
所有配置的顶层容器,聚合所有子配置模块.
- 参数:
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)
- app¶
应用基础配置
- paths¶
路径配置
- sales_plan¶
销售计划配置
- sort_rules¶
排序规则配置
- certificate¶
合格证配置
- import_deduplication¶
导入去重配置
- database¶
数据库配置
- logging¶
日志配置
- ui¶
UI配置
- color_mapping¶
颜色映射配置
- numbering¶
编号规则配置(V2)
- Type:
- duplicate_check¶
重复检查配置(V2)
- Type:
- unique_key¶
唯一键配置(V2)
- Type:
- priority_rules¶
优先级规则配置(V2)
- Type:
- group_by¶
分组规则配置(V2)
- 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:
- 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 -- 当日志级别不在有效值范围内时抛出
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- get_config(config_dir=None, reload=False)[源代码]¶
获取全局配置实例(单例模式)
提供便捷的全局配置访问接口,避免在多处重复创建ConfigLoader实例. 首次调用时会自动加载配置,后续调用返回缓存的配置对象.
- 参数:
- 返回:
全局配置对象实例
- 返回类型:
示例
>>> from certflow.config.loader import get_config >>> config = get_config() # 首次调用,自动加载配置 >>> db_config = get_config().database # 使用缓存配置 >>> new_config = get_config(reload=True) # 强制重新加载
Submodules¶
- certflow.config.loader module
- certflow.config.models module
RootConfigRootConfig.appRootConfig.pathsRootConfig.sales_planRootConfig.sort_rulesRootConfig.certificateRootConfig.import_deduplicationRootConfig.databaseRootConfig.loggingRootConfig.uiRootConfig.color_mappingRootConfig.numberingRootConfig.duplicate_checkRootConfig.unique_keyRootConfig.priority_rulesRootConfig.group_byRootConfig.exportRootConfig.sales_plan_fillRootConfig.field_fallbacksRootConfig.field_fill_rulesRootConfig.sales_importerRootConfig.qualified_listRootConfig.import_mappingRootConfig.export_debugRootConfig.test_reportRootConfig.printerRootConfig.environmentRootConfig.colorsRootConfig.image_backgroundsRootConfig.templatesRootConfig.vba_importRootConfig.certificate_printRootConfig.appRootConfig.pathsRootConfig.sales_planRootConfig.certificateRootConfig.import_deduplicationRootConfig.databaseRootConfig.loggingRootConfig.uiRootConfig.color_mappingRootConfig.numberingRootConfig.duplicate_checkRootConfig.unique_keyRootConfig.priority_rulesRootConfig.exportRootConfig.sales_plan_fillRootConfig.field_fallbacksRootConfig.field_fill_rulesRootConfig.sales_importerRootConfig.qualified_listRootConfig.import_mappingRootConfig.export_debugRootConfig.test_reportRootConfig.printerRootConfig.environmentRootConfig.colorsRootConfig.image_backgroundsRootConfig.templatesRootConfig.vba_importRootConfig.certificate_printRootConfig.completed_orders_backfillRootConfig.query_pageRootConfig.groupingRootConfig.sortingRootConfig.validate_log_level()RootConfig.model_config
AppConfigPathsConfigPathsConfig.databasePathsConfig.tempPathsConfig.logsPathsConfig.resourcesPathsConfig.templatesPathsConfig.sales_planPathsConfig.qualified_listPathsConfig.nameplate_dbPathsConfig.quality_certPathsConfig.transfer_docsPathsConfig.backupPathsConfig.outputPathsConfig.excel_layoutPathsConfig.imagesPathsConfig.databasePathsConfig.tempPathsConfig.logsPathsConfig.resourcesPathsConfig.templatesPathsConfig.sales_planPathsConfig.qualified_listPathsConfig.nameplate_dbPathsConfig.quality_certPathsConfig.transfer_docsPathsConfig.backupPathsConfig.outputPathsConfig.excel_layoutPathsConfig.imagesPathsConfig.model_config
SalesPlanConfigSalesPlanConfig.column_mappingSalesPlanConfig.header_rowSalesPlanConfig.data_start_rowSalesPlanConfig.required_fieldsSalesPlanConfig.valid_row_checkSalesPlanConfig.column_mappingSalesPlanConfig.header_rowSalesPlanConfig.data_start_rowSalesPlanConfig.required_fieldsSalesPlanConfig.valid_row_checkSalesPlanConfig.model_config
CertificateConfigCertificateConfig.prefixCertificateConfig.date_formatCertificateConfig.format_templateCertificateConfig.suffix_rulesCertificateConfig.defaultsCertificateConfig.prefixCertificateConfig.date_formatCertificateConfig.format_templateCertificateConfig.suffix_rulesCertificateConfig.defaultsCertificateConfig.model_config
ImportDeduplicationConfigImportDeduplicationConfig.strategyImportDeduplicationConfig.check_within_fileImportDeduplicationConfig.check_against_dbImportDeduplicationConfig.unique_key_fieldsImportDeduplicationConfig.duplicate_handlingImportDeduplicationConfig.unique_key_generationImportDeduplicationConfig.field_normalizationImportDeduplicationConfig.strategyImportDeduplicationConfig.check_within_fileImportDeduplicationConfig.check_against_dbImportDeduplicationConfig.unique_key_fieldsImportDeduplicationConfig.duplicate_handlingImportDeduplicationConfig.unique_key_generationImportDeduplicationConfig.field_normalizationImportDeduplicationConfig.model_config
DatabaseConfigLoggingConfigUIConfigColorMappingConfigColorMappingConfig.status_colorsColorMappingConfig.priority_colorsColorMappingConfig.vba_colorsColorMappingConfig.font_color_to_shippingColorMappingConfig.bg_color_to_statusColorMappingConfig.theme_font_colorsColorMappingConfig.font_colorsColorMappingConfig.bg_colorsColorMappingConfig.status_colorsColorMappingConfig.priority_colorsColorMappingConfig.vba_colorsColorMappingConfig.font_color_to_shippingColorMappingConfig.bg_color_to_statusColorMappingConfig.theme_font_colorsColorMappingConfig.font_colorsColorMappingConfig.bg_colorsColorMappingConfig.model_config
NumberingConfigNumberingSuffixRuleDuplicateCheckConfigUniqueKeyConfigUniqueKeyFieldPriorityRulesConfigPriorityRulesConfig.high_thresholdPriorityRulesConfig.medium_thresholdPriorityRulesConfig.high_labelPriorityRulesConfig.medium_labelPriorityRulesConfig.low_labelPriorityRulesConfig.high_colorPriorityRulesConfig.medium_colorPriorityRulesConfig.low_colorPriorityRulesConfig.high_thresholdPriorityRulesConfig.medium_thresholdPriorityRulesConfig.high_labelPriorityRulesConfig.medium_labelPriorityRulesConfig.low_labelPriorityRulesConfig.high_colorPriorityRulesConfig.medium_colorPriorityRulesConfig.low_colorPriorityRulesConfig.model_config
ExportConfigSalesImporterConfigVBAImportConfigVBAImportConfig.sales_plan_filesVBAImportConfig.qualified_listVBAImportConfig.field_mappingVBAImportConfig.color_mappingVBAImportConfig.duplicate_check_fieldsVBAImportConfig.sales_plan_filesVBAImportConfig.qualified_listVBAImportConfig.field_mappingVBAImportConfig.color_mappingVBAImportConfig.duplicate_check_fieldsVBAImportConfig.model_config
CertificatePrintConfigCertificatePrintConfig.printerCertificatePrintConfig.print_areaCertificatePrintConfig.batchCertificatePrintConfig.templatesCertificatePrintConfig.numbering_modesCertificatePrintConfig.printerCertificatePrintConfig.print_areaCertificatePrintConfig.batchCertificatePrintConfig.templatesCertificatePrintConfig.numbering_modesCertificatePrintConfig.model_config
CertificatePrintTemplateConfigCertificatePrintTemplateConfig.nameCertificatePrintTemplateConfig.style_codeCertificatePrintTemplateConfig.picture_optionsCertificatePrintTemplateConfig.fieldsCertificatePrintTemplateConfig.nameCertificatePrintTemplateConfig.style_codeCertificatePrintTemplateConfig.picture_optionsCertificatePrintTemplateConfig.fieldsCertificatePrintTemplateConfig.model_config
TestReportConfigPrinterConfigEnvironmentConfigColorsConfigImageBackgroundsConfigImportMappingConfigGroupingConfigGroupingNumberingConfigGroupingNumberingConfig.use_global_prefixGroupingNumberingConfig.prefix_formatGroupingNumberingConfig.seq_formatGroupingNumberingConfig.separatorGroupingNumberingConfig.full_seq_fieldGroupingNumberingConfig.group_index_fieldGroupingNumberingConfig.group_key_fieldGroupingNumberingConfig.model_config
SortingConfigSortingKeyCompletedOrdersBackfillConfigCompletedOrdersBackfillConfig.file_pathCompletedOrdersBackfillConfig.match_fieldCompletedOrdersBackfillConfig.source_fieldCompletedOrdersBackfillConfig.db_match_fieldCompletedOrdersBackfillConfig.db_target_fieldCompletedOrdersBackfillConfig.overwrite_existingCompletedOrdersBackfillConfig.backup_before_updateCompletedOrdersBackfillConfig.backup_suffixCompletedOrdersBackfillConfig.model_config
- certflow.config.settings module
get_config_value()APP_NAMEAPP_VERSIONAPP_YEARAPP_ORGANIZATIONAPP_DEBUGCONFIG_DIRDATABASE_DIRTEMP_DIRLOGS_DIRRESOURCES_DIRUI_CONFIG_FILEDATABASE_PATHDATABASE_URLSALES_PLAN_PATHSALES_PLAN_NETWORKSALES_PLAN_LOCAL_COPYSALES_PLAN_MASTER_FILESALES_PLAN_MASTER_SHEETQUALIFIED_LIST_PATHQUALIFIED_LIST_XLSM_ORIGINALQUALIFIED_LIST_SHEETNAMEPLATE_DB_PATHNAMEPLATE_DB_BACKUPQUALITY_CERT_FOREIGN_DIRQUALITY_CERT_SELF_MADE_DIRQUALITY_CERT_REPORT_DIRTRANSFER_DOCS_NETWORKTRANSFER_DOCS_LOCALCERT_HISTORY_PATHOUTPUT_BASEOUTPUT_TEST_REPORTOUTPUT_QUALITY_CERTOUTPUT_CERTIFICATE_IMAGESOUTPUT_NAMEPLATEOUTPUT_BACKUPSNAMEPLATE_IMAGE_PATHNAMEPLATE_IMAGE_BACKUPROW_HEIGHT_TITLEROW_HEIGHT_HEADERROW_HEIGHT_DATAROW_HEIGHT_SUMMARYNUMBERING_PREFIXNUMBERING_FORMATNUMBERING_SUFFIXESNUMBERING_AUTO_NUMBER_MODENUMBERING_SUFFIX_RULESCERTIFICATE_PREFIXCERTIFICATE_DATE_FORMATCERTIFICATE_FORMAT_TEMPLATEVBA_COLORSFONT_COLOR_TO_SHIPPINGBG_COLOR_TO_STATUSTHEME_FONT_COLORSDUPLICATE_CHECK_FIELDSUNIQUE_KEY_SEPARATORUNIQUE_KEY_DATE_TO_SERIALUNIQUE_KEY_FIELD_FALLBACKSSORT_RULES_KEYSSORT_KEYSGROUP_BY_FIELDSGROUP_BY_FIELDS_NO_PROJECTGROUP_BY_SUMMARY_FIELDGROUP_BY_NUMBER_FORMATEXPORT_HYPERLINK_COLUMNEXPORT_HYPERLINK_REF_PREFIXEXPORT_HYPERLINK_WIDTHEXPORT_SUMMARY_LABELEXPORT_SUMMARY_LABEL_COLUMNEXPORT_SUMMARY_BG_COLOREXPORT_SUMMARY_COL_RANGEEXPORT_SUMMARY_SUM_COLUMNSSALE_PLAN_COLUMNSCOLUMN_ALIASESSALES_PLAN_HEADER_ROWSALES_PLAN_DATA_START_ROWSALES_PLAN_SHEET_PATTERNSALES_PLAN_HEADER_KEYWORDSREQUIRED_FIELDSSTYLED_IMPORT_COLUMNSQUALIFIED_LIST_HEADER_ROWQUALIFIED_LIST_DATA_START_ROWQUALIFIED_LIST_REQUIRED_FIELDSIMPORT_MAPPING_PREPROCESSORIMPORT_MAPPING_COLUMN_MAPPINGIMPORT_MAPPING_DEFAULT_VALUESTEST_REPORT_COMPANY_NAMETEST_REPORT_FORM_CODELOG_ROTATIONLOG_RETENTIONLOG_COMPRESSIONLOG_FORMATLOG_LEVELDEFAULT_PRINTERSKIP_PRINTINGTEMPLATESTEMPLATE_CERTIFICATE_CHINESETEMPLATE_CERTIFICATE_BILINGUALTEMPLATE_CERTIFICATE_RUSSIANTEMPLATE_TEST_REPORT_SMALLTEMPLATE_TEST_REPORT_MEDIUMTEMPLATE_QUALITY_CERT_FILEIMAGE_BG_CHINESEIMAGE_BG_BILINGUALIMAGE_BG_RUSSIANDATABASE_TYPEDATABASE_ECHODATABASE_POOL_SIZEDATABASE_ACCESS_ENABLEDDATABASE_ACCESS_PRIMARYDATABASE_ACCESS_BACKUPENV_COMPUTER_NAMEENV_USERNAMECOLORS_YELLOWCOLORS_BLUECOLORS_REDCOLORS_GREENCOLORS_LIGHT_BLUEUSE_XLWINGSUSE_OPENPYXLUPDATE_ON_DUPLICATEMONITORED_FIELDSget_sort_rules()GROUPING_KEYSGROUPING_KEYS_NO_PROJECTSORTING_KEYSSORTING_FIELD_NAMESget_field_default()get_column_by_alias()get_ui_window_title()get_ui_table_alternating_colors()ensure_directories()reload_config()get_recent_files()add_recent_file()get_user_preference()get_skipped_columns()save_skipped_columns()get_import_config()save_import_config()get_recent_import_files()add_recent_import_file()get_file_import_config()clear_recent_files()save_sheet_config()ensure_ui_config()
- certflow.config.ui_config module
ButtonConfigButtonConfig.nameButtonConfig.textButtonConfig.iconButtonConfig.tooltipButtonConfig.page_indexButtonConfig.styleButtonConfig.enabledButtonConfig.nameButtonConfig.textButtonConfig.iconButtonConfig.tooltipButtonConfig.page_indexButtonConfig.styleButtonConfig.enabledButtonConfig.__init__()
PageConfigUIConfigUIConfig.main_windowUIConfig.title_barUIConfig.nav_buttonsUIConfig.welcome_pageUIConfig.import_pageUIConfig.log_pageUIConfig.status_barUIConfig.stylesUIConfig.main_windowUIConfig.title_barUIConfig.nav_buttonsUIConfig.welcome_pageUIConfig.import_pageUIConfig.log_pageUIConfig.status_barUIConfig.stylesUIConfig.load()UIConfig.get_nav_buttons()UIConfig.get_style()UIConfig.__init__()
StyleBuilder