oscura 0.5.1__tar.gz → 0.7.0__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 (1172) hide show
  1. oscura-0.7.0/.archive/demonstrations_20260129.tar.gz +0 -0
  2. oscura-0.7.0/.github/config/README.md +150 -0
  3. oscura-0.7.0/.github/config/main-branch-ruleset-template.json +37 -0
  4. oscura-0.7.0/.github/config/main-branch-ruleset.json +53 -0
  5. oscura-0.7.0/.gitignore +313 -0
  6. oscura-0.7.0/.gitmessage +22 -0
  7. oscura-0.7.0/.pre-commit-config.yaml +156 -0
  8. oscura-0.7.0/.vscode/launch.json +196 -0
  9. oscura-0.7.0/.vscode/tasks.json +617 -0
  10. oscura-0.7.0/CHANGELOG.md +1052 -0
  11. oscura-0.7.0/CITATION.cff +44 -0
  12. oscura-0.7.0/CLAUDE.md +410 -0
  13. oscura-0.7.0/CONTRIBUTING.md +1234 -0
  14. oscura-0.7.0/PKG-INFO +661 -0
  15. oscura-0.7.0/README.md +513 -0
  16. oscura-0.7.0/analyze_waveform.py +536 -0
  17. oscura-0.7.0/cspell.json +119 -0
  18. oscura-0.7.0/demos/generate_all_demo_data.py +409 -0
  19. oscura-0.7.0/mkdocs.yml +141 -0
  20. oscura-0.7.0/output.png +0 -0
  21. oscura-0.7.0/pyproject.toml +1002 -0
  22. oscura-0.7.0/src/oscura/__init__.py +814 -0
  23. oscura-0.7.0/src/oscura/analyzers/__init__.py +43 -0
  24. oscura-0.7.0/src/oscura/analyzers/classification.py +659 -0
  25. oscura-0.7.0/src/oscura/analyzers/digital/edges.py +892 -0
  26. oscura-0.7.0/src/oscura/analyzers/digital/quality.py +1005 -0
  27. oscura-0.7.0/src/oscura/analyzers/digital/timing.py +1279 -0
  28. oscura-0.7.0/src/oscura/analyzers/digital/timing_numba.py +334 -0
  29. oscura-0.7.0/src/oscura/analyzers/entropy.py +605 -0
  30. oscura-0.7.0/src/oscura/analyzers/eye/diagram.py +501 -0
  31. oscura-0.7.0/src/oscura/analyzers/eye/metrics.py +555 -0
  32. oscura-0.7.0/src/oscura/analyzers/jitter/__init__.py +85 -0
  33. oscura-0.7.0/src/oscura/analyzers/jitter/ber.py +333 -0
  34. oscura-0.7.0/src/oscura/analyzers/jitter/classification.py +156 -0
  35. oscura-0.7.0/src/oscura/analyzers/jitter/decomposition.py +809 -0
  36. oscura-0.7.0/src/oscura/analyzers/jitter/spectrum.py +236 -0
  37. oscura-0.7.0/src/oscura/analyzers/ml/__init__.py +39 -0
  38. oscura-0.7.0/src/oscura/analyzers/ml/features.py +600 -0
  39. oscura-0.7.0/src/oscura/analyzers/ml/signal_classifier.py +604 -0
  40. oscura-0.7.0/src/oscura/analyzers/packet/daq.py +1165 -0
  41. oscura-0.7.0/src/oscura/analyzers/packet/parser.py +338 -0
  42. oscura-0.7.0/src/oscura/analyzers/packet/payload.py +96 -0
  43. oscura-0.7.0/src/oscura/analyzers/packet/payload_analysis.py +1492 -0
  44. oscura-0.7.0/src/oscura/analyzers/packet/payload_patterns.py +733 -0
  45. oscura-0.7.0/src/oscura/analyzers/packet/stream.py +420 -0
  46. oscura-0.7.0/src/oscura/analyzers/patterns/__init__.py +288 -0
  47. oscura-0.7.0/src/oscura/analyzers/patterns/anomaly_detection.py +908 -0
  48. oscura-0.7.0/src/oscura/analyzers/patterns/clustering.py +1099 -0
  49. oscura-0.7.0/src/oscura/analyzers/patterns/clustering_optimized.py +227 -0
  50. oscura-0.7.0/src/oscura/analyzers/patterns/discovery.py +539 -0
  51. oscura-0.7.0/src/oscura/analyzers/patterns/matching.py +1475 -0
  52. oscura-0.7.0/src/oscura/analyzers/patterns/pattern_mining.py +778 -0
  53. oscura-0.7.0/src/oscura/analyzers/patterns/periodic.py +733 -0
  54. oscura-0.7.0/src/oscura/analyzers/patterns/sequences.py +864 -0
  55. oscura-0.7.0/src/oscura/analyzers/power/conduction.py +314 -0
  56. oscura-0.7.0/src/oscura/analyzers/power/soa.py +372 -0
  57. oscura-0.7.0/src/oscura/analyzers/power/switching.py +619 -0
  58. oscura-0.7.0/src/oscura/analyzers/protocol/__init__.py +166 -0
  59. oscura-0.7.0/src/oscura/analyzers/protocols/base.py +500 -0
  60. oscura-0.7.0/src/oscura/analyzers/protocols/ble/__init__.py +38 -0
  61. oscura-0.7.0/src/oscura/analyzers/protocols/ble/analyzer.py +809 -0
  62. oscura-0.7.0/src/oscura/analyzers/protocols/ble/uuids.py +288 -0
  63. oscura-0.7.0/src/oscura/analyzers/protocols/can.py +750 -0
  64. oscura-0.7.0/src/oscura/analyzers/protocols/can_fd.py +475 -0
  65. oscura-0.7.0/src/oscura/analyzers/protocols/flexray.py +464 -0
  66. oscura-0.7.0/src/oscura/analyzers/protocols/hdlc.py +434 -0
  67. oscura-0.7.0/src/oscura/analyzers/protocols/i2c.py +509 -0
  68. oscura-0.7.0/src/oscura/analyzers/protocols/i2s.py +348 -0
  69. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/__init__.py +40 -0
  70. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/bacnet/__init__.py +33 -0
  71. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/bacnet/analyzer.py +708 -0
  72. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/bacnet/encoding.py +412 -0
  73. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/bacnet/services.py +622 -0
  74. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/ethercat/__init__.py +30 -0
  75. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/ethercat/analyzer.py +474 -0
  76. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/ethercat/mailbox.py +339 -0
  77. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/ethercat/topology.py +166 -0
  78. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/modbus/__init__.py +31 -0
  79. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/modbus/analyzer.py +525 -0
  80. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/modbus/crc.py +79 -0
  81. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/modbus/functions.py +436 -0
  82. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/opcua/__init__.py +21 -0
  83. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/opcua/analyzer.py +552 -0
  84. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/opcua/datatypes.py +446 -0
  85. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/opcua/services.py +264 -0
  86. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/profinet/__init__.py +23 -0
  87. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/profinet/analyzer.py +441 -0
  88. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/profinet/dcp.py +263 -0
  89. oscura-0.7.0/src/oscura/analyzers/protocols/industrial/profinet/ptcp.py +200 -0
  90. oscura-0.7.0/src/oscura/analyzers/protocols/jtag.py +475 -0
  91. oscura-0.7.0/src/oscura/analyzers/protocols/lin.py +550 -0
  92. oscura-0.7.0/src/oscura/analyzers/protocols/manchester.py +333 -0
  93. oscura-0.7.0/src/oscura/analyzers/protocols/onewire.py +605 -0
  94. oscura-0.7.0/src/oscura/analyzers/protocols/parallel_bus/__init__.py +20 -0
  95. oscura-0.7.0/src/oscura/analyzers/protocols/parallel_bus/centronics.py +92 -0
  96. oscura-0.7.0/src/oscura/analyzers/protocols/parallel_bus/gpib.py +137 -0
  97. oscura-0.7.0/src/oscura/analyzers/protocols/spi.py +431 -0
  98. oscura-0.7.0/src/oscura/analyzers/protocols/swd.py +479 -0
  99. oscura-0.7.0/src/oscura/analyzers/protocols/uart.py +535 -0
  100. oscura-0.7.0/src/oscura/analyzers/protocols/usb.py +599 -0
  101. oscura-0.7.0/src/oscura/analyzers/side_channel/power.py +695 -0
  102. oscura-0.7.0/src/oscura/analyzers/signal/__init__.py +15 -0
  103. oscura-0.7.0/src/oscura/analyzers/signal/timing_analysis.py +1086 -0
  104. oscura-0.7.0/src/oscura/analyzers/signal_integrity/__init__.py +66 -0
  105. oscura-0.7.0/src/oscura/analyzers/signal_integrity/sparams.py +289 -0
  106. oscura-0.7.0/src/oscura/analyzers/spectral/chunked.py +342 -0
  107. oscura-0.7.0/src/oscura/analyzers/spectral/chunked_fft.py +777 -0
  108. oscura-0.7.0/src/oscura/analyzers/spectral/chunked_wavelet.py +411 -0
  109. oscura-0.7.0/src/oscura/analyzers/statistical/checksum.py +1084 -0
  110. oscura-0.7.0/src/oscura/analyzers/statistical/classification.py +902 -0
  111. oscura-0.7.0/src/oscura/analyzers/statistical/entropy.py +1140 -0
  112. oscura-0.7.0/src/oscura/analyzers/statistics/correlation.py +826 -0
  113. oscura-0.7.0/src/oscura/analyzers/statistics/outliers.py +463 -0
  114. oscura-0.7.0/src/oscura/analyzers/statistics/streaming.py +118 -0
  115. oscura-0.7.0/src/oscura/analyzers/validation.py +713 -0
  116. oscura-0.7.0/src/oscura/analyzers/waveform/measurements.py +952 -0
  117. oscura-0.7.0/src/oscura/analyzers/waveform/measurements_with_uncertainty.py +387 -0
  118. oscura-0.7.0/src/oscura/analyzers/waveform/spectral.py +1961 -0
  119. oscura-0.7.0/src/oscura/api/__init__.py +88 -0
  120. oscura-0.7.0/src/oscura/api/dsl/__init__.py +582 -0
  121. oscura-0.7.0/src/oscura/api/dsl/commands.py +213 -0
  122. oscura-0.7.0/src/oscura/api/dsl/interpreter.py +432 -0
  123. oscura-0.7.0/src/oscura/api/dsl/parser.py +721 -0
  124. oscura-0.7.0/src/oscura/api/dsl/repl.py +172 -0
  125. oscura-0.7.0/src/oscura/api/dsl.py +538 -0
  126. oscura-0.7.0/src/oscura/api/integrations/__init__.py +59 -0
  127. oscura-0.7.0/src/oscura/api/integrations/llm.py +1928 -0
  128. oscura-0.7.0/src/oscura/api/operators.py +498 -0
  129. oscura-0.7.0/src/oscura/api/optimization.py +506 -0
  130. oscura-0.7.0/src/oscura/api/rest_server.py +921 -0
  131. oscura-0.7.0/src/oscura/api/server/__init__.py +17 -0
  132. oscura-0.7.0/src/oscura/api/server/dashboard.py +850 -0
  133. oscura-0.7.0/src/oscura/api/server/static/README.md +34 -0
  134. oscura-0.7.0/src/oscura/api/server/templates/base.html +181 -0
  135. oscura-0.7.0/src/oscura/api/server/templates/export.html +120 -0
  136. oscura-0.7.0/src/oscura/api/server/templates/home.html +284 -0
  137. oscura-0.7.0/src/oscura/api/server/templates/protocols.html +58 -0
  138. oscura-0.7.0/src/oscura/api/server/templates/reports.html +43 -0
  139. oscura-0.7.0/src/oscura/api/server/templates/session_detail.html +89 -0
  140. oscura-0.7.0/src/oscura/api/server/templates/sessions.html +83 -0
  141. oscura-0.7.0/src/oscura/api/server/templates/waveforms.html +73 -0
  142. oscura-0.7.0/src/oscura/automotive/__init__.py +80 -0
  143. oscura-0.7.0/src/oscura/automotive/can/__init__.py +60 -0
  144. oscura-0.7.0/src/oscura/automotive/can/checksum.py +252 -0
  145. oscura-0.7.0/src/oscura/automotive/can/dbc_generator.py +590 -0
  146. oscura-0.7.0/src/oscura/automotive/can/message_wrapper.py +422 -0
  147. oscura-0.7.0/src/oscura/automotive/can/patterns.py +460 -0
  148. oscura-0.7.0/src/oscura/automotive/can/session.py +887 -0
  149. oscura-0.7.0/src/oscura/automotive/can/state_machine.py +306 -0
  150. oscura-0.7.0/src/oscura/automotive/can/stimulus_response.py +483 -0
  151. oscura-0.7.0/src/oscura/automotive/dbc/__init__.py +21 -0
  152. oscura-0.7.0/src/oscura/automotive/dbc/generator.py +184 -0
  153. oscura-0.7.0/src/oscura/automotive/dbc/parser.py +146 -0
  154. oscura-0.7.0/src/oscura/automotive/dtc/data.json +2678 -0
  155. oscura-0.7.0/src/oscura/automotive/dtc/database.py +304 -0
  156. oscura-0.7.0/src/oscura/automotive/flexray/__init__.py +31 -0
  157. oscura-0.7.0/src/oscura/automotive/flexray/analyzer.py +504 -0
  158. oscura-0.7.0/src/oscura/automotive/flexray/crc.py +185 -0
  159. oscura-0.7.0/src/oscura/automotive/flexray/fibex.py +449 -0
  160. oscura-0.7.0/src/oscura/automotive/j1939/__init__.py +49 -0
  161. oscura-0.7.0/src/oscura/automotive/j1939/analyzer.py +605 -0
  162. oscura-0.7.0/src/oscura/automotive/j1939/spns.py +326 -0
  163. oscura-0.7.0/src/oscura/automotive/j1939/transport.py +306 -0
  164. oscura-0.7.0/src/oscura/automotive/lin/__init__.py +47 -0
  165. oscura-0.7.0/src/oscura/automotive/lin/analyzer.py +612 -0
  166. oscura-0.7.0/src/oscura/automotive/loaders/blf.py +86 -0
  167. oscura-0.7.0/src/oscura/automotive/loaders/csv_can.py +205 -0
  168. oscura-0.7.0/src/oscura/automotive/loaders/dispatcher.py +184 -0
  169. oscura-0.7.0/src/oscura/automotive/loaders/mdf.py +372 -0
  170. oscura-0.7.0/src/oscura/automotive/loaders/pcap.py +182 -0
  171. oscura-0.7.0/src/oscura/automotive/uds/__init__.py +50 -0
  172. oscura-0.7.0/src/oscura/automotive/uds/analyzer.py +725 -0
  173. oscura-0.7.0/src/oscura/automotive/uds/decoder.py +347 -0
  174. oscura-0.7.0/src/oscura/automotive/uds/models.py +68 -0
  175. oscura-0.7.0/src/oscura/automotive/visualization.py +369 -0
  176. oscura-0.7.0/src/oscura/cli/analyze.py +348 -0
  177. oscura-0.7.0/src/oscura/cli/batch.py +359 -0
  178. oscura-0.7.0/src/oscura/cli/benchmark.py +275 -0
  179. oscura-0.7.0/src/oscura/cli/characterize.py +328 -0
  180. oscura-0.7.0/src/oscura/cli/compare.py +868 -0
  181. oscura-0.7.0/src/oscura/cli/completion.py +250 -0
  182. oscura-0.7.0/src/oscura/cli/config_cmd.py +361 -0
  183. oscura-0.7.0/src/oscura/cli/decode.py +628 -0
  184. oscura-0.7.0/src/oscura/cli/export.py +286 -0
  185. oscura-0.7.0/src/oscura/cli/main.py +329 -0
  186. oscura-0.7.0/src/oscura/cli/onboarding/__init__.py +39 -0
  187. oscura-0.7.0/src/oscura/cli/onboarding/help.py +520 -0
  188. oscura-0.7.0/src/oscura/cli/onboarding/tutorials.py +430 -0
  189. oscura-0.7.0/src/oscura/cli/onboarding/wizard.py +485 -0
  190. oscura-0.7.0/src/oscura/cli/progress.py +147 -0
  191. oscura-0.7.0/src/oscura/cli/shell.py +370 -0
  192. oscura-0.7.0/src/oscura/cli/validate_cmd.py +204 -0
  193. oscura-0.7.0/src/oscura/cli/visualize.py +158 -0
  194. oscura-0.7.0/src/oscura/convenience.py +503 -0
  195. oscura-0.7.0/src/oscura/core/__init__.py +301 -0
  196. oscura-0.7.0/src/oscura/core/backend_selector.py +405 -0
  197. oscura-0.7.0/src/oscura/core/cache.py +701 -0
  198. oscura-0.7.0/src/oscura/core/cancellation.py +439 -0
  199. oscura-0.7.0/src/oscura/core/config/__init__.py +200 -0
  200. oscura-0.7.0/src/oscura/core/config/defaults.py +254 -0
  201. oscura-0.7.0/src/oscura/core/config/loader.py +348 -0
  202. oscura-0.7.0/src/oscura/core/config/memory.py +271 -0
  203. oscura-0.7.0/src/oscura/core/config/migration.py +458 -0
  204. oscura-0.7.0/src/oscura/core/config/pipeline.py +1153 -0
  205. oscura-0.7.0/src/oscura/core/config/preferences.py +530 -0
  206. oscura-0.7.0/src/oscura/core/config/protocol.py +875 -0
  207. oscura-0.7.0/src/oscura/core/config/schema.py +867 -0
  208. oscura-0.7.0/src/oscura/core/config/settings.py +420 -0
  209. oscura-0.7.0/src/oscura/core/config/thresholds.py +641 -0
  210. oscura-0.7.0/src/oscura/core/correlation.py +213 -0
  211. oscura-0.7.0/src/oscura/core/cross_domain.py +420 -0
  212. oscura-0.7.0/src/oscura/core/debug.py +305 -0
  213. oscura-0.7.0/src/oscura/core/extensibility/docs.py +840 -0
  214. oscura-0.7.0/src/oscura/core/extensibility/extensions.py +1209 -0
  215. oscura-0.7.0/src/oscura/core/extensibility/logging.py +259 -0
  216. oscura-0.7.0/src/oscura/core/extensibility/measurements.py +485 -0
  217. oscura-0.7.0/src/oscura/core/extensibility/plugins.py +414 -0
  218. oscura-0.7.0/src/oscura/core/extensibility/templates.py +975 -0
  219. oscura-0.7.0/src/oscura/core/extensibility/validation.py +651 -0
  220. oscura-0.7.0/src/oscura/core/gpu_backend.py +527 -0
  221. oscura-0.7.0/src/oscura/core/log_query.py +630 -0
  222. oscura-0.7.0/src/oscura/core/logging.py +1003 -0
  223. oscura-0.7.0/src/oscura/core/logging_advanced.py +952 -0
  224. oscura-0.7.0/src/oscura/core/memory_limits.py +372 -0
  225. oscura-0.7.0/src/oscura/core/memory_monitor.py +453 -0
  226. oscura-0.7.0/src/oscura/core/memory_progress.py +465 -0
  227. oscura-0.7.0/src/oscura/core/memory_warnings.py +315 -0
  228. oscura-0.7.0/src/oscura/core/numba_backend.py +360 -0
  229. oscura-0.7.0/src/oscura/core/plugins/__init__.py +122 -0
  230. oscura-0.7.0/src/oscura/core/plugins/base.py +272 -0
  231. oscura-0.7.0/src/oscura/core/plugins/cli.py +495 -0
  232. oscura-0.7.0/src/oscura/core/plugins/discovery.py +491 -0
  233. oscura-0.7.0/src/oscura/core/plugins/lifecycle.py +959 -0
  234. oscura-0.7.0/src/oscura/core/plugins/manager.py +493 -0
  235. oscura-0.7.0/src/oscura/core/plugins/registry.py +421 -0
  236. oscura-0.7.0/src/oscura/core/plugins/versioning.py +372 -0
  237. oscura-0.7.0/src/oscura/core/progress.py +539 -0
  238. oscura-0.7.0/src/oscura/core/provenance.py +364 -0
  239. oscura-0.7.0/src/oscura/core/schemas/__init__.py +158 -0
  240. oscura-0.7.0/src/oscura/core/schemas/device_mapping.json +176 -0
  241. oscura-0.7.0/src/oscura/core/schemas/packet_format.json +398 -0
  242. oscura-0.7.0/src/oscura/core/schemas/protocol_definition.json +353 -0
  243. oscura-0.7.0/src/oscura/core/types.py +508 -0
  244. oscura-0.7.0/src/oscura/core/uncertainty.py +383 -0
  245. oscura-0.7.0/src/oscura/correlation/__init__.py +52 -0
  246. oscura-0.7.0/src/oscura/correlation/multi_protocol.py +811 -0
  247. oscura-0.7.0/src/oscura/discovery/auto_decoder.py +497 -0
  248. oscura-0.7.0/src/oscura/discovery/comparison.py +602 -0
  249. oscura-0.7.0/src/oscura/discovery/quality_validator.py +615 -0
  250. oscura-0.7.0/src/oscura/discovery/signal_detector.py +886 -0
  251. oscura-0.7.0/src/oscura/export/__init__.py +35 -0
  252. oscura-0.7.0/src/oscura/export/kaitai_struct.py +513 -0
  253. oscura-0.7.0/src/oscura/export/scapy_layer.py +801 -0
  254. oscura-0.7.0/src/oscura/export/wireshark/generator.py +312 -0
  255. oscura-0.7.0/src/oscura/export/wireshark/templates/dissector.lua.j2 +92 -0
  256. oscura-0.7.0/src/oscura/export/wireshark_dissector.py +746 -0
  257. oscura-0.7.0/src/oscura/guidance/wizard.py +614 -0
  258. oscura-0.7.0/src/oscura/hardware/__init__.py +19 -0
  259. oscura-0.7.0/src/oscura/hardware/acquisition/__init__.py +147 -0
  260. oscura-0.7.0/src/oscura/hardware/acquisition/file.py +255 -0
  261. oscura-0.7.0/src/oscura/hardware/acquisition/hardware.py +186 -0
  262. oscura-0.7.0/src/oscura/hardware/acquisition/saleae.py +343 -0
  263. oscura-0.7.0/src/oscura/hardware/acquisition/socketcan.py +315 -0
  264. oscura-0.7.0/src/oscura/hardware/acquisition/streaming.py +38 -0
  265. oscura-0.7.0/src/oscura/hardware/acquisition/synthetic.py +229 -0
  266. oscura-0.7.0/src/oscura/hardware/acquisition/visa.py +398 -0
  267. oscura-0.7.0/src/oscura/hardware/firmware/__init__.py +29 -0
  268. oscura-0.7.0/src/oscura/hardware/firmware/pattern_recognition.py +874 -0
  269. oscura-0.7.0/src/oscura/hardware/hal_detector.py +736 -0
  270. oscura-0.7.0/src/oscura/hardware/security/__init__.py +37 -0
  271. oscura-0.7.0/src/oscura/hardware/security/side_channel_detector.py +1126 -0
  272. oscura-0.7.0/src/oscura/inference/__init__.py +255 -0
  273. oscura-0.7.0/src/oscura/inference/active_learning/observation_table.py +231 -0
  274. oscura-0.7.0/src/oscura/inference/alignment.py +748 -0
  275. oscura-0.7.0/src/oscura/inference/bayesian.py +1023 -0
  276. oscura-0.7.0/src/oscura/inference/crc_reverse.py +757 -0
  277. oscura-0.7.0/src/oscura/inference/logic.py +292 -0
  278. oscura-0.7.0/src/oscura/inference/message_format.py +1466 -0
  279. oscura-0.7.0/src/oscura/inference/protocol.py +468 -0
  280. oscura-0.7.0/src/oscura/inference/protocol_dsl.py +1184 -0
  281. oscura-0.7.0/src/oscura/inference/signal_intelligence.py +2242 -0
  282. oscura-0.7.0/src/oscura/inference/spectral.py +257 -0
  283. oscura-0.7.0/src/oscura/inference/state_machine.py +1288 -0
  284. oscura-0.7.0/src/oscura/inference/stream.py +1078 -0
  285. oscura-0.7.0/src/oscura/iot/__init__.py +34 -0
  286. oscura-0.7.0/src/oscura/iot/coap/__init__.py +32 -0
  287. oscura-0.7.0/src/oscura/iot/coap/analyzer.py +668 -0
  288. oscura-0.7.0/src/oscura/iot/coap/options.py +212 -0
  289. oscura-0.7.0/src/oscura/iot/lorawan/__init__.py +21 -0
  290. oscura-0.7.0/src/oscura/iot/lorawan/crypto.py +206 -0
  291. oscura-0.7.0/src/oscura/iot/lorawan/decoder.py +801 -0
  292. oscura-0.7.0/src/oscura/iot/lorawan/mac_commands.py +341 -0
  293. oscura-0.7.0/src/oscura/iot/mqtt/__init__.py +27 -0
  294. oscura-0.7.0/src/oscura/iot/mqtt/analyzer.py +999 -0
  295. oscura-0.7.0/src/oscura/iot/mqtt/properties.py +315 -0
  296. oscura-0.7.0/src/oscura/iot/zigbee/__init__.py +31 -0
  297. oscura-0.7.0/src/oscura/iot/zigbee/analyzer.py +615 -0
  298. oscura-0.7.0/src/oscura/iot/zigbee/security.py +153 -0
  299. oscura-0.7.0/src/oscura/iot/zigbee/zcl.py +349 -0
  300. oscura-0.7.0/src/oscura/jupyter/display.py +346 -0
  301. oscura-0.7.0/src/oscura/jupyter/exploratory/__init__.py +111 -0
  302. oscura-0.7.0/src/oscura/jupyter/exploratory/error_recovery.py +799 -0
  303. oscura-0.7.0/src/oscura/jupyter/exploratory/fuzzy.py +746 -0
  304. oscura-0.7.0/src/oscura/jupyter/exploratory/fuzzy_advanced.py +944 -0
  305. oscura-0.7.0/src/oscura/jupyter/exploratory/legacy.py +1053 -0
  306. oscura-0.7.0/src/oscura/jupyter/exploratory/parse.py +382 -0
  307. oscura-0.7.0/src/oscura/jupyter/exploratory/recovery.py +309 -0
  308. oscura-0.7.0/src/oscura/jupyter/exploratory/sync.py +612 -0
  309. oscura-0.7.0/src/oscura/jupyter/exploratory/unknown.py +830 -0
  310. oscura-0.7.0/src/oscura/jupyter/magic.py +334 -0
  311. oscura-0.7.0/src/oscura/jupyter/ui/__init__.py +48 -0
  312. oscura-0.7.0/src/oscura/jupyter/ui/formatters.py +528 -0
  313. oscura-0.7.0/src/oscura/jupyter/ui/progressive_display.py +411 -0
  314. oscura-0.7.0/src/oscura/loaders/__init__.py +659 -0
  315. oscura-0.7.0/src/oscura/loaders/binary.py +156 -0
  316. oscura-0.7.0/src/oscura/loaders/chipwhisperer.py +409 -0
  317. oscura-0.7.0/src/oscura/loaders/configurable.py +1377 -0
  318. oscura-0.7.0/src/oscura/loaders/csv_loader.py +716 -0
  319. oscura-0.7.0/src/oscura/loaders/hdf5_loader.py +669 -0
  320. oscura-0.7.0/src/oscura/loaders/lazy.py +403 -0
  321. oscura-0.7.0/src/oscura/loaders/mmap_loader.py +583 -0
  322. oscura-0.7.0/src/oscura/loaders/numpy_loader.py +573 -0
  323. oscura-0.7.0/src/oscura/loaders/pcap.py +507 -0
  324. oscura-0.7.0/src/oscura/loaders/rigol.py +348 -0
  325. oscura-0.7.0/src/oscura/loaders/sigrok.py +444 -0
  326. oscura-0.7.0/src/oscura/loaders/tdms.py +390 -0
  327. oscura-0.7.0/src/oscura/loaders/tektronix.py +828 -0
  328. oscura-0.7.0/src/oscura/loaders/touchstone.py +316 -0
  329. oscura-0.7.0/src/oscura/loaders/tss.py +456 -0
  330. oscura-0.7.0/src/oscura/loaders/vcd.py +562 -0
  331. oscura-0.7.0/src/oscura/loaders/wav.py +320 -0
  332. oscura-0.7.0/src/oscura/reporting/__init__.py +257 -0
  333. oscura-0.7.0/src/oscura/reporting/analyze.py +654 -0
  334. oscura-0.7.0/src/oscura/reporting/argument_preparer.py +651 -0
  335. oscura-0.7.0/src/oscura/reporting/auto_report.py +543 -0
  336. oscura-0.7.0/src/oscura/reporting/batch.py +688 -0
  337. oscura-0.7.0/src/oscura/reporting/chart_selection.py +235 -0
  338. oscura-0.7.0/src/oscura/reporting/comparison.py +374 -0
  339. oscura-0.7.0/src/oscura/reporting/content/executive.py +179 -0
  340. oscura-0.7.0/src/oscura/reporting/core_formats/multi_format.py +213 -0
  341. oscura-0.7.0/src/oscura/reporting/engine.py +990 -0
  342. oscura-0.7.0/src/oscura/reporting/enhanced_reports.py +949 -0
  343. oscura-0.7.0/src/oscura/reporting/export.py +409 -0
  344. oscura-0.7.0/src/oscura/reporting/formatting/numbers.py +428 -0
  345. oscura-0.7.0/src/oscura/reporting/html.py +659 -0
  346. oscura-0.7.0/src/oscura/reporting/index.py +662 -0
  347. oscura-0.7.0/src/oscura/reporting/output.py +468 -0
  348. oscura-0.7.0/src/oscura/reporting/pdf.py +338 -0
  349. oscura-0.7.0/src/oscura/reporting/plots.py +810 -0
  350. oscura-0.7.0/src/oscura/reporting/sections.py +510 -0
  351. oscura-0.7.0/src/oscura/reporting/standards.py +723 -0
  352. oscura-0.7.0/src/oscura/reporting/summary_generator.py +388 -0
  353. oscura-0.7.0/src/oscura/reporting/tables.py +481 -0
  354. oscura-0.7.0/src/oscura/reporting/templates/enhanced/protocol_re.html +525 -0
  355. oscura-0.7.0/src/oscura/sessions/__init__.py +61 -0
  356. oscura-0.7.0/src/oscura/sessions/base.py +323 -0
  357. oscura-0.7.0/src/oscura/sessions/blackbox.py +736 -0
  358. oscura-0.7.0/src/oscura/sessions/generic.py +189 -0
  359. oscura-0.7.0/src/oscura/sessions/legacy.py +783 -0
  360. oscura-0.7.0/src/oscura/side_channel/__init__.py +63 -0
  361. oscura-0.7.0/src/oscura/side_channel/dpa.py +1025 -0
  362. oscura-0.7.0/src/oscura/utils/__init__.py +113 -0
  363. oscura-0.7.0/src/oscura/utils/bitwise.py +118 -0
  364. oscura-0.7.0/src/oscura/utils/builders/__init__.py +39 -0
  365. oscura-0.7.0/src/oscura/utils/comparison/__init__.py +66 -0
  366. oscura-0.7.0/src/oscura/utils/comparison/compare.py +498 -0
  367. oscura-0.7.0/src/oscura/utils/comparison/golden.py +507 -0
  368. oscura-0.7.0/src/oscura/utils/comparison/limits.py +615 -0
  369. oscura-0.7.0/src/oscura/utils/comparison/mask.py +540 -0
  370. oscura-0.7.0/src/oscura/utils/comparison/trace_diff.py +30 -0
  371. oscura-0.7.0/src/oscura/utils/comparison/visualization.py +539 -0
  372. oscura-0.7.0/src/oscura/utils/component/__init__.py +38 -0
  373. oscura-0.7.0/src/oscura/utils/component/impedance.py +429 -0
  374. oscura-0.7.0/src/oscura/utils/component/reactive.py +595 -0
  375. oscura-0.7.0/src/oscura/utils/component/transmission_line.py +312 -0
  376. oscura-0.7.0/src/oscura/utils/filtering/__init__.py +89 -0
  377. oscura-0.7.0/src/oscura/utils/filtering/base.py +563 -0
  378. oscura-0.7.0/src/oscura/utils/filtering/convenience.py +564 -0
  379. oscura-0.7.0/src/oscura/utils/filtering/design.py +801 -0
  380. oscura-0.7.0/src/oscura/utils/filtering/filters.py +32 -0
  381. oscura-0.7.0/src/oscura/utils/filtering/introspection.py +605 -0
  382. oscura-0.7.0/src/oscura/utils/geometry.py +31 -0
  383. oscura-0.7.0/src/oscura/utils/imports.py +184 -0
  384. oscura-0.7.0/src/oscura/utils/lazy.py +407 -0
  385. oscura-0.7.0/src/oscura/utils/math/__init__.py +45 -0
  386. oscura-0.7.0/src/oscura/utils/math/arithmetic.py +888 -0
  387. oscura-0.7.0/src/oscura/utils/math/interpolation.py +446 -0
  388. oscura-0.7.0/src/oscura/utils/memory.py +899 -0
  389. oscura-0.7.0/src/oscura/utils/memory_advanced.py +1409 -0
  390. oscura-0.7.0/src/oscura/utils/memory_extensions.py +467 -0
  391. oscura-0.7.0/src/oscura/utils/optimization/__init__.py +19 -0
  392. oscura-0.7.0/src/oscura/utils/optimization/search.py +532 -0
  393. oscura-0.7.0/src/oscura/utils/performance/__init__.py +58 -0
  394. oscura-0.7.0/src/oscura/utils/performance/caching.py +889 -0
  395. oscura-0.7.0/src/oscura/utils/performance/lsh_clustering.py +333 -0
  396. oscura-0.7.0/src/oscura/utils/performance/memory_optimizer.py +699 -0
  397. oscura-0.7.0/src/oscura/utils/performance/optimizations.py +675 -0
  398. oscura-0.7.0/src/oscura/utils/performance/parallel.py +654 -0
  399. oscura-0.7.0/src/oscura/utils/performance/profiling.py +661 -0
  400. oscura-0.7.0/src/oscura/utils/pipeline/base.py +338 -0
  401. oscura-0.7.0/src/oscura/utils/pipeline/composition.py +248 -0
  402. oscura-0.7.0/src/oscura/utils/pipeline/parallel.py +449 -0
  403. oscura-0.7.0/src/oscura/utils/pipeline/pipeline.py +375 -0
  404. oscura-0.7.0/src/oscura/utils/pipeline/reverse_engineering.py +1310 -0
  405. oscura-0.7.0/src/oscura/utils/search/__init__.py +16 -0
  406. oscura-0.7.0/src/oscura/utils/search/anomaly.py +424 -0
  407. oscura-0.7.0/src/oscura/utils/search/context.py +294 -0
  408. oscura-0.7.0/src/oscura/utils/search/pattern.py +288 -0
  409. oscura-0.7.0/src/oscura/utils/serial.py +51 -0
  410. oscura-0.7.0/src/oscura/utils/storage/__init__.py +61 -0
  411. oscura-0.7.0/src/oscura/utils/storage/database.py +1166 -0
  412. oscura-0.7.0/src/oscura/utils/streaming/chunked.py +770 -0
  413. oscura-0.7.0/src/oscura/utils/streaming/progressive.py +393 -0
  414. oscura-0.7.0/src/oscura/utils/streaming/realtime.py +623 -0
  415. oscura-0.7.0/src/oscura/utils/triggering/__init__.py +68 -0
  416. oscura-0.7.0/src/oscura/utils/triggering/base.py +229 -0
  417. oscura-0.7.0/src/oscura/utils/triggering/edge.py +353 -0
  418. oscura-0.7.0/src/oscura/utils/triggering/pattern.py +344 -0
  419. oscura-0.7.0/src/oscura/utils/triggering/pulse.py +622 -0
  420. oscura-0.7.0/src/oscura/utils/triggering/window.py +453 -0
  421. oscura-0.7.0/src/oscura/utils/validation.py +32 -0
  422. oscura-0.7.0/src/oscura/validation/__init__.py +121 -0
  423. oscura-0.7.0/src/oscura/validation/compliance/__init__.py +70 -0
  424. oscura-0.7.0/src/oscura/validation/compliance/advanced.py +756 -0
  425. oscura-0.7.0/src/oscura/validation/compliance/masks.py +363 -0
  426. oscura-0.7.0/src/oscura/validation/compliance/reporting.py +557 -0
  427. oscura-0.7.0/src/oscura/validation/compliance/testing.py +360 -0
  428. oscura-0.7.0/src/oscura/validation/compliance_tests.py +915 -0
  429. oscura-0.7.0/src/oscura/validation/fuzzer.py +990 -0
  430. oscura-0.7.0/src/oscura/validation/grammar_tests.py +596 -0
  431. oscura-0.7.0/src/oscura/validation/grammar_validator.py +904 -0
  432. oscura-0.7.0/src/oscura/validation/hil_testing.py +977 -0
  433. oscura-0.7.0/src/oscura/validation/quality/__init__.py +65 -0
  434. oscura-0.7.0/src/oscura/validation/quality/ensemble.py +820 -0
  435. oscura-0.7.0/src/oscura/validation/quality/explainer.py +338 -0
  436. oscura-0.7.0/src/oscura/validation/quality/scoring.py +616 -0
  437. oscura-0.7.0/src/oscura/validation/quality/warnings.py +456 -0
  438. oscura-0.7.0/src/oscura/validation/regression_suite.py +808 -0
  439. oscura-0.7.0/src/oscura/validation/replay.py +788 -0
  440. oscura-0.7.0/src/oscura/validation/testing/__init__.py +54 -0
  441. oscura-0.7.0/src/oscura/validation/testing/synthetic.py +810 -0
  442. oscura-0.7.0/src/oscura/visualization/__init__.py +330 -0
  443. oscura-0.7.0/src/oscura/visualization/accessibility.py +526 -0
  444. oscura-0.7.0/src/oscura/visualization/annotations.py +371 -0
  445. oscura-0.7.0/src/oscura/visualization/colors.py +451 -0
  446. oscura-0.7.0/src/oscura/visualization/digital.py +436 -0
  447. oscura-0.7.0/src/oscura/visualization/eye.py +571 -0
  448. oscura-0.7.0/src/oscura/visualization/interactive.py +1035 -0
  449. oscura-0.7.0/src/oscura/visualization/jitter.py +1042 -0
  450. oscura-0.7.0/src/oscura/visualization/layout.py +400 -0
  451. oscura-0.7.0/src/oscura/visualization/optimization.py +1079 -0
  452. oscura-0.7.0/src/oscura/visualization/palettes.py +446 -0
  453. oscura-0.7.0/src/oscura/visualization/power.py +508 -0
  454. oscura-0.7.0/src/oscura/visualization/power_extended.py +955 -0
  455. oscura-0.7.0/src/oscura/visualization/presets.py +469 -0
  456. oscura-0.7.0/src/oscura/visualization/protocols.py +1246 -0
  457. oscura-0.7.0/src/oscura/visualization/render.py +223 -0
  458. oscura-0.7.0/src/oscura/visualization/reverse_engineering.py +838 -0
  459. oscura-0.7.0/src/oscura/visualization/signal_integrity.py +989 -0
  460. oscura-0.7.0/src/oscura/visualization/specialized.py +643 -0
  461. oscura-0.7.0/src/oscura/visualization/spectral.py +1226 -0
  462. oscura-0.7.0/src/oscura/visualization/thumbnails.py +340 -0
  463. oscura-0.7.0/src/oscura/visualization/waveform.py +454 -0
  464. oscura-0.7.0/src/oscura/workflows/__init__.py +61 -0
  465. oscura-0.7.0/src/oscura/workflows/batch/__init__.py +55 -0
  466. oscura-0.7.0/src/oscura/workflows/batch/advanced.py +702 -0
  467. oscura-0.7.0/src/oscura/workflows/batch/aggregate.py +531 -0
  468. oscura-0.7.0/src/oscura/workflows/batch/analyze.py +236 -0
  469. oscura-0.7.0/src/oscura/workflows/batch/logging.py +487 -0
  470. oscura-0.7.0/src/oscura/workflows/batch/metrics.py +556 -0
  471. oscura-0.7.0/src/oscura/workflows/complete_re.py +1144 -0
  472. oscura-0.7.0/src/oscura/workflows/compliance.py +270 -0
  473. oscura-0.7.0/src/oscura/workflows/digital.py +418 -0
  474. oscura-0.7.0/src/oscura/workflows/legacy/__init__.py +12 -0
  475. oscura-0.7.0/src/oscura/workflows/legacy/dag.py +380 -0
  476. oscura-0.7.0/src/oscura/workflows/multi_trace.py +504 -0
  477. oscura-0.7.0/src/oscura/workflows/power.py +158 -0
  478. oscura-0.7.0/src/oscura/workflows/protocol.py +525 -0
  479. oscura-0.7.0/src/oscura/workflows/reverse_engineering.py +840 -0
  480. oscura-0.7.0/src/oscura/workflows/signal_integrity.py +302 -0
  481. oscura-0.7.0/stubs/scapy/__init__.pyi +18 -0
  482. oscura-0.7.0/stubs/scapy/all.pyi +29 -0
  483. oscura-0.7.0/uv.lock +5783 -0
  484. oscura-0.7.0/vehicle_network.dbc +73 -0
  485. oscura-0.5.1/.gitignore +0 -294
  486. oscura-0.5.1/.pre-commit-config.yaml +0 -154
  487. oscura-0.5.1/.vscode/launch.json +0 -222
  488. oscura-0.5.1/CHANGELOG.md +0 -47
  489. oscura-0.5.1/CITATION.cff +0 -44
  490. oscura-0.5.1/CLAUDE.md +0 -388
  491. oscura-0.5.1/CONTRIBUTING.md +0 -505
  492. oscura-0.5.1/PKG-INFO +0 -583
  493. oscura-0.5.1/README.md +0 -475
  494. oscura-0.5.1/cspell.json +0 -139
  495. oscura-0.5.1/demonstrations/00_getting_started/00_hello_world.py +0 -133
  496. oscura-0.5.1/demonstrations/00_getting_started/01_core_types.py +0 -373
  497. oscura-0.5.1/demonstrations/00_getting_started/02_supported_formats.py +0 -496
  498. oscura-0.5.1/demonstrations/00_getting_started/README.md +0 -485
  499. oscura-0.5.1/demonstrations/01_data_loading/01_oscilloscopes.py +0 -507
  500. oscura-0.5.1/demonstrations/01_data_loading/02_logic_analyzers.py +0 -399
  501. oscura-0.5.1/demonstrations/01_data_loading/03_automotive_formats.py +0 -511
  502. oscura-0.5.1/demonstrations/01_data_loading/04_scientific_formats.py +0 -685
  503. oscura-0.5.1/demonstrations/01_data_loading/05_custom_binary.py +0 -629
  504. oscura-0.5.1/demonstrations/01_data_loading/06_streaming_large_files.py +0 -615
  505. oscura-0.5.1/demonstrations/01_data_loading/07_multi_channel.py +0 -719
  506. oscura-0.5.1/demonstrations/01_data_loading/08_network_formats.py +0 -770
  507. oscura-0.5.1/demonstrations/01_data_loading/09_specialized_formats.py +0 -735
  508. oscura-0.5.1/demonstrations/01_data_loading/10_performance_loading.py +0 -610
  509. oscura-0.5.1/demonstrations/01_data_loading/README.md +0 -492
  510. oscura-0.5.1/demonstrations/02_basic_analysis/01_waveform_measurements.py +0 -439
  511. oscura-0.5.1/demonstrations/02_basic_analysis/02_statistics.py +0 -491
  512. oscura-0.5.1/demonstrations/02_basic_analysis/03_spectral_analysis.py +0 -392
  513. oscura-0.5.1/demonstrations/02_basic_analysis/04_filtering.py +0 -448
  514. oscura-0.5.1/demonstrations/02_basic_analysis/05_triggering.py +0 -521
  515. oscura-0.5.1/demonstrations/02_basic_analysis/06_math_operations.py +0 -554
  516. oscura-0.5.1/demonstrations/02_basic_analysis/07_wavelet_analysis.py +0 -558
  517. oscura-0.5.1/demonstrations/02_basic_analysis/README.md +0 -557
  518. oscura-0.5.1/demonstrations/03_protocol_decoding/01_serial_comprehensive.py +0 -653
  519. oscura-0.5.1/demonstrations/03_protocol_decoding/02_automotive_protocols.py +0 -827
  520. oscura-0.5.1/demonstrations/03_protocol_decoding/03_debug_protocols.py +0 -613
  521. oscura-0.5.1/demonstrations/03_protocol_decoding/04_parallel_bus.py +0 -439
  522. oscura-0.5.1/demonstrations/03_protocol_decoding/05_encoded_protocols.py +0 -491
  523. oscura-0.5.1/demonstrations/03_protocol_decoding/06_auto_detection.py +0 -369
  524. oscura-0.5.1/demonstrations/03_protocol_decoding/README.md +0 -563
  525. oscura-0.5.1/demonstrations/04_advanced_analysis/01_jitter_analysis.py +0 -447
  526. oscura-0.5.1/demonstrations/04_advanced_analysis/02_power_analysis.py +0 -545
  527. oscura-0.5.1/demonstrations/04_advanced_analysis/03_signal_integrity.py +0 -488
  528. oscura-0.5.1/demonstrations/04_advanced_analysis/04_eye_diagrams.py +0 -475
  529. oscura-0.5.1/demonstrations/04_advanced_analysis/05_pattern_discovery.py +0 -468
  530. oscura-0.5.1/demonstrations/04_advanced_analysis/06_quality_assessment.py +0 -483
  531. oscura-0.5.1/demonstrations/04_advanced_analysis/07_component_characterization.py +0 -762
  532. oscura-0.5.1/demonstrations/04_advanced_analysis/08_transmission_lines.py +0 -544
  533. oscura-0.5.1/demonstrations/04_advanced_analysis/09_digital_timing.py +0 -606
  534. oscura-0.5.1/demonstrations/04_advanced_analysis/README.md +0 -587
  535. oscura-0.5.1/demonstrations/04_advanced_analysis/__init__.py +0 -6
  536. oscura-0.5.1/demonstrations/05_domain_specific/01_automotive_diagnostics.py +0 -530
  537. oscura-0.5.1/demonstrations/05_domain_specific/02_emc_compliance.py +0 -522
  538. oscura-0.5.1/demonstrations/05_domain_specific/03_vintage_logic.py +0 -517
  539. oscura-0.5.1/demonstrations/05_domain_specific/04_side_channel.py +0 -662
  540. oscura-0.5.1/demonstrations/05_domain_specific/README.md +0 -611
  541. oscura-0.5.1/demonstrations/06_reverse_engineering/01_unknown_protocol.py +0 -321
  542. oscura-0.5.1/demonstrations/06_reverse_engineering/02_crc_recovery.py +0 -351
  543. oscura-0.5.1/demonstrations/06_reverse_engineering/03_state_machines.py +0 -377
  544. oscura-0.5.1/demonstrations/06_reverse_engineering/04_field_inference.py +0 -369
  545. oscura-0.5.1/demonstrations/06_reverse_engineering/05_pattern_discovery.py +0 -410
  546. oscura-0.5.1/demonstrations/06_reverse_engineering/06_wireshark_export.py +0 -552
  547. oscura-0.5.1/demonstrations/06_reverse_engineering/07_entropy_analysis.py +0 -502
  548. oscura-0.5.1/demonstrations/06_reverse_engineering/08_data_classification.py +0 -501
  549. oscura-0.5.1/demonstrations/06_reverse_engineering/09_signal_classification.py +0 -480
  550. oscura-0.5.1/demonstrations/06_reverse_engineering/10_anomaly_detection.py +0 -563
  551. oscura-0.5.1/demonstrations/06_reverse_engineering/README.md +0 -231
  552. oscura-0.5.1/demonstrations/06_reverse_engineering/__init__.py +0 -26
  553. oscura-0.5.1/demonstrations/07_advanced_api/01_pipeline_api.py +0 -352
  554. oscura-0.5.1/demonstrations/07_advanced_api/02_dsl_syntax.py +0 -370
  555. oscura-0.5.1/demonstrations/07_advanced_api/03_operators.py +0 -394
  556. oscura-0.5.1/demonstrations/07_advanced_api/04_composition.py +0 -405
  557. oscura-0.5.1/demonstrations/07_advanced_api/05_optimization.py +0 -409
  558. oscura-0.5.1/demonstrations/07_advanced_api/06_streaming_api.py +0 -463
  559. oscura-0.5.1/demonstrations/07_advanced_api/07_parallel_processing.py +0 -366
  560. oscura-0.5.1/demonstrations/07_advanced_api/08_gpu_acceleration.py +0 -392
  561. oscura-0.5.1/demonstrations/07_advanced_api/README.md +0 -226
  562. oscura-0.5.1/demonstrations/07_advanced_api/__init__.py +0 -11
  563. oscura-0.5.1/demonstrations/08_extensibility/01_plugin_basics.py +0 -293
  564. oscura-0.5.1/demonstrations/08_extensibility/02_custom_measurement.py +0 -410
  565. oscura-0.5.1/demonstrations/08_extensibility/03_custom_algorithm.py +0 -462
  566. oscura-0.5.1/demonstrations/08_extensibility/04_plugin_development.py +0 -521
  567. oscura-0.5.1/demonstrations/08_extensibility/05_measurement_registry.py +0 -480
  568. oscura-0.5.1/demonstrations/08_extensibility/06_plugin_templates.py +0 -495
  569. oscura-0.5.1/demonstrations/08_extensibility/README.md +0 -600
  570. oscura-0.5.1/demonstrations/09_batch_processing/01_parallel_batch.py +0 -413
  571. oscura-0.5.1/demonstrations/09_batch_processing/02_result_aggregation.py +0 -515
  572. oscura-0.5.1/demonstrations/09_batch_processing/03_progress_tracking.py +0 -413
  573. oscura-0.5.1/demonstrations/09_batch_processing/04_optimization.py +0 -568
  574. oscura-0.5.1/demonstrations/09_batch_processing/README.md +0 -657
  575. oscura-0.5.1/demonstrations/10_sessions/01_analysis_session.py +0 -319
  576. oscura-0.5.1/demonstrations/10_sessions/02_can_session.py +0 -331
  577. oscura-0.5.1/demonstrations/10_sessions/03_blackbox_session.py +0 -333
  578. oscura-0.5.1/demonstrations/10_sessions/04_session_persistence.py +0 -376
  579. oscura-0.5.1/demonstrations/10_sessions/05_interactive_analysis.py +0 -425
  580. oscura-0.5.1/demonstrations/10_sessions/README.md +0 -678
  581. oscura-0.5.1/demonstrations/10_sessions/__init__.py +0 -5
  582. oscura-0.5.1/demonstrations/11_integration/01_cli_usage.py +0 -427
  583. oscura-0.5.1/demonstrations/11_integration/02_jupyter_notebooks.py +0 -364
  584. oscura-0.5.1/demonstrations/11_integration/03_llm_integration.py +0 -473
  585. oscura-0.5.1/demonstrations/11_integration/04_configuration_files.py +0 -522
  586. oscura-0.5.1/demonstrations/11_integration/05_hardware_integration.py +0 -566
  587. oscura-0.5.1/demonstrations/11_integration/README.md +0 -364
  588. oscura-0.5.1/demonstrations/12_quality_tools/01_ensemble_methods.py +0 -404
  589. oscura-0.5.1/demonstrations/12_quality_tools/02_quality_scoring.py +0 -556
  590. oscura-0.5.1/demonstrations/12_quality_tools/03_warning_system.py +0 -679
  591. oscura-0.5.1/demonstrations/12_quality_tools/04_recommendations.py +0 -510
  592. oscura-0.5.1/demonstrations/12_quality_tools/README.md +0 -718
  593. oscura-0.5.1/demonstrations/13_guidance/01_smart_recommendations.py +0 -527
  594. oscura-0.5.1/demonstrations/13_guidance/02_analysis_wizards.py +0 -429
  595. oscura-0.5.1/demonstrations/13_guidance/03_onboarding_helpers.py +0 -418
  596. oscura-0.5.1/demonstrations/13_guidance/README.md +0 -380
  597. oscura-0.5.1/demonstrations/14_exploratory/01_unknown_signals.py +0 -530
  598. oscura-0.5.1/demonstrations/14_exploratory/02_fuzzy_matching.py +0 -378
  599. oscura-0.5.1/demonstrations/14_exploratory/03_signal_recovery.py +0 -438
  600. oscura-0.5.1/demonstrations/14_exploratory/04_exploratory_analysis.py +0 -564
  601. oscura-0.5.1/demonstrations/14_exploratory/05_advanced_search.py +0 -454
  602. oscura-0.5.1/demonstrations/14_exploratory/README.md +0 -488
  603. oscura-0.5.1/demonstrations/15_export_visualization/01_export_formats.py +0 -391
  604. oscura-0.5.1/demonstrations/15_export_visualization/02_wavedrom_timing.py +0 -319
  605. oscura-0.5.1/demonstrations/15_export_visualization/03_wireshark_dissectors.py +0 -341
  606. oscura-0.5.1/demonstrations/15_export_visualization/04_report_generation.py +0 -435
  607. oscura-0.5.1/demonstrations/15_export_visualization/05_visualization_gallery.py +0 -382
  608. oscura-0.5.1/demonstrations/15_export_visualization/06_comprehensive_export.py +0 -827
  609. oscura-0.5.1/demonstrations/15_export_visualization/README.md +0 -608
  610. oscura-0.5.1/demonstrations/16_complete_workflows/01_unknown_device_re.py +0 -452
  611. oscura-0.5.1/demonstrations/16_complete_workflows/02_automotive_diagnostics.py +0 -500
  612. oscura-0.5.1/demonstrations/16_complete_workflows/03_emc_testing.py +0 -486
  613. oscura-0.5.1/demonstrations/16_complete_workflows/04_production_testing.py +0 -481
  614. oscura-0.5.1/demonstrations/16_complete_workflows/05_failure_analysis.py +0 -580
  615. oscura-0.5.1/demonstrations/16_complete_workflows/06_device_characterization.py +0 -587
  616. oscura-0.5.1/demonstrations/16_complete_workflows/__init__.py +0 -19
  617. oscura-0.5.1/demonstrations/17_signal_generation/01_signal_builder_comprehensive.py +0 -428
  618. oscura-0.5.1/demonstrations/17_signal_generation/02_protocol_generation.py +0 -433
  619. oscura-0.5.1/demonstrations/17_signal_generation/03_impairment_simulation.py +0 -427
  620. oscura-0.5.1/demonstrations/17_signal_generation/README.md +0 -556
  621. oscura-0.5.1/demonstrations/18_comparison_testing/01_golden_reference.py +0 -360
  622. oscura-0.5.1/demonstrations/18_comparison_testing/02_limit_testing.py +0 -384
  623. oscura-0.5.1/demonstrations/18_comparison_testing/03_mask_testing.py +0 -144
  624. oscura-0.5.1/demonstrations/18_comparison_testing/04_regression_testing.py +0 -190
  625. oscura-0.5.1/demonstrations/18_comparison_testing/README.md +0 -600
  626. oscura-0.5.1/demonstrations/19_standards_compliance/01_ieee_181.py +0 -213
  627. oscura-0.5.1/demonstrations/19_standards_compliance/02_ieee_1241.py +0 -102
  628. oscura-0.5.1/demonstrations/19_standards_compliance/03_ieee_1459.py +0 -104
  629. oscura-0.5.1/demonstrations/19_standards_compliance/04_ieee_2414.py +0 -129
  630. oscura-0.5.1/demonstrations/19_standards_compliance/README.md +0 -636
  631. oscura-0.5.1/demonstrations/CAPABILITY_CROSSREF.md +0 -576
  632. oscura-0.5.1/demonstrations/README.md +0 -287
  633. oscura-0.5.1/demonstrations/STATUS.md +0 -451
  634. oscura-0.5.1/demonstrations/__init__.py +0 -3
  635. oscura-0.5.1/demonstrations/capability_index.py +0 -318
  636. oscura-0.5.1/demonstrations/common/__init__.py +0 -55
  637. oscura-0.5.1/demonstrations/common/base_demo.py +0 -288
  638. oscura-0.5.1/demonstrations/common/data_generation.py +0 -193
  639. oscura-0.5.1/demonstrations/common/formatting.py +0 -154
  640. oscura-0.5.1/demonstrations/common/plotting.py +0 -136
  641. oscura-0.5.1/demonstrations/common/validation.py +0 -149
  642. oscura-0.5.1/demonstrations/data/.gitignore +0 -8
  643. oscura-0.5.1/demonstrations/data/README.md +0 -32
  644. oscura-0.5.1/demonstrations/generate_all_data.py +0 -113
  645. oscura-0.5.1/demonstrations/validate_all.py +0 -250
  646. oscura-0.5.1/demos/01_waveform_analysis/demo_data/.gitkeep +0 -0
  647. oscura-0.5.1/demos/01_waveform_analysis/generate_demo_data.py +0 -297
  648. oscura-0.5.1/demos/03_custom_daq/demo_data/.gitkeep +0 -0
  649. oscura-0.5.1/demos/03_custom_daq/generate_demo_data.py +0 -241
  650. oscura-0.5.1/demos/04_serial_protocols/demo_data/.gitkeep +0 -2
  651. oscura-0.5.1/demos/05_protocol_decoding/demo_data/.gitkeep +0 -0
  652. oscura-0.5.1/demos/05_protocol_decoding/generate_demo_data.py +0 -553
  653. oscura-0.5.1/demos/06_udp_packet_analysis/demo_data/.gitkeep +0 -0
  654. oscura-0.5.1/demos/06_udp_packet_analysis/generate_demo_data.py +0 -433
  655. oscura-0.5.1/demos/07_protocol_inference/demo_data/.gitkeep +0 -2
  656. oscura-0.5.1/demos/09_automotive/demo_data/.gitkeep +0 -0
  657. oscura-0.5.1/demos/09_automotive/generate_demo_data.py +0 -593
  658. oscura-0.5.1/demos/11_mixed_signal/demo_data/.gitkeep +0 -0
  659. oscura-0.5.1/demos/11_mixed_signal/generate_demo_data.py +0 -430
  660. oscura-0.5.1/demos/12_spectral_compliance/demo_data/.gitkeep +0 -0
  661. oscura-0.5.1/demos/12_spectral_compliance/generate_demo_data.py +0 -301
  662. oscura-0.5.1/demos/13_jitter_analysis/generate_demo_data.py +0 -149
  663. oscura-0.5.1/demos/16_emc_compliance/demo_data/.gitkeep +0 -0
  664. oscura-0.5.1/demos/16_emc_compliance/generate_demo_data.py +0 -392
  665. oscura-0.5.1/demos/17_signal_reverse_engineering/demo_data/.gitkeep +0 -0
  666. oscura-0.5.1/demos/17_signal_reverse_engineering/generate_demo_data.py +0 -443
  667. oscura-0.5.1/demos/generate_all_demo_data.py +0 -405
  668. oscura-0.5.1/mkdocs.yml +0 -131
  669. oscura-0.5.1/pyproject.toml +0 -716
  670. oscura-0.5.1/run_all_demos.py +0 -212
  671. oscura-0.5.1/src/oscura/__init__.py +0 -812
  672. oscura-0.5.1/src/oscura/acquisition/__init__.py +0 -147
  673. oscura-0.5.1/src/oscura/acquisition/file.py +0 -255
  674. oscura-0.5.1/src/oscura/acquisition/hardware.py +0 -186
  675. oscura-0.5.1/src/oscura/acquisition/saleae.py +0 -340
  676. oscura-0.5.1/src/oscura/acquisition/socketcan.py +0 -315
  677. oscura-0.5.1/src/oscura/acquisition/streaming.py +0 -38
  678. oscura-0.5.1/src/oscura/acquisition/synthetic.py +0 -229
  679. oscura-0.5.1/src/oscura/acquisition/visa.py +0 -376
  680. oscura-0.5.1/src/oscura/analyzers/__init__.py +0 -40
  681. oscura-0.5.1/src/oscura/analyzers/digital/edges.py +0 -632
  682. oscura-0.5.1/src/oscura/analyzers/digital/quality.py +0 -878
  683. oscura-0.5.1/src/oscura/analyzers/digital/timing.py +0 -1134
  684. oscura-0.5.1/src/oscura/analyzers/eye/diagram.py +0 -434
  685. oscura-0.5.1/src/oscura/analyzers/eye/metrics.py +0 -555
  686. oscura-0.5.1/src/oscura/analyzers/jitter/__init__.py +0 -83
  687. oscura-0.5.1/src/oscura/analyzers/jitter/ber.py +0 -333
  688. oscura-0.5.1/src/oscura/analyzers/jitter/decomposition.py +0 -759
  689. oscura-0.5.1/src/oscura/analyzers/jitter/spectrum.py +0 -220
  690. oscura-0.5.1/src/oscura/analyzers/packet/daq.py +0 -1077
  691. oscura-0.5.1/src/oscura/analyzers/packet/parser.py +0 -327
  692. oscura-0.5.1/src/oscura/analyzers/packet/payload.py +0 -2156
  693. oscura-0.5.1/src/oscura/analyzers/packet/payload_analysis.py +0 -1312
  694. oscura-0.5.1/src/oscura/analyzers/packet/payload_patterns.py +0 -670
  695. oscura-0.5.1/src/oscura/analyzers/packet/stream.py +0 -359
  696. oscura-0.5.1/src/oscura/analyzers/patterns/__init__.py +0 -267
  697. oscura-0.5.1/src/oscura/analyzers/patterns/clustering.py +0 -1038
  698. oscura-0.5.1/src/oscura/analyzers/patterns/discovery.py +0 -539
  699. oscura-0.5.1/src/oscura/analyzers/patterns/matching.py +0 -1091
  700. oscura-0.5.1/src/oscura/analyzers/patterns/periodic.py +0 -650
  701. oscura-0.5.1/src/oscura/analyzers/patterns/sequences.py +0 -767
  702. oscura-0.5.1/src/oscura/analyzers/power/conduction.py +0 -314
  703. oscura-0.5.1/src/oscura/analyzers/power/soa.py +0 -372
  704. oscura-0.5.1/src/oscura/analyzers/power/switching.py +0 -479
  705. oscura-0.5.1/src/oscura/analyzers/protocol/__init__.py +0 -150
  706. oscura-0.5.1/src/oscura/analyzers/protocols/base.py +0 -500
  707. oscura-0.5.1/src/oscura/analyzers/protocols/can.py +0 -620
  708. oscura-0.5.1/src/oscura/analyzers/protocols/can_fd.py +0 -448
  709. oscura-0.5.1/src/oscura/analyzers/protocols/flexray.py +0 -405
  710. oscura-0.5.1/src/oscura/analyzers/protocols/hdlc.py +0 -399
  711. oscura-0.5.1/src/oscura/analyzers/protocols/i2c.py +0 -368
  712. oscura-0.5.1/src/oscura/analyzers/protocols/i2s.py +0 -296
  713. oscura-0.5.1/src/oscura/analyzers/protocols/jtag.py +0 -393
  714. oscura-0.5.1/src/oscura/analyzers/protocols/lin.py +0 -445
  715. oscura-0.5.1/src/oscura/analyzers/protocols/manchester.py +0 -333
  716. oscura-0.5.1/src/oscura/analyzers/protocols/onewire.py +0 -501
  717. oscura-0.5.1/src/oscura/analyzers/protocols/spi.py +0 -334
  718. oscura-0.5.1/src/oscura/analyzers/protocols/swd.py +0 -325
  719. oscura-0.5.1/src/oscura/analyzers/protocols/uart.py +0 -393
  720. oscura-0.5.1/src/oscura/analyzers/protocols/usb.py +0 -495
  721. oscura-0.5.1/src/oscura/analyzers/side_channel/power.py +0 -690
  722. oscura-0.5.1/src/oscura/analyzers/signal_integrity/__init__.py +0 -63
  723. oscura-0.5.1/src/oscura/analyzers/signal_integrity/sparams.py +0 -306
  724. oscura-0.5.1/src/oscura/analyzers/spectral/chunked.py +0 -273
  725. oscura-0.5.1/src/oscura/analyzers/spectral/chunked_fft.py +0 -571
  726. oscura-0.5.1/src/oscura/analyzers/spectral/chunked_wavelet.py +0 -391
  727. oscura-0.5.1/src/oscura/analyzers/statistical/checksum.py +0 -925
  728. oscura-0.5.1/src/oscura/analyzers/statistical/classification.py +0 -780
  729. oscura-0.5.1/src/oscura/analyzers/statistical/entropy.py +0 -1115
  730. oscura-0.5.1/src/oscura/analyzers/statistics/correlation.py +0 -630
  731. oscura-0.5.1/src/oscura/analyzers/statistics/outliers.py +0 -463
  732. oscura-0.5.1/src/oscura/analyzers/statistics/streaming.py +0 -93
  733. oscura-0.5.1/src/oscura/analyzers/validation.py +0 -598
  734. oscura-0.5.1/src/oscura/analyzers/waveform/measurements.py +0 -943
  735. oscura-0.5.1/src/oscura/analyzers/waveform/measurements_with_uncertainty.py +0 -371
  736. oscura-0.5.1/src/oscura/analyzers/waveform/spectral.py +0 -1689
  737. oscura-0.5.1/src/oscura/api/__init__.py +0 -62
  738. oscura-0.5.1/src/oscura/api/dsl.py +0 -538
  739. oscura-0.5.1/src/oscura/api/operators.py +0 -498
  740. oscura-0.5.1/src/oscura/api/optimization.py +0 -392
  741. oscura-0.5.1/src/oscura/automotive/__init__.py +0 -73
  742. oscura-0.5.1/src/oscura/automotive/can/__init__.py +0 -50
  743. oscura-0.5.1/src/oscura/automotive/can/checksum.py +0 -250
  744. oscura-0.5.1/src/oscura/automotive/can/message_wrapper.py +0 -375
  745. oscura-0.5.1/src/oscura/automotive/can/patterns.py +0 -383
  746. oscura-0.5.1/src/oscura/automotive/can/session.py +0 -651
  747. oscura-0.5.1/src/oscura/automotive/can/state_machine.py +0 -303
  748. oscura-0.5.1/src/oscura/automotive/can/stimulus_response.py +0 -461
  749. oscura-0.5.1/src/oscura/automotive/dbc/__init__.py +0 -13
  750. oscura-0.5.1/src/oscura/automotive/dbc/generator.py +0 -156
  751. oscura-0.5.1/src/oscura/automotive/dbc/parser.py +0 -146
  752. oscura-0.5.1/src/oscura/automotive/dtc/data.json +0 -2763
  753. oscura-0.5.1/src/oscura/automotive/dtc/database.py +0 -304
  754. oscura-0.5.1/src/oscura/automotive/j1939/__init__.py +0 -12
  755. oscura-0.5.1/src/oscura/automotive/loaders/blf.py +0 -75
  756. oscura-0.5.1/src/oscura/automotive/loaders/csv_can.py +0 -134
  757. oscura-0.5.1/src/oscura/automotive/loaders/dispatcher.py +0 -136
  758. oscura-0.5.1/src/oscura/automotive/loaders/mdf.py +0 -331
  759. oscura-0.5.1/src/oscura/automotive/loaders/pcap.py +0 -132
  760. oscura-0.5.1/src/oscura/automotive/uds/__init__.py +0 -46
  761. oscura-0.5.1/src/oscura/automotive/uds/decoder.py +0 -265
  762. oscura-0.5.1/src/oscura/automotive/uds/models.py +0 -62
  763. oscura-0.5.1/src/oscura/automotive/visualization.py +0 -369
  764. oscura-0.5.1/src/oscura/batch/__init__.py +0 -55
  765. oscura-0.5.1/src/oscura/batch/advanced.py +0 -627
  766. oscura-0.5.1/src/oscura/batch/aggregate.py +0 -300
  767. oscura-0.5.1/src/oscura/batch/analyze.py +0 -139
  768. oscura-0.5.1/src/oscura/batch/logging.py +0 -487
  769. oscura-0.5.1/src/oscura/batch/metrics.py +0 -556
  770. oscura-0.5.1/src/oscura/builders/__init__.py +0 -39
  771. oscura-0.5.1/src/oscura/cli/batch.py +0 -339
  772. oscura-0.5.1/src/oscura/cli/characterize.py +0 -273
  773. oscura-0.5.1/src/oscura/cli/compare.py +0 -775
  774. oscura-0.5.1/src/oscura/cli/decode.py +0 -551
  775. oscura-0.5.1/src/oscura/cli/main.py +0 -245
  776. oscura-0.5.1/src/oscura/cli/shell.py +0 -348
  777. oscura-0.5.1/src/oscura/comparison/__init__.py +0 -66
  778. oscura-0.5.1/src/oscura/comparison/compare.py +0 -397
  779. oscura-0.5.1/src/oscura/comparison/golden.py +0 -487
  780. oscura-0.5.1/src/oscura/comparison/limits.py +0 -391
  781. oscura-0.5.1/src/oscura/comparison/mask.py +0 -434
  782. oscura-0.5.1/src/oscura/comparison/trace_diff.py +0 -30
  783. oscura-0.5.1/src/oscura/comparison/visualization.py +0 -481
  784. oscura-0.5.1/src/oscura/compliance/__init__.py +0 -70
  785. oscura-0.5.1/src/oscura/compliance/advanced.py +0 -756
  786. oscura-0.5.1/src/oscura/compliance/masks.py +0 -363
  787. oscura-0.5.1/src/oscura/compliance/reporting.py +0 -483
  788. oscura-0.5.1/src/oscura/compliance/testing.py +0 -298
  789. oscura-0.5.1/src/oscura/component/__init__.py +0 -38
  790. oscura-0.5.1/src/oscura/component/impedance.py +0 -365
  791. oscura-0.5.1/src/oscura/component/reactive.py +0 -598
  792. oscura-0.5.1/src/oscura/component/transmission_line.py +0 -312
  793. oscura-0.5.1/src/oscura/config/__init__.py +0 -191
  794. oscura-0.5.1/src/oscura/config/defaults.py +0 -254
  795. oscura-0.5.1/src/oscura/config/loader.py +0 -346
  796. oscura-0.5.1/src/oscura/config/memory.py +0 -271
  797. oscura-0.5.1/src/oscura/config/migration.py +0 -458
  798. oscura-0.5.1/src/oscura/config/pipeline.py +0 -1077
  799. oscura-0.5.1/src/oscura/config/preferences.py +0 -530
  800. oscura-0.5.1/src/oscura/config/protocol.py +0 -875
  801. oscura-0.5.1/src/oscura/config/schema.py +0 -713
  802. oscura-0.5.1/src/oscura/config/settings.py +0 -420
  803. oscura-0.5.1/src/oscura/config/thresholds.py +0 -599
  804. oscura-0.5.1/src/oscura/convenience.py +0 -457
  805. oscura-0.5.1/src/oscura/core/__init__.py +0 -299
  806. oscura-0.5.1/src/oscura/core/backend_selector.py +0 -405
  807. oscura-0.5.1/src/oscura/core/cache.py +0 -590
  808. oscura-0.5.1/src/oscura/core/cancellation.py +0 -439
  809. oscura-0.5.1/src/oscura/core/correlation.py +0 -214
  810. oscura-0.5.1/src/oscura/core/cross_domain.py +0 -422
  811. oscura-0.5.1/src/oscura/core/debug.py +0 -301
  812. oscura-0.5.1/src/oscura/core/gpu_backend.py +0 -523
  813. oscura-0.5.1/src/oscura/core/log_query.py +0 -540
  814. oscura-0.5.1/src/oscura/core/logging.py +0 -931
  815. oscura-0.5.1/src/oscura/core/logging_advanced.py +0 -952
  816. oscura-0.5.1/src/oscura/core/memory_limits.py +0 -334
  817. oscura-0.5.1/src/oscura/core/memory_monitor.py +0 -453
  818. oscura-0.5.1/src/oscura/core/memory_progress.py +0 -465
  819. oscura-0.5.1/src/oscura/core/memory_warnings.py +0 -315
  820. oscura-0.5.1/src/oscura/core/numba_backend.py +0 -360
  821. oscura-0.5.1/src/oscura/core/progress.py +0 -524
  822. oscura-0.5.1/src/oscura/core/provenance.py +0 -358
  823. oscura-0.5.1/src/oscura/core/types.py +0 -504
  824. oscura-0.5.1/src/oscura/core/uncertainty.py +0 -383
  825. oscura-0.5.1/src/oscura/discovery/auto_decoder.py +0 -415
  826. oscura-0.5.1/src/oscura/discovery/comparison.py +0 -497
  827. oscura-0.5.1/src/oscura/discovery/quality_validator.py +0 -528
  828. oscura-0.5.1/src/oscura/discovery/signal_detector.py +0 -769
  829. oscura-0.5.1/src/oscura/dsl/__init__.py +0 -73
  830. oscura-0.5.1/src/oscura/dsl/commands.py +0 -246
  831. oscura-0.5.1/src/oscura/dsl/interpreter.py +0 -457
  832. oscura-0.5.1/src/oscura/dsl/parser.py +0 -691
  833. oscura-0.5.1/src/oscura/dsl/repl.py +0 -172
  834. oscura-0.5.1/src/oscura/exceptions.py +0 -59
  835. oscura-0.5.1/src/oscura/exploratory/__init__.py +0 -111
  836. oscura-0.5.1/src/oscura/exploratory/error_recovery.py +0 -642
  837. oscura-0.5.1/src/oscura/exploratory/fuzzy.py +0 -513
  838. oscura-0.5.1/src/oscura/exploratory/fuzzy_advanced.py +0 -786
  839. oscura-0.5.1/src/oscura/exploratory/legacy.py +0 -831
  840. oscura-0.5.1/src/oscura/exploratory/parse.py +0 -360
  841. oscura-0.5.1/src/oscura/exploratory/recovery.py +0 -277
  842. oscura-0.5.1/src/oscura/exploratory/sync.py +0 -384
  843. oscura-0.5.1/src/oscura/exploratory/unknown.py +0 -707
  844. oscura-0.5.1/src/oscura/export/__init__.py +0 -25
  845. oscura-0.5.1/src/oscura/export/wireshark/generator.py +0 -312
  846. oscura-0.5.1/src/oscura/export/wireshark/templates/dissector.lua.j2 +0 -92
  847. oscura-0.5.1/src/oscura/exporters/__init__.py +0 -94
  848. oscura-0.5.1/src/oscura/exporters/csv.py +0 -303
  849. oscura-0.5.1/src/oscura/exporters/exporters.py +0 -44
  850. oscura-0.5.1/src/oscura/exporters/hdf5.py +0 -217
  851. oscura-0.5.1/src/oscura/exporters/html_export.py +0 -701
  852. oscura-0.5.1/src/oscura/exporters/json_export.py +0 -291
  853. oscura-0.5.1/src/oscura/exporters/markdown_export.py +0 -367
  854. oscura-0.5.1/src/oscura/exporters/matlab_export.py +0 -354
  855. oscura-0.5.1/src/oscura/exporters/npz_export.py +0 -219
  856. oscura-0.5.1/src/oscura/exporters/spice_export.py +0 -210
  857. oscura-0.5.1/src/oscura/extensibility/docs.py +0 -752
  858. oscura-0.5.1/src/oscura/extensibility/extensions.py +0 -1125
  859. oscura-0.5.1/src/oscura/extensibility/logging.py +0 -259
  860. oscura-0.5.1/src/oscura/extensibility/measurements.py +0 -485
  861. oscura-0.5.1/src/oscura/extensibility/plugins.py +0 -414
  862. oscura-0.5.1/src/oscura/extensibility/templates.py +0 -905
  863. oscura-0.5.1/src/oscura/extensibility/validation.py +0 -651
  864. oscura-0.5.1/src/oscura/filtering/__init__.py +0 -89
  865. oscura-0.5.1/src/oscura/filtering/base.py +0 -563
  866. oscura-0.5.1/src/oscura/filtering/convenience.py +0 -564
  867. oscura-0.5.1/src/oscura/filtering/design.py +0 -725
  868. oscura-0.5.1/src/oscura/filtering/filters.py +0 -32
  869. oscura-0.5.1/src/oscura/filtering/introspection.py +0 -605
  870. oscura-0.5.1/src/oscura/guidance/wizard.py +0 -518
  871. oscura-0.5.1/src/oscura/inference/__init__.py +0 -251
  872. oscura-0.5.1/src/oscura/inference/active_learning/observation_table.py +0 -228
  873. oscura-0.5.1/src/oscura/inference/alignment.py +0 -655
  874. oscura-0.5.1/src/oscura/inference/bayesian.py +0 -943
  875. oscura-0.5.1/src/oscura/inference/crc_reverse.py +0 -711
  876. oscura-0.5.1/src/oscura/inference/logic.py +0 -288
  877. oscura-0.5.1/src/oscura/inference/message_format.py +0 -1307
  878. oscura-0.5.1/src/oscura/inference/protocol.py +0 -417
  879. oscura-0.5.1/src/oscura/inference/protocol_dsl.py +0 -1086
  880. oscura-0.5.1/src/oscura/inference/signal_intelligence.py +0 -1509
  881. oscura-0.5.1/src/oscura/inference/spectral.py +0 -215
  882. oscura-0.5.1/src/oscura/inference/state_machine.py +0 -636
  883. oscura-0.5.1/src/oscura/inference/stream.py +0 -918
  884. oscura-0.5.1/src/oscura/integrations/__init__.py +0 -59
  885. oscura-0.5.1/src/oscura/integrations/llm.py +0 -1829
  886. oscura-0.5.1/src/oscura/jupyter/display.py +0 -266
  887. oscura-0.5.1/src/oscura/jupyter/magic.py +0 -334
  888. oscura-0.5.1/src/oscura/loaders/__init__.py +0 -543
  889. oscura-0.5.1/src/oscura/loaders/binary.py +0 -69
  890. oscura-0.5.1/src/oscura/loaders/chipwhisperer.py +0 -393
  891. oscura-0.5.1/src/oscura/loaders/configurable.py +0 -1255
  892. oscura-0.5.1/src/oscura/loaders/csv_loader.py +0 -473
  893. oscura-0.5.1/src/oscura/loaders/hdf5_loader.py +0 -510
  894. oscura-0.5.1/src/oscura/loaders/lazy.py +0 -370
  895. oscura-0.5.1/src/oscura/loaders/mmap_loader.py +0 -583
  896. oscura-0.5.1/src/oscura/loaders/numpy_loader.py +0 -436
  897. oscura-0.5.1/src/oscura/loaders/pcap.py +0 -432
  898. oscura-0.5.1/src/oscura/loaders/rigol.py +0 -287
  899. oscura-0.5.1/src/oscura/loaders/sigrok.py +0 -321
  900. oscura-0.5.1/src/oscura/loaders/tdms.py +0 -367
  901. oscura-0.5.1/src/oscura/loaders/tektronix.py +0 -711
  902. oscura-0.5.1/src/oscura/loaders/touchstone.py +0 -221
  903. oscura-0.5.1/src/oscura/loaders/vcd.py +0 -464
  904. oscura-0.5.1/src/oscura/loaders/wav.py +0 -233
  905. oscura-0.5.1/src/oscura/math/__init__.py +0 -45
  906. oscura-0.5.1/src/oscura/math/arithmetic.py +0 -822
  907. oscura-0.5.1/src/oscura/math/interpolation.py +0 -413
  908. oscura-0.5.1/src/oscura/onboarding/__init__.py +0 -39
  909. oscura-0.5.1/src/oscura/onboarding/help.py +0 -498
  910. oscura-0.5.1/src/oscura/onboarding/tutorials.py +0 -405
  911. oscura-0.5.1/src/oscura/onboarding/wizard.py +0 -466
  912. oscura-0.5.1/src/oscura/optimization/__init__.py +0 -19
  913. oscura-0.5.1/src/oscura/optimization/search.py +0 -532
  914. oscura-0.5.1/src/oscura/pipeline/base.py +0 -338
  915. oscura-0.5.1/src/oscura/pipeline/composition.py +0 -248
  916. oscura-0.5.1/src/oscura/pipeline/parallel.py +0 -448
  917. oscura-0.5.1/src/oscura/pipeline/pipeline.py +0 -375
  918. oscura-0.5.1/src/oscura/pipeline/reverse_engineering.py +0 -1119
  919. oscura-0.5.1/src/oscura/plugins/__init__.py +0 -122
  920. oscura-0.5.1/src/oscura/plugins/base.py +0 -272
  921. oscura-0.5.1/src/oscura/plugins/cli.py +0 -495
  922. oscura-0.5.1/src/oscura/plugins/discovery.py +0 -411
  923. oscura-0.5.1/src/oscura/plugins/lifecycle.py +0 -959
  924. oscura-0.5.1/src/oscura/plugins/manager.py +0 -493
  925. oscura-0.5.1/src/oscura/plugins/registry.py +0 -421
  926. oscura-0.5.1/src/oscura/plugins/versioning.py +0 -372
  927. oscura-0.5.1/src/oscura/quality/__init__.py +0 -65
  928. oscura-0.5.1/src/oscura/quality/ensemble.py +0 -740
  929. oscura-0.5.1/src/oscura/quality/explainer.py +0 -338
  930. oscura-0.5.1/src/oscura/quality/scoring.py +0 -616
  931. oscura-0.5.1/src/oscura/quality/warnings.py +0 -456
  932. oscura-0.5.1/src/oscura/reporting/__init__.py +0 -248
  933. oscura-0.5.1/src/oscura/reporting/analyze.py +0 -448
  934. oscura-0.5.1/src/oscura/reporting/argument_preparer.py +0 -596
  935. oscura-0.5.1/src/oscura/reporting/auto_report.py +0 -507
  936. oscura-0.5.1/src/oscura/reporting/batch.py +0 -615
  937. oscura-0.5.1/src/oscura/reporting/chart_selection.py +0 -223
  938. oscura-0.5.1/src/oscura/reporting/comparison.py +0 -328
  939. oscura-0.5.1/src/oscura/reporting/content/executive.py +0 -127
  940. oscura-0.5.1/src/oscura/reporting/core_formats/multi_format.py +0 -210
  941. oscura-0.5.1/src/oscura/reporting/engine.py +0 -836
  942. oscura-0.5.1/src/oscura/reporting/export.py +0 -366
  943. oscura-0.5.1/src/oscura/reporting/formatting/numbers.py +0 -401
  944. oscura-0.5.1/src/oscura/reporting/html.py +0 -578
  945. oscura-0.5.1/src/oscura/reporting/index.py +0 -590
  946. oscura-0.5.1/src/oscura/reporting/output.py +0 -377
  947. oscura-0.5.1/src/oscura/reporting/pdf.py +0 -373
  948. oscura-0.5.1/src/oscura/reporting/plots.py +0 -731
  949. oscura-0.5.1/src/oscura/reporting/sections.py +0 -469
  950. oscura-0.5.1/src/oscura/reporting/standards.py +0 -680
  951. oscura-0.5.1/src/oscura/reporting/summary_generator.py +0 -368
  952. oscura-0.5.1/src/oscura/reporting/tables.py +0 -397
  953. oscura-0.5.1/src/oscura/schemas/__init__.py +0 -158
  954. oscura-0.5.1/src/oscura/schemas/device_mapping.json +0 -182
  955. oscura-0.5.1/src/oscura/schemas/packet_format.json +0 -418
  956. oscura-0.5.1/src/oscura/schemas/protocol_definition.json +0 -363
  957. oscura-0.5.1/src/oscura/search/__init__.py +0 -16
  958. oscura-0.5.1/src/oscura/search/anomaly.py +0 -294
  959. oscura-0.5.1/src/oscura/search/context.py +0 -149
  960. oscura-0.5.1/src/oscura/search/pattern.py +0 -160
  961. oscura-0.5.1/src/oscura/session/__init__.py +0 -34
  962. oscura-0.5.1/src/oscura/session/annotations.py +0 -289
  963. oscura-0.5.1/src/oscura/session/history.py +0 -313
  964. oscura-0.5.1/src/oscura/session/session.py +0 -520
  965. oscura-0.5.1/src/oscura/sessions/__init__.py +0 -70
  966. oscura-0.5.1/src/oscura/sessions/base.py +0 -323
  967. oscura-0.5.1/src/oscura/sessions/blackbox.py +0 -640
  968. oscura-0.5.1/src/oscura/sessions/generic.py +0 -189
  969. oscura-0.5.1/src/oscura/streaming/chunked.py +0 -611
  970. oscura-0.5.1/src/oscura/streaming/progressive.py +0 -393
  971. oscura-0.5.1/src/oscura/streaming/realtime.py +0 -622
  972. oscura-0.5.1/src/oscura/testing/__init__.py +0 -54
  973. oscura-0.5.1/src/oscura/testing/synthetic.py +0 -810
  974. oscura-0.5.1/src/oscura/triggering/__init__.py +0 -68
  975. oscura-0.5.1/src/oscura/triggering/base.py +0 -229
  976. oscura-0.5.1/src/oscura/triggering/edge.py +0 -353
  977. oscura-0.5.1/src/oscura/triggering/pattern.py +0 -344
  978. oscura-0.5.1/src/oscura/triggering/pulse.py +0 -581
  979. oscura-0.5.1/src/oscura/triggering/window.py +0 -453
  980. oscura-0.5.1/src/oscura/ui/__init__.py +0 -48
  981. oscura-0.5.1/src/oscura/ui/formatters.py +0 -528
  982. oscura-0.5.1/src/oscura/ui/progressive_display.py +0 -340
  983. oscura-0.5.1/src/oscura/utils/__init__.py +0 -99
  984. oscura-0.5.1/src/oscura/utils/lazy.py +0 -407
  985. oscura-0.5.1/src/oscura/utils/memory.py +0 -836
  986. oscura-0.5.1/src/oscura/utils/memory_advanced.py +0 -1326
  987. oscura-0.5.1/src/oscura/utils/memory_extensions.py +0 -465
  988. oscura-0.5.1/src/oscura/visualization/__init__.py +0 -321
  989. oscura-0.5.1/src/oscura/visualization/accessibility.py +0 -526
  990. oscura-0.5.1/src/oscura/visualization/annotations.py +0 -374
  991. oscura-0.5.1/src/oscura/visualization/colors.py +0 -451
  992. oscura-0.5.1/src/oscura/visualization/digital.py +0 -337
  993. oscura-0.5.1/src/oscura/visualization/eye.py +0 -420
  994. oscura-0.5.1/src/oscura/visualization/interactive.py +0 -858
  995. oscura-0.5.1/src/oscura/visualization/jitter.py +0 -702
  996. oscura-0.5.1/src/oscura/visualization/layout.py +0 -365
  997. oscura-0.5.1/src/oscura/visualization/optimization.py +0 -1028
  998. oscura-0.5.1/src/oscura/visualization/palettes.py +0 -446
  999. oscura-0.5.1/src/oscura/visualization/power.py +0 -292
  1000. oscura-0.5.1/src/oscura/visualization/power_extended.py +0 -626
  1001. oscura-0.5.1/src/oscura/visualization/presets.py +0 -467
  1002. oscura-0.5.1/src/oscura/visualization/protocols.py +0 -932
  1003. oscura-0.5.1/src/oscura/visualization/render.py +0 -207
  1004. oscura-0.5.1/src/oscura/visualization/reverse_engineering.py +0 -791
  1005. oscura-0.5.1/src/oscura/visualization/signal_integrity.py +0 -808
  1006. oscura-0.5.1/src/oscura/visualization/specialized.py +0 -553
  1007. oscura-0.5.1/src/oscura/visualization/spectral.py +0 -811
  1008. oscura-0.5.1/src/oscura/visualization/thumbnails.py +0 -311
  1009. oscura-0.5.1/src/oscura/visualization/waveform.py +0 -367
  1010. oscura-0.5.1/src/oscura/workflow/__init__.py +0 -13
  1011. oscura-0.5.1/src/oscura/workflow/dag.py +0 -377
  1012. oscura-0.5.1/src/oscura/workflows/__init__.py +0 -58
  1013. oscura-0.5.1/src/oscura/workflows/compliance.py +0 -280
  1014. oscura-0.5.1/src/oscura/workflows/digital.py +0 -272
  1015. oscura-0.5.1/src/oscura/workflows/multi_trace.py +0 -504
  1016. oscura-0.5.1/src/oscura/workflows/power.py +0 -178
  1017. oscura-0.5.1/src/oscura/workflows/protocol.py +0 -492
  1018. oscura-0.5.1/src/oscura/workflows/reverse_engineering.py +0 -639
  1019. oscura-0.5.1/src/oscura/workflows/signal_integrity.py +0 -227
  1020. oscura-0.5.1/uv.lock +0 -5003
  1021. oscura-0.5.1/validate_all_demos.py +0 -266
  1022. {oscura-0.5.1 → oscura-0.7.0}/.claude/summaries/.gitkeep +0 -0
  1023. {oscura-0.5.1 → oscura-0.7.0}/.cspell/.gitkeep +0 -0
  1024. {oscura-0.5.1 → oscura-0.7.0}/.cspell/custom-dictionary.txt +0 -0
  1025. {oscura-0.5.1 → oscura-0.7.0}/.editorconfig +0 -0
  1026. {oscura-0.5.1 → oscura-0.7.0}/.env.example +0 -0
  1027. {oscura-0.5.1 → oscura-0.7.0}/.gitattributes +0 -0
  1028. {oscura-0.5.1 → oscura-0.7.0}/.gitleaks.toml +0 -0
  1029. {oscura-0.5.1 → oscura-0.7.0}/.importlinter +0 -0
  1030. {oscura-0.5.1 → oscura-0.7.0}/.lycheeignore +0 -0
  1031. {oscura-0.5.1 → oscura-0.7.0}/.markdownlint.yaml +0 -0
  1032. {oscura-0.5.1 → oscura-0.7.0}/.markdownlintignore +0 -0
  1033. {oscura-0.5.1 → oscura-0.7.0}/.prettierignore +0 -0
  1034. {oscura-0.5.1 → oscura-0.7.0}/.python-version +0 -0
  1035. {oscura-0.5.1 → oscura-0.7.0}/.shellcheckrc +0 -0
  1036. {oscura-0.5.1 → oscura-0.7.0}/.vscode/extensions.json +0 -0
  1037. {oscura-0.5.1 → oscura-0.7.0}/.vscode/markdown.css +0 -0
  1038. {oscura-0.5.1 → oscura-0.7.0}/.vscode/settings.json +0 -0
  1039. {oscura-0.5.1 → oscura-0.7.0}/.yamllint.yaml +0 -0
  1040. {oscura-0.5.1 → oscura-0.7.0}/CODE_OF_CONDUCT.md +0 -0
  1041. {oscura-0.5.1 → oscura-0.7.0}/LICENSE +0 -0
  1042. {oscura-0.5.1 → oscura-0.7.0}/Makefile +0 -0
  1043. {oscura-0.5.1 → oscura-0.7.0}/SECURITY.md +0 -0
  1044. {oscura-0.5.1 → oscura-0.7.0}/lychee.toml +0 -0
  1045. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/__main__.py +0 -0
  1046. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/__init__.py +0 -0
  1047. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/bus.py +0 -0
  1048. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/clock.py +0 -0
  1049. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/correlation.py +0 -0
  1050. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/extraction.py +0 -0
  1051. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/signal_quality.py +0 -0
  1052. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/digital/thresholds.py +0 -0
  1053. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/eye/__init__.py +0 -0
  1054. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/jitter/measurements.py +0 -0
  1055. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/measurements.py +0 -0
  1056. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/packet/__init__.py +0 -0
  1057. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/packet/metrics.py +0 -0
  1058. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/packet/payload_extraction.py +0 -0
  1059. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/patterns/learning.py +0 -0
  1060. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/power/__init__.py +0 -0
  1061. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/power/ac_power.py +0 -0
  1062. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/power/basic.py +0 -0
  1063. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/power/efficiency.py +0 -0
  1064. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/power/ripple.py +0 -0
  1065. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/protocols/__init__.py +0 -0
  1066. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/side_channel/__init__.py +0 -0
  1067. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/side_channel/timing.py +0 -0
  1068. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/signal_integrity/embedding.py +0 -0
  1069. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/signal_integrity/equalization.py +0 -0
  1070. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/spectral/__init__.py +0 -0
  1071. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/spectral/fft.py +0 -0
  1072. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistical/__init__.py +0 -0
  1073. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistical/chunked_corr.py +0 -0
  1074. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistical/ngrams.py +0 -0
  1075. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistics/__init__.py +0 -0
  1076. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistics/advanced.py +0 -0
  1077. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistics/basic.py +0 -0
  1078. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistics/distribution.py +0 -0
  1079. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/statistics/trend.py +0 -0
  1080. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/waveform/__init__.py +0 -0
  1081. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/analyzers/waveform/wavelets.py +0 -0
  1082. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/api/fluent.py +0 -0
  1083. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/api/profiling.py +0 -0
  1084. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/can/analysis.py +0 -0
  1085. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/can/correlation.py +0 -0
  1086. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/can/discovery.py +0 -0
  1087. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/can/models.py +0 -0
  1088. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/dtc/__init__.py +0 -0
  1089. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/j1939/decoder.py +0 -0
  1090. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/loaders/__init__.py +0 -0
  1091. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/loaders/asc.py +0 -0
  1092. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/obd/__init__.py +0 -0
  1093. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/automotive/obd/decoder.py +0 -0
  1094. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/cli/__init__.py +0 -0
  1095. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/audit.py +0 -0
  1096. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/confidence.py +0 -0
  1097. /oscura-0.5.1/src/oscura/core/config.py → /oscura-0.7.0/src/oscura/core/config/legacy.py +0 -0
  1098. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/edge_cases.py +0 -0
  1099. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/exceptions.py +0 -0
  1100. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/core}/extensibility/__init__.py +0 -0
  1101. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/core}/extensibility/registry.py +0 -0
  1102. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/lazy.py +0 -0
  1103. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/memoize.py +0 -0
  1104. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/memory_check.py +0 -0
  1105. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/memory_guard.py +0 -0
  1106. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/performance.py +0 -0
  1107. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/core}/plugins/isolation.py +0 -0
  1108. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/core/results.py +0 -0
  1109. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/core}/schemas/bus_configuration.json +0 -0
  1110. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/discovery/__init__.py +0 -0
  1111. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/discovery/anomaly_detector.py +0 -0
  1112. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/export/wireshark/README.md +0 -0
  1113. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/export/wireshark/__init__.py +0 -0
  1114. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/export/wireshark/lua_builder.py +0 -0
  1115. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/export/wireshark/type_mapping.py +0 -0
  1116. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/export/wireshark/validator.py +0 -0
  1117. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/guidance/__init__.py +0 -0
  1118. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/guidance/recommender.py +0 -0
  1119. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/README.md +0 -0
  1120. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/__init__.py +0 -0
  1121. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/lstar.py +0 -0
  1122. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/oracle.py +0 -0
  1123. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/teachers/__init__.py +0 -0
  1124. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/active_learning/teachers/simulator.py +0 -0
  1125. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/adaptive_tuning.py +0 -0
  1126. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/binary.py +0 -0
  1127. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/protocol_library.py +0 -0
  1128. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/inference/sequences.py +0 -0
  1129. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/jupyter/__init__.py +0 -0
  1130. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/loaders/csv.py +0 -0
  1131. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/loaders/hdf5.py +0 -0
  1132. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/loaders/preprocessing.py +0 -0
  1133. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/loaders/validation.py +0 -0
  1134. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/py.typed +0 -0
  1135. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/advanced.py +0 -0
  1136. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/config.py +0 -0
  1137. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/content/__init__.py +0 -0
  1138. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/content/filtering.py +0 -0
  1139. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/content/minimal.py +0 -0
  1140. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/content/verbosity.py +0 -0
  1141. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/core.py +0 -0
  1142. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/core_formats/__init__.py +0 -0
  1143. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/formatting/__init__.py +0 -0
  1144. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/formatting/emphasis.py +0 -0
  1145. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/formatting/standards.py +0 -0
  1146. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/formatting.py +0 -0
  1147. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/multichannel.py +0 -0
  1148. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/pptx_export.py +0 -0
  1149. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/renderers/__init__.py +0 -0
  1150. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/renderers/pdf.py +0 -0
  1151. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/template_system.py +0 -0
  1152. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/templates/__init__.py +0 -0
  1153. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/templates/definition.py +0 -0
  1154. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/templates/index.html +0 -0
  1155. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/reporting/templates/index.md +0 -0
  1156. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/utils/autodetect.py +0 -0
  1157. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/utils/buffer.py +0 -0
  1158. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/utils}/builders/signal_builder.py +0 -0
  1159. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/utils/lazy_imports.py +0 -0
  1160. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/utils}/optimization/parallel.py +0 -0
  1161. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/utils}/pipeline/__init__.py +0 -0
  1162. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/utils/progressive.py +0 -0
  1163. {oscura-0.5.1/src/oscura → oscura-0.7.0/src/oscura/utils}/streaming/__init__.py +0 -0
  1164. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/utils/windowing.py +0 -0
  1165. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/axis_scaling.py +0 -0
  1166. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/histogram.py +0 -0
  1167. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/keyboard.py +0 -0
  1168. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/plot.py +0 -0
  1169. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/rendering.py +0 -0
  1170. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/styles.py +0 -0
  1171. {oscura-0.5.1 → oscura-0.7.0}/src/oscura/visualization/time_axis.py +0 -0
  1172. {oscura-0.5.1 → oscura-0.7.0}/test_data/README.md +0 -0
