chronaxis 0.1.0.dev1__tar.gz → 0.1.0.dev2__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.
Files changed (855) hide show
  1. chronaxis-0.1.0.dev2/Docs/AI/README.md +88 -0
  2. chronaxis-0.1.0.dev2/Docs/AI/en/README.md +92 -0
  3. chronaxis-0.1.0.dev2/Docs/AI/en/semantics.md +85 -0
  4. chronaxis-0.1.0.dev2/Docs/AI/en/tasks.json +519 -0
  5. chronaxis-0.1.0.dev2/Docs/AI/en/workflow.md +49 -0
  6. chronaxis-0.1.0.dev2/Docs/AI/inputs.lock.json +204 -0
  7. chronaxis-0.1.0.dev2/Docs/AI/lookup.py +91 -0
  8. chronaxis-0.1.0.dev2/Docs/AI/run_analysis.py +35 -0
  9. chronaxis-0.1.0.dev2/Docs/AI/semantics.md +79 -0
  10. chronaxis-0.1.0.dev2/Docs/AI/tasks.json +519 -0
  11. chronaxis-0.1.0.dev2/Docs/AI/workflow.md +46 -0
  12. chronaxis-0.1.0.dev2/Docs/Current/aggregations.md +59 -0
  13. chronaxis-0.1.0.dev2/Docs/Current/calculations.md +180 -0
  14. chronaxis-0.1.0.dev2/Docs/Current/configuration-language.md +105 -0
  15. chronaxis-0.1.0.dev2/Docs/Current/documentation.json +7 -0
  16. chronaxis-0.1.0.dev2/Docs/Current/en/aggregations.md +59 -0
  17. chronaxis-0.1.0.dev2/Docs/Current/en/calculations.md +181 -0
  18. chronaxis-0.1.0.dev2/Docs/Current/en/configuration-language.md +108 -0
  19. chronaxis-0.1.0.dev2/Docs/Current/en/example-results.md +2150 -0
  20. chronaxis-0.1.0.dev2/Docs/Current/en/examples.md +156 -0
  21. chronaxis-0.1.0.dev2/Docs/Current/en/expressions.md +331 -0
  22. chronaxis-0.1.0.dev2/Docs/Current/en/fast-energy.md +126 -0
  23. chronaxis-0.1.0.dev2/Docs/Current/en/message-calculations.md +92 -0
  24. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/AnalysisError.md +18 -0
  25. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/AnalysisPlan.md +135 -0
  26. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/AnalysisResult.md +444 -0
  27. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/AnalysisRunner.md +210 -0
  28. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/BatchJob.md +21 -0
  29. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/BatchJobResult.md +54 -0
  30. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/BatchPlan.md +47 -0
  31. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/BatchReport.md +68 -0
  32. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/BatchRunner.md +63 -0
  33. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/ExportManifest.md +33 -0
  34. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/ExtensionRegistry.md +36 -0
  35. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/FunctionSpec.md +47 -0
  36. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/OutputManifest.md +33 -0
  37. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/PlanFragment.md +43 -0
  38. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/PlanValidationError.md +102 -0
  39. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/PresetSpec.md +61 -0
  40. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/ReductionSpec.md +49 -0
  41. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/ResultClosedError.md +18 -0
  42. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/RunMetadata.md +113 -0
  43. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/TimeConversion.md +27 -0
  44. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/TimeOverflowError.md +18 -0
  45. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/TransformSpec.md +50 -0
  46. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/build_preset.md +27 -0
  47. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/checked_add_ns.md +25 -0
  48. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/convert_time.md +29 -0
  49. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/explain_analysis_plan.md +34 -0
  50. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/fast.batch.run_batch.md +36 -0
  51. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/fast.run.md +33 -0
  52. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/load_analysis_plan.md +36 -0
  53. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/load_batch_plan.md +32 -0
  54. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/parse_datetime_ns.md +27 -0
  55. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/parse_duration.md +24 -0
  56. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/resolve_preset_roles.md +27 -0
  57. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/run_batch.md +43 -0
  58. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/shift_times_reference.md +25 -0
  59. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/time_deltas_reference.md +26 -0
  60. chronaxis-0.1.0.dev2/Docs/Current/en/public-api/validate_analysis_plan.md +33 -0
  61. chronaxis-0.1.0.dev2/Docs/Current/en/public-api.json +1823 -0
  62. chronaxis-0.1.0.dev2/Docs/Current/en/results.md +259 -0
  63. chronaxis-0.1.0.dev2/Docs/Current/en/schema-translations.json +388 -0
  64. chronaxis-0.1.0.dev2/Docs/Current/example-results.md +2139 -0
  65. chronaxis-0.1.0.dev2/Docs/Current/examples/analysis-imports.yaml +22 -0
  66. chronaxis-0.1.0.dev2/Docs/Current/examples/analysis.yaml +23 -0
  67. chronaxis-0.1.0.dev2/Docs/Current/examples/conditional-energy.yaml +36 -0
  68. chronaxis-0.1.0.dev2/Docs/Current/examples/data/can/power-statistics.asc +7 -0
  69. chronaxis-0.1.0.dev2/Docs/Current/examples/example_support.py +22 -0
  70. chronaxis-0.1.0.dev2/Docs/Current/examples/execution-comparison.json +85 -0
  71. chronaxis-0.1.0.dev2/Docs/Current/examples/export-can-minimal.yaml +24 -0
  72. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/analysis-blf.yaml +22 -0
  73. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/analysis.yaml +22 -0
  74. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/batch.yaml +5 -0
  75. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/data/power.dbc +6 -0
  76. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/data/run10.asc +4 -0
  77. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/data/run2.asc +5 -0
  78. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/data/single.blf +0 -0
  79. chronaxis-0.1.0.dev2/Docs/Current/examples/fast/unsupported.yaml +24 -0
  80. chronaxis-0.1.0.dev2/Docs/Current/examples/input-csv-minimal.yaml +23 -0
  81. chronaxis-0.1.0.dev2/Docs/Current/examples/lookup-power.yaml +27 -0
  82. chronaxis-0.1.0.dev2/Docs/Current/examples/message-directions.yaml +57 -0
  83. chronaxis-0.1.0.dev2/Docs/Current/examples/message-energy.yaml +40 -0
  84. chronaxis-0.1.0.dev2/Docs/Current/examples/message-minimal.yaml +28 -0
  85. chronaxis-0.1.0.dev2/Docs/Current/examples/power-statistics.yaml +83 -0
  86. chronaxis-0.1.0.dev2/Docs/Current/examples/preset-charge-energy.yaml +41 -0
  87. chronaxis-0.1.0.dev2/Docs/Current/examples/preset-charge-minimal.yaml +31 -0
  88. chronaxis-0.1.0.dev2/Docs/Current/examples/preset-fault-context.yaml +27 -0
  89. chronaxis-0.1.0.dev2/Docs/Current/examples/quality.yaml +19 -0
  90. chronaxis-0.1.0.dev2/Docs/Current/examples/readability_examples.py +203 -0
  91. chronaxis-0.1.0.dev2/Docs/Current/examples/results/conditional-energy-yaml//344/272/213/344/273/266/347/273/223/346/236/234.csv +2 -0
  92. chronaxis-0.1.0.dev2/Docs/Current/examples/results/power-statistics-yaml/result-summary.json +76 -0
  93. chronaxis-0.1.0.dev2/Docs/Current/examples/results/power-statistics-yaml//344/272/213/344/273/266/347/273/223/346/236/234.csv +5 -0
  94. chronaxis-0.1.0.dev2/Docs/Current/examples/results/power-statistics-yaml//344/274/232/350/257/235/347/273/223/346/236/234.csv +2 -0
  95. chronaxis-0.1.0.dev2/Docs/Current/examples/results/power-statistics-yaml//347/252/227/345/217/243/347/273/223/346/236/234.csv +2 -0
  96. chronaxis-0.1.0.dev2/Docs/Current/examples/results/power-statistics-yaml//350/201/232/345/220/210/347/273/223/346/236/234.csv +2 -0
  97. chronaxis-0.1.0.dev2/Docs/Current/examples/sequence-outcomes.yaml +39 -0
  98. chronaxis-0.1.0.dev2/Docs/Current/examples/signal-enum-minimal.yaml +19 -0
  99. chronaxis-0.1.0.dev2/Docs/Current/examples/signal-number-conversion.yaml +23 -0
  100. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/analysis.yaml +81 -0
  101. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/host-analysis.yaml +34 -0
  102. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/host_extensions.py +119 -0
  103. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/meter.asc +8 -0
  104. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/meter.dbc +9 -0
  105. chronaxis-0.1.0.dev2/Docs/Current/examples/temporal/rolling-actual.yaml +22 -0
  106. chronaxis-0.1.0.dev2/Docs/Current/examples/window-merged.yaml +28 -0
  107. chronaxis-0.1.0.dev2/Docs/Current/examples.md +140 -0
  108. chronaxis-0.1.0.dev2/Docs/Current/expressions.md +363 -0
  109. chronaxis-0.1.0.dev2/Docs/Current/fast-energy.md +126 -0
  110. chronaxis-0.1.0.dev2/Docs/Current/message-calculations.md +90 -0
  111. chronaxis-0.1.0.dev2/Docs/Current/public-api/AnalysisError.md +23 -0
  112. chronaxis-0.1.0.dev2/Docs/Current/public-api/AnalysisPlan.md +172 -0
  113. chronaxis-0.1.0.dev2/Docs/Current/public-api/AnalysisResult.md +463 -0
  114. chronaxis-0.1.0.dev2/Docs/Current/public-api/AnalysisRunner.md +211 -0
  115. chronaxis-0.1.0.dev2/Docs/Current/public-api/BatchJob.md +27 -0
  116. chronaxis-0.1.0.dev2/Docs/Current/public-api/BatchJobResult.md +72 -0
  117. chronaxis-0.1.0.dev2/Docs/Current/public-api/BatchPlan.md +58 -0
  118. chronaxis-0.1.0.dev2/Docs/Current/public-api/BatchReport.md +124 -0
  119. chronaxis-0.1.0.dev2/Docs/Current/public-api/BatchRunner.md +96 -0
  120. chronaxis-0.1.0.dev2/Docs/Current/public-api/ExportManifest.md +28 -0
  121. chronaxis-0.1.0.dev2/Docs/Current/public-api/ExtensionRegistry.md +36 -0
  122. chronaxis-0.1.0.dev2/Docs/Current/public-api/FunctionSpec.md +47 -0
  123. chronaxis-0.1.0.dev2/Docs/Current/public-api/OutputManifest.md +31 -0
  124. chronaxis-0.1.0.dev2/Docs/Current/public-api/PlanFragment.md +57 -0
  125. chronaxis-0.1.0.dev2/Docs/Current/public-api/PlanValidationError.md +168 -0
  126. chronaxis-0.1.0.dev2/Docs/Current/public-api/PresetSpec.md +78 -0
  127. chronaxis-0.1.0.dev2/Docs/Current/public-api/ReductionSpec.md +49 -0
  128. chronaxis-0.1.0.dev2/Docs/Current/public-api/ResultClosedError.md +23 -0
  129. chronaxis-0.1.0.dev2/Docs/Current/public-api/RunMetadata.md +113 -0
  130. chronaxis-0.1.0.dev2/Docs/Current/public-api/TimeConversion.md +37 -0
  131. chronaxis-0.1.0.dev2/Docs/Current/public-api/TimeOverflowError.md +26 -0
  132. chronaxis-0.1.0.dev2/Docs/Current/public-api/TransformSpec.md +50 -0
  133. chronaxis-0.1.0.dev2/Docs/Current/public-api/build_preset.md +44 -0
  134. chronaxis-0.1.0.dev2/Docs/Current/public-api/checked_add_ns.md +38 -0
  135. chronaxis-0.1.0.dev2/Docs/Current/public-api/convert_time.md +48 -0
  136. chronaxis-0.1.0.dev2/Docs/Current/public-api/explain_analysis_plan.md +54 -0
  137. chronaxis-0.1.0.dev2/Docs/Current/public-api/fast.batch.run_batch.md +36 -0
  138. chronaxis-0.1.0.dev2/Docs/Current/public-api/fast.run.md +33 -0
  139. chronaxis-0.1.0.dev2/Docs/Current/public-api/load_analysis_plan.md +50 -0
  140. chronaxis-0.1.0.dev2/Docs/Current/public-api/load_batch_plan.md +48 -0
  141. chronaxis-0.1.0.dev2/Docs/Current/public-api/parse_datetime_ns.md +43 -0
  142. chronaxis-0.1.0.dev2/Docs/Current/public-api/parse_duration.md +38 -0
  143. chronaxis-0.1.0.dev2/Docs/Current/public-api/resolve_preset_roles.md +45 -0
  144. chronaxis-0.1.0.dev2/Docs/Current/public-api/run_batch.md +55 -0
  145. chronaxis-0.1.0.dev2/Docs/Current/public-api/shift_times_reference.md +41 -0
  146. chronaxis-0.1.0.dev2/Docs/Current/public-api/time_deltas_reference.md +45 -0
  147. chronaxis-0.1.0.dev2/Docs/Current/public-api/validate_analysis_plan.md +55 -0
  148. chronaxis-0.1.0.dev2/Docs/Current/public-api.json +1822 -0
  149. chronaxis-0.1.0.dev2/Docs/Current/results.md +259 -0
  150. chronaxis-0.1.0.dev2/Docs/Release/distribution.md +39 -0
  151. chronaxis-0.1.0.dev2/Docs/Release/publishing.en.md +131 -0
  152. chronaxis-0.1.0.dev2/Docs/Release/publishing.md +131 -0
  153. chronaxis-0.1.0.dev2/Docs/Release/release-notes-0.1.0.dev2.en.md +45 -0
  154. chronaxis-0.1.0.dev2/Docs/Release/release-notes-0.1.0.dev2.md +45 -0
  155. chronaxis-0.1.0.dev2/Docs/Release/third-party.md +24 -0
  156. chronaxis-0.1.0.dev2/Docs/Release/trusted-publishing.en.md +35 -0
  157. chronaxis-0.1.0.dev2/Docs/Release/trusted-publishing.md +35 -0
  158. chronaxis-0.1.0.dev2/Docs/Release/versioning.md +21 -0
  159. chronaxis-0.1.0.dev2/Docs/Schema/analysis.schema.json +9214 -0
  160. chronaxis-0.1.0.dev2/MANIFEST.in +225 -0
  161. chronaxis-0.1.0.dev2/PKG-INFO +172 -0
  162. chronaxis-0.1.0.dev2/README.en.md +143 -0
  163. chronaxis-0.1.0.dev2/README.md +143 -0
  164. chronaxis-0.1.0.dev2/pyproject.toml +50 -0
  165. chronaxis-0.1.0.dev2/setup.py +80 -0
  166. chronaxis-0.1.0.dev2/src/chronaxis/__init__.py +72 -0
  167. chronaxis-0.1.0.dev2/src/chronaxis/__main__.py +12 -0
  168. chronaxis-0.1.0.dev2/src/chronaxis/_batch_worker.py +69 -0
  169. chronaxis-0.1.0.dev2/src/chronaxis/analysis_cli.py +189 -0
  170. chronaxis-0.1.0.dev2/src/chronaxis/batch/api.py +53 -0
  171. chronaxis-0.1.0.dev2/src/chronaxis/batch/cli.py +48 -0
  172. chronaxis-0.1.0.dev2/src/chronaxis/batch/models.py +230 -0
  173. chronaxis-0.1.0.dev2/src/chronaxis/batch/process_transport.py +155 -0
  174. chronaxis-0.1.0.dev2/src/chronaxis/batch/publication.py +61 -0
  175. chronaxis-0.1.0.dev2/src/chronaxis/batch/runner.py +238 -0
  176. chronaxis-0.1.0.dev2/src/chronaxis/can_dependencies.py +42 -0
  177. chronaxis-0.1.0.dev2/src/chronaxis/cli.py +144 -0
  178. chronaxis-0.1.0.dev2/src/chronaxis/configuration/diagnostics.py +116 -0
  179. chronaxis-0.1.0.dev2/src/chronaxis/configuration/file_tools.py +134 -0
  180. chronaxis-0.1.0.dev2/src/chronaxis/configuration/imports.py +144 -0
  181. chronaxis-0.1.0.dev2/src/chronaxis/configuration/origins.py +90 -0
  182. chronaxis-0.1.0.dev2/src/chronaxis/configuration/resolution.py +183 -0
  183. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/batch/analysis-annotated.yaml +18 -0
  184. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/batch/analysis-minimal.yaml +18 -0
  185. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-asc/annotated.yaml +18 -0
  186. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-asc/minimal.yaml +18 -0
  187. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-blf/annotated.yaml +18 -0
  188. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-blf/minimal.yaml +18 -0
  189. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-export/annotated.yaml +23 -0
  190. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/can-export/minimal.yaml +23 -0
  191. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/catalog.json +212 -0
  192. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/charge-session/annotated.yaml +38 -0
  193. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/charge-session/minimal.yaml +38 -0
  194. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/command-response/annotated.yaml +32 -0
  195. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/command-response/minimal.yaml +36 -0
  196. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/fault-window/annotated.yaml +25 -0
  197. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/fault-window/minimal.yaml +27 -0
  198. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/raw-can-csv/annotated.yaml +34 -0
  199. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/raw-can-csv/minimal.yaml +35 -0
  200. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/signal-csv/annotated.yaml +27 -0
  201. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/signal-csv/minimal.yaml +27 -0
  202. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/signal-export/annotated.yaml +27 -0
  203. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/signal-export/minimal.yaml +29 -0
  204. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/stability/annotated.yaml +37 -0
  205. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/stability/minimal.yaml +37 -0
  206. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/threshold/annotated.yaml +22 -0
  207. chronaxis-0.1.0.dev2/src/chronaxis/configuration/templates/threshold/minimal.yaml +22 -0
  208. chronaxis-0.1.0.dev2/src/chronaxis/core/__init__.py +72 -0
  209. chronaxis-0.1.0.dev2/src/chronaxis/core/affine.py +79 -0
  210. chronaxis-0.1.0.dev2/src/chronaxis/core/affine_numpy.py +84 -0
  211. chronaxis-0.1.0.dev2/src/chronaxis/core/binding.py +512 -0
  212. chronaxis-0.1.0.dev2/src/chronaxis/core/calculation_output_numpy.py +29 -0
  213. chronaxis-0.1.0.dev2/src/chronaxis/core/calculation_output_reference.py +27 -0
  214. chronaxis-0.1.0.dev2/src/chronaxis/core/calculations.py +518 -0
  215. chronaxis-0.1.0.dev2/src/chronaxis/core/calculations_memory_numpy.py +144 -0
  216. chronaxis-0.1.0.dev2/src/chronaxis/core/calculations_memory_reference.py +191 -0
  217. chronaxis-0.1.0.dev2/src/chronaxis/core/calculations_numpy.py +315 -0
  218. chronaxis-0.1.0.dev2/src/chronaxis/core/calculations_reference.py +303 -0
  219. chronaxis-0.1.0.dev2/src/chronaxis/core/conditional_time_reduction_numpy.py +229 -0
  220. chronaxis-0.1.0.dev2/src/chronaxis/core/conditional_time_reduction_reference.py +221 -0
  221. chronaxis-0.1.0.dev2/src/chronaxis/core/counts_v4.py +34 -0
  222. chronaxis-0.1.0.dev2/src/chronaxis/core/declarations.py +217 -0
  223. chronaxis-0.1.0.dev2/src/chronaxis/core/decoded_binding.py +214 -0
  224. chronaxis-0.1.0.dev2/src/chronaxis/core/enum_codes.py +223 -0
  225. chronaxis-0.1.0.dev2/src/chronaxis/core/expression.py +719 -0
  226. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_integer_numpy.py +60 -0
  227. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_integer_reference.py +46 -0
  228. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_integer_v4.py +97 -0
  229. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_math_numpy.py +47 -0
  230. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_math_reference.py +49 -0
  231. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_math_v4.py +148 -0
  232. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_numpy.py +380 -0
  233. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_reference.py +310 -0
  234. chronaxis-0.1.0.dev2/src/chronaxis/core/expression_v4.py +302 -0
  235. chronaxis-0.1.0.dev2/src/chronaxis/core/extension_points.py +38 -0
  236. chronaxis-0.1.0.dev2/src/chronaxis/core/function_contracts.py +74 -0
  237. chronaxis-0.1.0.dev2/src/chronaxis/core/lookup.py +163 -0
  238. chronaxis-0.1.0.dev2/src/chronaxis/core/lookup_compiler.py +47 -0
  239. chronaxis-0.1.0.dev2/src/chronaxis/core/lookup_numpy.py +59 -0
  240. chronaxis-0.1.0.dev2/src/chronaxis/core/lookup_reference.py +50 -0
  241. chronaxis-0.1.0.dev2/src/chronaxis/core/message_binding.py +345 -0
  242. chronaxis-0.1.0.dev2/src/chronaxis/core/models.py +486 -0
  243. chronaxis-0.1.0.dev2/src/chronaxis/core/moments.py +68 -0
  244. chronaxis-0.1.0.dev2/src/chronaxis/core/moments_numpy.py +87 -0
  245. chronaxis-0.1.0.dev2/src/chronaxis/core/moments_reference.py +55 -0
  246. chronaxis-0.1.0.dev2/src/chronaxis/core/normalize_numpy.py +398 -0
  247. chronaxis-0.1.0.dev2/src/chronaxis/core/numeric.py +481 -0
  248. chronaxis-0.1.0.dev2/src/chronaxis/core/numeric_numpy.py +454 -0
  249. chronaxis-0.1.0.dev2/src/chronaxis/core/quantile_numpy.py +33 -0
  250. chronaxis-0.1.0.dev2/src/chronaxis/core/quantile_reference.py +31 -0
  251. chronaxis-0.1.0.dev2/src/chronaxis/core/quantiles.py +198 -0
  252. chronaxis-0.1.0.dev2/src/chronaxis/core/rate_numpy.py +93 -0
  253. chronaxis-0.1.0.dev2/src/chronaxis/core/rate_reference.py +69 -0
  254. chronaxis-0.1.0.dev2/src/chronaxis/core/rate_transforms.py +105 -0
  255. chronaxis-0.1.0.dev2/src/chronaxis/core/rolling_values.py +76 -0
  256. chronaxis-0.1.0.dev2/src/chronaxis/core/sample_reduction.py +169 -0
  257. chronaxis-0.1.0.dev2/src/chronaxis/core/sample_reduction_numpy.py +185 -0
  258. chronaxis-0.1.0.dev2/src/chronaxis/core/sample_reduction_reference.py +184 -0
  259. chronaxis-0.1.0.dev2/src/chronaxis/core/selection.py +90 -0
  260. chronaxis-0.1.0.dev2/src/chronaxis/core/sequence_reference.py +250 -0
  261. chronaxis-0.1.0.dev2/src/chronaxis/core/state.py +505 -0
  262. chronaxis-0.1.0.dev2/src/chronaxis/core/state_numpy.py +306 -0
  263. chronaxis-0.1.0.dev2/src/chronaxis/core/temporal_memory_numpy.py +180 -0
  264. chronaxis-0.1.0.dev2/src/chronaxis/core/temporal_memory_reference.py +172 -0
  265. chronaxis-0.1.0.dev2/src/chronaxis/core/time_reduction.py +191 -0
  266. chronaxis-0.1.0.dev2/src/chronaxis/core/time_reduction_numpy.py +211 -0
  267. chronaxis-0.1.0.dev2/src/chronaxis/core/time_reduction_reference.py +211 -0
  268. chronaxis-0.1.0.dev2/src/chronaxis/core/types.py +109 -0
  269. chronaxis-0.1.0.dev2/src/chronaxis/core/unit_conversion.py +104 -0
  270. chronaxis-0.1.0.dev2/src/chronaxis/core/unit_registry.py +567 -0
  271. chronaxis-0.1.0.dev2/src/chronaxis/core/units.py +22 -0
  272. chronaxis-0.1.0.dev2/src/chronaxis/core/where_updates.py +114 -0
  273. chronaxis-0.1.0.dev2/src/chronaxis/core/window_delta.py +125 -0
  274. chronaxis-0.1.0.dev2/src/chronaxis/core/windows.py +224 -0
  275. chronaxis-0.1.0.dev2/src/chronaxis/execution/calculation_blocks.py +337 -0
  276. chronaxis-0.1.0.dev2/src/chronaxis/execution/calculation_values.py +57 -0
  277. chronaxis-0.1.0.dev2/src/chronaxis/execution/condition_evidence.py +373 -0
  278. chronaxis-0.1.0.dev2/src/chronaxis/execution/current_message_calculation.py +250 -0
  279. chronaxis-0.1.0.dev2/src/chronaxis/execution/driver_expression.py +366 -0
  280. chronaxis-0.1.0.dev2/src/chronaxis/execution/expressions.py +700 -0
  281. chronaxis-0.1.0.dev2/src/chronaxis/execution/historical_conditional_blocks.py +263 -0
  282. chronaxis-0.1.0.dev2/src/chronaxis/execution/historical_conditional_time_calculation.py +369 -0
  283. chronaxis-0.1.0.dev2/src/chronaxis/execution/historical_sample_calculation.py +342 -0
  284. chronaxis-0.1.0.dev2/src/chronaxis/execution/historical_selection_rows.py +300 -0
  285. chronaxis-0.1.0.dev2/src/chronaxis/execution/historical_time_calculation.py +342 -0
  286. chronaxis-0.1.0.dev2/src/chronaxis/execution/history.py +587 -0
  287. chronaxis-0.1.0.dev2/src/chronaxis/execution/hosted_sample_reduction.py +62 -0
  288. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_delta_condition.py +176 -0
  289. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_event_durations.py +147 -0
  290. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_integral.py +203 -0
  291. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_object_counts.py +34 -0
  292. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_rule_timeline.py +390 -0
  293. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_scope_calculations.py +311 -0
  294. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_sequences.py +200 -0
  295. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_session_calculations.py +853 -0
  296. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_time_calculation.py +356 -0
  297. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_value_history.py +161 -0
  298. chronaxis-0.1.0.dev2/src/chronaxis/execution/record_windows.py +233 -0
  299. chronaxis-0.1.0.dev2/src/chronaxis/execution/required_expression.py +48 -0
  300. chronaxis-0.1.0.dev2/src/chronaxis/execution/result_aggregations.py +270 -0
  301. chronaxis-0.1.0.dev2/src/chronaxis/execution/run_session.py +404 -0
  302. chronaxis-0.1.0.dev2/src/chronaxis/execution/state.py +314 -0
  303. chronaxis-0.1.0.dev2/src/chronaxis/execution/transform_partial.py +43 -0
  304. chronaxis-0.1.0.dev2/src/chronaxis/execution/transform_stream.py +321 -0
  305. chronaxis-0.1.0.dev2/src/chronaxis/execution/transform_window.py +84 -0
  306. chronaxis-0.1.0.dev2/src/chronaxis/execution/where_state.py +76 -0
  307. chronaxis-0.1.0.dev2/src/chronaxis/execution/window_replay.py +355 -0
  308. chronaxis-0.1.0.dev2/src/chronaxis/extension_runtime.py +279 -0
  309. chronaxis-0.1.0.dev2/src/chronaxis/extensions.py +188 -0
  310. chronaxis-0.1.0.dev2/src/chronaxis/fast/__init__.py +3 -0
  311. chronaxis-0.1.0.dev2/src/chronaxis/fast/__main__.py +13 -0
  312. chronaxis-0.1.0.dev2/src/chronaxis/fast/baseline.py +22 -0
  313. chronaxis-0.1.0.dev2/src/chronaxis/fast/batch.py +90 -0
  314. chronaxis-0.1.0.dev2/src/chronaxis/fast/can_io.py +168 -0
  315. chronaxis-0.1.0.dev2/src/chronaxis/fast/cli.py +62 -0
  316. chronaxis-0.1.0.dev2/src/chronaxis/fast/compute.py +204 -0
  317. chronaxis-0.1.0.dev2/src/chronaxis/fast/config.py +225 -0
  318. chronaxis-0.1.0.dev2/src/chronaxis/fast/run.py +58 -0
  319. chronaxis-0.1.0.dev2/src/chronaxis/fast/totals.py +92 -0
  320. chronaxis-0.1.0.dev2/src/chronaxis/fast/worker.py +56 -0
  321. chronaxis-0.1.0.dev2/src/chronaxis/planning/__init__.py +22 -0
  322. chronaxis-0.1.0.dev2/src/chronaxis/planning/aggregations.py +115 -0
  323. chronaxis-0.1.0.dev2/src/chronaxis/planning/channels.py +33 -0
  324. chronaxis-0.1.0.dev2/src/chronaxis/planning/checks.py +474 -0
  325. chronaxis-0.1.0.dev2/src/chronaxis/planning/config_groups.py +231 -0
  326. chronaxis-0.1.0.dev2/src/chronaxis/planning/dbc_defaults.py +204 -0
  327. chronaxis-0.1.0.dev2/src/chronaxis/planning/diagnostic_collection.py +358 -0
  328. chronaxis-0.1.0.dev2/src/chronaxis/planning/input_defaults.py +67 -0
  329. chronaxis-0.1.0.dev2/src/chronaxis/planning/input_requirements.py +259 -0
  330. chronaxis-0.1.0.dev2/src/chronaxis/planning/inputs.py +336 -0
  331. chronaxis-0.1.0.dev2/src/chronaxis/planning/intervals.py +253 -0
  332. chronaxis-0.1.0.dev2/src/chronaxis/planning/lookups.py +33 -0
  333. chronaxis-0.1.0.dev2/src/chronaxis/planning/message_calculations.py +180 -0
  334. chronaxis-0.1.0.dev2/src/chronaxis/planning/models.py +372 -0
  335. chronaxis-0.1.0.dev2/src/chronaxis/planning/nodes.py +425 -0
  336. chronaxis-0.1.0.dev2/src/chronaxis/planning/plan.py +405 -0
  337. chronaxis-0.1.0.dev2/src/chronaxis/planning/record_execution.py +89 -0
  338. chronaxis-0.1.0.dev2/src/chronaxis/planning/reports.py +601 -0
  339. chronaxis-0.1.0.dev2/src/chronaxis/planning/sequences.py +99 -0
  340. chronaxis-0.1.0.dev2/src/chronaxis/planning/signal_groups.py +68 -0
  341. chronaxis-0.1.0.dev2/src/chronaxis/planning/transforms.py +176 -0
  342. chronaxis-0.1.0.dev2/src/chronaxis/results/__init__.py +34 -0
  343. chronaxis-0.1.0.dev2/src/chronaxis/results/aggregation_row.py +78 -0
  344. chronaxis-0.1.0.dev2/src/chronaxis/results/codec.py +261 -0
  345. chronaxis-0.1.0.dev2/src/chronaxis/results/export_files.py +261 -0
  346. chronaxis-0.1.0.dev2/src/chronaxis/results/frame_exports.py +300 -0
  347. chronaxis-0.1.0.dev2/src/chronaxis/results/manifest.py +373 -0
  348. chronaxis-0.1.0.dev2/src/chronaxis/results/publication.py +131 -0
  349. chronaxis-0.1.0.dev2/src/chronaxis/results/readable.py +365 -0
  350. chronaxis-0.1.0.dev2/src/chronaxis/results/readable_format.py +95 -0
  351. chronaxis-0.1.0.dev2/src/chronaxis/results/result.py +767 -0
  352. chronaxis-0.1.0.dev2/src/chronaxis/results/rows.py +60 -0
  353. chronaxis-0.1.0.dev2/src/chronaxis/results/signal_exports.py +212 -0
  354. chronaxis-0.1.0.dev2/src/chronaxis/results/spool.py +421 -0
  355. chronaxis-0.1.0.dev2/src/chronaxis/results/summary.py +378 -0
  356. chronaxis-0.1.0.dev2/src/chronaxis/runner.py +133 -0
  357. chronaxis-0.1.0.dev2/src/chronaxis/sources/models.py +499 -0
  358. chronaxis-0.1.0.dev2/src/chronaxis/sources/packing.py +173 -0
  359. chronaxis-0.1.0.dev2/src/chronaxis.egg-info/PKG-INFO +172 -0
  360. chronaxis-0.1.0.dev2/src/chronaxis.egg-info/SOURCES.txt +597 -0
  361. chronaxis-0.1.0.dev2/src/chronaxis.egg-info/requires.txt +9 -0
  362. chronaxis-0.1.0.dev2/tools/ai_field_views.py +126 -0
  363. chronaxis-0.1.0.dev2/tools/ai_resource_bytes.py +62 -0
  364. chronaxis-0.1.0.dev2/tools/build_ai_guide.py +398 -0
  365. chronaxis-0.1.0.dev2/tools/english_docs.py +164 -0
  366. chronaxis-0.1.0.dev2/tools/public_docs.py +14 -0
  367. chronaxis-0.1.0.dev1/Docs/AI/README.md +0 -70
  368. chronaxis-0.1.0.dev1/Docs/AI/en/README.md +0 -74
  369. chronaxis-0.1.0.dev1/Docs/AI/en/semantics.md +0 -70
  370. chronaxis-0.1.0.dev1/Docs/AI/en/tasks.json +0 -290
  371. chronaxis-0.1.0.dev1/Docs/AI/en/workflow.md +0 -41
  372. chronaxis-0.1.0.dev1/Docs/AI/inputs.lock.json +0 -144
  373. chronaxis-0.1.0.dev1/Docs/AI/lookup.py +0 -90
  374. chronaxis-0.1.0.dev1/Docs/AI/run_analysis.py +0 -34
  375. chronaxis-0.1.0.dev1/Docs/AI/semantics.md +0 -62
  376. chronaxis-0.1.0.dev1/Docs/AI/tasks.json +0 -290
  377. chronaxis-0.1.0.dev1/Docs/AI/workflow.md +0 -38
  378. chronaxis-0.1.0.dev1/Docs/Current/documentation.json +0 -7
  379. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/AnalysisError.md +0 -18
  380. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/AnalysisPlan.md +0 -103
  381. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/AnalysisResult.md +0 -434
  382. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/AnalysisRunner.md +0 -209
  383. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/BatchJob.md +0 -21
  384. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/BatchJobResult.md +0 -53
  385. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/BatchPlan.md +0 -47
  386. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/BatchReport.md +0 -66
  387. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/BatchRunner.md +0 -63
  388. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/OutputManifest.md +0 -31
  389. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/PlanFragment.md +0 -43
  390. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/PlanValidationError.md +0 -72
  391. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/PresetSpec.md +0 -61
  392. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/ResultClosedError.md +0 -18
  393. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/RunMetadata.md +0 -112
  394. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/TimeConversion.md +0 -27
  395. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/TimeOverflowError.md +0 -18
  396. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/build_preset.md +0 -27
  397. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/checked_add_ns.md +0 -25
  398. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/convert_time.md +0 -29
  399. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/explain_analysis_plan.md +0 -34
  400. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/load_analysis_plan.md +0 -31
  401. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/load_batch_plan.md +0 -32
  402. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/parse_datetime_ns.md +0 -27
  403. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/parse_duration.md +0 -24
  404. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/resolve_preset_roles.md +0 -27
  405. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/run_batch.md +0 -43
  406. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/shift_times_reference.md +0 -25
  407. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/time_deltas_reference.md +0 -26
  408. chronaxis-0.1.0.dev1/Docs/Current/en/public-api/validate_analysis_plan.md +0 -33
  409. chronaxis-0.1.0.dev1/Docs/Current/en/public-api.json +0 -284
  410. chronaxis-0.1.0.dev1/Docs/Current/en/schema-translations.json +0 -309
  411. chronaxis-0.1.0.dev1/Docs/Current/examples/analysis-imports.yaml +0 -22
  412. chronaxis-0.1.0.dev1/Docs/Current/examples/analysis.yaml +0 -23
  413. chronaxis-0.1.0.dev1/Docs/Current/examples/conditional-energy.yaml +0 -36
  414. chronaxis-0.1.0.dev1/Docs/Current/examples/export-can-minimal.yaml +0 -24
  415. chronaxis-0.1.0.dev1/Docs/Current/examples/input-csv-minimal.yaml +0 -23
  416. chronaxis-0.1.0.dev1/Docs/Current/examples/preset-charge-energy.yaml +0 -41
  417. chronaxis-0.1.0.dev1/Docs/Current/examples/preset-charge-minimal.yaml +0 -31
  418. chronaxis-0.1.0.dev1/Docs/Current/examples/preset-fault-context.yaml +0 -27
  419. chronaxis-0.1.0.dev1/Docs/Current/examples/quality.yaml +0 -19
  420. chronaxis-0.1.0.dev1/Docs/Current/examples/sequence-outcomes.yaml +0 -39
  421. chronaxis-0.1.0.dev1/Docs/Current/examples/signal-enum-minimal.yaml +0 -19
  422. chronaxis-0.1.0.dev1/Docs/Current/examples/signal-number-conversion.yaml +0 -24
  423. chronaxis-0.1.0.dev1/Docs/Current/examples/window-merged.yaml +0 -28
  424. chronaxis-0.1.0.dev1/Docs/Current/public-api/AnalysisError.md +0 -23
  425. chronaxis-0.1.0.dev1/Docs/Current/public-api/AnalysisPlan.md +0 -111
  426. chronaxis-0.1.0.dev1/Docs/Current/public-api/AnalysisResult.md +0 -434
  427. chronaxis-0.1.0.dev1/Docs/Current/public-api/AnalysisRunner.md +0 -210
  428. chronaxis-0.1.0.dev1/Docs/Current/public-api/BatchJob.md +0 -27
  429. chronaxis-0.1.0.dev1/Docs/Current/public-api/BatchJobResult.md +0 -71
  430. chronaxis-0.1.0.dev1/Docs/Current/public-api/BatchPlan.md +0 -58
  431. chronaxis-0.1.0.dev1/Docs/Current/public-api/BatchReport.md +0 -122
  432. chronaxis-0.1.0.dev1/Docs/Current/public-api/BatchRunner.md +0 -96
  433. chronaxis-0.1.0.dev1/Docs/Current/public-api/OutputManifest.md +0 -31
  434. chronaxis-0.1.0.dev1/Docs/Current/public-api/PlanFragment.md +0 -57
  435. chronaxis-0.1.0.dev1/Docs/Current/public-api/PlanValidationError.md +0 -112
  436. chronaxis-0.1.0.dev1/Docs/Current/public-api/PresetSpec.md +0 -78
  437. chronaxis-0.1.0.dev1/Docs/Current/public-api/ResultClosedError.md +0 -23
  438. chronaxis-0.1.0.dev1/Docs/Current/public-api/RunMetadata.md +0 -112
  439. chronaxis-0.1.0.dev1/Docs/Current/public-api/TimeConversion.md +0 -37
  440. chronaxis-0.1.0.dev1/Docs/Current/public-api/TimeOverflowError.md +0 -26
  441. chronaxis-0.1.0.dev1/Docs/Current/public-api/build_preset.md +0 -44
  442. chronaxis-0.1.0.dev1/Docs/Current/public-api/checked_add_ns.md +0 -38
  443. chronaxis-0.1.0.dev1/Docs/Current/public-api/convert_time.md +0 -48
  444. chronaxis-0.1.0.dev1/Docs/Current/public-api/explain_analysis_plan.md +0 -54
  445. chronaxis-0.1.0.dev1/Docs/Current/public-api/load_analysis_plan.md +0 -49
  446. chronaxis-0.1.0.dev1/Docs/Current/public-api/load_batch_plan.md +0 -48
  447. chronaxis-0.1.0.dev1/Docs/Current/public-api/parse_datetime_ns.md +0 -43
  448. chronaxis-0.1.0.dev1/Docs/Current/public-api/parse_duration.md +0 -38
  449. chronaxis-0.1.0.dev1/Docs/Current/public-api/resolve_preset_roles.md +0 -45
  450. chronaxis-0.1.0.dev1/Docs/Current/public-api/run_batch.md +0 -50
  451. chronaxis-0.1.0.dev1/Docs/Current/public-api/shift_times_reference.md +0 -41
  452. chronaxis-0.1.0.dev1/Docs/Current/public-api/time_deltas_reference.md +0 -45
  453. chronaxis-0.1.0.dev1/Docs/Current/public-api/validate_analysis_plan.md +0 -55
  454. chronaxis-0.1.0.dev1/Docs/Current/public-api.json +0 -283
  455. chronaxis-0.1.0.dev1/Docs/Release/distribution.md +0 -39
  456. chronaxis-0.1.0.dev1/Docs/Release/publishing.en.md +0 -101
  457. chronaxis-0.1.0.dev1/Docs/Release/publishing.md +0 -103
  458. chronaxis-0.1.0.dev1/Docs/Release/third-party.md +0 -23
  459. chronaxis-0.1.0.dev1/Docs/Release/trusted-publishing.en.md +0 -33
  460. chronaxis-0.1.0.dev1/Docs/Release/trusted-publishing.md +0 -33
  461. chronaxis-0.1.0.dev1/Docs/Release/versioning.md +0 -21
  462. chronaxis-0.1.0.dev1/Docs/Schema/analysis.schema.json +0 -8451
  463. chronaxis-0.1.0.dev1/Docs/Schema/legacy-import-v1.schema.json +0 -143
  464. chronaxis-0.1.0.dev1/MANIFEST.in +0 -162
  465. chronaxis-0.1.0.dev1/PKG-INFO +0 -172
  466. chronaxis-0.1.0.dev1/README.en.md +0 -143
  467. chronaxis-0.1.0.dev1/README.md +0 -143
  468. chronaxis-0.1.0.dev1/pyproject.toml +0 -51
  469. chronaxis-0.1.0.dev1/setup.py +0 -38
  470. chronaxis-0.1.0.dev1/src/chronaxis/__init__.py +0 -72
  471. chronaxis-0.1.0.dev1/src/chronaxis/__main__.py +0 -12
  472. chronaxis-0.1.0.dev1/src/chronaxis/analysis_cli.py +0 -181
  473. chronaxis-0.1.0.dev1/src/chronaxis/batch/api.py +0 -46
  474. chronaxis-0.1.0.dev1/src/chronaxis/batch/cli.py +0 -48
  475. chronaxis-0.1.0.dev1/src/chronaxis/batch/models.py +0 -202
  476. chronaxis-0.1.0.dev1/src/chronaxis/batch/process_transport.py +0 -149
  477. chronaxis-0.1.0.dev1/src/chronaxis/batch/publication.py +0 -41
  478. chronaxis-0.1.0.dev1/src/chronaxis/batch/runner.py +0 -236
  479. chronaxis-0.1.0.dev1/src/chronaxis/can_dependencies.py +0 -42
  480. chronaxis-0.1.0.dev1/src/chronaxis/cli.py +0 -193
  481. chronaxis-0.1.0.dev1/src/chronaxis/configuration/diagnostics.py +0 -107
  482. chronaxis-0.1.0.dev1/src/chronaxis/configuration/file_tools.py +0 -140
  483. chronaxis-0.1.0.dev1/src/chronaxis/configuration/imports.py +0 -144
  484. chronaxis-0.1.0.dev1/src/chronaxis/configuration/origins.py +0 -90
  485. chronaxis-0.1.0.dev1/src/chronaxis/configuration/resolution.py +0 -150
  486. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/batch/analysis-annotated.yaml +0 -18
  487. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/batch/analysis-minimal.yaml +0 -18
  488. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-asc/annotated.yaml +0 -18
  489. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-asc/minimal.yaml +0 -18
  490. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-blf/annotated.yaml +0 -18
  491. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-blf/minimal.yaml +0 -18
  492. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-export/annotated.yaml +0 -23
  493. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/can-export/minimal.yaml +0 -23
  494. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/catalog.json +0 -233
  495. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/charge-session/annotated.yaml +0 -38
  496. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/charge-session/minimal.yaml +0 -38
  497. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/command-response/annotated.yaml +0 -32
  498. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/command-response/minimal.yaml +0 -36
  499. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/fault-window/annotated.yaml +0 -25
  500. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/fault-window/minimal.yaml +0 -27
  501. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/ini-mapping/annotated.yaml +0 -20
  502. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/ini-mapping/minimal.yaml +0 -20
  503. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/raw-can-csv/annotated.yaml +0 -34
  504. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/raw-can-csv/minimal.yaml +0 -35
  505. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/shared/source.ini +0 -5
  506. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/signal-csv/annotated.yaml +0 -27
  507. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/signal-csv/minimal.yaml +0 -27
  508. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/signal-export/annotated.yaml +0 -27
  509. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/signal-export/minimal.yaml +0 -29
  510. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/stability/annotated.yaml +0 -35
  511. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/stability/minimal.yaml +0 -35
  512. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/threshold/annotated.yaml +0 -22
  513. chronaxis-0.1.0.dev1/src/chronaxis/configuration/templates/threshold/minimal.yaml +0 -22
  514. chronaxis-0.1.0.dev1/src/chronaxis/core/__init__.py +0 -71
  515. chronaxis-0.1.0.dev1/src/chronaxis/core/binding.py +0 -449
  516. chronaxis-0.1.0.dev1/src/chronaxis/core/calculations.py +0 -435
  517. chronaxis-0.1.0.dev1/src/chronaxis/core/calculations_memory_numpy.py +0 -136
  518. chronaxis-0.1.0.dev1/src/chronaxis/core/calculations_memory_reference.py +0 -165
  519. chronaxis-0.1.0.dev1/src/chronaxis/core/calculations_numpy.py +0 -298
  520. chronaxis-0.1.0.dev1/src/chronaxis/core/calculations_reference.py +0 -294
  521. chronaxis-0.1.0.dev1/src/chronaxis/core/conditional_time_reduction_numpy.py +0 -223
  522. chronaxis-0.1.0.dev1/src/chronaxis/core/conditional_time_reduction_reference.py +0 -213
  523. chronaxis-0.1.0.dev1/src/chronaxis/core/declarations.py +0 -192
  524. chronaxis-0.1.0.dev1/src/chronaxis/core/decoded_binding.py +0 -197
  525. chronaxis-0.1.0.dev1/src/chronaxis/core/expression.py +0 -642
  526. chronaxis-0.1.0.dev1/src/chronaxis/core/expression_numpy.py +0 -314
  527. chronaxis-0.1.0.dev1/src/chronaxis/core/expression_reference.py +0 -272
  528. chronaxis-0.1.0.dev1/src/chronaxis/core/message_binding.py +0 -305
  529. chronaxis-0.1.0.dev1/src/chronaxis/core/models.py +0 -485
  530. chronaxis-0.1.0.dev1/src/chronaxis/core/normalize_numpy.py +0 -396
  531. chronaxis-0.1.0.dev1/src/chronaxis/core/numeric.py +0 -472
  532. chronaxis-0.1.0.dev1/src/chronaxis/core/numeric_numpy.py +0 -440
  533. chronaxis-0.1.0.dev1/src/chronaxis/core/sample_reduction.py +0 -161
  534. chronaxis-0.1.0.dev1/src/chronaxis/core/sample_reduction_numpy.py +0 -160
  535. chronaxis-0.1.0.dev1/src/chronaxis/core/sample_reduction_reference.py +0 -154
  536. chronaxis-0.1.0.dev1/src/chronaxis/core/selection.py +0 -74
  537. chronaxis-0.1.0.dev1/src/chronaxis/core/sequence_reference.py +0 -248
  538. chronaxis-0.1.0.dev1/src/chronaxis/core/state.py +0 -494
  539. chronaxis-0.1.0.dev1/src/chronaxis/core/state_numpy.py +0 -296
  540. chronaxis-0.1.0.dev1/src/chronaxis/core/temporal_memory_numpy.py +0 -163
  541. chronaxis-0.1.0.dev1/src/chronaxis/core/temporal_memory_reference.py +0 -161
  542. chronaxis-0.1.0.dev1/src/chronaxis/core/time_reduction.py +0 -190
  543. chronaxis-0.1.0.dev1/src/chronaxis/core/time_reduction_numpy.py +0 -205
  544. chronaxis-0.1.0.dev1/src/chronaxis/core/time_reduction_reference.py +0 -203
  545. chronaxis-0.1.0.dev1/src/chronaxis/core/types.py +0 -105
  546. chronaxis-0.1.0.dev1/src/chronaxis/core/units.py +0 -81
  547. chronaxis-0.1.0.dev1/src/chronaxis/core/window_delta.py +0 -123
  548. chronaxis-0.1.0.dev1/src/chronaxis/core/windows.py +0 -224
  549. chronaxis-0.1.0.dev1/src/chronaxis/execution/calculation_blocks.py +0 -338
  550. chronaxis-0.1.0.dev1/src/chronaxis/execution/calculation_values.py +0 -55
  551. chronaxis-0.1.0.dev1/src/chronaxis/execution/condition_evidence.py +0 -370
  552. chronaxis-0.1.0.dev1/src/chronaxis/execution/current_message_calculation.py +0 -225
  553. chronaxis-0.1.0.dev1/src/chronaxis/execution/driver_expression.py +0 -274
  554. chronaxis-0.1.0.dev1/src/chronaxis/execution/expressions.py +0 -618
  555. chronaxis-0.1.0.dev1/src/chronaxis/execution/historical_conditional_blocks.py +0 -264
  556. chronaxis-0.1.0.dev1/src/chronaxis/execution/historical_conditional_time_calculation.py +0 -368
  557. chronaxis-0.1.0.dev1/src/chronaxis/execution/historical_sample_calculation.py +0 -338
  558. chronaxis-0.1.0.dev1/src/chronaxis/execution/historical_selection_rows.py +0 -300
  559. chronaxis-0.1.0.dev1/src/chronaxis/execution/historical_time_calculation.py +0 -341
  560. chronaxis-0.1.0.dev1/src/chronaxis/execution/history.py +0 -572
  561. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_delta_condition.py +0 -167
  562. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_event_durations.py +0 -143
  563. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_integral.py +0 -196
  564. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_rule_timeline.py +0 -344
  565. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_scope_calculations.py +0 -290
  566. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_sequences.py +0 -199
  567. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_session_calculations.py +0 -778
  568. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_time_calculation.py +0 -322
  569. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_value_history.py +0 -160
  570. chronaxis-0.1.0.dev1/src/chronaxis/execution/record_windows.py +0 -229
  571. chronaxis-0.1.0.dev1/src/chronaxis/execution/required_expression.py +0 -52
  572. chronaxis-0.1.0.dev1/src/chronaxis/execution/run_session.py +0 -402
  573. chronaxis-0.1.0.dev1/src/chronaxis/execution/state.py +0 -280
  574. chronaxis-0.1.0.dev1/src/chronaxis/execution/window_replay.py +0 -350
  575. chronaxis-0.1.0.dev1/src/chronaxis/migration/__init__.py +0 -11
  576. chronaxis-0.1.0.dev1/src/chronaxis/migration/api.py +0 -270
  577. chronaxis-0.1.0.dev1/src/chronaxis/migration/ini.py +0 -110
  578. chronaxis-0.1.0.dev1/src/chronaxis/migration/legacy_sum.py +0 -304
  579. chronaxis-0.1.0.dev1/src/chronaxis/migration/models.py +0 -83
  580. chronaxis-0.1.0.dev1/src/chronaxis/migration/publication.py +0 -230
  581. chronaxis-0.1.0.dev1/src/chronaxis/migration/sclicer.py +0 -241
  582. chronaxis-0.1.0.dev1/src/chronaxis/migration/slope.py +0 -78
  583. chronaxis-0.1.0.dev1/src/chronaxis/migration/start_end.py +0 -48
  584. chronaxis-0.1.0.dev1/src/chronaxis/planning/__init__.py +0 -19
  585. chronaxis-0.1.0.dev1/src/chronaxis/planning/channels.py +0 -30
  586. chronaxis-0.1.0.dev1/src/chronaxis/planning/checks.py +0 -447
  587. chronaxis-0.1.0.dev1/src/chronaxis/planning/config_groups.py +0 -215
  588. chronaxis-0.1.0.dev1/src/chronaxis/planning/dbc_defaults.py +0 -88
  589. chronaxis-0.1.0.dev1/src/chronaxis/planning/input_defaults.py +0 -62
  590. chronaxis-0.1.0.dev1/src/chronaxis/planning/input_requirements.py +0 -250
  591. chronaxis-0.1.0.dev1/src/chronaxis/planning/inputs.py +0 -306
  592. chronaxis-0.1.0.dev1/src/chronaxis/planning/intervals.py +0 -242
  593. chronaxis-0.1.0.dev1/src/chronaxis/planning/message_calculations.py +0 -171
  594. chronaxis-0.1.0.dev1/src/chronaxis/planning/models.py +0 -369
  595. chronaxis-0.1.0.dev1/src/chronaxis/planning/nodes.py +0 -355
  596. chronaxis-0.1.0.dev1/src/chronaxis/planning/plan.py +0 -294
  597. chronaxis-0.1.0.dev1/src/chronaxis/planning/record_execution.py +0 -76
  598. chronaxis-0.1.0.dev1/src/chronaxis/planning/reports.py +0 -523
  599. chronaxis-0.1.0.dev1/src/chronaxis/planning/sequences.py +0 -91
  600. chronaxis-0.1.0.dev1/src/chronaxis/planning/signal_groups.py +0 -61
  601. chronaxis-0.1.0.dev1/src/chronaxis/results/__init__.py +0 -34
  602. chronaxis-0.1.0.dev1/src/chronaxis/results/codec.py +0 -246
  603. chronaxis-0.1.0.dev1/src/chronaxis/results/export_files.py +0 -216
  604. chronaxis-0.1.0.dev1/src/chronaxis/results/frame_exports.py +0 -299
  605. chronaxis-0.1.0.dev1/src/chronaxis/results/manifest.py +0 -343
  606. chronaxis-0.1.0.dev1/src/chronaxis/results/readable.py +0 -355
  607. chronaxis-0.1.0.dev1/src/chronaxis/results/readable_format.py +0 -94
  608. chronaxis-0.1.0.dev1/src/chronaxis/results/result.py +0 -734
  609. chronaxis-0.1.0.dev1/src/chronaxis/results/rows.py +0 -57
  610. chronaxis-0.1.0.dev1/src/chronaxis/results/signal_exports.py +0 -209
  611. chronaxis-0.1.0.dev1/src/chronaxis/results/spool.py +0 -421
  612. chronaxis-0.1.0.dev1/src/chronaxis/results/summary.py +0 -350
  613. chronaxis-0.1.0.dev1/src/chronaxis/runner.py +0 -121
  614. chronaxis-0.1.0.dev1/src/chronaxis/sources/models.py +0 -497
  615. chronaxis-0.1.0.dev1/src/chronaxis/sources/packing.py +0 -170
  616. chronaxis-0.1.0.dev1/src/chronaxis.egg-info/PKG-INFO +0 -172
  617. chronaxis-0.1.0.dev1/src/chronaxis.egg-info/SOURCES.txt +0 -487
  618. chronaxis-0.1.0.dev1/src/chronaxis.egg-info/requires.txt +0 -10
  619. chronaxis-0.1.0.dev1/tools/ai_field_views.py +0 -104
  620. chronaxis-0.1.0.dev1/tools/build_ai_guide.py +0 -244
  621. chronaxis-0.1.0.dev1/tools/english_docs.py +0 -162
  622. chronaxis-0.1.0.dev1/tools/public_docs.py +0 -14
  623. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/batch-minimal.yaml +0 -0
  624. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/activity.csv +0 -0
  625. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/activity.asc +0 -0
  626. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/calculation-minimal.asc +0 -0
  627. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/conditional-energy/part-1.asc +0 -0
  628. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/conditional-energy/part-2.asc +0 -0
  629. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/conditional-energy/signals.dbc +0 -0
  630. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/execution-comparison.asc +0 -0
  631. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/execution-report.asc +0 -0
  632. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/expression-extended.asc +0 -0
  633. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/interval-actual.asc +0 -0
  634. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-charge-energy.asc +0 -0
  635. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-charge-minimal.asc +0 -0
  636. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-command-automatic.asc +0 -0
  637. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-fault-context.asc +0 -0
  638. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-threshold-delay.asc +0 -0
  639. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/preset-threshold-partial.asc +0 -0
  640. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/quality.asc +0 -0
  641. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/quickstart-parts/part1.asc +0 -0
  642. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/quickstart-parts/part2.asc +0 -0
  643. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/quickstart.asc +0 -0
  644. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-condition_duration-extended.asc +0 -0
  645. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-condition_duration-minimal.asc +0 -0
  646. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-debounce-extended.asc +0 -0
  647. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-falling_edge-extended.asc +0 -0
  648. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-hysteresis-extended.asc +0 -0
  649. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-start_end-extended.asc +0 -0
  650. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-start_only-extended.asc +0 -0
  651. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/rule-window_delta-extended.asc +0 -0
  652. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/sequence-outcomes.asc +0 -0
  653. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/signal-types.asc +0 -0
  654. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/start-end.asc +0 -0
  655. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/teaching-base.asc +0 -0
  656. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/can/teaching.dbc +0 -0
  657. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/joint-current.csv +0 -0
  658. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/joint.asc +0 -0
  659. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/joint.dbc +0 -0
  660. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/message-clean.asc +0 -0
  661. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/message-direction.asc +0 -0
  662. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/message-direction.dbc +0 -0
  663. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/power.blf +0 -0
  664. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/power.dbc +0 -0
  665. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/quality.csv +0 -0
  666. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/raw-can-example.csv +0 -0
  667. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/signal-types.csv +0 -0
  668. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/signals.csv +0 -0
  669. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/timing.asc +0 -0
  670. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/data/timing.dbc +0 -0
  671. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Current/examples/shared/definitions.yaml +0 -0
  672. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/ThirdParty/highlight.js-LICENSE.txt +0 -0
  673. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/ThirdParty/marked-LICENSE.txt +0 -0
  674. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/release-notes-0.1.0.dev0.md +0 -0
  675. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/release-notes-0.1.0.dev1.en.md +0 -0
  676. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/release-notes-0.1.0.dev1.md +0 -0
  677. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Release/security.md +0 -0
  678. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Schema/batch-v1.schema.json +0 -0
  679. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/Docs/Schema/definitions.schema.json +0 -0
  680. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/LICENSE +0 -0
  681. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/setup.cfg +0 -0
  682. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/batch/__init__.py +0 -0
  683. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/batch/config.py +0 -0
  684. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/batch/process_tree.py +0 -0
  685. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/batch/templates.py +0 -0
  686. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/__init__.py +0 -0
  687. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/cli.py +0 -0
  688. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/explanation.py +0 -0
  689. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/initialization.py +0 -0
  690. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/json_parser.py +0 -0
  691. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/models.py +0 -0
  692. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/overrides.py +0 -0
  693. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/template_catalog.py +0 -0
  694. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/batch/annotated.yaml +0 -0
  695. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/batch/minimal.yaml +0 -0
  696. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/charge-session.asc +0 -0
  697. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/command-response.asc +0 -0
  698. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/fault-window.asc +0 -0
  699. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/power.asc +0 -0
  700. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/sample.asc +0 -0
  701. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/sample.blf +0 -0
  702. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/sample.csv +0 -0
  703. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/sample.dbc +0 -0
  704. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/signals.csv +0 -0
  705. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/stability.asc +0 -0
  706. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/teaching.dbc +0 -0
  707. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/templates/shared/threshold.asc +0 -0
  708. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/configuration/yaml_parser.py +0 -0
  709. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/calculation_series_join.py +0 -0
  710. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/condition_evidence.py +0 -0
  711. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/conditional_integral_result.py +0 -0
  712. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/conditional_integral_terms.py +0 -0
  713. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/conditional_integral_terms_numpy.py +0 -0
  714. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/conditional_integral_terms_reference.py +0 -0
  715. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/conditional_time_reduction.py +0 -0
  716. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/direct_message.py +0 -0
  717. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/export_interpolation.py +0 -0
  718. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_result.py +0 -0
  719. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_sum.py +0 -0
  720. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_sum_numpy.py +0 -0
  721. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_sum_reference.py +0 -0
  722. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_terms.py +0 -0
  723. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_terms_numpy.py +0 -0
  724. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/integral_terms_reference.py +0 -0
  725. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/mean_weights_numpy.py +0 -0
  726. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/mean_weights_reference.py +0 -0
  727. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/record_intervals.py +0 -0
  728. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/sequence.py +0 -0
  729. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/stability.py +0 -0
  730. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/start_end.py +0 -0
  731. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/temporal.py +0 -0
  732. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/temporal_clock.py +0 -0
  733. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/temporal_numpy.py +0 -0
  734. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/temporal_reference.py +0 -0
  735. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/validation.py +0 -0
  736. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/window_delta_numpy.py +0 -0
  737. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/window_delta_reference.py +0 -0
  738. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/windows_numpy.py +0 -0
  739. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/core/windows_reference.py +0 -0
  740. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/__init__.py +0 -0
  741. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/batch_signal_groups.py +0 -0
  742. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/bindings.py +0 -0
  743. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/boundaries.py +0 -0
  744. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/can_batch_reader.py +0 -0
  745. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/can_reader.py +0 -0
  746. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/can_reference_template.py +0 -0
  747. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/conditional_integral_facts.py +0 -0
  748. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/conditional_integral_reduction.py +0 -0
  749. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/csv_observation.py +0 -0
  750. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/csv_reader.py +0 -0
  751. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/frame_capture.py +0 -0
  752. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/groups.py +0 -0
  753. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/historical_conditional_integral.py +0 -0
  754. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/historical_integral.py +0 -0
  755. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/historical_observation.py +0 -0
  756. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/history_records.py +0 -0
  757. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/hold.py +0 -0
  758. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/integral_facts.py +0 -0
  759. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/integral_reduction.py +0 -0
  760. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/legacy_frame_samples.py +0 -0
  761. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/memory_reader.py +0 -0
  762. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/message_bindings.py +0 -0
  763. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/message_delivery.py +0 -0
  764. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/observed_ingestion.py +0 -0
  765. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/raw_signal_groups.py +0 -0
  766. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_alarm_duration.py +0 -0
  767. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_diagnostics.py +0 -0
  768. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_export_samples.py +0 -0
  769. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_exports.py +0 -0
  770. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_point_buffer.py +0 -0
  771. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_sample.py +0 -0
  772. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_sample_series.py +0 -0
  773. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_selection.py +0 -0
  774. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_signal_export.py +0 -0
  775. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_source_cursor.py +0 -0
  776. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/record_time_indexes.py +0 -0
  777. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/retained_metadata.py +0 -0
  778. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/scanned_signal_proof.py +0 -0
  779. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/signal_validity.py +0 -0
  780. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/temporal_buffer.py +0 -0
  781. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/text_can_reader.py +0 -0
  782. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/timeline.py +0 -0
  783. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/timeline_multi.py +0 -0
  784. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/window_delta_events.py +0 -0
  785. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/execution/windows.py +0 -0
  786. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/__init__.py +0 -0
  787. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/batch_read.py +0 -0
  788. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/batch_validation.py +0 -0
  789. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/batch_wire.py +0 -0
  790. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/batch_worker.py +0 -0
  791. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/binding.py +0 -0
  792. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/dbc_cycles.py +0 -0
  793. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/decode_policy.py +0 -0
  794. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/disjunction.py +0 -0
  795. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/export_worker.py +0 -0
  796. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/export_write.py +0 -0
  797. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/message_store.py +0 -0
  798. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/process_read.py +0 -0
  799. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/raw_store.py +0 -0
  800. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/records.py +0 -0
  801. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/required_records.py +0 -0
  802. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/sum.py +0 -0
  803. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/sum_numpy.py +0 -0
  804. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/updates.py +0 -0
  805. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/vendor/sclicer_functions_v1/can_processor.py +0 -0
  806. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/vendor/sclicer_functions_v1/file_processor.py +0 -0
  807. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/vendor/sclicer_functions_v1/utils.py +0 -0
  808. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/legacy/worker.py +0 -0
  809. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/export_options.py +0 -0
  810. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/input_paths.py +0 -0
  811. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/legacy_execution.py +0 -0
  812. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/preset_models.py +0 -0
  813. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/signal_validity.py +0 -0
  814. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/planning/text_inputs.py +0 -0
  815. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/presets.py +0 -0
  816. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/analysis_outcome.py +0 -0
  817. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/artifact_exports.py +0 -0
  818. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/binding_metadata.py +0 -0
  819. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/budget.py +0 -0
  820. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/can_metadata.py +0 -0
  821. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/errors.py +0 -0
  822. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/frame_patch.py +0 -0
  823. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/frame_rebuild.py +0 -0
  824. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/frame_sort.py +0 -0
  825. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/input_diagnostics.py +0 -0
  826. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/merge_runs.py +0 -0
  827. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/owned_directory.py +0 -0
  828. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/raw_exports.py +0 -0
  829. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/signal_grid.py +0 -0
  830. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/text_can_metadata.py +0 -0
  831. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/results/threshold_metadata.py +0 -0
  832. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/__init__.py +0 -0
  833. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/asc.py +0 -0
  834. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/blf.py +0 -0
  835. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/can_spec.py +0 -0
  836. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/can_updates.py +0 -0
  837. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/csv_spec.py +0 -0
  838. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/descriptions.py +0 -0
  839. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/memory.py +0 -0
  840. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/protocol.py +0 -0
  841. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/raw_can.py +0 -0
  842. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/raw_csv.py +0 -0
  843. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/raw_csv_layout.py +0 -0
  844. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/signal_csv.py +0 -0
  845. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/text_can_decode.py +0 -0
  846. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/text_can_ref.py +0 -0
  847. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/sources/text_can_spec.py +0 -0
  848. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/timebase/__init__.py +0 -0
  849. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/timebase/conversion.py +0 -0
  850. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/timebase/numpy_ops.py +0 -0
  851. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis/user_guide.py +0 -0
  852. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis.egg-info/dependency_links.txt +0 -0
  853. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis.egg-info/entry_points.txt +0 -0
  854. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/src/chronaxis.egg-info/top_level.txt +0 -0
  855. {chronaxis-0.1.0.dev1 → chronaxis-0.1.0.dev2}/tools/pypi_readme.py +0 -0
