pyxcp 0.22.25__cp313-cp313-win_amd64.whl → 0.22.27__cp313-cp313-win_amd64.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.

Potentially problematic release.


This version of pyxcp might be problematic. Click here for more details.

Files changed (37) hide show
  1. pyxcp/__init__.py +1 -1
  2. pyxcp/config/__init__.py +3 -1
  3. pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd +0 -0
  4. pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd +0 -0
  5. pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd +0 -0
  6. pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd +0 -0
  7. pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd +0 -0
  8. pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd +0 -0
  9. pyxcp/daq_stim/stim.cp310-win_amd64.pyd +0 -0
  10. pyxcp/daq_stim/stim.cp311-win_amd64.pyd +0 -0
  11. pyxcp/daq_stim/stim.cp312-win_amd64.pyd +0 -0
  12. pyxcp/daq_stim/stim.cp313-win_amd64.pyd +0 -0
  13. pyxcp/daq_stim/stim.cp38-win_amd64.pyd +0 -0
  14. pyxcp/daq_stim/stim.cp39-win_amd64.pyd +0 -0
  15. pyxcp/examples/run_daq.py +0 -2
  16. pyxcp/master/errorhandler.py +7 -1
  17. pyxcp/recorder/__init__.py +7 -8
  18. pyxcp/recorder/converter/__init__.py +416 -2
  19. pyxcp/recorder/rekorder.cp310-win_amd64.pyd +0 -0
  20. pyxcp/recorder/rekorder.cp311-win_amd64.pyd +0 -0
  21. pyxcp/recorder/rekorder.cp312-win_amd64.pyd +0 -0
  22. pyxcp/recorder/rekorder.cp313-win_amd64.pyd +0 -0
  23. pyxcp/recorder/rekorder.cp38-win_amd64.pyd +0 -0
  24. pyxcp/recorder/rekorder.cp39-win_amd64.pyd +0 -0
  25. pyxcp/scripts/xmraw_converter.py +31 -0
  26. pyxcp/transport/base.py +1 -1
  27. pyxcp/types.py +7 -1
  28. {pyxcp-0.22.25.dist-info → pyxcp-0.22.27.dist-info}/METADATA +1 -1
  29. {pyxcp-0.22.25.dist-info → pyxcp-0.22.27.dist-info}/RECORD +32 -36
  30. {pyxcp-0.22.25.dist-info → pyxcp-0.22.27.dist-info}/entry_points.txt +1 -0
  31. pyxcp/examples/ex_arrow.py +0 -109
  32. pyxcp/examples/ex_csv.py +0 -85
  33. pyxcp/examples/ex_excel.py +0 -95
  34. pyxcp/examples/ex_mdf.py +0 -124
  35. pyxcp/examples/ex_sqlite.py +0 -128
  36. {pyxcp-0.22.25.dist-info → pyxcp-0.22.27.dist-info}/LICENSE +0 -0
  37. {pyxcp-0.22.25.dist-info → pyxcp-0.22.27.dist-info}/WHEEL +0 -0
@@ -1,4 +1,4 @@
1
- pyxcp/__init__.py,sha256=NDu785DrhpFkKcUgVKRBeBhp6NC9yp9DVxG_MGx_3Dg,548
1
+ pyxcp/__init__.py,sha256=U9Fi0Sk2-v05hWVufHjX9mTdUQfVbhDxYXUoaViam58,548
2
2
  pyxcp/aml/EtasCANMonitoring.a2l,sha256=EJYwe3Z3H24vyWAa6lUgcdKnQY8pwFxjyCN6ZU1ST8w,1509
3
3
  pyxcp/aml/EtasCANMonitoring.aml,sha256=xl0DdyeiIaLW0mmmJNAyJS0CQdOLSxt9dxfgrdSlU8Y,2405
4
4
  pyxcp/aml/ifdata_CAN.a2l,sha256=NCUnCUEEgRbZYSLGtUGwL2e7zJ8hrp0SbmLHGv8uY58,612
@@ -18,18 +18,18 @@ pyxcp/asamkeydll.c,sha256=dVEvU0S1kgIo62S0La-T8xHSw668LM_DYc_fiQ0No6g,2952
18
18
  pyxcp/asamkeydll.sh,sha256=DC2NKUMwvi39OQgJ6514Chr4wc1LYbTmQHmMq9jAHHs,59
19
19
  pyxcp/checksum.py,sha256=alze1JiZ2JmdRul9QzP_-fuAqJcNyYBbo35zBwEKqHk,11535
20
20
  pyxcp/cmdline.py,sha256=na3ZbWQ-5ezsi1MrkuxMTCAXonUF3X6-LutoneyE3dU,1529