@@ -0,0 +1,150 @@
1
+ # GitHub Configuration Files
2
+
3
+ This directory contains Infrastructure-as-Code (IaC) configuration files for GitHub repository settings.
4
+
5
+ ## Files
6
+
7
+ ### `main-branch-ruleset.json`
8
+
9
+ Complete export of the current active ruleset configuration, including metadata (IDs, timestamps, links).
10
+
11
+ **Purpose**: Documentation and backup of the live configuration.
12
+
13
+ **Usage**: Reference only. Do not use for imports (contains repo-specific IDs).
14
+
15
+ ### `main-branch-ruleset-template.json`
16
+
17
+ Clean template for creating/updating the main branch ruleset.
18
+
19
+ **Purpose**: Replicable configuration for forks and new instances.
20
+
21
+ **Usage**: Applied by `.github/scripts/setup-github-repo.sh` during repository setup.
22
+
23
+ ## Configuration Details
24
+
25
+ ### Main Branch Ruleset
26
+
27
+ **Protection mechanisms**:
28
+
29
+ - **Pull Request Rule**: Requires squash merge only (no required reviews for maintainers)
30
+ - **Merge Queue Rule**: ALLGREEN strategy ensures all workflow checks pass before merging
31
+
32
+ **Key settings**:
33
+
34
+ ```json
35
+ {
36
+ "grouping_strategy": "ALLGREEN", // All checks must pass
37
+ "merge_method": "SQUASH", // Squash commits on merge
38
+ "check_response_timeout_minutes": 60, // 1-hour timeout
39
+ "max_entries_to_build": 5, // Batch up to 5 PRs
40
+ "min_entries_to_merge": 1 // Minimum 1 PR per batch
41
+ }
42
+ ```
43
+
44
+ **Why no required_status_checks rule?**
45
+
46
+ The merge queue's ALLGREEN strategy already ensures all workflow checks pass. Adding explicit required status checks causes conflicts because:
47
+
48
+ - PR workflows run on `pull_request` events
49
+ - Merge queue creates `merge_group` events
50
+ - Required checks defined for PR events won't run on merge_group events
51
+ - Queue gets stuck waiting for checks that can't run
52
+
53
+ **Solution**: Let ALLGREEN handle validation. It automatically requires all checks to pass without naming them explicitly.
54
+
55
+ ## Applying Configuration
56
+
57
+ ### Initial Setup
58
+
59
+ ```bash
60
+ .github/scripts/setup-github-repo.sh
61
+ ```
62
+
63
+ This script:
64
+
65
+ 1. Reads `main-branch-ruleset-template.json`
66
+ 2. Checks if ruleset exists
67
+ 3. Creates new ruleset OR updates existing one
68
+ 4. Idempotent (safe to run multiple times)
69
+
70
+ ### Manual Application
71
+
72
+ ```bash
73
+ # Create new ruleset
74
+ gh api -X POST repos/OWNER/REPO/rulesets \
75
+ --input .github/config/main-branch-ruleset-template.json
76
+
77
+ # Update existing ruleset (replace ID with your ruleset ID)
78
+ gh api -X PUT repos/OWNER/REPO/rulesets/12055878 \
79
+ --input .github/config/main-branch-ruleset-template.json
80
+ ```
81
+
82
+ ### Exporting Current Config
83
+
84
+ ```bash
85
+ # List all rulesets and find ID
86
+ gh api repos/OWNER/REPO/rulesets --jq '.[] | {id, name}'
87
+
88
+ # Export specific ruleset
89
+ gh api repos/OWNER/REPO/rulesets/ID > .github/config/main-branch-ruleset.json
90
+ ```
91
+
92
+ ## For Fork Maintainers
93
+
94
+ When setting up a fork:
95
+
96
+ 1. **Option A - Use setup script** (recommended):
97
+
98
+ ```bash
99
+ .github/scripts/setup-github-repo.sh
100
+ ```
101
+
102
+ 2. **Option B - Manual setup**:
103
+
104
+ ```bash
105
+ # Set your repository
106
+ export REPO_FULL="your-org/your-repo"
107
+
108
+ # Create ruleset
109
+ gh api -X POST repos/${REPO_FULL}/rulesets \
110
+ --input .github/config/main-branch-ruleset-template.json
111
+ ```
112
+
113
+ 3. **Verify**:
114
+
115
+ ```bash
116
+ gh api repos/${REPO_FULL}/rulesets --jq '.[] | {name, enforcement}'
117
+ ```
118
+
119
+ ## Troubleshooting
120
+
121
+ ### Merge Queue Stuck in AWAITING_CHECKS
122
+
123
+ **Symptoms**: PR enters merge queue but stays stuck, never progresses
124
+
125
+ **Cause**: Ruleset has `required_status_checks` that only run on `pull_request` events, not `merge_group` events
126
+
127
+ **Fix**: Remove `required_status_checks` from ruleset, rely on ALLGREEN strategy instead:
128
+
129
+ ```bash
130
+ gh api -X PUT repos/OWNER/REPO/rulesets/ID \
131
+ --input .github/config/main-branch-ruleset-template.json
132
+ ```
133
+
134
+ ### Ruleset Already Exists
135
+
136
+ The setup script is idempotent - it updates existing rulesets by name. Safe to run multiple times.
137
+
138
+ ### Permission Denied
139
+
140
+ Requires admin permissions on the repository. Check:
141
+
142
+ ```bash
143
+ gh auth status
144
+ gh repo view OWNER/REPO --json viewerPermission
145
+ ```
146
+
147
+ ## Version History
148
+
149
+ - **2026-01-24**: Removed `required_status_checks` rule after merge queue stuck incident
150
+ - **2026-01-22**: Initial ruleset created with merge queue enabled
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "main branch protection with merge queue",
3
+ "target": "branch",
4
+ "enforcement": "active",
5
+ "conditions": {
6
+ "ref_name": {
7
+ "exclude": [],
8
+ "include": ["refs/heads/main"]
9
+ }
10
+ },
11
+ "rules": [
12
+ {
13
+ "type": "pull_request",
14
+ "parameters": {
15
+ "required_approving_review_count": 0,
16
+ "dismiss_stale_reviews_on_push": false,
17
+ "require_code_owner_review": false,
18
+ "require_last_push_approval": false,
19
+ "required_review_thread_resolution": false,
20
+ "allowed_merge_methods": ["squash"]
21
+ }
22
+ },
23
+ {
24
+ "type": "merge_queue",
25
+ "parameters": {
26
+ "merge_method": "SQUASH",
27
+ "max_entries_to_build": 5,
28
+ "min_entries_to_merge": 1,
29
+ "max_entries_to_merge": 5,
30
+ "min_entries_to_merge_wait_minutes": 0,
31
+ "grouping_strategy": "ALLGREEN",
32
+ "check_response_timeout_minutes": 60
33
+ }
34
+ }
35
+ ],
36
+ "bypass_actors": []
37
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "id": 12055878,
3
+ "name": "main branch protection with merge queue",
4
+ "target": "branch",
5
+ "source_type": "Repository",
6
+ "source": "oscura-re/oscura",
7
+ "enforcement": "active",
8
+ "conditions": {
9
+ "ref_name": {
10
+ "exclude": [],
11
+ "include": ["refs/heads/main"]
12
+ }
13
+ },
14
+ "rules": [
15
+ {
16
+ "type": "pull_request",
17
+ "parameters": {
18
+ "required_approving_review_count": 0,
19
+ "dismiss_stale_reviews_on_push": false,
20
+ "required_reviewers": [],
21
+ "require_code_owner_review": false,
22
+ "require_last_push_approval": false,
23
+ "required_review_thread_resolution": false,
24
+ "allowed_merge_methods": ["squash"]
25
+ }
26
+ },
27
+ {
28
+ "type": "merge_queue",
29
+ "parameters": {
30
+ "merge_method": "SQUASH",
31
+ "max_entries_to_build": 5,
32
+ "min_entries_to_merge": 1,
33
+ "max_entries_to_merge": 5,
34
+ "min_entries_to_merge_wait_minutes": 0,
35
+ "grouping_strategy": "ALLGREEN",
36
+ "check_response_timeout_minutes": 60
37
+ }
38
+ }
39
+ ],
40
+ "node_id": "RRS_lACqUmVwb3NpdG9yec5D805OzgC39UY",
41
+ "created_at": "2026-01-22T18:09:28.843Z",
42
+ "updated_at": "2026-01-24T16:30:10.799Z",
43
+ "bypass_actors": [],
44
+ "current_user_can_bypass": "never",
45
+ "_links": {
46
+ "self": {
47
+ "href": "https://api.github.com/repos/oscura-re/oscura/rulesets/12055878"
48
+ },
49
+ "html": {
50
+ "href": "https://github.com/oscura-re/oscura/rules/12055878"
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,313 @@
1
+ # =============================================================================
2
+ # Python
3
+ # =============================================================================
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+ *.so
8
+
9
+ # Virtual environments
10
+ .venv/
11
+ venv/
12
+ .env/
13
+
14
+ # Distribution / packaging
15
+ dist/
16
+ build/
17
+ *.egg-info/
18
+ *.egg
19
+ .eggs/
20
+
21
+ # =============================================================================
22
+ # Testing
23
+ # =============================================================================
24
+ .pytest_cache/
25
+ .coverage
26
+ .coverage.*
27
+ htmlcov/
28
+ .tox/
29
+ .nox/
30
+ coverage.xml
31
+ *.cover
32
+ test_output/
33
+
34
+ # =============================================================================
35
+ # Benchmarking
36
+ # =============================================================================
37
+ # pytest-benchmark autosave directory (machine-specific, CI artifact)
38
+ .benchmarks/
39
+
40
+ # =============================================================================
41
+ # Type checking / Linting
42
+ # =============================================================================
43
+ .mypy_cache/
44
+ .ruff_cache/
45
+ .dmypy.json
46
+ dmypy.json
47
+
48
+ # =============================================================================
49
+ # Pre-push / CI Caching
50
+ # =============================================================================
51
+ # Build cache for package build optimization
52
+ .cache/
53
+
54
+ # =============================================================================
55
+ # Spellcheck
56
+ # =============================================================================
57
+ # cSpell cache (dictionary cache for performance)
58
+ .cspell/.cache/
59
+
60
+ # =============================================================================
61
+ # Package managers
62
+ # =============================================================================
63
+ # uv cache (if using uv package manager)
64
+ .uv-cache/
65
+
66
+ # =============================================================================
67
+ # IDE / Editors
68
+ # =============================================================================
69
+ .idea/
70
+ *.swp
71
+ *.swo
72
+ *~
73
+ .project
74
+ .pydevproject
75
+ .settings/
76
+
77
+ # VS Code - keep config but ignore user-specific
78
+ .vscode/*
79
+ !.vscode/settings.json
80
+ !.vscode/extensions.json
81
+ !.vscode/launch.json
82
+ !.vscode/markdown.css
83
+ !.vscode/tasks.json
84
+ !.vscode/README.md
85
+
86
+ # =============================================================================
87
+ # Operating System
88
+ # =============================================================================
89
+ .DS_Store
90
+ .DS_Store?
91
+ ._*
92
+ .Spotlight-V100
93
+ .Trashes
94
+ Thumbs.db
95
+ ehthumbs.db
96
+ Desktop.ini
97
+
98
+ # =============================================================================
99
+ # Project-specific
100
+ # =============================================================================
101
+ # Temporary files
102
+ /tmp/
103
+ *.tmp
104
+ *.temp
105
+ *.bak
106
+
107
+ # Logs
108
+ *.log
109
+ logs/
110
+
111
+ # Generated outputs
112
+ output/
113
+ demos/output/
114
+
115
+ # Coverage and work tracking files
116
+ coverage.json
117
+ active_work.json
118
+
119
+ # =============================================================================
120
+ # Security / Sensitive Files
121
+ # =============================================================================
122
+ # Private keys and certificates
123
+ *.key
124
+ *.pem
125
+
126
+ # Credentials and secrets
127
+ *credentials*
128
+ .env
129
+ .env.local
130
+ .env.*.local
131
+ secrets.*
132
+ # Keep .env.example as template (not ignored)
133
+
134
+ # =============================================================================
135
+ # LaTeX Generated Files
136
+ # =============================================================================
137
+ # latexindent backup files
138
+ *.bak[0-9]
139
+ *.bak[0-9][0-9]
140
+
141
+ # GHDL work files
142
+ work-obj*.cf
143
+
144
+ # =============================================================================
145
+ # Claude Code Runtime Files
146
+ # =============================================================================
147
+ # Runtime-generated files (not tracked)
148
+ .claude/summaries/*
149
+ !.claude/summaries/.gitkeep
150
+
151
+ # Runtime state files
152
+ .claude/agent-registry.json
153
+ .claude/*.backup*.json
154
+ .claude/workflow-progress*.json
155
+ .claude/settings.local.json
156
+
157
+ # Hook logs and caches (generated at runtime)
158
+ .claude/hooks/*.log
159
+ .claude/hooks/errors.archive/
160
+ .claude/hooks/.context_state.json
161
+ .claude/hooks/.settings_hash
162
+ .claude/hooks/orchestration-metrics.json
163
+ .claude/hooks/__pycache__/
164
+
165
+ # Orchestration activity log (debugging)
166
+ .claude/orchestration.log
167
+ .claude/orchestration.log.*
168
+ .claude/reports/
169
+ .coordination/
170
+
171
+ # =============================================================================
172
+ # Documentation Generated Files
173
+ # =============================================================================
174
+ # MkDocs generated site
175
+ site/
176
+
177
+ # Hypothesis testing data
178
+ .hypothesis/
179
+
180
+ # Changelog fragments (towncrier/scriv)
181
+ changelog.d/
182
+
183
+ # =============================================================================
184
+ # Oscura-Specific
185
+ # =============================================================================
186
+
187
+ # -----------------------------------------------------------------------------
188
+ # Demo Data (Generated)
189
+ # -----------------------------------------------------------------------------
190
+ # All demo data is synthetic and generated by scripts
191
+ # Regenerate with: python demos/generate_all_demo_data.py
192
+ demos/*/demo_data/*
193
+ demos/*/demo_data/*/*
194
+ !demos/*/demo_data/.gitkeep
195
+ !demos/*/demo_data/*/.gitkeep
196
+
197
+ # Keep demo generation scripts and configs
198
+ !demos/generate_all_demo_data.py
199
+ !demos/*/generate_demo_data.py
200
+ !demos/02_custom_daq/custom_daq_continuous.yml
201
+
202
+ # -----------------------------------------------------------------------------
203
+ # Test Data
204
+ # -----------------------------------------------------------------------------
205
+ # Test data - exclude large files with potential legal concerns
206
+ test_data/*.zip
207
+ oscura_test_data/
208
+
209
+ # Performance test data (generated, large files)
210
+ tests/performance/test_data/*.npz
211
+
212
+ # Include synthetic test data (small, legally safe, reproducible)
213
+ !test_data/synthetic/
214
+ !test_data/README.md
215
+
216
+ # -----------------------------------------------------------------------------
217
+ # Generated Binary Files (root directory only)
218
+ # -----------------------------------------------------------------------------
219
+ # Large binary test files generated during testing
220
+ /*.bin
221
+ /*.wfm
222
+ /*.tss
223
+ /*.pcap
224
+ /*.npz
225
+ /*.mf4
226
+
227
+ # Temporary data files in root
228
+ /*.m
229
+ /*.xlsx
230
+ /*.csv
231
+ /*.yml
232
+ /*.yaml
233
+
234
+ # Exceptions: keep tracked config files
235
+ !pyproject.toml
236
+ !.pre-commit-config.yaml
237
+ !.yamllint.yaml
238
+ !.markdownlint.yaml
239
+ !mkdocs.yml
240
+ !cspell.json
241
+ !lychee.toml
242
+
243
+ # -----------------------------------------------------------------------------
244
+ # Demo Output Directories
245
+ # -----------------------------------------------------------------------------
246
+ # Generated by demo scripts (can be regenerated by running demos)
247
+ **/signal_re_*/
248
+ **/wfm_outputs*/
249
+ **/ultimate_outputs/
250
+ **/ultimate_re_outputs/
251
+ **/exploratory_outputs/
252
+ **/udp_analysis*/
253
+
254
+ # Automotive demo generated files
255
+ demos/discovered_signals.dbc
256
+ demos/08_automotive/discovered_signals.dbc
257
+ demos/09_automotive/discovered_signals.dbc
258
+
259
+ # -----------------------------------------------------------------------------
260
+ # Generated Reports and Artifacts
261
+ # -----------------------------------------------------------------------------
262
+ # Runtime artifacts
263
+ generated_reports/
264
+ generated_dissectors/
265
+
266
+ # Validation result files
267
+ **/validation_results.json
268
+ **/remediation_results.json
269
+ validation_results/
270
+
271
+ # -----------------------------------------------------------------------------
272
+ # Temporary Documentation (Claude-generated)
273
+ # -----------------------------------------------------------------------------
274
+ # These should never be committed - use .claude/reports/ for permanent records
275
+ *REPORT*.md
276
+ *SUMMARY*.md
277
+ *ASSESSMENT*.md
278
+ *ANALYSIS*.md
279
+ *AUDIT*.md
280
+ *ACTION_ITEMS*.md
281
+ *INSTRUCTIONS*.md
282
+ *COMPLETE*.md
283
+ *VALIDATION*.md
284
+ *OPTIMIZATION*.md
285
+ *IMPLEMENTATION*.md
286
+ *ISSUES*.md
287
+ *CAPABILITIES*.md
288
+ *APPROACH*.md
289
+ *VERIFICATION*.md
290
+ *FIXES*.md
291
+ *IMPROVEMENTS*.md
292
+
293
+ # Exceptions: legitimate historical documentation
294
+ !docs/audits/*COMPLETE*.md
295
+ !docs/audits/*IMPLEMENTATION*.md
296
+
297
+ # =============================================================================
298
+ # GitHub Configuration Exports
299
+ # =============================================================================
300
+ # Exported configuration files (repo-specific, regenerated by export script)
301
+ .github/config/rulesets-all.json
302
+ .github/config/repository-settings.json
303
+ .github/config/environments.json
304
+ .github/config/tag-protection.json
305
+ .github/config/labels.json
306
+ .github/config/topics.json
307
+
308
+ # Keep template files (these should be tracked)
309
+ !.github/config/*-template.json
310
+ !.github/config/main-branch-ruleset.json
311
+ !.github/config/README.md
312
+ .claude/agent-outputs/
313
+ examples/outputs/
@@ -0,0 +1,22 @@
1
+ # <type>: <subject>
2
+ #
3
+ # <body>
4
+ #
5
+ # <footer>
6
+ #
7
+ # Type: feat|fix|docs|style|refactor|perf|test|chore
8
+ # Subject: imperative mood, no period, <72 chars
9
+ # Body: what and why vs. how, wrap at 72 chars
10
+ # Footer: Breaking changes, issue references
11
+ #
12
+ # ---------------------------------------------------------------
13
+ # IMPORTANT: Do not include AI tool attribution in commit messages
14
+ # Commits should describe WHAT changed and WHY, not WHO wrote it
15
+ # ---------------------------------------------------------------
16
+ #
17
+ # Examples:
18
+ # feat: add support for CAN FD protocol decoding
19
+ # fix: correct byte order handling in DBC parser
20
+ # docs: update API reference for signal analyzers
21
+ # refactor: simplify waveform processing pipeline
22
+ # test: add edge case coverage for packet streaming