@@ -0,0 +1,88 @@
1
+ # 用 AI 编写 Chronaxis 分析
2
+
3
+ [English guide](en/README.md)
4
+
5
+ 从这份README开始,再按[任务索引](tasks.json)选择相关示例,只读任务需要的说明。阅读源码中的指南无需先安装Chronaxis、生成文件或导出ZIP;保留仓库目录结构即可。独立资料ZIP使用同一正文,解压时保留完整目录结构。
6
+
7
+ 先向AI提供本README和[资料版本信息](../Current/documentation.json),再按需提供示例、接口或字段说明。未另行注明的相对命令以本README所在目录为起点;已安装环境使用下方工作目录示例;配置内部的ASC、DBC路径相对配置文件所在目录。运行分析需要安装匹配版本的Chronaxis,可用 `python -c "from importlib.metadata import version; print(version('chronaxis'))"` 核对。安装包已经附带普通指南文件,`python -m chronaxis guide`只显示中文README的路径,`--language en`选择英文,不写入或解压资料。源码指南同样直接阅读。资料版本与合成示例不代表私人日志已通过验证。
8
+
9
+ ### 在已安装环境中直接使用
10
+
11
+ 从自己的工作目录执行下列PowerShell命令。它直接读取安装目录的指南和示例,结果写到当前工作目录,不复制或修改安装资料:
12
+
13
+ ```powershell
14
+ $guide = Split-Path (python -m chronaxis guide)
15
+ python "$guide/lookup.py" task CONDITION_ENERGY
16
+ python "$guide/run_analysis.py" "$guide/examples/conditional-energy.yaml" result-energy
17
+ ```
18
+
19
+ 下文的相对命令展示源码/独立指南目录用法;在安装环境执行时,也可像上面一样使用完整输入路径和自己的输出目录。
20
+
21
+ ## 安装Chronaxis及默认运行依赖
22
+
23
+ 普通安装会自动安装完整运行依赖,支持 BLF、ASC、原始报文 CSV、DBC 解码、已解码信号 CSV 和内存任务。下面在 Windows PowerShell 中创建环境,并安装与本指南对应的 0.1.0.dev2:
24
+
25
+ ```powershell
26
+ py -3.12 -m venv .venv
27
+ .\.venv\Scripts\python.exe -m pip install "chronaxis==0.1.0.dev2"
28
+ .\.venv\Scripts\python.exe -m pip check
29
+ ```
30
+
31
+ 若使用本地安装包,将安装参数 `"chronaxis==0.1.0.dev2"` 替换为 `".\chronaxis-0.1.0.dev2-py3-none-any.whl"`。
32
+
33
+ 在后续命令中用同一个 `.venv\Scripts\python.exe`;无需激活环境。该版本声明并已验证的 CAN 依赖为 `python-can==4.6.1`、`cantools==39.4.3`、`natsort==8.4.0`,由 wheel 的默认依赖统一安装。不要为了消除缺模块错误单独安装任意最新版,也不要更改信号、阈值或 DBC。其他依赖版本不代表已验证支持;实际发布物以其安装元数据为准。按用户指定的发布版本或wheel安装,不把其他版本的行为当成本指南依据。离线安装须事先备齐依赖。
34
+
35
+ `dependency_missing` 表示运行环境缺少 CAN 依赖,不是信号绑定内容错误;按错误中的本地 wheel 安装命令修复。即使全部信号元数据已经手填、静态校验通过,实际运行仍需要相应读取/解码依赖。
36
+
37
+ ## 我该读哪几份文件?
38
+
39
+ 第一次使用时先读[从输入到结果](workflow.md),决定走单次计划、预设还是批量。
40
+
41
+ 查询任务后,先阅读返回记录中`references`列出的资料,再按`example`找到完整配置。引用相对于本语言README所在目录;JSON地址中`#`后的部分是规范节点路径,需同时查看该节点。
42
+
43
+ 先按计算含义选任务,不只匹配“能量”一词:
44
+
45
+ |用户要的结果|任务与入口|
46
+ |---|---|
47
+ |自定义分析算子|`HOST_EXTENSION`;[注册接口](../Current/public-api/ExtensionRegistry.md)及任务对应的宿主脚本。|
48
+ |聚合计算结果、配对延迟或统计事件/片段数量|`POWER_STATISTICS`;[统计与分组示例](../Current/examples/power-statistics.yaml)。|
49
+ |一维标定查表|`CALIBRATION`;[查表配置示例](../Current/examples/lookup-power.yaml)。|
50
+ |使用通用分析逐消息累计,包括需要贡献明细的任务|`MESSAGE_ENERGY`,使用通用`run`;[最小完整配置](../Current/examples/message-minimal.yaml)。|
51
+ |条件持续超过门槛后,对整个合格区间积分|`CONDITION_ENERGY`,使用通用`run`或`run_analysis.py`。|
52
+ |独立ASC/BLF中,每条目标帧用当帧全部输入计算固定周期贡献|高性能积分器(同帧逐报文累计)的`FAST_MESSAGE_ENERGY`,使用`fast validate/explain/run`。|
53
+ |上一类独立文件按同模板并行,并求可比指标的总量|`FAST_TEMPLATE_TOTAL`,使用`fast batch --total`;[完整批量配置](../Current/examples/fast/batch.yaml)。|
54
+
55
+ `run_analysis.py`运行通用分析,不会自动切换到fast。fast任务须采用各自索引中的命令;批量配置的根版本是`batch_version: 1`,其引用的分析配置另有`config_version`。
56
+
57
+ 1. 从 [任务索引](tasks.json) 找中文需求,只读命中条目的范例、适用条件和相关字段。先用 BLF/ASC+DBC 场景;已解码信号表用 CSV,不需要 DBC。不要把别的发布版的配置或内部函数混进来。
58
+ 2. 写分析配置,使用 YAML 或 JSON,分析使用整数 `config_version: 4`。范例是完整文件;保留 ../Current/examples/data 相对位置。示例工程数值只适用于合成输入。缺真实时间基准、工程阈值、编码、单位或方向依据时,指出哪项缺失以及它会改变什么结果。
59
+ 3. 写 Python,查 [公开 API 索引](../Current/public-api.json),再读对应单个 API 文件。文件用 load_analysis_plan,已展开字典用 AnalysisPlan.from_dict。预设构建得到 PlanFragment,不能直接交给 run。批量返回时逐任务核对状态。
60
+ 4. 配置加载 → 检查声明 → 查看依赖 → 运行 → 写出结果。可用命令见下方;Python方式见 [完整调用](run_analysis.py)。报告实际输入、单位、边界、质量和未验证项。计算返回不代表发布完成。
61
+
62
+ ## 一个从输入到结果的任务
63
+
64
+ 需要具体参数时,用标准 Python 在本README所在目录查询,不用读取整份规范:
65
+
66
+ ```text
67
+ python lookup.py task 持续
68
+ python lookup.py api AnalysisRunner
69
+ python lookup.py field valid_for --schema analysis
70
+ python lookup.py field source_type --schema analysis --branch can_asc
71
+ ```
72
+
73
+ 字段表给出原规范位置及分支。参见[高风险语义与真实诊断](semantics.md)及[完整字段参考](../Current/reference/configuration-schema.md)。条件必填、引用、时间单位和工程契约以完整规范及运行校验为准,不应把独立分片用作验证器。没有匹配项返回退出码1;先查正确的版本、名称或分支,不自动猜同义字段。
74
+
75
+ 在这份资料的目录运行(Windows/Python 3.12,已安装项目默认运行依赖):
76
+
77
+ ```text
78
+ python -m chronaxis config init --list
79
+ python -m chronaxis validate ../Current/examples/conditional-energy.yaml --format json
80
+ python -m chronaxis explain ../Current/examples/conditional-energy.yaml --format json
81
+ python run_analysis.py ../Current/examples/conditional-energy.yaml result-energy
82
+ ```
83
+
84
+ 这个例子连续读取两卷ASC,用DBC解码状态、电流和电压,要求`state == 0x2 and current >= 10`连续严格超过60秒,再对整个合格事件积分。恰好60秒的第一段被排除;第二段跨越分卷,实际区间为[61,122)秒,结果4000×61/3600000=0.06777777777777777kWh。默认从条件开始时刻积分,包括最初60秒;`confirmed_ns=121000000001`表示严格超过60秒的确认时刻,不是积分起点。完整配置位于任务`CONDITION_ENERGY`;预设`CHARGE`采用不同电流比较时,不能替代这个任务。
85
+
86
+ 结果目录可以重复使用;本次结果文件统一增加时间后缀。默认readable_csv在`事件结果_<本次时间>.csv`同一行给出精确秒起止和energy_kwh(kWh),先检查每项指标的状态和说明;从CLI返回的manifest或API返回的manifest_path读取清单,再从outputs找到本次实际文件。原程序交换格式须显式设置outputs.tables为csv或jsonl,才按parent_id关联原表;CLI与清单中的`analysis_outcome`区分无观测、未知、条件未成立、时长不足和已有事件。没有事件不等于能量为0。换成自己的数据时按实际DBC替换路径、ID、信号和条件;已解码信号表仍可选`CSV`任务,不应用合成阈值替用户决定生产参数。[查看教学示例的实际结果表](../Current/examples/results/conditional-energy-yaml/事件结果.csv)。
87
+
88
+ 分析命令和配置解释只证明声明和执行路径;加载按需可读 DBC 元数据、展开来源目录,不扫描业务记录。真实运行、输出和关闭完成后才报告成功。独立样例不能证明其他设备具有相同含义。
@@ -0,0 +1,92 @@
1
+ <a id="用-ai-编写-chronaxis-分析"></a>
2
+ # Use AI to write a Chronaxis analysis
3
+
4
+ Start with this README, select an example from the [task index](tasks.json), and read only the material needed for the task. Reading the guide in a source checkout requires no installation, generated files, or ZIP export; keep the repository layout intact. The standalone documentation ZIP uses the same text with its own complete directory layout.
5
+
6
+ Give the AI this README and the [documentation version](../../Current/documentation.json), then supply examples, API descriptions, or field references as needed. Relative commands use the directory containing this README unless noted otherwise; installed users can use the working-directory example below. ASC and DBC paths inside a configuration are relative to that configuration file. Running an analysis requires the matching Chronaxis version; check it with `python -c "from importlib.metadata import version; print(version('chronaxis'))"`. The installed package includes the guide as ordinary files. `python -m chronaxis guide --language en` prints this English README path without writing or extracting anything. Open it directly; source documentation is also directly readable. Version metadata and synthetic examples do not establish that private logs have been verified.
7
+
8
+ <a id="安装chronaxis及默认运行依赖"></a>
9
+ ### Use the installed guide directly
10
+
11
+ Run these PowerShell commands from your own working directory. They read the installed guide and example directly and put results in your working directory, without copying or modifying the installed material:
12
+
13
+ ```powershell
14
+ $guide = Split-Path (python -m chronaxis guide)
15
+ python "$guide/lookup.py" --language en task CONDITION_ENERGY
16
+ python "$guide/run_analysis.py" "$guide/examples/conditional-energy.yaml" result-energy
17
+ ```
18
+
19
+ The relative commands below illustrate a source or standalone guide directory. For installed examples, use full input paths and your own output directory as above.
20
+
21
+ ## Install Chronaxis and its default dependencies
22
+
23
+ A normal installation includes the runtime dependencies for BLF, ASC, raw-message CSV, DBC decoding, decoded-signal CSV, and memory tasks. These Windows PowerShell commands create an environment and install version 0.1.0.dev2, matching this guide:
24
+
25
+ ```powershell
26
+ py -3.12 -m venv .venv
27
+ .\.venv\Scripts\python.exe -m pip install "chronaxis==0.1.0.dev2"
28
+ .\.venv\Scripts\python.exe -m pip check
29
+ ```
30
+
31
+ For a local package, replace `"chronaxis==0.1.0.dev2"` with `".\chronaxis-0.1.0.dev2-py3-none-any.whl"` in the installation command.
32
+
33
+ Use the same `.venv\Scripts\python.exe` for subsequent commands; activation is optional. This version declares and has been checked with `python-can==4.6.1`, `cantools==39.4.3`, and `natsort==8.4.0`, installed through the wheel's default dependencies. Do not install an arbitrary latest version to fix a missing module, or change signals, thresholds, or the DBC. Other dependency versions are not thereby verified; use the actual distribution's installation metadata. Prepare dependency wheels in advance for offline installation.
34
+
35
+ `dependency_missing` means the environment lacks required CAN dependencies, not that a signal binding is wrong. Follow the local-wheel installation command in the error. Even if every signal's metadata is supplied manually and static validation passes, execution still needs the appropriate reading and decoding dependencies.
36
+
37
+ <a id="我该读哪几份文件"></a>
38
+ ## Which files should I read?
39
+
40
+ First read [from input to results](workflow.md) to choose a single analysis, preset, or independent batch.
41
+
42
+ After querying a task, read the materials in its `references` list, then open the complete configuration named by `example`. Paths are relative to this language’s README directory. A fragment after `#` in a JSON reference identifies the schema node to read.
43
+
44
+ Select by calculation meaning, rather than matching only the word “energy”:
45
+
46
+ | Requested result | Task and entry point |
47
+ |---|---|
48
+ | Custom analysis operators | `HOST_EXTENSION`; [registry API](../../Current/en/public-api/ExtensionRegistry.md) and the task's host script. |
49
+ | Aggregate calculation rows, sequence delays, event counts or segment counts | `POWER_STATISTICS`; [statistics and grouping example](../../Current/examples/power-statistics.yaml). |
50
+ | One-dimensional calibration lookup | `CALIBRATION`; [lookup configuration](../../Current/examples/lookup-power.yaml). |
51
+ | Accumulate target-message contributions through the general runner, including contribution details | `MESSAGE_ENERGY`, using general `run`; [complete minimal configuration](../../Current/examples/message-minimal.yaml). |
52
+ | Integrate over each entire interval whose condition lasts beyond a threshold | `CONDITION_ENERGY`, using general `run` or `run_analysis.py`. |
53
+ | In one independent ASC/BLF, calculate each target frame's fixed-period contribution using inputs from that frame | `FAST_MESSAGE_ENERGY` in the high-performance integrator (same-frame per-message accumulation), using `fast validate/explain/run`. |
54
+ | Process the latter independent files from one template in parallel and total comparable metrics | `FAST_TEMPLATE_TOTAL`, using `fast batch --total`; see [complete batch configuration](../../Current/examples/fast/batch.yaml). |
55
+
56
+ `run_analysis.py` runs a general analysis; it does not automatically select fast. Follow the task-specific commands for fast. Batch files use root `batch_version: 1`; their referenced analysis files separately declare `config_version`.
57
+
58
+ 1. Search the [task index](tasks.json) for the requested task. Read that entry's example, applicability, and related fields. Start with BLF/ASC plus DBC for CAN tasks. Decoded CSV tables do not need a DBC. Do not mix configuration or internal functions from another release.
59
+ 2. Write YAML or JSON using integer `config_version: 4`. Examples are complete files; preserve the layout under `../../Current/examples/data`. Their engineering values apply only to the synthetic inputs. If the real time basis, thresholds, encoding, units, or direction are missing, explain which fact is missing and how it changes the result.
60
+ 3. For Python, consult the [public API index](../../Current/en/public-api.json), then the individual API page. Use `load_analysis_plan` for files and `AnalysisPlan.from_dict` for expanded dictionaries. Preset construction returns a `PlanFragment`, which cannot be passed directly to `run`. Inspect every task status after a batch returns.
61
+ 4. Load the configuration, validate declarations, inspect dependencies, run, and write the output. Commands are below; the [complete Python call](../run_analysis.py) provides the executable path. Report actual inputs, units, boundaries, quality, and unverified parts. Returning from calculation is not the same as publishing results.
62
+
63
+ <a id="一个从输入到结果的任务"></a>
64
+ ## A complete task
65
+
66
+ Query the material with standard Python from this README's directory instead of reading the whole specification:
67
+
68
+ ```text
69
+ python ../lookup.py --language en task energy
70
+ python ../lookup.py --language en api AnalysisRunner
71
+ python ../lookup.py --language en field valid_for --schema analysis
72
+ python ../lookup.py --language en field source_type --schema analysis --branch can_asc
73
+ ```
74
+
75
+ Field tables identify their specification location and branch. See [semantics and diagnostics](semantics.md) and the [complete field reference](../../Current/en/reference/configuration-schema.md). Conditional requirements, references, time units, and engineering requirements depend on the complete specification and runtime validation. Individual field extracts are not standalone validators. A query without matches exits with code 1: check the version, name, or branch instead of inventing an equivalent field.
76
+
77
+ On Windows with Python 3.12 and the package's default runtime dependencies installed:
78
+
79
+ ```text
80
+ python -m chronaxis config init --list
81
+ python -m chronaxis validate ../../Current/examples/conditional-energy.yaml --format json
82
+ python -m chronaxis explain ../../Current/examples/conditional-energy.yaml --format json
83
+ python ../run_analysis.py ../../Current/examples/conditional-energy.yaml result-energy
84
+ ```
85
+
86
+ This example reads two continuous ASC volumes and decodes state, current, and voltage with a DBC. It requires `state == 0x2 and current >= 10` for strictly more than 60 seconds, then integrates over the entire qualifying event. The first activity lasts exactly 60 seconds and is excluded. The second crosses the file boundary, covers `[61,122)` seconds, and gives `4000 × 61 / 3600000 = 0.06777777777777777 kWh`. Integration starts at condition onset by default, including the first 60 seconds. `confirmed_ns=121000000001` is the strict-duration confirmation time, not the integration start. Use task `CONDITION_ENERGY`; `CHARGE` is not a replacement when its current comparison differs.
87
+
88
+ The output directory can be reused; this publication uses a common timestamp suffix. Default `readable_csv` output places exact-second boundaries and `energy_kwh(kWh)` on the same row in `事件结果_<run timestamp>.csv` (event results). Check each metric's status and explanation. Read the manifest path returned by the CLI or API, then use its `outputs` list to find this publication's files. To consume original interchange tables linked by `parent_id`, explicitly select `outputs.tables: csv` or `jsonl`. CLI and manifest `analysis_outcome` distinguish no observation, unknown conditions, conditions not met, insufficient duration, and detected events. No event does not mean zero energy. [View the actual teaching-example result table](../../Current/examples/results/conditional-energy-yaml/事件结果.csv).
89
+
90
+ For your own data, replace paths, IDs, signals, and conditions using the actual DBC. Decoded tables can use task `CSV`. Do not treat synthetic thresholds as the user's production parameters.
91
+
92
+ Validation and explanation establish declaration validity and supported execution paths. Loading may read DBC metadata or enumerate directories as needed, but it does not scan business records. Report success only after actual execution, publication, and cleanup finish. An independent example does not establish that another device has the same business meaning.
@@ -0,0 +1,85 @@
1
+ <a id="先决定什么能算再生成配置"></a>
2
+ # Establish what can be calculated before generating configuration
3
+
4
+ | Task | Facts to establish | How to decide |
5
+ |---|---|---|
6
+ | Identify inputs | BLF/ASC logs, DBC, channel, message, and signal; actual CSV headers and time units. | Joint analysis of different clocks needs a common origin, offset, or other explicit synchronization evidence. Both files starting at zero is insufficient. |
7
+ | Bind names | Locate the original input field. `name` is its analysis name; `semantic_id` is optional business metadata. | If `BMS_I` is bound as `pack_current` with semantic ID `battery.current`, write `pack_current > 5`. A dotted semantic ID is not an object attribute. Require an explicit choice when multiple candidates match. |
8
+ | Units and direction | Existing DBC conversion and input/target units; establish direction and measurement point when a charging/discharging interpretation needs them. | Version 4 infers conversion when both scale and offset are omitted: a DBC value of 2000 mA with unit: A becomes 2 A. Supplying either coefficient disables additional automatic conversion. sign_convention describes direction without changing values; same-unit scale=-1 is not a general sign-flip mechanism. |
9
+ | State codes | The business meaning of each code. | Whether 2 means charging depends on the equipment. Preserve numeric types for a user-supplied comparison such as `state == 0x2`. Use Boolean/enumeration mappings only when true/false or named states are needed. Unknown mapping codes do not mean nonzero=true. Without definitions, identify the missing facts rather than claiming a production-ready charging detector. |
10
+ | Validity | `valid_for` is a positive duration. An explicit value wins; otherwise use three times this signal's `period`, obtaining a DBC message period at runtime where applicable. Do not guess without a basis. Explicit null is not omission. | With an update at 0 and `period=100ms`, the value remains valid at 0.299 s and becomes unknown at 0.300 s. An invalid update at 0.2 s makes it unknown from 0.2 s. Validity does not set a sample rate or create records. |
11
+ | Conditions and statistics | Requested range, observed range, selected data, and `partial_policy`. | A fully observed, known-false condition may yield zero conditional integral. Minimum/maximum/mean of an empty selection are null. No observations or all-unknown input must not become a normal zero. Explain partial values together with `status`, `reason`, and `quality`. |
12
+ | Events and segments | Two activities can merge into one surrounding segment without making their gap an activity. | `segments.parent_event_ids` may reference several `events.event_id` values in the same run. Link calculations using `scope` and `parent_id`, not row number or rule name alone. |
13
+ | Timing and output | Batch size changes execution chunks only. Unknown response differs from decidable timeout. Actual-time integration differs from per-message accumulation. | Inspect dependencies, intervals, output units, and requested ranges in `explain`. `coverage_status` exists only for applicable result types and thresholds; it is not a numerical coverage ratio. Do not invent a `coverage` field. |
14
+ | Business presets | Charging, for example, needs `mode`/`current` and `voltage` when energy is requested. Direction, units, and measurement point must meet role requirements. | Missing facts or two matching candidates do not authorize choosing the first. Explicit bindings still undergo role validation. Example thresholds and codes do not transfer automatically to another vehicle. |
15
+
16
+ <a id="从报告定位错误"></a>
17
+ ## Diagnose using actual reports
18
+
19
+ Record the user's required signals, conditions, scope, and outputs first. Request JSON from `validate`. For a constructed plan, inspect `valid`, `execution_ready`, `errors`, `warnings`, and `capability_status`. For loading failure, iterate `errors`, even for one error; `blocked_checks` explains checks prevented by invalid dependencies. Each item provides available fields such as `code`, `source`, `path`, `line`, `column`, `message`, and `hint`. In `explain`, the validation report is under `validation`, with dependencies under `nodes` and `input_requirements`. Environment, I/O, or argument errors may produce only a nonzero exit code and stderr; missing JSON does not mean success.
20
+
21
+ For example, string `config_version: "4"` is rejected. Change only that value to integer 4, preserve the calculation, and recheck. Do not remove a filter, extend validity, ignore unknown data, or reverse a sign to “fix” a diagnostic. If two correction rounds still fail, report the real error and unresolved facts rather than fabricate runnable output.
22
+
23
+ ```text
24
+ python -m chronaxis config origins ../../Current/examples/analysis-imports.yaml --fields --format json
25
+ python -m chronaxis config resolve ../../Current/examples/analysis-imports.yaml --defaults --format json
26
+ python -m chronaxis validate ../../Current/examples/input-csv-minimal.yaml --format json
27
+ python -m chronaxis explain ../../Current/examples/input-csv-minimal.yaml --format json
28
+ ```
29
+
30
+ `origins` identifies the declaration supplying a field. `resolve` shows expanded configuration and defaults that can currently be determined; it must not invent a fixed period awaiting DBC lookup. `load_analysis_plan` resolves paths relative to the defining file; `AnalysisPlan.from_dict` takes an already expanded dictionary. Validation does not establish actual observation coverage, real units, or correct results. Deliver the version, inputs, key assumptions, checks actually performed, and unverified conditions.
31
+
32
+ <a id="持续门槛与积分起点"></a>
33
+ ## Duration thresholds and integration starts
34
+
35
+ For `condition_duration`, `minimum_duration: 60s` means reaching 60 seconds by default. For “more than 60 seconds,” add `duration_comparison: ">"`, not 60.1 seconds. Default `selection_origin: onset` includes the entire qualifying interval. Select `confirmed` only when the user asks to start after confirmation. An exactly 60-second activity produces an event in the default mode and no event in strict mode. Time precision is 1 ns. Actual-time strict comparison can confirm at threshold plus 1 ns; fixed/DBC mode waits for the next driving message that takes accumulated duration strictly past the threshold.
36
+
37
+ <a id="资源不足时保留原任务"></a>
38
+ ## Preserve the task when resources are insufficient
39
+
40
+ Sample minimum, maximum, and mean use chunked reductions within the shared memory budget; their result does not depend on chunk size. Do not add unrequested statistics for debugging. For a budget error, first inspect the named calculation, workspace, or read buffer instead of attributing every failure to machine RAM. If even the smallest statistical chunk does not fit, execution fails explicitly. Reducing read batches changes processing chunks, not conditions, validity, or retained input. Increase budgets only with an actual resource basis. Managed budget estimates and process RSS are different quantities.
41
+
42
+ <a id="can通道连续文件与检查范围"></a>
43
+ ## CAN channels, continuous files, and check scope
44
+
45
+ DBC mapping keys, explicit signal channels, per-message selectors, and raw-frame resampling channels all start at `1` in public configuration. DBC channel keys are positive-integer strings without leading zeros: write `"1"` for the first channel. Ordinary channel fields take the integer `1`; do not subtract one. A signal or selector can omit `channel` when its source has a single channel, which the program then selects. Keep channel values in the original log unchanged. For raw CSV, `reader.channel_origin` still describes whether the input file's channel column starts at `0` or `1`.
46
+
47
+ Configuration paths are relative to the file containing that field, including shared definitions. Dictionary APIs use `base_dir`, defaulting to the current directory. `chronaxis explain PLAN --format json` shows plan information; `chronaxis config resolve PLAN --format json` shows expanded configuration. Files within one source are continuous in listed order, retaining candidate state across boundaries. Directory matching uses natural order. Sharing a folder does not prove sharing a session: use batch tasks for independent experiments, and do not invent offsets to concatenate them.
48
+
49
+ ASC checks timestamp order only for required channels/IDs by default. The source's earliest and latest frame times are still collected during that same read. Required records moving backwards remain errors; full checks or raw-frame export require the whole source to be ordered. Do not add a separate full-file scan followed by automatic cleaning. A small difference of microseconds does not authorize changing the input.
50
+
51
+ <a id="默认可读结果"></a>
52
+ ## Default readable results
53
+
54
+ Omitting `outputs.tables` selects `readable_csv`: Chinese filenames and headers, exact seconds, and one row containing the metrics for each event or window. Use the CLI manifest path or API manifest_path, then discover actual files through the manifest outputs list; do not hard-code `events.csv` or `calculations.csv`. Explicit `outputs.tables: csv` or `jsonl` selects the original interchange format and integer nanoseconds. Only the selected table format is produced.
55
+
56
+ Readable tables retain calculation names and units. Empty cells are not zero. Each metric independently reports `完整` (complete), `部分有效` (partial), or `无法确定` (indeterminate), with its reason. Inspect interval status separately from metric status. Global `has_unknown` does not invalidate a complete calculation within a known interval. For no events, inspect manifest `result_messages`; do not create a false zero-energy result. Preserve the original analysis time coordinates without inventing dates or shifting to zero. Do not duplicate seconds and nanoseconds. Python iterators such as `iter_events` and `iter_calculations` continue to return original typed rows.
57
+
58
+ <a id="独立批量的进程数"></a>
59
+ ## Process count for independent batch tasks
60
+
61
+ Root-level batch `process_count` is a positive integer, default 1, limiting analysis worker processes. It excludes the scheduler and CAN reader subprocesses. `run_batch(plan, output, process_count=4)` and CLI `--process-count 4` override it. Only the Python API accepts `None` to inherit the plan; configuration rejects null and Booleans. Call from a Python script inside `if __name__ == "__main__":`. Ordinary `AnalysisRunner` has no such parameter. Continuous `paths` in one session are not split into independent processes.
62
+
63
+ Each task has its own budgets and output. Cancellation prevents tasks that have not started; in-flight tasks finish and close. `report.close()` can retry remote cleanup. Unstarted tasks and worker crashes are not successes. Legacy `workers`, `max_workers`, and `--workers` are rejected.
64
+
65
+ <a id="迁移数值与后端核对"></a>
66
+ ## Numbers and backend comparisons
67
+
68
+ Both backends must agree on event boundaries, statuses, and diagnostics. Compare floating-point metrics using their unit and agreed error tolerance, without requiring bitwise equality or attributing event/quality differences to rounding.
69
+
70
+ Ordinary scalar calculations, including sample statistics, can return `coverage_status` when `minimum_coverage > 0`. It records the threshold decision, not a ratio, and does not change the equal weighting of `sample_mean`. Initial-edge `emit_initial` concerns the first known state, not an arbitrary first `True` anywhere in the analysis. A requested endpoint can produce a point event only when it is actually observed and satisfies the rule.
71
+
72
+ ## Choose a version 4 expression
73
+
74
+ Write a unit-bearing constant as `quantity(500,'mV')` (0.5 V). Use `where` to select between branches: missing data on the unselected branch does not invalidate the result. For a calibration curve, use `lookup(voltage,'curve')` after checking both units and the points. Codes 7 and 9 can have the same label; request `enum_code(mode)` only if the distinction matters. In the calibration example, 3, 7 and 3 V map to 10, 30 and 10 W, giving a sample mean of about 16.67 W. Analysis configurations accept only integer version 4.
75
+
76
+ In version 4, a signal's `unit` specifies its target unit. Raw CAN input units can come from the DBC; for a decoded table, use `conversion.input_unit` when the input unit differs. For mA input and A output, omit both `conversion.scale` and `conversion.offset` to infer the conversion. If either coefficient is supplied, the other takes its existing identity default and the complete conversion is checked; DBC scaling is not applied again. Relabelling a result without converting its value is not a valid conversion. Task `UNITS` demonstrates conversion between input and target units; do not repeat a multiplier that can be inferred.
77
+ ## Statistics: power variation and result populations
78
+
79
+ Establish what counts as one observation for this question. It can be one real power update, valid time held, a load, a final segment, or an already computed row. Sample statistics weight selected valid updates equally. Time statistics weight valid duration with known-true selection. Sample variance and standard deviation accept `ddof: 0` or 1, time versions accept only 0, and RMS omits `ddof`. Object counts reference named rules or windows. A known empty set can yield zero, while unobserved periods need an explicit status. Quantile takes `q`; median omits it. Exact interior quantiles use the run's memory budget.
80
+
81
+ In the bench task, P95 of five individual readings is 18 W. P95 of the two load means [10,20] W is 19.5 W. For a question about individual loads, calculate one value per activity and reference its calculation `value` from `aggregations`. For successful response delays, use `delay_ns` from the named `sequence`. Report candidates, inclusions, definition and quality exclusions, admitted partials and population discovery status. Exclude partial calculations by default. Use `include_partial: true` only if the requested population admits those values. Task ID: `POWER_STATISTICS`. [Runnable ASC/DBC example](../../Current/examples/power-statistics.yaml)
82
+
83
+ ## Temporal transforms and host extensions
84
+
85
+ Ask for the actual timebase, TTL, output grid and clock policy. At a fixed/DBC grid tick between two real driver frames, wait for the later frame to determine fractional period weights and keep the original grid timestamp. adjacent_rate uses real value updates and actual max_gap. window_rate compares both boundary values; sample_fit_slope uses only real samples. Default strict warm-up returns unknown. Preserve partial quality in downstream results. For a registered operation ask for its host program, fixed ports, version and backend; run the host script with the same registry at plan load and execution. A YAML module path is never a registration mechanism.