excel-codegen 0.9.0__py3-none-any.whl

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.
Files changed (82) hide show
  1. excel_codegen/__init__.py +160 -0
  2. excel_codegen/__main__.py +8 -0
  3. excel_codegen/cli.py +1250 -0
  4. excel_codegen/derived.py +465 -0
  5. excel_codegen/example_pack.py +107 -0
  6. excel_codegen/examples/README.md +69 -0
  7. excel_codegen/examples/abs_fpi/ABS_FPI_load_cases.xlsx +0 -0
  8. excel_codegen/examples/abs_fpi/ABS_FPI_load_cases_render.bat +22 -0
  9. excel_codegen/examples/abs_fpi/ABS_FPI_load_cases_render.sh +23 -0
  10. excel_codegen/examples/abs_fpi/README.md +121 -0
  11. excel_codegen/examples/abs_fpi/abs_fpi.yaml +310 -0
  12. excel_codegen/examples/abs_fpi/abs_fpi_external.xlsx +0 -0
  13. excel_codegen/examples/abs_fpi/abs_fpi_external.yaml +162 -0
  14. excel_codegen/examples/abs_fpi/abs_fpi_external_render.bat +22 -0
  15. excel_codegen/examples/abs_fpi/abs_fpi_external_render.sh +23 -0
  16. excel_codegen/examples/abs_fpi/abs_fpi_internal.xlsx +0 -0
  17. excel_codegen/examples/abs_fpi/abs_fpi_internal.yaml +266 -0
  18. excel_codegen/examples/abs_fpi/abs_fpi_internal_render.bat +22 -0
  19. excel_codegen/examples/abs_fpi/abs_fpi_internal_render.sh +23 -0
  20. excel_codegen/examples/abs_fpi/compose.yaml +20 -0
  21. excel_codegen/examples/abs_fpi/generated/COT1-d20.559-mu60.js +124 -0
  22. excel_codegen/examples/abs_fpi/generated/COT1-d20.559-mu60_summary.md +30 -0
  23. excel_codegen/examples/abs_fpi/generated/EXT-T15-mu0-kf-1.js +91 -0
  24. excel_codegen/examples/abs_fpi/generated/EXT-T15-mu0-kf-1_summary.md +23 -0
  25. excel_codegen/examples/abs_fpi/generated/EXT-T15-mu90-kf+1.js +91 -0
  26. excel_codegen/examples/abs_fpi/generated/EXT-T15-mu90-kf+1_summary.md +23 -0
  27. excel_codegen/examples/abs_fpi/generated/EXT-T20.559-mu90-kf+1.js +91 -0
  28. excel_codegen/examples/abs_fpi/generated/EXT-T20.559-mu90-kf+1_summary.md +23 -0
  29. excel_codegen/examples/abs_fpi/generated/WBT6-d15.059-mu0.js +124 -0
  30. excel_codegen/examples/abs_fpi/generated/WBT6-d15.059-mu0_summary.md +30 -0
  31. excel_codegen/examples/abs_fpi/generated/WBT6-d8-mu90.js +124 -0
  32. excel_codegen/examples/abs_fpi/generated/WBT6-d8-mu90_summary.md +30 -0
  33. excel_codegen/examples/abs_fpi/generated/WBT7-d20.559-mu90.js +124 -0
  34. excel_codegen/examples/abs_fpi/generated/WBT7-d20.559-mu90_summary.md +30 -0
  35. excel_codegen/examples/abs_fpi/templates/ext_body.js.j2 +91 -0
  36. excel_codegen/examples/abs_fpi/templates/ext_summary.md.j2 +23 -0
  37. excel_codegen/examples/abs_fpi/templates/int_body.js.j2 +124 -0
  38. excel_codegen/examples/abs_fpi/templates/int_summary.md.j2 +30 -0
  39. excel_codegen/examples/basic/example.yaml +97 -0
  40. excel_codegen/examples/basic/example_formula.yaml +86 -0
  41. excel_codegen/examples/basic/generated/uart_init_Case1.c +6 -0
  42. excel_codegen/examples/basic/generated/uart_init_Case2.c +6 -0
  43. excel_codegen/examples/basic/generated/uart_summary_Case1.md +4 -0
  44. excel_codegen/examples/basic/generated/uart_summary_Case2.md +4 -0
  45. excel_codegen/examples/basic/generated_formula/uart_init_Case1.c +5 -0
  46. excel_codegen/examples/basic/generated_formula/uart_init_Case2.c +5 -0
  47. excel_codegen/examples/basic/generated_formula/uart_pins_Case1.csv +1 -0
  48. excel_codegen/examples/basic/generated_formula/uart_pins_Case2.csv +1 -0
  49. excel_codegen/examples/basic/template.xlsx +0 -0
  50. excel_codegen/examples/basic/template_formula.xlsx +0 -0
  51. excel_codegen/examples/basic/template_formula_render.bat +22 -0
  52. excel_codegen/examples/basic/template_formula_render.sh +23 -0
  53. excel_codegen/examples/basic/template_render.bat +22 -0
  54. excel_codegen/examples/basic/template_render.sh +23 -0
  55. excel_codegen/examples/nastran/generated/case_control.deck +18 -0
  56. excel_codegen/examples/nastran/generated/cc_01_LC1.inc +8 -0
  57. excel_codegen/examples/nastran/generated/cc_02_LC2.inc +8 -0
  58. excel_codegen/examples/nastran/generated/cc_03_LC3.inc +8 -0
  59. excel_codegen/examples/nastran/generated/cc_04_COMB4.inc +8 -0
  60. excel_codegen/examples/nastran/generated/cc_05_LC5.inc +8 -0
  61. excel_codegen/examples/nastran/generated/cc_summary_01_LC1.md +1 -0
  62. excel_codegen/examples/nastran/generated/cc_summary_02_LC2.md +1 -0
  63. excel_codegen/examples/nastran/generated/cc_summary_03_LC3.md +1 -0
  64. excel_codegen/examples/nastran/generated/cc_summary_04_COMB4.md +1 -0
  65. excel_codegen/examples/nastran/generated/cc_summary_05_LC5.md +1 -0
  66. excel_codegen/examples/nastran/nastran_case_control.xlsx +0 -0
  67. excel_codegen/examples/nastran/nastran_case_control.yaml +141 -0
  68. excel_codegen/examples/nastran/nastran_case_control_render.bat +22 -0
  69. excel_codegen/examples/nastran/nastran_case_control_render.sh +23 -0
  70. excel_codegen/excel_io.py +1885 -0
  71. excel_codegen/formula.py +674 -0
  72. excel_codegen/formula_eval.py +685 -0
  73. excel_codegen/jinja_env.py +92 -0
  74. excel_codegen/models.py +1008 -0
  75. excel_codegen/renderer.py +558 -0
  76. excel_codegen/utils.py +225 -0
  77. excel_codegen-0.9.0.dist-info/METADATA +179 -0
  78. excel_codegen-0.9.0.dist-info/RECORD +82 -0
  79. excel_codegen-0.9.0.dist-info/WHEEL +5 -0
  80. excel_codegen-0.9.0.dist-info/entry_points.txt +2 -0
  81. excel_codegen-0.9.0.dist-info/licenses/LICENSE +21 -0
  82. excel_codegen-0.9.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,160 @@