21
- pyxcp/config/__init__.py,sha256=u9v-eUAJd8amEvkJsns5DCMhvYD3Lp3Ct0posmuqOec,41635
21
+ pyxcp/config/__init__.py,sha256=nToBy_zPFQZmCUgRZ1RUjlw-OulCcvoFuGFvPw242z8,41701
22
22
  pyxcp/config/legacy.py,sha256=4QdDheX8DbBKv5JVT72_C_cjCgKvZmhN3tJ6hsvBEtI,5220
23
23
  pyxcp/constants.py,sha256=9yGfujC0ImTYQWfn41wyw8pluJTSrhMGWIVeIZTgsLg,1160
24
24
  pyxcp/cpp_ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  pyxcp/cpp_ext/bin.hpp,sha256=PwJloZek21la-RBSda2Hc0u_6gID0sfTduPeplaAyR4,2561
26
26
  pyxcp/cpp_ext/blockmem.hpp,sha256=ysaJwmTWGTfE54Outk3gJYOfAVFd_QaonBMtXLcXwCc,1242
27
- pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=VWNTkyiub_-mX4OXAsEROyUfJz3fOSuyz_clzlwaYTo,279552
28
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=2iSOT9Ulo4unK1j9kVlUw6RXxqxgcVrCgEYo3aXNPRM,281600
29
- pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=LKQ6C5uI4Nc9ccjht56ZS3mA-9zL8TYRJ-TCLp9An18,285696
30
- pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=7iNxDwc_INR372xxIpCDzFYH06X7pkTMaibShEsqj80,285696
31
- pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=FvxLTjwiAyCQBEoqKOZ-fci6t1caxfVchOpwv7ruPzY,279552
32
- pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=Jx5MDTdx6bNKSEvJjd_Wa-TnVHmexbmdjPqQARmVYx8,260096
27
+ pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=Fd2LLcsAn61ml-vvMFVHOOnmxogCjLeBYdHeLCDTrtg,279552
28
+ pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=Njgpe-NccLp7q-lDy6KgKPneqbfxHcHO1mEsmyjZ8EU,281600
29
+ pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=bPHqXjpL06L9vaT6wyIf2AHOdkQbnQPb3-jb6V5Syfc,285696
30
+ pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=-sZ8AB33gnK8LICj-crbQ7pNe1xTK0hO94XP5_rUewY,285696
31
+ pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=U0lChpjxdARykUutwVcqTEBwE_L4qPELeClr0j-lFUY,279552
32
+ pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=3yPw_GgYZ5juIZ2UPjMnNRFBmXLFaMKYDLwtZbBXH4Q,260096
33
33
  pyxcp/cpp_ext/daqlist.hpp,sha256=g2hlxgoQorAGKHedZFZ0c2FQh1APMIA9sVB6M6hD_n8,7277
34
34
  pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
35
35
  pyxcp/cpp_ext/extension_wrapper.cpp,sha256=FXFjyruBjQYqjCYZZcajdYv6dvNnCggMAbWLqJmfuTM,4756
@@ -41,12 +41,12 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
41
41
  pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
42
42
  pyxcp/daq_stim/scheduler.cpp,sha256=a7VK7kP2Hs8yMlcDAkXwJ0bH88lr_yz156sphcHS7Z4,715
43
43
  pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
44
- pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=DD7ufKxaaRW5DmBBsAe4whg6qoi8GQ62VT7IS7U8KlA,189440
45
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=5HWuBjjAG1IaP90UK3IeOMkBADYyCMMa_U9QyuPQxrk,192000
46
- pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=-LlfCB7oJoIOXTefEHFIwSTVgLLLnR-3JVSP2XLpop0,193536
47
- pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=PAr4aoDuqAtZujV3BOquY---8orQpfOujw8ez0nLsmA,193536
48
- pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=X_ftCGxwZ4slT40A21gSUwJq8J-vB8Q_VUvZgQkRB2c,189440
49
- pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=nM37yO0Em1w_FxpT4mL5a8IVkYT5wsKLON1b1lI6C6w,183296
44
+ pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=-nFQmOAlzjHt6t_W4DJJc50Vt856IHL3yfrmNtatTsM,189440
45
+ pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=lAUZ1eEn8oWn5RGaQWXYo3lOBiCuD_8foMT2UnY8iEE,192000
46
+ pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=xwyevXhyPFlzny04mtCdJ_QBebjdfRBbgeEsE8MYoxY,193536
47
+ pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=kTRrucQnhC4WE2j9HqiH4UyfQRhm_WwYisZ7h52tBAM,193536
48
+ pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=GaZKWrOcsMhTdC4NU_MpJKz_YUZEK6NkwQ18kqvE39w,189440
49
+ pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=L3ktgjqa3Lby-qUdMR0p9Zf0yokLspjVIHwg67mxvL8,183296
50
50
  pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
