oscura 0.6.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- oscura/__init__.py +1 -1
- oscura/analyzers/eye/__init__.py +5 -1
- oscura/analyzers/eye/generation.py +501 -0
- oscura/analyzers/jitter/__init__.py +6 -6
- oscura/analyzers/jitter/timing.py +419 -0
- oscura/analyzers/patterns/__init__.py +28 -0
- oscura/analyzers/patterns/reverse_engineering.py +991 -0
- oscura/analyzers/power/__init__.py +35 -12
- oscura/analyzers/statistics/__init__.py +4 -0
- oscura/analyzers/statistics/basic.py +149 -0
- oscura/analyzers/statistics/correlation.py +47 -6
- oscura/analyzers/waveform/__init__.py +2 -0
- oscura/analyzers/waveform/measurements.py +145 -23
- oscura/analyzers/waveform/spectral.py +361 -8
- oscura/automotive/__init__.py +1 -1
- oscura/core/config/loader.py +0 -1
- oscura/core/types.py +108 -0
- oscura/loaders/__init__.py +12 -4
- oscura/loaders/tss.py +456 -0
- oscura/reporting/__init__.py +88 -1
- oscura/reporting/automation.py +348 -0
- oscura/reporting/citations.py +374 -0
- oscura/reporting/core.py +54 -0
- oscura/reporting/formatting/__init__.py +11 -0
- oscura/reporting/formatting/measurements.py +279 -0
- oscura/reporting/html.py +57 -0
- oscura/reporting/interpretation.py +431 -0
- oscura/reporting/summary.py +329 -0
- oscura/reporting/visualization.py +542 -0
- oscura/visualization/__init__.py +2 -1
- oscura/visualization/batch.py +521 -0
- oscura/workflows/__init__.py +2 -0
- oscura/workflows/waveform.py +783 -0
- {oscura-0.6.0.dist-info → oscura-0.8.0.dist-info}/METADATA +37 -19
- {oscura-0.6.0.dist-info → oscura-0.8.0.dist-info}/RECORD +38 -26
- {oscura-0.6.0.dist-info → oscura-0.8.0.dist-info}/WHEEL +0 -0
- {oscura-0.6.0.dist-info → oscura-0.8.0.dist-info}/entry_points.txt +0 -0
- {oscura-0.6.0.dist-info → oscura-0.8.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oscura
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Unified hardware reverse engineering framework. Extract all information from any system through signals and data. Unknown protocol discovery, state machine extraction, CRC recovery, security analysis. 16+ protocols, IEEE-compliant measurements.
|
|
5
5
|
Project-URL: Homepage, https://github.com/oscura-re/oscura
|
|
6
6
|
Project-URL: Documentation, https://github.com/oscura-re/oscura/tree/main/docs
|
|
@@ -292,7 +292,7 @@ result = osc.auto_decode(trace)
|
|
|
292
292
|
print(f"Detected {result.protocol}: {len(result.frames)} frames decoded")
|
|
293
293
|
```
|
|
294
294
|
|
|
295
|
-
[
|
|
295
|
+
**[See demos/README.md](demos/README.md)** for 105+ comprehensive demonstrations organized by skill level.
|
|
296
296
|
|
|
297
297
|
---
|
|
298
298
|
|
|
@@ -439,32 +439,50 @@ Built for extensibility:
|
|
|
439
439
|
|
|
440
440
|
## Learn By Doing
|
|
441
441
|
|
|
442
|
-
### Working
|
|
442
|
+
### Working Demonstrations
|
|
443
443
|
|
|
444
|
-
|
|
444
|
+
**105+ comprehensive demos** organized into 12 categories covering:
|
|
445
445
|
|
|
446
|
-
-
|
|
447
|
-
-
|
|
448
|
-
-
|
|
449
|
-
-
|
|
450
|
-
-
|
|
451
|
-
-
|
|
446
|
+
- **Data Loading** - All file format loaders (oscilloscopes, logic analyzers, automotive, scientific)
|
|
447
|
+
- **Basic Analysis** - Waveform measurements, digital analysis, spectral analysis, filtering
|
|
448
|
+
- **Protocol Decoding** - UART, SPI, I2C, CAN, LIN, FlexRay, JTAG, SWD, I2S, USB
|
|
449
|
+
- **Advanced Analysis** - Jitter, eye diagrams, power analysis, signal integrity, TDR
|
|
450
|
+
- **Domain Specific** - Automotive diagnostics, EMC compliance, side-channel analysis, IEEE 181 timing
|
|
451
|
+
- **Reverse Engineering** - CRC recovery, state machines, Wireshark dissectors, ML classification
|
|
452
|
+
- **Advanced Features** - Lazy loading, memory management, performance optimization, batch processing
|
|
453
|
+
- **Extensibility** - Custom analyzers, plugins, templates
|
|
454
|
+
- **Integration** - CI/CD, hardware, external tools, web dashboards
|
|
455
|
+
- **Export & Visualization** - All export formats, plotting, reporting
|
|
456
|
+
- **Complete Workflows** - End-to-end production pipelines
|
|
457
|
+
- **Standards Compliance** - IEEE 181/1241/1459/2414, automotive standards
|
|
452
458
|
|
|
453
|
-
###
|
|
459
|
+
### Comprehensive Demonstrations
|
|
460
|
+
|
|
461
|
+
**33+ in-depth demos** organized by skill level and domain:
|
|
462
|
+
|
|
463
|
+
- **[Getting Started](demos/README.md#beginner-path-2-4-hours)** - File loading, basic measurements, format export (Beginner, 2-4 hours)
|
|
464
|
+
- **[Protocol Decoding](demos/README.md#intermediate-path-6-10-hours)** - UART, SPI, I2C, Manchester, JTAG, USB, PCAP (Intermediate, 6-10 hours)
|
|
465
|
+
- **[Reverse Engineering](demos/README.md#advanced-path-12-20-hours)** - CRC recovery, state machines, Wireshark dissectors, automotive protocols (Advanced, 12-20 hours)
|
|
466
|
+
- **[Standards Compliance](demos/README.md#advanced-path-12-20-hours)** - IEEE 181/1241/1459/2414, CISPR 32, IEC 61000 (Advanced/Expert)
|
|
467
|
+
- **[Complete Workflows](demos/README.md#expert-path-20-40-hours)** - End-to-end production pipelines with ML inference (Expert, 20-40 hours)
|
|
468
|
+
|
|
469
|
+
**Categories**: Waveform Analysis | File I/O | Custom DAQ | Serial Protocols | Protocol Decoding | UDP Analysis | Protocol Inference | Automotive | Timing | Mixed Signal | Spectral | Jitter | Power | Signal Integrity | EMC | Signal RE | Advanced Inference | Complete Workflows
|
|
470
|
+
|
|
471
|
+
[**See full demo catalog with learning paths**](demos/README.md)
|
|
472
|
+
|
|
473
|
+
### Run Your First Demo
|
|
454
474
|
|
|
455
475
|
```bash
|
|
456
476
|
# Install development dependencies
|
|
457
477
|
./scripts/setup.sh
|
|
458
478
|
|
|
459
|
-
#
|
|
460
|
-
python
|
|
479
|
+
# Run your first demo
|
|
480
|
+
python demos/00_getting_started/00_hello_world.py
|
|
461
481
|
|
|
462
|
-
#
|
|
463
|
-
python
|
|
482
|
+
# Or try a specific topic
|
|
483
|
+
python demos/05_domain_specific/05_side_channel_basics.py
|
|
464
484
|
```
|
|
465
485
|
|
|
466
|
-
[**Browse all examples**](examples/)
|
|
467
|
-
|
|
468
486
|
---
|
|
469
487
|
|
|
470
488
|
## Command-Line Interface
|
|
@@ -556,7 +574,7 @@ python3 .claude/hooks/validate_all.py # Must show 5/5 passing
|
|
|
556
574
|
| **Real-World Validation** | Test on your captures, report issues | Ensure reliability across use cases |
|
|
557
575
|
| **Documentation & Case Studies** | Tutorials, sanitized RE workflows, academic papers using Oscura | Lower entry barrier, demonstrate capabilities |
|
|
558
576
|
|
|
559
|
-
[**Contributing Guide**](CONTRIBUTING.md) | [Architecture Documentation](docs/architecture
|
|
577
|
+
[**Contributing Guide**](CONTRIBUTING.md) | [Architecture Documentation](docs/developer-guide/architecture.md)
|
|
560
578
|
|
|
561
579
|
### Community
|
|
562
580
|
|
|
@@ -584,7 +602,7 @@ python3 .claude/hooks/validate_all.py # Must show 5/5 passing
|
|
|
584
602
|
|
|
585
603
|
### Development
|
|
586
604
|
|
|
587
|
-
- [Architecture](docs/architecture
|
|
605
|
+
- [Architecture](docs/developer-guide/architecture.md) - Design principles and patterns
|
|
588
606
|
- [Testing Guide](docs/testing/) - Test suite architecture
|
|
589
607
|
- [CHANGELOG](CHANGELOG.md) - Version history and migration guides
|
|
590
608
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
oscura/__init__.py,sha256=
|
|
1
|
+
oscura/__init__.py,sha256=pyZQJ3785pl4cQPnTdfs7vrxjVmRpXBA2LP_VG9mufo,19022
|
|
2
2
|
oscura/__main__.py,sha256=l1rnaD-tpI1W3cp1VHGhSdq9NDqw6Gxjf_gnqXf-zzE,11786
|
|
3
3
|
oscura/convenience.py,sha256=tAABQMwgKjftSNUJLlYnchAwVSO-no0rBfSZteXfZnI,16361
|
|
4
4
|
oscura/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -18,15 +18,17 @@ oscura/analyzers/digital/signal_quality.py,sha256=Ssb1MkUfqjiENJJFOslkTX8Ef6C65H
|
|
|
18
18
|
oscura/analyzers/digital/thresholds.py,sha256=CrGgO1rtzkUOnYb40UT3_uD_0qVA853lGL2WNL95qv4,22428
|
|
19
19
|
oscura/analyzers/digital/timing.py,sha256=Hfv9xXjjyiYs7DIIe8c60vHZBX-ehnPAmjMerfoK93Y,38565
|
|
20
20
|
oscura/analyzers/digital/timing_numba.py,sha256=F2sdubZK3I5ifk_6u1qKzmxsCRq4er8BXhemFnuhTSs,10657
|
|
21
|
-
oscura/analyzers/eye/__init__.py,sha256=
|
|
21
|
+
oscura/analyzers/eye/__init__.py,sha256=vqtyZ9whC6teeh81Mkn7myPkLYfLXpYexKOGrVp_7BM,1101
|
|
22
22
|
oscura/analyzers/eye/diagram.py,sha256=CHEo4-5_vRydG99_nIveJMnz8txFtK7zIysNI307k_w,15289
|
|
23
|
+
oscura/analyzers/eye/generation.py,sha256=CHEo4-5_vRydG99_nIveJMnz8txFtK7zIysNI307k_w,15289
|
|
23
24
|
oscura/analyzers/eye/metrics.py,sha256=UXNAdRnJCbgje79yOK--3gbSZ4gDb6uaUxQGNCJkRcA,17055
|
|
24
|
-
oscura/analyzers/jitter/__init__.py,sha256=
|
|
25
|
+
oscura/analyzers/jitter/__init__.py,sha256=qTm4reC80D41gI_Mhb1TmMXM4Pl-KFw0OickgPyT-y4,2243
|
|
25
26
|
oscura/analyzers/jitter/ber.py,sha256=dOFBW8vx6w-NCdV3hKawhHAJkDcUwjO0GkjqLGvHoM8,9113
|
|
26
27
|
oscura/analyzers/jitter/classification.py,sha256=CjMHTxfJHjCwAW2KParuBJf6d3yIyDlrltblusZvRVI,6097
|
|
27
28
|
oscura/analyzers/jitter/decomposition.py,sha256=Uc37cJLpKBNhU9uXuurPMxJOR4nSC3h79yjPM8k03SE,25626
|
|
28
29
|
oscura/analyzers/jitter/measurements.py,sha256=xAxw_82M8v6Vq3oPMmGN44LzAUOmpi-YoLs58fCpA8Q,12417
|
|
29
30
|
oscura/analyzers/jitter/spectrum.py,sha256=pzsH0ekM97rligOUOHlsp-8Hn1VZnQpd-a8EeZO3uYE,7164
|
|
31
|
+
oscura/analyzers/jitter/timing.py,sha256=_-YhTAwKHDnzwL-MFXiqNZrH5y2TxDyIsbayMkuC64o,12627
|
|
30
32
|
oscura/analyzers/ml/__init__.py,sha256=77br1uGiIDnQJQngwfKPDep3OVGhoA_Pj3vIp_dnoUA,1356
|
|
31
33
|
oscura/analyzers/ml/features.py,sha256=xroEW2wqVWsZb2j2dnEQXlyubyHCKxY73WgjNOFrsms,21767
|
|
32
34
|
oscura/analyzers/ml/signal_classifier.py,sha256=pWpuIuB7PWOe71ozjJXIKOjpZckYf5cyp5mVPsacln4,22359
|
|
@@ -39,7 +41,7 @@ oscura/analyzers/packet/payload_analysis.py,sha256=ch4xmtrgOJjYx61z9Kf0qsuKMgnzM
|
|
|
39
41
|
oscura/analyzers/packet/payload_extraction.py,sha256=yBJG-KbljlIyA2hZCv3N5L_eBrkXnS0wXp-EBpKpiX4,7752
|
|
40
42
|
oscura/analyzers/packet/payload_patterns.py,sha256=GNvrWTbSWS5j-vsSipoRX4x35DsAptMZvtFDwgwY1ys,21791
|
|
41
43
|
oscura/analyzers/packet/stream.py,sha256=2izSnyp77bd2Zp6QWPZdtMa1C7mAm48bqi-Y6Igk3ZQ,11215
|
|
42
|
-
oscura/analyzers/patterns/__init__.py,sha256
|
|
44
|
+
oscura/analyzers/patterns/__init__.py,sha256=-KC7qgwMZ4JSy04o-uV2tlNabMH36aIdEHr16vksXAQ,8546
|
|
43
45
|
oscura/analyzers/patterns/anomaly_detection.py,sha256=yq7yMpAf1YY41nT-xykuIRlCpAqZVggjCmbeZpZhQeQ,34625
|
|
44
46
|
oscura/analyzers/patterns/clustering.py,sha256=e5H7mMpz7hz29OmpKuXSaI6rRQ0UYMmn3vjyF8Y-gtM,35030
|
|
45
47
|
oscura/analyzers/patterns/clustering_optimized.py,sha256=9aZ7cJZykCfMxnI6FoXEkirKUbpFLd1dkIdtwhsEqUM,7579
|
|
@@ -48,8 +50,9 @@ oscura/analyzers/patterns/learning.py,sha256=aRhE3vLg6fX1a1aD2Lpseil_4EFcrL9vitD
|
|
|
48
50
|
oscura/analyzers/patterns/matching.py,sha256=pQVfdrzzt_rsyBkB3gW6qsEkH0GO0vHs0WRtnCGsDro,45653
|
|
49
51
|
oscura/analyzers/patterns/pattern_mining.py,sha256=r9--2ebVBi6ixBicvQXxLbEKPTaH0-HDpl0uGCi2YWI,28686
|
|
50
52
|
oscura/analyzers/patterns/periodic.py,sha256=MBYtTfJayshCNHWsRxqqJmTbedkR9ZaD4CfuQan24zQ,23025
|
|
53
|
+
oscura/analyzers/patterns/reverse_engineering.py,sha256=xzSr5P3wtAUnyz5Mc97dMrsk2r8HQOArSBxIGN3xVNo,33268
|
|
51
54
|
oscura/analyzers/patterns/sequences.py,sha256=VwB0KubceaaOpfK3tPCP1CfuTkGsq2Xf3Zk95Jgpl3o,26188
|
|
52
|
-
oscura/analyzers/power/__init__.py,sha256=
|
|
55
|
+
oscura/analyzers/power/__init__.py,sha256=Q2U9bW8tmz5pFgmNM_KKxDJpzBB5saM6nwleCeFlBWo,3483
|
|
53
56
|
oscura/analyzers/power/ac_power.py,sha256=8Oblosut_--CniQcoUGOwdACt2UmUznCu0cSsUCKQs4,10400
|
|
54
57
|
oscura/analyzers/power/basic.py,sha256=K6NYIlPkz5_hbHehtUq9MEEKjULqzc7pkCHy2cp6nfQ,11357
|
|
55
58
|
oscura/analyzers/power/conduction.py,sha256=z2rI-VlMgvW47s_fwdctG9y0F64UPnm61jto5JapgoE,8604
|
|
@@ -121,18 +124,18 @@ oscura/analyzers/statistical/chunked_corr.py,sha256=B9SXVXZKyNfUJ5uSCw8kX4oxYkrI
|
|
|
121
124
|
oscura/analyzers/statistical/classification.py,sha256=7H8olxcMSCNPVlI2hnWgJPfR6V-I8eCM53woGvpb8Yo,27997
|
|
122
125
|
oscura/analyzers/statistical/entropy.py,sha256=PumI1rLhR4QtvUVGooPYXEKbvV8u5sAuXvhTesimDWc,35981
|
|
123
126
|
oscura/analyzers/statistical/ngrams.py,sha256=lsmhIFMYncX7nymdFMi916Nd1BwlPsgVMMPCF3qadMk,18054
|
|
124
|
-
oscura/analyzers/statistics/__init__.py,sha256=
|
|
127
|
+
oscura/analyzers/statistics/__init__.py,sha256=cn40BFJeXEQt7Ljmx9_JDk-QltFYmVwYmQghKBcn24U,2809
|
|
125
128
|
oscura/analyzers/statistics/advanced.py,sha256=XeIlZR8COj1yF7OtRZfZ5KWBLYXUSqgN2hNmtiLAD0g,26800
|
|
126
|
-
oscura/analyzers/statistics/basic.py,sha256=
|
|
127
|
-
oscura/analyzers/statistics/correlation.py,sha256=
|
|
129
|
+
oscura/analyzers/statistics/basic.py,sha256=OfYLPAuZrX9AM79fhxjWvB8ZdLKTlE3tNNTkSsSEjr4,12056
|
|
130
|
+
oscura/analyzers/statistics/correlation.py,sha256=YwQcmtcEqVkOQh2lXd9sfIQX3fu8uzJBg_XPv3-tdOc,28990
|
|
128
131
|
oscura/analyzers/statistics/distribution.py,sha256=ps2lXgWGYsUBTpGaftC5Qdz7GlDqJmB6z4uXaTeaLao,8916
|
|
129
132
|
oscura/analyzers/statistics/outliers.py,sha256=rxXKt8BgxEUlgb0UJVbOO3V-WvUL9ODJ003dmYpufuc,14667
|
|
130
133
|
oscura/analyzers/statistics/streaming.py,sha256=W0qxfqD8gBdbpqYPIORF_uJP88gGYnuAnFs3PBEpc-k,3604
|
|
131
134
|
oscura/analyzers/statistics/trend.py,sha256=Tu0gUZqy4PJ7Ne7YzRuJGU80DUl71Onc3QXsbaiuLjU,15565
|
|
132
|
-
oscura/analyzers/waveform/__init__.py,sha256=
|
|
133
|
-
oscura/analyzers/waveform/measurements.py,sha256=
|
|
135
|
+
oscura/analyzers/waveform/__init__.py,sha256=SqLMhTFy4-Krx0b3hTZbhd1NKPeNe767Q6yaTz1wo1c,614
|
|
136
|
+
oscura/analyzers/waveform/measurements.py,sha256=h-ar252LHcFv7P89vDG_Dt9HT1SMeTxizRgr7Ebrc3M,31458
|
|
134
137
|
oscura/analyzers/waveform/measurements_with_uncertainty.py,sha256=CeqGVWE66OVZdal38JXtGCz_Zrg91h9JmI-Mnmkh3GE,13308
|
|
135
|
-
oscura/analyzers/waveform/spectral.py,sha256=
|
|
138
|
+
oscura/analyzers/waveform/spectral.py,sha256=D6YUjZyqKgyU-4oT1vs2NelAsFmpbbU-fSbH9N62UdA,68419
|
|
136
139
|
oscura/analyzers/waveform/wavelets.py,sha256=rKoqiKmuLQ9iKMFshJam7wdn6fL6sFcJY_-J0fYl5F4,10116
|
|
137
140
|
oscura/api/__init__.py,sha256=7URqzrBUiIq54TSUUi291VhBiZ-ZL5cS4m5eM0WppGk,1808
|
|
138
141
|
oscura/api/dsl.py,sha256=_azJ2AnbN5EDhgH6RiZmHEDJxu5lzMbZpDhhsmaX7Zs,14880
|
|
@@ -159,7 +162,7 @@ oscura/api/server/templates/reports.html,sha256=18xoAZPIg7eQANs9k-tmGzVs_-tmS5m6
|
|
|
159
162
|
oscura/api/server/templates/session_detail.html,sha256=32HnJ0o8ptlZEHQVO1c96j6PoxS0856kPjW2MVn0D8o,3693
|
|
160
163
|
oscura/api/server/templates/sessions.html,sha256=kVcpLOlXAx0PizP7Vc1NlhsYg5swTj77fKCZxoTTCYU,3146
|
|
161
164
|
oscura/api/server/templates/waveforms.html,sha256=5XfpHkgRpmV0MeFb9pBkVDa63phT8zGWnrmA0UlUwZE,2269
|
|
162
|
-
oscura/automotive/__init__.py,sha256=
|
|
165
|
+
oscura/automotive/__init__.py,sha256=ZdYV6Ber8UAYSwUogrcDwhKB7Gnay9FyyrLlhIs-Cls,2767
|
|
163
166
|
oscura/automotive/visualization.py,sha256=LD6Gia3kDqoB_jQkOeVmyRVLv1BPuTUVj6lJMVtbQWg,10664
|
|
164
167
|
oscura/automotive/can/__init__.py,sha256=ZYxC8tMMi9Drm9adkH5yklypBTfIbf3D7BYA2SUp9fE,1491
|
|
165
168
|
oscura/automotive/can/analysis.py,sha256=0z6MycxuJGusqDQhYEpHnGRmDw3OMf5yDbS8zI6GJO0,11251
|
|
@@ -250,12 +253,12 @@ oscura/core/performance.py,sha256=ICufOlSaJWrG6I92EEM2PLzHRFBNzu2NfvAAH_6b9f8,10
|
|
|
250
253
|
oscura/core/progress.py,sha256=NLXt64MiZHGzrA5Q0NgSh6Ujg9VSw8QcpVvmpAG2ZgE,15723
|
|
251
254
|
oscura/core/provenance.py,sha256=CQ8lbWuBxfvTSrPNIxJifdt3lWxn82jd7ELJg-OPVXM,10824
|
|
252
255
|
oscura/core/results.py,sha256=ZdIOncVhm15E-P_5OaU-MZBw2ZWD0_4WBbMqV0IhJso,10637
|
|
253
|
-
oscura/core/types.py,sha256
|
|
256
|
+
oscura/core/types.py,sha256=1cre35OZ7bUBQPwZJGLLKFjgcyerX9gN0-ILyGH3Wxo,19911
|
|
254
257
|
oscura/core/uncertainty.py,sha256=s9y-sQy9U_cbCwugHGP3U-alxotYrI90CJtjDZ25UjA,13224
|
|
255
258
|
oscura/core/config/__init__.py,sha256=uncP5qTPfL0UZfBXvbzOv_rGUGY8rIV7qCoNIxcdAkE,4673
|
|
256
259
|
oscura/core/config/defaults.py,sha256=USi1iCT3CY3qozltmDkB7HrNNgCc7KG03L6Wd18cPxU,6513
|
|
257
260
|
oscura/core/config/legacy.py,sha256=S6jmz7Zo8TN2NUWhlgJRkTDWAnfpfBTK_XaRlUXKBd4,15053
|
|
258
|
-
oscura/core/config/loader.py,sha256=
|
|
261
|
+
oscura/core/config/loader.py,sha256=BNBjtWwampW0smqLPWeKxU7Y1RVFkxkfFyp9BjDLEcc,9322
|
|
259
262
|
oscura/core/config/memory.py,sha256=IiJqJSXaVNXhKwPUqMhCZpgZRPPpl09MLMn7Ux1Fwp4,8183
|
|
260
263
|
oscura/core/config/migration.py,sha256=bcNPm2RPH19syS9IxLNR4grS4NlvayBEORTolzhB0fE,14131
|
|
261
264
|
oscura/core/config/pipeline.py,sha256=ndMU-FQwf5k_i0de5JGLMBYp1QpK0c-9cUuGRb5XXHw,38116
|
|
@@ -376,7 +379,7 @@ oscura/jupyter/exploratory/unknown.py,sha256=KaxpoP9tW9E7Ld16_3VaXaKszfcU2uw62Id
|
|
|
376
379
|
oscura/jupyter/ui/__init__.py,sha256=XQJh89b_xRe1CB8jssjIdbVgQeLCplFzSkCiXQYKXFU,935
|
|
377
380
|
oscura/jupyter/ui/formatters.py,sha256=roXZhaNLgypb30T6EGF805cDkrqsAh_RQ978iGLtlAU,13580
|
|
378
381
|
oscura/jupyter/ui/progressive_display.py,sha256=Ew-xXek_f6-XkR0CZymyzYbYkbXn8qCZS6Usk2n86dQ,11993
|
|
379
|
-
oscura/loaders/__init__.py,sha256=
|
|
382
|
+
oscura/loaders/__init__.py,sha256=f1yakezyiv6IjrsK_L7H1jFCwQUAGNCvjv5DIKHDgzo,20237
|
|
380
383
|
oscura/loaders/binary.py,sha256=USQTTdWjbrn3b-Ly4v-E5eLhga6kM73QlNKxnLm1YUw,5062
|
|
381
384
|
oscura/loaders/chipwhisperer.py,sha256=gkxgakx0YXxJ4dKKkSmlOZYa-VKdWFldAbz3PPAvWyw,12756
|
|
382
385
|
oscura/loaders/configurable.py,sha256=QyyqN_hMBKafx1wyMCcQrykRFY_TfWFU8XLYXztjnFY,44483
|
|
@@ -394,25 +397,29 @@ oscura/loaders/sigrok.py,sha256=BliW7KuLIKpyRkupaZTGlSczVoHWbK0-HBs2n4r5oVM,1302
|
|
|
394
397
|
oscura/loaders/tdms.py,sha256=J1qDLiQMDs_7ayR04g9hsP39hs7LkYy7jJEc57BUPzw,11114
|
|
395
398
|
oscura/loaders/tektronix.py,sha256=V-ns3yCqsXSkeZ1zNXbOZZuViMzYagsiiHr12WeKc4s,26189
|
|
396
399
|
oscura/loaders/touchstone.py,sha256=Cj4KlQQMcSEZuf5M0hg3lFvXvnuPZkcLa8-X-qKEObA,8898
|
|
400
|
+
oscura/loaders/tss.py,sha256=c0xL2h0x09u765qFAxOKpFE8ggOGpc9DwUyRi6r41Y0,13874
|
|
397
401
|
oscura/loaders/validation.py,sha256=JA_vVYQJB4gC9KFKa2lsGV5D-_agmIjP9kE_dXpv4Wk,17835
|
|
398
402
|
oscura/loaders/vcd.py,sha256=y1mFZXTEqJEFfvMf3MYgGk5e16qG7mNlyAQgVLZNwfU,17722
|
|
399
403
|
oscura/loaders/wav.py,sha256=xv6eELWMYflP7OormysAe6-yAiYNzWMInzC6cuUZZmo,9391
|
|
400
|
-
oscura/reporting/__init__.py,sha256=
|
|
404
|
+
oscura/reporting/__init__.py,sha256=btcyeGPt73ZK7X4mIcMdfEdTUoYvkQh9tToTS1WobFE,8546
|
|
401
405
|
oscura/reporting/advanced.py,sha256=dcu2fjCA_a4R7lGhdUQbcAb7ioTg7lkUwDiQK4uopjM,36413
|
|
402
406
|
oscura/reporting/analyze.py,sha256=fMNZEQGBMX6I47DrJC8V1HjsWhmLIkfZPQNMFSIfD2E,20604
|
|
403
407
|
oscura/reporting/argument_preparer.py,sha256=ofXjstDnwlC30MKLHiRphUzC7NkGeELgu40yE0slMFY,25965
|
|
404
408
|
oscura/reporting/auto_report.py,sha256=VxB74gApLuXfoQ21YDgVzCUZviZKVvau_p6Xjs9kYw8,16290
|
|
409
|
+
oscura/reporting/automation.py,sha256=vh53Uz4gs5_IQGv6nS92mVv-xzsQV9vXih2db2OaOt4,11225
|
|
405
410
|
oscura/reporting/batch.py,sha256=m-9tX6U9nr85pK7jDkhvvPuZMvXVs6s2nGJ9tSuFFLk,21480
|
|
406
411
|
oscura/reporting/chart_selection.py,sha256=AAtitNpLc6ahZBMLLPjCMLrI3r819-Nbv8Q2Da4WiK8,6868
|
|
412
|
+
oscura/reporting/citations.py,sha256=o0es0cELNLXoY7b0jh7IHaj40Ka26UMmFcR6gCphIPQ,11735
|
|
407
413
|
oscura/reporting/comparison.py,sha256=3Hf0bIP536ZtNKi-WHmgJtJY8OWCamoyM41TdXHPC8I,11656
|
|
408
414
|
oscura/reporting/config.py,sha256=cmLsHhaRJRcu97u7FKLsTPB4FYla9RkoDkmZg8wmnhQ,23352
|
|
409
|
-
oscura/reporting/core.py,sha256=
|
|
415
|
+
oscura/reporting/core.py,sha256=xKQ5hVblO5J6S97zPJgLoTYIimhOu4xONpzrqGkgVaE,17759
|
|
410
416
|
oscura/reporting/engine.py,sha256=9w-UhDNXYmTVsLpM-ldFTDy2rsztEeylnvB4KBSyJ1g,36219
|
|
411
417
|
oscura/reporting/enhanced_reports.py,sha256=lqH8TTGbVjxXGA8JCL9AmfHGlqGs3Sa0LiB9M083lkg,32556
|
|
412
418
|
oscura/reporting/export.py,sha256=KofJZHiNHwa1lSF_xFDARZetvA5mmSc41o5ofLohQ84,11114
|
|
413
419
|
oscura/reporting/formatting.py,sha256=KLM7fBpkKyGG_3LyyxRRYxt43AXSoHQ3ErzNbWZBRfs,12496
|
|
414
|
-
oscura/reporting/html.py,sha256=
|
|
420
|
+
oscura/reporting/html.py,sha256=EChyMoZKR5_vFij0QVrZpkgillQUAUSvWaYeILPBUpI,19025
|
|
415
421
|
oscura/reporting/index.py,sha256=oeVw37d0gzymmT3yPZyL8szJx2ydys1-OLe9oGJO6vE,21633
|
|
422
|
+
oscura/reporting/interpretation.py,sha256=EjvraQRDIn2Ld4x-rhs8GGpLFRlViNqFYR04WRyhbTg,14671
|
|
416
423
|
oscura/reporting/multichannel.py,sha256=kLaNlZJhruLWAUcRyduOfbuakxQH4vB6pQ_Z57aYP6c,9174
|
|
417
424
|
oscura/reporting/output.py,sha256=g2pBM2eZUPIQkawlSDm6CqUxpPIMuSRu2nYBRro9rtE,13646
|
|
418
425
|
oscura/reporting/pdf.py,sha256=nKM2MbqgpUgGlzShWSzu_n47-2Ys7uJo1b9DnXLaehg,10447
|
|
@@ -420,9 +427,11 @@ oscura/reporting/plots.py,sha256=E2XiJXLLNorHi3emoA76jHWrPz0zzUzIjuo93KMONO4,258
|
|
|
420
427
|
oscura/reporting/pptx_export.py,sha256=CojDp1TaM08U3fJqM1yZPvLZiM6zF5-iKah8-SZ7YGQ,10253
|
|
421
428
|
oscura/reporting/sections.py,sha256=s5tiWGMuKT9c81TR0FXb7F06LtdUlFtUXsZjGBmckOw,13907
|
|
422
429
|
oscura/reporting/standards.py,sha256=Xsrpx1rE3HhvEJtyZcALZHND3OceqWUvNGxHaNjKjDs,19684
|
|
430
|
+
oscura/reporting/summary.py,sha256=iJbAEV4Y2n8GN8UvtRzY6xmJoZs_4gqaMZ5wyu_1Av8,10558
|
|
423
431
|
oscura/reporting/summary_generator.py,sha256=VjRiXBbxmMIXIWx3pzL85ZR3hzui1jwAvmEVOnwETyo,11265
|
|
424
432
|
oscura/reporting/tables.py,sha256=R20Ge_YLXuZT-JKob9dQCZlhwoM5eo1IN8CTfN7eivs,13697
|
|
425
433
|
oscura/reporting/template_system.py,sha256=jPF5jkkjl8el8V6IGJGNZmPlNRFZd0_DBbcokOUMiTU,21135
|
|
434
|
+
oscura/reporting/visualization.py,sha256=vM1Efhq37LZ4T2xNt5CRzbjBAeilaQ06iowsdxn11yw,17047
|
|
426
435
|
oscura/reporting/content/__init__.py,sha256=MIU1IrYdFy7L7d6CY8RxkzL1_wL1qLYUfzUsKaASgJ4,874
|
|
427
436
|
oscura/reporting/content/executive.py,sha256=EZOy_OQ_WV8kknJS2s0KUdPv9LMkgMVm1__aXDor9Kk,5727
|
|
428
437
|
oscura/reporting/content/filtering.py,sha256=JrSPJPyGw_jsZUWlAi-ELt8b2ybh1Ui_wXWULv0R-ng,5184
|
|
@@ -430,8 +439,9 @@ oscura/reporting/content/minimal.py,sha256=amh-1wTJwPct-55HHCyUYDVEAcO0RXsyUu7Ug
|
|
|
430
439
|
oscura/reporting/content/verbosity.py,sha256=ZCv5-EXH7Re6ix8d1ON3BdekMhSADmzcPhmXcmZmscg,4311
|
|
431
440
|
oscura/reporting/core_formats/__init__.py,sha256=5mqsnXEIxyiuz38n4DekySkk3ro-bKYkr91xyl2oPLI,453
|
|
432
441
|
oscura/reporting/core_formats/multi_format.py,sha256=qqCANlp0gZJQ5gBbBmIzGKPDaXoO229ThFJi_My5d88,6214
|
|
433
|
-
oscura/reporting/formatting/__init__.py,sha256=
|
|
442
|
+
oscura/reporting/formatting/__init__.py,sha256=1ZZ2MZHuhEqChx4LYBmTv-U3qbRJE-CibXyXSzAuggM,3504
|
|
434
443
|
oscura/reporting/formatting/emphasis.py,sha256=bsc7gFfwGbonXfJZt7vl5Nns06oXNJjKP90EE9JNu1o,1761
|
|
444
|
+
oscura/reporting/formatting/measurements.py,sha256=_G4aj5xGYWMGUBvcoKIB10Q_6PEK8eLerGbSw01kqBI,10153
|
|
435
445
|
oscura/reporting/formatting/numbers.py,sha256=0PTxz_tZRhbBjf7-UHQfUpASkJm_S3zUe44SK8q3ZDA,12932
|
|
436
446
|
oscura/reporting/formatting/standards.py,sha256=msxfZ0qG3v7DpluiTmJ65wlbbl2qVNZabfMxaunXusU,1171
|
|
437
447
|
oscura/reporting/renderers/__init__.py,sha256=3xTkPdizeMHrQ3fD_f_zbL1EKImTJHMGnkG-MIk-R_o,185
|
|
@@ -537,10 +547,11 @@ oscura/validation/quality/scoring.py,sha256=1znG6o4f33os8ULfduFH2MpGTs8w8oW7hL_t
|
|
|
537
547
|
oscura/validation/quality/warnings.py,sha256=-6fU_NsEFuaFsXzmDq9p43dNYb_ll_PV4QuzIbHoP08,13417
|
|
538
548
|
oscura/validation/testing/__init__.py,sha256=WEG_xHKik5Ohn67nV86QNCfIVw6Tob3jbqGmPAXdbho,1528
|
|
539
549
|
oscura/validation/testing/synthetic.py,sha256=rlWcLU70Ks4vYIZnEsB-KdL0LgX592-w0cGmJC5u7GE,26444
|
|
540
|
-
oscura/visualization/__init__.py,sha256=
|
|
550
|
+
oscura/visualization/__init__.py,sha256=PKluRSrlj_VYm_P-i1IPhtuOPjIIgxnAgXcago3R_Qk,9036
|
|
541
551
|
oscura/visualization/accessibility.py,sha256=IC_fLCr4C5ifg4tM1P3xZVO_NR5vKD1V5HcIHHSDAMU,16151
|
|
542
552
|
oscura/visualization/annotations.py,sha256=ZpRiF7XaLrN_ZG3L2SDnz6tUcQKBzQNgRe-BKS0Uqno,10761
|
|
543
553
|
oscura/visualization/axis_scaling.py,sha256=19TSQgF5s0I2GSFdLNazwjtMdACBB7fDJwUyDtFCSuc,9300
|
|
554
|
+
oscura/visualization/batch.py,sha256=nk0DxwuxuJaaVNOE2SyN0qtGgNyBmEYKroQLpIxPcOo,15490
|
|
544
555
|
oscura/visualization/colors.py,sha256=fsQerkweDxj_S3WX5NDYQLfPGHx9yeX-IDsalvg8WZA,11948
|
|
545
556
|
oscura/visualization/digital.py,sha256=GxQ6ZP4pgkgrwEWnSyl664Y5PKmUDkPpT3re_03_B8A,12877
|
|
546
557
|
oscura/visualization/eye.py,sha256=9BuGZZwvdEjsbRF5TVHJDkFNxnDd-IWD2p9C9WbOJYA,16782
|
|
@@ -566,7 +577,7 @@ oscura/visualization/styles.py,sha256=58-aRnig_9R1ap6UNWkkLYWAyCM7QHRLrEQF-42vQ_
|
|
|
566
577
|
oscura/visualization/thumbnails.py,sha256=WZBN9QkYj6PgETeFT3-yQS7j38dBIvfJ2CxcFnaVSLc,10725
|
|
567
578
|
oscura/visualization/time_axis.py,sha256=rWzDV2wofJo1VsZg4WP6FSNbdAWOuFg6PjhTM6yukrc,8871
|
|
568
579
|
oscura/visualization/waveform.py,sha256=jkZbBQb2I3f_6r27xifkoYzIQ5Mj1XosLMx6WFYty9s,12842
|
|
569
|
-
oscura/workflows/__init__.py,sha256=
|
|
580
|
+
oscura/workflows/__init__.py,sha256=4MClVAhD-_n_maeMR8PPhuNj7ozaGOpxiPOs4alK2cQ,1750
|
|
570
581
|
oscura/workflows/complete_re.py,sha256=CeI2R8GF1idmRmZ34ecVGlxKw9TYH3WJZdjsaQe7hWw,36960
|
|
571
582
|
oscura/workflows/compliance.py,sha256=Tr0WlJJ9oDFQrwveRdc3qdIQTnabwQ2FCvj6VS9RFQw,9149
|
|
572
583
|
oscura/workflows/digital.py,sha256=P0Cd9RQ1isFKbQvxboS9nmf6srseocivE--S2d31u-c,12913
|
|
@@ -575,6 +586,7 @@ oscura/workflows/power.py,sha256=AoP_RiQcNIdvh-hu8DIEHT2FKULSnNZ-7257ZoAiNxA,537
|
|
|
575
586
|
oscura/workflows/protocol.py,sha256=94eFMrX6ZQVRnIN0y-BDNxlwWNPuhsKvgonlKTfGgBA,15939
|
|
576
587
|
oscura/workflows/reverse_engineering.py,sha256=5GXMc3BwbNt9WA8Tzi7FEW7LciPjOZNm0Mm1Ej6iygg,25137
|
|
577
588
|
oscura/workflows/signal_integrity.py,sha256=TQ5CWnS2iyzS5TU32TfLzNilQT2fhY8EPy3E_RM4o-I,9699
|
|
589
|
+
oscura/workflows/waveform.py,sha256=neuAZlkKjpRr01dIAYdWjo2AqIwfDiZg9cptUxpgDZk,31162
|
|
578
590
|
oscura/workflows/batch/__init__.py,sha256=ngm5GSV8cC-T0nfigyQVkRkqJM5dpaxMTH6s3NZN67c,1260
|
|
579
591
|
oscura/workflows/batch/advanced.py,sha256=_CvDg_flQMdmWePnXGccboCy2K5sempO3RNubR8q-W0,23656
|
|
580
592
|
oscura/workflows/batch/aggregate.py,sha256=4Ql2GGVsmy9yxgST_SeRF-aFd8kfKtrorrgK1dcrDNo,15741
|
|
@@ -583,8 +595,8 @@ oscura/workflows/batch/logging.py,sha256=6YkTrOA2OSiRjYHmtRn-lL2wyNpya0sggVkgxsz
|
|
|
583
595
|
oscura/workflows/batch/metrics.py,sha256=InbxaZmFQrANpp_RCcx5F3va55UaiQjhFJ-_SEKAS20,17322
|
|
584
596
|
oscura/workflows/legacy/__init__.py,sha256=PqHw8AIWfP4-1lJEjCDC4c_O8GXYOcWodK9ciOnGJaU,409
|
|
585
597
|
oscura/workflows/legacy/dag.py,sha256=tEhiWmOSdcEYKmrwYUETC0P5yN-_Cy9fEysPwTDVZ3A,12337
|
|
586
|
-
oscura-0.
|
|
587
|
-
oscura-0.
|
|
588
|
-
oscura-0.
|
|
589
|
-
oscura-0.
|
|
590
|
-
oscura-0.
|
|
598
|
+
oscura-0.8.0.dist-info/METADATA,sha256=EmnMxn_jjx354rcHvzv3mM9W4galkREil_IZttzyjxs,34518
|
|
599
|
+
oscura-0.8.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
600
|
+
oscura-0.8.0.dist-info/entry_points.txt,sha256=QLBxd-iTjBQ5HidaVSkLBwvUsqxSG1ZTJ6i-0juu960,48
|
|
601
|
+
oscura-0.8.0.dist-info/licenses/LICENSE,sha256=p1_oEK-oqWDXMFSv5mKbyYkgW-CPbCnFUvdICu490aY,1077
|
|
602
|
+
oscura-0.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|