1
+ """excel_codegen —— Excel 模板参数填写 + Jinja2 代码生成器。
2
+
3
+ 典型用法::
4
+
5
+ from excel_codegen import load_config, create_template, render_all, write_results
6
+
7
+ config = load_config("examples/example.yaml")
8
+ create_template(config, "template.xlsx", cases=2, overwrite=True)
9
+ # ... 用户在 Excel 中填写参数 ...
10
+ output = render_all(config, "template.xlsx")
11
+ write_results("template.xlsx", config, output.results)
12
+
13
+ 命令行入口见 :mod:`excel_codegen.cli`(命令 ``excel-codegen``:init / render / validate / check)。
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ from .derived import (
19
+ DerivedError,
20
+ DerivedNotTranslatable,
21
+ derived_variables,
22
+ evaluate_derived,
23
+ is_derived,
24
+ is_translatable,
25
+ ordered_derived,
26
+ )
27
+ from .derived import (
28
+ validate_config as validate_derived,
29
+ )
30
+ from .excel_io import (
31
+ check_required_sheets,
32
+ create_template,
33
+ input_fingerprint,
34
+ load_workbook_file,
35
+ output_fingerprint,
36
+ read_cases,
37
+ read_global_values,
38
+ read_group_members,
39
+ read_metadata,
40
+ write_howto_sheet,
41
+ write_results,
42
+ write_run_scripts,
43
+ )
44
+ from .formula import (
45
+ FormulaError,
46
+ compile_formulas,
47
+ compile_line,
48
+ excel_literal,
49
+ )
50
+ from .formula_eval import (
51
+ FormulaEvalError,
52
+ evaluate_formula,
53
+ evaluate_template_values,
54
+ )
55
+ from .models import (
56
+ FIRST_CASE_COLUMN,
57
+ CaseData,
58
+ ExcelConfig,
59
+ ExcelSheets,
60
+ ProjectConfig,
61
+ RenderResult,
62
+ TemplateDef,
63
+ VariableDef,
64
+ VariablesConfig,
65
+ load_config,
66
+ )
67
+ from .renderer import (
68
+ RenderOutput,
69
+ build_context,
70
+ build_environment,
71
+ case_matches,
72
+ check_asserts,
73
+ collect_variables,
74
+ compile_asserts,
75
+ compile_case_filter,
76
+ export_files,
77
+ pvs,
78
+ render_all,
79
+ render_template,
80
+ validate_template,
81
+ )
82
+ from .utils import (
83
+ CodeGenError,
84
+ ConfigError,
85
+ ExcelError,
86
+ RenderError,
87
+ VarValue,
88
+ column_index_to_letter,
89
+ column_letter_to_index,
90
+ fingerprint,
91
+ parse_cell,
92
+ to_text,
93
+ )
94
+
95
+ __version__ = "0.9.0"
96
+
97
+ __all__ = [
98
+ "FIRST_CASE_COLUMN",
99
+ "CaseData",
100
+ "CodeGenError",
101
+ "ConfigError",
102
+ "DerivedError",
103
+ "DerivedNotTranslatable",
104
+ "ExcelConfig",
105
+ "ExcelError",
106
+ "ExcelSheets",
107
+ "FormulaError",
108
+ "FormulaEvalError",
109
+ "ProjectConfig",
110
+ "RenderError",
111
+ "RenderOutput",
112
+ "RenderResult",
113
+ "TemplateDef",
114
+ "VarValue",
115
+ "VariableDef",
116
+ "VariablesConfig",
117
+ "__version__",
118
+ "build_context",
119
+ "build_environment",
120
+ "case_matches",
121
+ "check_asserts",
122
+ "check_required_sheets",
123
+ "check_value_constraints",
124
+ "collect_variables",
125
+ "column_index_to_letter",
126
+ "column_letter_to_index",
127
+ "compile_asserts",
128
+ "compile_case_filter",
129
+ "compile_formulas",
130
+ "compile_line",
131
+ "create_template",
132
+ "derived_variables",
133
+ "evaluate_derived",
134
+ "evaluate_formula",
135
+ "evaluate_template_values",
136
+ "excel_literal",
137
+ "export_files",
138
+ "fingerprint",
139
+ "input_fingerprint",
140
+ "is_derived",
141
+ "is_translatable",
142
+ "load_config",
143
+ "load_workbook_file",
144
+ "ordered_derived",
145
+ "output_fingerprint",
146
+ "parse_cell",
147
+ "pvs",
148
+ "read_cases",
149
+ "read_global_values",
150
+ "read_group_members",
151
+ "read_metadata",
152
+ "render_all",
153
+ "render_template",
154
+ "to_text",
155
+ "validate_derived",
156
+ "validate_template",
157
+ "write_howto_sheet",
158
+ "write_results",
159
+ "write_run_scripts",
160
+ ]
@@ -0,0 +1,8 @@
1
+ """允许 ``python -m excel_codegen`` 调用 CLI。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .cli import app
6
+
7
+ if __name__ == "__main__": # pragma: no cover
8
+ app()