51
51
  pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
52
52
  pyxcp/daq_stim/stim_wrapper.cpp,sha256=iT2yxJ3LRG7HoYC1bwhM3tCAxF9X_HHierBNsLRmTJg,1995
@@ -61,12 +61,7 @@ pyxcp/examples/conf_nixnet.json,sha256=BvXPrljPGzaRTNPch3K0XfU3KSBP1sVDDNP7yY850
61
61
  pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO4o7r8k,269
62
62
  pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
63
63
  pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
64
- pyxcp/examples/ex_arrow.py,sha256=HvY5Lc7rL87-FgTTcZSQJLjSiTdfjfjMLu0mMmLpW10,3020
65
- pyxcp/examples/ex_csv.py,sha256=GNWQ3IatXj3Kg5MUX6p8tzJRUppGreON9dkrNiqdTtk,2461
66
- pyxcp/examples/ex_excel.py,sha256=VpoqRTv-rHz-MnaFKt5f7MqDrK9OLYyRJvVWzCFsayc,2828
67
- pyxcp/examples/ex_mdf.py,sha256=zfivlNkbbsfvwqsISttaoQk1R888r7UUtwSqocE60sU,3759
68
- pyxcp/examples/ex_sqlite.py,sha256=ludD0EIziBhBNnC3MOrQTGs06cl7iNyL2yefwe53zNc,4268
69
- pyxcp/examples/run_daq.py,sha256=KXL9myK3w7RCIgjZblU2i1XOP5l4V0YRQKNRXF7ISIo,5518
64
+ pyxcp/examples/run_daq.py,sha256=gSKkJ_S4QgP6Pgeu-gNoh_hGzxtrAgcbQ1AEEC2QWHE,5484
70
65
  pyxcp/examples/xcp_policy.py,sha256=io9tS2W-7PvR8ZzU203KolFrDp67eorUlwNWvA4kC5k,1921
71
66
  pyxcp/examples/xcp_read_benchmark.py,sha256=zOG0Yrji10vA0vhHa27KK7zgc3JDpzXzXsFnIU4C_AM,956
72
67
  pyxcp/examples/xcp_skel.py,sha256=YXLQC8nn8aAwYSVuBGhr1dvmdMBjmO1Ee1w3e5sy16s,1159
@@ -75,16 +70,16 @@ pyxcp/examples/xcp_user_supplied_driver.py,sha256=bL-6HDvPjgRErvYVdaRL_Pg1GDxu02
75
70
  pyxcp/examples/xcphello.py,sha256=xbcWq8StRJyUZBLUvknsXv7VkEBD5SU0SJjlZTHsSzs,2630
76
71
  pyxcp/examples/xcphello_recorder.py,sha256=QHWJsq5h5CI9t5qEmMSorZyzirTpoXz4nzuKTMzbZCA,3409
77
72
  pyxcp/master/__init__.py,sha256=QQbkUJM1WQ-5p2MiNFYxLAmHhNsCQLzDp-S4aoOFxoA,318
78
- pyxcp/master/errorhandler.py,sha256=U5QuvGRDM9kRNwY5kbkTOnthp19RHoXEGCsaBNiFTps,14973
73
+ pyxcp/master/errorhandler.py,sha256=ulL6WiraZbVZnM2pfR8S9vlWAAP5UXwXqmbjjxH9rgc,15359
79
74
  pyxcp/master/master.py,sha256=y5i5HTw5g4HKHW8tXfpNc0hmaQjle-3dsUkVFqPjUXc,78365
80
75
  pyxcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- pyxcp/recorder/__init__.py,sha256=pg-cdOaoj-D-woFxFb2p6SpFTNTdpQEIknHdDaQ9ROE,2695
76
+ pyxcp/recorder/__init__.py,sha256=jeTmKvfjIenxHxt7zn6HMjnDpuPQU0d9SdnYK_t3gdE,2850
82
77
  pyxcp/recorder/build_clang.cmd,sha256=JvFngSnb28XcBGXxC6MGrcOCGYfahOIvHpgRpqbA6HQ,175
83
78
  pyxcp/recorder/build_clang.sh,sha256=zmU3nZxaNH1pxGWMyQ-S541TuVqxS00p3iPR9NUP4Ec,181
84
79
  pyxcp/recorder/build_gcc.cmd,sha256=zj732DdvqDzGAFg7dvF83DUpf8Qf6rQ0cqEaID15Z80,238
85
80
  pyxcp/recorder/build_gcc.sh,sha256=nCSh7G8xtxWtDNrMqNUxcjnm_CFpMeduIF0X-RSJtHA,211
86
81
  pyxcp/recorder/build_gcc_arm.sh,sha256=jEo6Mgt_aVDL3nHtffecXOrN6gRsEoaA3S4pPrAzpCE,240
87
- pyxcp/recorder/converter/__init__.py,sha256=avxsOiQJ-zrmQaS7qocp5yebAD-b5Lq4ehOzISUJuFw,700
82
+ pyxcp/recorder/converter/__init__.py,sha256=7gP3JmI5aPjVcoVqO7EqwdDKqzzidytH8a8pPKyRvAU,14779
88
83
  pyxcp/recorder/lz4.c,sha256=rOy3JE2SsOXvJ8a9pgGEfGpbDJnJR03dSVej0CwPmjg,120974
89
84
  pyxcp/recorder/lz4.h,sha256=Kz_2V6kvOunNHoPl9-EqxWDVCvYXbU0J-pkSnCeXubs,46483
90
85
  pyxcp/recorder/lz4hc.c,sha256=E56iE5CQ6fhQIVi3qNpxiIIP2sTGeC80JtVPyhidV6Q,88870
@@ -93,12 +88,12 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
93
88
  pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
94
89
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
95
90
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=CGdvShmnyjesXbPTQ8rM_bqpftDtXRZ1A7NjsGhkrDc,377856
97
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=_OCKW_sm_heL1rvvMqM3HiAb8oH9on2lvy42vroQFcM,380416
98
- pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=OVrH53mF32JztlRAIJAXYRL1FRWuUJjr0Z3IwrwnWDM,382976
99
- pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=pUzjWdVAhlQpdKQ6bH7mvNCxRFR4LXdZRlLAibEjINI,382976
100
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=_XW8GKdICxi0mzTRHwZ7Fc_afbCMOPrCQpNa-EozKnE,377856
101
- pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=IlUPHXqh86T7fBmgHC8EE7nTMuCkJMYTggM9u52LSwU,364032
91
+ pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=_kzESvDEYXNPGS2Jd-c2DIN68mh5gXR1Bgx_D16JwWo,377856
92
+ pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=mGHWyHU4_N9s_iyVzWayBlHRGopwZUeBuhzpew0sSLo,380416
93
+ pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=gYalzNdNjdbjA4AO4P-RVKZ287dvEIPt4QkQ-IpNcxA,382976
94
+ pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=R4q4dhZ9DPl8YCklAgZsgxk-e67JGvao6LnvFZNCcRI,382976
95
+ pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=oDEc0ilDNe1Lh5gxF4gUD0DAdcmXbfYIExaNE2DrRS8,377856
96
+ pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=jmQrzXw_5nwe8YEdc-wr5jIW6lfPava362CXVpyFITQ,364032
102
97
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
103
98
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
104
99
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
@@ -113,6 +108,7 @@ pyxcp/scripts/xcp_fetch_a2l.py,sha256=72818jdJiLsDuWWfkAPxekZ7fzRRz_A4RVSy06LQNe
113
108
  pyxcp/scripts/xcp_id_scanner.py,sha256=2P53qrvM-rYFTBbbm7eAKyOxESkKrorieND-KoZZ9mo,421
114
109
  pyxcp/scripts/xcp_info.py,sha256=pNb0h7bwAuUEUbCFRIWyHCrOcTU6ElQkFMAvqzjDJUs,4152
115
110
  pyxcp/scripts/xcp_profile.py,sha256=ryJnx7cqQ40O05F3beuUEOthsiW_k9d_2wMf4Z9CWkc,615
111
+ pyxcp/scripts/xmraw_converter.py,sha256=LvjiKAWHUKs5QZNiIDT-vdNgPG0Gioas2MzLJOo62-Y,684
116
112
  pyxcp/stim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
113
  pyxcp/tests/test_asam_types.py,sha256=0M08q8dJIVx-rkUtFKTqUhhW9NkThYL83LW3d_yCols,587
118
114
  pyxcp/tests/test_binpacking.py,sha256=kxLwYNzop775BkV68WXBoXVnLIuP0y4EKIW7u9niMKc,7623
@@ -125,19 +121,19 @@ pyxcp/tests/test_transport.py,sha256=Qn2VjNRfYCU6DH8olVSBUCqb0zdAM9GlTbVBM99YxFQ
125
121
  pyxcp/tests/test_utils.py,sha256=SrURAFc_6jtHng3PSZ5gpqXzVBVuPoMPB0YNvOvaIE0,880
126
122
  pyxcp/timing.py,sha256=zE6qPqOuidg6saNt7_zmbQgufxL9Id6akVYhAtpweQc,1705
127
123
  pyxcp/transport/__init__.py,sha256=31PaQLj76n5pXr68aJRWcYfrxEYWWgYoe9f_w3jZxsc,438
128
- pyxcp/transport/base.py,sha256=uyCJF6Lznm4gIa_Jq5Pkp6JAT6H6hQuZwryZkLz3kVI,16337
124
+ pyxcp/transport/base.py,sha256=Wf1ymrchtJ3JaETpVsGEV6X7OQR9o5DZmoD3zoXxkyU,16353
129
125
  pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
126
  pyxcp/transport/can.py,sha256=cQ8lrwBL7Ar0GSf48987TztR9wqYS_UnXUngzhaHXe0,14909
131
127
  pyxcp/transport/eth.py,sha256=xPzN2oSALoPKJVvZpBljPSV1AxfpjRusOzymO-TD1Rw,8711
132
128
  pyxcp/transport/sxi.py,sha256=vM8WZIKuu_dNuqkxZM_1n6iQkQCCzo4ykWpiG6ba8Fk,4695
133
129
  pyxcp/transport/transport_wrapper.cpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
130
  pyxcp/transport/usb_transport.py,sha256=JuYrwkWsUdibdVNA57LBEQT3a3ykOgWPdWcfqj96nDE,8343
135
- pyxcp/types.py,sha256=wm3tOocuAln4jpH_mDguPRYtIzHSQ_KQBYNATFB2WXc,26068
131
+ pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
136
132
  pyxcp/utils.py,sha256=unlg0CoNwcWYfd-BE0hZJ93uhlAoW_nryv9tS_R3C44,2969
137
133
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
134
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
139
- pyxcp-0.22.25.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
140
- pyxcp-0.22.25.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
141
- pyxcp-0.22.25.dist-info/METADATA,sha256=oUrQTmW0BB6APl8u-j-RKbfm75jwXGBVnr72VmiaOjo,4088
142
- pyxcp-0.22.25.dist-info/WHEEL,sha256=CAXnmTOdevtyHhGbx1uQxRlUnaXo4-LVkad_lFClKZs,98
143
- pyxcp-0.22.25.dist-info/RECORD,,
135
+ pyxcp-0.22.27.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
136
+ pyxcp-0.22.27.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
137
+ pyxcp-0.22.27.dist-info/METADATA,sha256=zQKqn19meJMIXG2mAnkRR-YL6zzc4mo34cqytGcwlqA,4088
138
+ pyxcp-0.22.27.dist-info/WHEEL,sha256=CAXnmTOdevtyHhGbx1uQxRlUnaXo4-LVkad_lFClKZs,98
139
+ pyxcp-0.22.27.dist-info/RECORD,,
@@ -5,4 +5,5 @@ xcp-fetch-a2l=pyxcp.scripts.xcp_fetch_a2l:main
5
5
  xcp-id-scanner=pyxcp.scripts.xcp_id_scanner:main
6
6
  xcp-info=pyxcp.scripts.xcp_info:main
7
7
  xcp-profile=pyxcp.scripts.xcp_profile:main
8
+ xmraw-converter=pyxcp.scripts.xmraw_converter:main
8
9
 
@@ -1,109 +0,0 @@
1
- import argparse
2
- import logging
3
- from array import array
4
- from dataclasses import dataclass, field
5
- from typing import Any, List
6
-
7
- import pyarrow as pa
8
- import pyarrow.parquet as pq
9
-
10
- from pyxcp.recorder import XcpLogFileDecoder
11
-
12
-
13
- MAP_TO_ARROW = {
14
- "U8": pa.uint8(),
15
- "I8": pa.int8(),
16
- "U16": pa.uint16(),
17
- "I16": pa.int16(),
18
- "U32": pa.uint32(),
19
- "I32": pa.int32(),
20
- "U64": pa.uint64(),
21
- "I64": pa.int64(),
22
- "F32": pa.float32(),
23
- "F64": pa.float64(),
24
- "F16": pa.float16(),
25
- "BF16": pa.float16(),
26
- }
27
-
28
- MAP_TO_ARRAY = {
29
- "U8": "B",
30
- "I8": "b",
31
- "U16": "H",
32
- "I16": "h",
33
- "U32": "L",
34
- "I32": "l",
35
- "U64": "Q",
36
- "I64": "q",
37
- "F32": "f",
38
- "F64": "d",
39
- "F16": "f",
40
- "BF16": "f",
41
- }
42
-
43
- logger = logging.getLogger("PyXCP")
44
-
45
- parser = argparse.ArgumentParser(description="Use .xmraw files in an Apache Arrow application.")
46
- parser.add_argument("xmraw_file", help=".xmraw file")
47
- args = parser.parse_args()
48
-
49
-
50
- @dataclass
51
- class Storage:
52
- name: str
53
- arrow_type: Any
54
- arr: array
55
-
56
-
57
- @dataclass
58
- class StorageContainer:
59
- name: str
60
- arr: List[Storage] = field(default_factory=[])
61
- ts0: List[int] = field(default_factory=lambda: array("Q"))
62
- ts1: List[int] = field(default_factory=lambda: array("Q"))
63
-
64
-
65
- class Decoder(XcpLogFileDecoder):
66
-
67
- def initialize(self) -> None:
68
- self.arrow_tables = []
69
- for dl in self.daq_lists:
70
- result = []
71
- for name, type_str in dl.headers:
72
- array_txpe = MAP_TO_ARRAY[type_str]
73
- arrow_type = MAP_TO_ARROW[type_str]
74
- sd = Storage(name, arrow_type, array(array_txpe))
75
- print(f"\t{name!r} {array_txpe} {arrow_type}", sd)
76
- result.append(sd)
77
- sc = StorageContainer(dl.name, result)
78
- self.arrow_tables.append(sc)
79
-
80
- def finalize(self) -> Any:
81
- result = []
82
- for arr in self.arrow_tables:
83
- timestamp0 = arr.ts0
84
- timestamp1 = arr.ts1
85
- names = ["timestamp0", "timestamp1"]
86
- data = [timestamp0, timestamp1]
87
- for sd in arr.arr:
88
- adt = pa.array(sd.arr, type=sd.arrow_type)
89
- names.append(sd.name)
90
- data.append(adt)
91
- table = pa.Table.from_arrays(data, names=names)
92
- fname = f"{arr.name}.parquet"
93
- print("Writing table", fname)
94
- pq.write_table(table, fname)
95
- print("done.", table.shape)
96
- result.append(table)
97
- return result
98
-
99
- def on_daq_list(self, daq_list_num: int, timestamp0: int, timestamp1: int, measurements: list) -> None:
100
- sc = self.arrow_tables[daq_list_num]
101
- sc.ts0.append(timestamp0)
102
- sc.ts1.append(timestamp1)
103
- for idx, elem in enumerate(measurements):
104
- sto = sc.arr[idx]
105
- sto.arr.append(elem)
106
-
107
-
108
- decoder = Decoder(args.xmraw_file)
109
- res = decoder.run()
pyxcp/examples/ex_csv.py DELETED
@@ -1,85 +0,0 @@
1
- import argparse
2
- import logging
3
- import os
4
- import csv
5
- from array import array
6
- from dataclasses import dataclass, field
7
- from mmap import PAGESIZE
8
- from pathlib import Path
9
- from typing import Any, List
10
-
11
- from pyxcp.recorder import XcpLogFileDecoder
12
- from pyxcp.recorder.converter import MAP_TO_ARRAY
13
-
14
-
15
- MAP_TO_SQL = {
16
- "U8": "INTEGER",
17
- "I8": "INTEGER",
18
- "U16": "INTEGER",
19
- "I16": "INTEGER",
20
- "U32": "INTEGER",
21
- "I32": "INTEGER",
22
- "U64": "INTEGER",
23
- "I64": "INTEGER",
24
- "F32": "FLOAT",
25
- "F64": "FLOAT",
26
- "F16": "FLOAT",
27
- "BF16": "FLOAT",
28
- }
29
-
30
- logger = logging.getLogger("PyXCP")
31
-
32
- parser = argparse.ArgumentParser(description="Use .xmraw files in an Apache Arrow application.")
33
- parser.add_argument("xmraw_file", help=".xmraw file")
34
- args = parser.parse_args()
35
-
36
-
37
- @dataclass
38
- class Storage:
39
- name: str
40
- arrow_type: Any
41
- arr: array
42
-
43
-
44
- @dataclass
45
- class StorageContainer:
46
- name: str
47
- arr: List[Storage] = field(default_factory=[])
48
- ts0: List[int] = field(default_factory=lambda: array("Q"))
49
- ts1: List[int] = field(default_factory=lambda: array("Q"))
50
-
51
-
52
- class Decoder(XcpLogFileDecoder):
53
-
54
- def __init__(self, recording_file_name: str):
55
- super().__init__(recording_file_name)
56
-
57
- def initialize(self) -> None:
58
- self.arrow_tables = []
59
- self.csv_writers = []
60
- for dl in self.daq_lists:
61
- result = []
62
- for name, type_str in dl.headers:
63
- array_txpe = MAP_TO_ARRAY[type_str]
64
- sql_type = MAP_TO_SQL[type_str]
65
- sd = Storage(name, sql_type, array(array_txpe))
66
- result.append(sd)
67
- sc = StorageContainer(dl.name, result)
68
- writer = csv.writer(open(f"{sc.name}.csv", "w", newline=""), dialect="excel")
69
- headers = ["ts0", "ts1"] + [e.name for e in sc.arr]
70
- writer.writerow(headers)
71
- self.csv_writers.append(writer)
72
- self.arrow_tables.append(sc)
73
- print("\nInserting data...")
74
-
75
- def finalize(self) -> None:
76
- print("Done.")
77
-
78
- def on_daq_list(self, daq_list_num: int, timestamp0: int, timestamp1: int, measurements: list) -> None:
79
- sc = self.arrow_tables[daq_list_num]
80
- writer = self.csv_writers[daq_list_num]
81
- data = [timestamp0, timestamp1, *measurements]
82
- writer.writerow(data)
83
-
84
- decoder = Decoder(args.xmraw_file)
85
- decoder.run()
@@ -1,95 +0,0 @@
1
- import argparse
2
- import logging
3
- import os
4
- import xlsxwriter
5
- from array import array
6
- from dataclasses import dataclass, field
7
- from mmap import PAGESIZE
8
- from pathlib import Path
9
- from typing import Any, List
10
-
11
- from pyxcp.recorder import XcpLogFileDecoder
12
- from pyxcp.recorder.converter import MAP_TO_ARRAY
13
-
14
-
15
- MAP_TO_SQL = {
16
- "U8": "INTEGER",
17
- "I8": "INTEGER",
18
- "U16": "INTEGER",
19
- "I16": "INTEGER",
20
- "U32": "INTEGER",
21
- "I32": "INTEGER",
22
- "U64": "INTEGER",
23
- "I64": "INTEGER",
24
- "F32": "FLOAT",
25
- "F64": "FLOAT",
26
- "F16": "FLOAT",
27
- "BF16": "FLOAT",
28
- }
29
-
30
- logger = logging.getLogger("PyXCP")
31
-
32
- parser = argparse.ArgumentParser(description="Use .xmraw files in an Apache Arrow application.")
33
- parser.add_argument("xmraw_file", help=".xmraw file")
34
- args = parser.parse_args()
35
-
36
-
37
- @dataclass
38
- class Storage:
39
- name: str
40
- arrow_type: Any
41
- arr: array
42
-
43
-
44
- @dataclass
45
- class StorageContainer:
46
- name: str
47
- arr: List[Storage] = field(default_factory=[])
48
- ts0: List[int] = field(default_factory=lambda: array("Q"))
49
- ts1: List[int] = field(default_factory=lambda: array("Q"))
50
-
51
-
52
- class Decoder(XcpLogFileDecoder):
53
-
54
- def __init__(self, recording_file_name: str):
55
- super().__init__(recording_file_name)
56
- self.xls_file_name = Path(recording_file_name).with_suffix(".xlsx")
57
- try:
58
- os.unlink(self.xls_file_name)
59
- except Exception as e:
60
- print(e)
61
-
62
- def initialize(self) -> None:
63
- self.arrow_tables = []
64
- self.xls_workbook = xlsxwriter.Workbook(self.xls_file_name)
65
- self.xls_sheets = []
66
- self.rows = []
67
- for dl in self.daq_lists:
68
- result = []
69
- for name, type_str in dl.headers:
70
- array_txpe = MAP_TO_ARRAY[type_str]
71
- sql_type = MAP_TO_SQL[type_str]
72
- sd = Storage(name, sql_type, array(array_txpe))
73
- result.append(sd)
74
- sc = StorageContainer(dl.name, result)
75
- sheet = self.xls_workbook.add_worksheet(sc.name)
76
- self.xls_sheets.append(sheet)
77
- headers = ["ts0", "ts1"] + [e.name for e in sc.arr]
78
- sheet.write_row(0, 0, headers)
79
- self.rows.append(1)
80
- self.arrow_tables.append(sc)
81
- print("\nInserting data...")
82
-
83
- def finalize(self) -> None:
84
- self.xls_workbook.close()
85
- print("Done.")
86
-
87
- def on_daq_list(self, daq_list_num: int, timestamp0: int, timestamp1: int, measurements: list) -> None:
88
- sheet = self.xls_sheets[daq_list_num]
89
- row = self.rows[daq_list_num]
90
- data = [timestamp0, timestamp1] + measurements
91
- sheet.write_row(row, 0, data)
92
- self.rows[daq_list_num] += 1
93
-
94
- decoder = Decoder(args.xmraw_file)
95
- decoder.run()
pyxcp/examples/ex_mdf.py DELETED
@@ -1,124 +0,0 @@
1
- import argparse
2
- import logging
3
- from array import array
4
- from dataclasses import dataclass, field
5
- from pathlib import Path
6
- from typing import Any, List
7
-
8
- import numpy as np
9
- from asammdf import MDF, Signal
10
- from asammdf.blocks.v4_blocks import HeaderBlock # ChannelGroup
11
- from asammdf.blocks.v4_constants import FLAG_HD_TIME_OFFSET_VALID # FLAG_HD_LOCAL_TIME,
12
-
13
- from pyxcp.recorder import XcpLogFileDecoder
14
-
15
-
16
- MAP_TO_NP = {
17
- "U8": np.uint8,
18
- "I8": np.int8,
19
- "U16": np.uint16,
20
- "I16": np.int16,
21
- "U32": np.uint32,
22
- "I32": np.int32,
23
- "U64": np.uint64,
24
- "I64": np.int64,
25
- "F32": np.float32,
26
- "F64": np.float64,
27
- "F16": np.float16,
28
- "BF16": np.float16,
29
- }
30
-
31
- MAP_TO_ARRAY = {
32
- "U8": "B",
33
- "I8": "b",
34
- "U16": "H",
35
- "I16": "h",
36
- "U32": "L",
37
- "I32": "l",
38
- "U64": "Q",
39
- "I64": "q",
40
- "F32": "f",
41
- "F64": "d",
42
- "F16": "f",
43
- # "BF16"
44
- }
45
-
46
- logger = logging.getLogger("PyXCP")
47
-
48
- parser = argparse.ArgumentParser(description="Use .xmraw files in an Apache Arrow application.")
49
- parser.add_argument("xmraw_file", help=".xmraw file")
50
- args = parser.parse_args()
51
-
52
-
53
- @dataclass
54
- class Storage:
55
- name: str
56
- arrow_type: Any
57
- arr: array
58
-
59
-
60
- @dataclass
61
- class StorageContainer:
62
- name: str
63
- arr: list[Storage] = field(default_factory=[])
64
- ts0: List[int] = field(default_factory=lambda: array("Q"))
65
- ts1: List[int] = field(default_factory=lambda: array("Q"))
66
-
67
-
68
- class Decoder(XcpLogFileDecoder):
69
-
70
- def __init__(self, recording_file_name: str):
71
- super().__init__(recording_file_name)
72
- self.mdf_file_name = Path(recording_file_name).with_suffix(".mf4")
73
-
74
- def initialize(self) -> None:
75
- self.tables = []
76
- for dl in self.daq_lists:
77
- result = []
78
- for name, type_str in dl.headers:
79
- array_txpe = MAP_TO_ARRAY[type_str]
80
- arrow_type = MAP_TO_NP[type_str]
81
- sd = Storage(name, arrow_type, array(array_txpe))
82
- result.append(sd)
83
- sc = StorageContainer(dl.name, result)
84
- self.tables.append(sc)
85
- print("Extracting DAQ lists...")
86
-
87
- def finalize(self) -> None:
88
- print("Creating MDF result...")
89
- timestamp_info = self.parameters.timestamp_info
90
- hdr = HeaderBlock(
91
- abs_time=timestamp_info.timestamp_ns,
92
- tz_offset=timestamp_info.utc_offset,
93
- daylight_save_time=timestamp_info.dst_offset,
94
- time_flags=FLAG_HD_TIME_OFFSET_VALID,
95
- )
96
- hdr.comment = f"""<HDcomment><TX>Timezone: {timestamp_info.timezone}</TX></HDcomment>""" # Test-Comment.
97
- mdf4 = MDF(version="4.10")
98
- mdf4.header = hdr
99
- # result = []
100
- for idx, arr in enumerate(self.tables):
101
- signals = []
102
- timestamps = arr.ts0
103
- for sd in arr.arr:
104
-
105
- signal = Signal(samples=sd.arr, name=sd.name, timestamps=timestamps)
106
- signals.append(signal)
107
- print(f"Appending data-group {arr.name!r}")
108
- mdf4.append(signals, acq_name=arr.name, comment="Created by pyXCP recorder")
109
- print(f"Writing '{self.mdf_file_name!s}'")
110
- mdf4.save(self.mdf_file_name, compression=2, overwrite=True)
111
- print("Done.")
112
- return mdf4
113
-
114
- def on_daq_list(self, daq_list_num: int, timestamp0: int, timestamp1: int, measurements: list) -> None:
115
- sc = self.tables[daq_list_num]
116
- sc.ts0.append(timestamp0)
117
- sc.ts1.append(timestamp1)
118
- for idx, elem in enumerate(measurements):
119
- sto = sc.arr[idx]
120
- sto.arr.append(elem)
121
-
122
-
123
- decoder = Decoder(args.xmraw_file)
124
- res = decoder.run()