pyxcp 0.22.10__cp313-cp313-win_amd64.whl → 0.22.12__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.

pyxcp/__init__.py CHANGED
@@ -17,4 +17,4 @@ tb_install(show_locals=True, max_frames=3) # Install custom exception handler.
17
17
 
18
18
  # if you update this manually, do not forget to update
19
19
  # .bumpversion.cfg and pyproject.toml.
20
- __version__ = "0.22.10"
20
+ __version__ = "0.22.12"
pyxcp/config/__init__.py CHANGED
@@ -932,8 +932,11 @@ class PyXCP(Application):
932
932
  self.subapp.start()
933
933
  exit(2)
934
934
  else:
935
+ if logging.getLogger().hasHandlers():
936
+ self.log = logging.getLogger()
937
+ else:
938
+ self._setup_logger()
935
939
  self._read_configuration(self.config_file)
936
- self._setup_logger()
937
940
 
938
941
  def _setup_logger(self):
939
942
  from pyxcp.types import Command
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,85 @@
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()
@@ -0,0 +1,95 @@
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/recorder/reader.hpp CHANGED
@@ -33,11 +33,11 @@ class XcpLogFileReader {
33
33
  if (detail::VERSION != m_header.version) {
34
34
  throw std::runtime_error("File version mismatch.");
35
35
  }
36
-
36
+ #if 0
37
37
  if (m_header.num_containers < 1) {
38
38
  throw std::runtime_error("At least one container required.");
39
39
  }
40
-
40
+ #endif
41
41
  m_offset += detail::FILE_HEADER_SIZE;
42
42
 
43
43
  if ((m_header.options & XMRAW_HAS_METADATA) == XMRAW_HAS_METADATA) {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -640,9 +640,11 @@ struct MeasurementParameters {
640
640
 
641
641
  #undef max // Thanks to Windows.
642
642
 
643
- auto get_overflow_value() const {
643
+ auto get_overflow_value() const -> std::uint64_t {
644
644
  std::uint64_t ov_value{};
645
645
  switch (m_ts_size) {
646
+ case 0:
647
+ return 0ULL;
646
648
  case 1:
647
649
  ov_value = std::numeric_limits<std::uint8_t>::max();
648
650
  break;
@@ -659,9 +661,7 @@ struct MeasurementParameters {
659
661
  throw std::runtime_error("Invalid timestamp size");
660
662
  }
661
663
  ov_value++;
662
- std::cout << "TS-V: " << ov_value << " scale: " << m_ts_scale_factor << std::endl;
663
664
  ov_value = static_cast<std::uint64_t>(ov_value * m_ts_scale_factor);
664
- std::cout << "OVRF-Value: " << ov_value << std::endl;
665
665
  return ov_value;
666
666
  }
667
667
 
@@ -1080,7 +1080,7 @@ class DAQPolicyBase {
1080
1080
  virtual void set_parameters(const MeasurementParameters& params) noexcept {
1081
1081
  m_overflow_value = params.get_overflow_value();
1082
1082
  m_overflow_counter = 0ULL;
1083
- std::cout << "Overflow value: " << m_overflow_value << ", Overflow counter: " << m_overflow_counter << std::endl;
1083
+ // std::cout << "Overflow value: " << m_overflow_value << ", Overflow counter: " << m_overflow_counter << std::endl;
1084
1084
  initialize();
1085
1085
  }
1086
1086
 
pyxcp/transport/base.py CHANGED
@@ -82,10 +82,9 @@ class LegacyFrameAcquisitionPolicy(FrameAcquisitionPolicy):
82
82
  }
83
83
 
84
84
  def feed(self, frame_type: types.FrameCategory, counter: int, timestamp: int, payload: bytes) -> None:
85
- # print(f"{frame_type.name:8} {counter:6} {timestamp:7.7f} {hexDump(payload)}")
86
85
  if frame_type not in self.filtered_out:
87
86
  queue = self.QUEUE_MAP.get(frame_type)
88
- if queue:
87
+ if queue is not None:
89
88
  queue.append((counter, timestamp, payload))
90
89
 
91
90
 
@@ -118,7 +117,7 @@ class StdoutPolicy(FrameAcquisitionPolicy):
118
117
 
119
118
  def feed(self, frame_type: types.FrameCategory, counter: int, timestamp: int, payload: bytes) -> None:
120
119
  if frame_type not in self.filtered_out:
121
- print(f"{frame_type.name:8} {counter:6} {timestamp:8u} {hexDump(payload)}")
120
+ print(f"{frame_type.name:8} {counter:6} {timestamp:8d} {hexDump(payload)}")
122
121
 
123
122
 
124
123
  class EmptyFrameError(Exception):
@@ -210,7 +209,12 @@ class BaseTransport(metaclass=abc.ABCMeta):
210
209
 
211
210
  @property
212
211
  def start_datetime(self) -> int:
213
- """"""
212
+ """datetime of program start.
213
+
214
+ Returns
215
+ -------
216
+ int
217
+ """
214
218
  return self._start_datetime
215
219
 
216
220
  def start_listener(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxcp
3
- Version: 0.22.10
3
+ Version: 0.22.12
4
4
  Summary: Universal Calibration Protocol for Python
5
5
  Home-page: https://github.com/christoph2/pyxcp
6
6
  License: LGPLv3
@@ -1,4 +1,4 @@
1
- pyxcp/__init__.py,sha256=5gNaTsZlwx90n0_iLoI9I5zhLtWz-lprPLROdm7DBZk,548
1
+ pyxcp/__init__.py,sha256=rzqutj_NIktuafZn4ti6vl4JGdf6GvLUr3VGJhfN7Q4,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=uSbCtKtQT0JQxMhcoUUx_UJ1nMUILMWckEQGe_tNxXk,1496
21
- pyxcp/config/__init__.py,sha256=V66iNkrUVF1iR3X15nl_1a37qRlpEc-xZ5P-UMP0rp4,41832
21
+ pyxcp/config/__init__.py,sha256=Vv0CPXg6hDftPRMmiv845KqcksZPlBqJMmmyWyrH-Vs,41954
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=iCsEqSZQIsaNSjQkgTp-DKvOCkRtV6QOydnSUDx5jVk,136
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=s2YX9NSLlGVms5rR2NrsOWOU2zlGcXEu2MXGtA0bw2A,278016
28
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=iy06blgvZQDQx6tBa-05_wxUI857WR-sUf0FUjQyfkA,280064
29
- pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=l5zRKN3qoNQ-VEXjlhl1L4fXFnC3vJ0LjTJ-Hws-pzg,284160
30
- pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=Zmatd1TOdBBayzuTZpj77upD5UDoHmkkNwokg-1MeIg,284160
31
- pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=5VMsACPyJOwOkE_kmiqBBqDeK_Bxom_ytuf6__JOEKw,278016
32
- pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=y9LmrJRmsR62znnQwT7wGGCIClNjAhQtG176iD4Df4o,259584
27
+ pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=78rV894PWY7xDOwuC8vmTdhE8g76hlCzZa_o0i-hOnk,278016
28
+ pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=McO4tKC0mRSk8Oenkmswfp1ZcnbANlVKBgXzJBktUUU,280064
29
+ pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=xfQ4oUl1GNB53xHLFILBjfUQbjQZd1QOvXSnk0YVMxE,284160
30
+ pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=ZCccI0iJhd2XCNbgbIzpbak_I2iD60xfPNoLugaFt0Q,284160
31
+ pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=zkRiyCw9-TfVZr1WS2G3SJDu5z0PTWRBV3F7hZMUkko,278016
32
+ pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=7Pk0o1wc6ek4jXYhiLkJAie3iO08xy1hROZ-nmpzOFY,259584
33
33
  pyxcp/cpp_ext/daqlist.hpp,sha256=sgqodW4vnN82s05mFyXQnpQox4KR3VDhP5FB_VhsmQc,7075
34
34
  pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
35
35
  pyxcp/cpp_ext/extension_wrapper.cpp,sha256=5ZUYLt87SEAZUzuBkBl7N0eXXBOVq_aZvlNdpVgmy4o,4528
@@ -41,12 +41,12 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=E4HzY8P0aeegNgu71hUcbL-yR6Fzg5PGe8PSi
41
41
  pyxcp/daq_stim/optimize/binpacking.py,sha256=zTNjpt91MnGW5ha9Z07hQtuoJ7tspyRwRlLYbE6GMGs,1249
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=42gH3xnpqIPnchidEgzmnzOms0OmxMUF1PGiSWNhtxo,186880
45
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=-wNSKkdA7UeFftpuIH7YUT96OunqG7wVXPBFswYhc68,189440
46
- pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=Q0H4ALP0zL7GBGFgeVhgHojAGV-wBniWWbIaetleqbI,190976
47
- pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=lqzzn1gIb8lhGP4Z5F4GWacwVUF-CRrJPQVL3cd3kHQ,190976
48
- pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=1_HMSdbmcX_23ohzEIH2D-MjDNmQ1ZekH76Z94R-72I,186880
49
- pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=fJqji_m7qYjQO5_gZzAWUtkYN6dORAmqI80yWhK_duY,181248
44
+ pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=YskLVIiDKU5XEAMvho5NUyka9ECm08qCok8ub6jyWKA,186880
45
+ pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=R6GddM_xf-4dcPT05zTrZ1uwx9j3_0DFs5QASjcj744,189440
46
+ pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=gzV_21KppPSzLnjJoh1nCoOmJJRo3nByDP-mdfuWzWY,190976
47
+ pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=anuFHDKsELmXChPcg9RkK41xNfxW-sPEDkHk4uXM8-8,190976
48
+ pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=xgMR2ABH1WH58MMIBkF8KJsZr4kDLkeG-OryTsSJJf4,186880
49
+ pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=XFhdTQcwx6ztvIjUY_IcpWvW5-HQl-2DpWHrwoszIsY,181248
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=5LbWkK86h_4mHd83dnwCU7BRvVYit8ijxBMT7pthtOE,1830
@@ -62,6 +62,8 @@ pyxcp/examples/conf_socket_can.toml,sha256=gTacQGm0p6fhPCMWC3ScLq9Xj-xJmNbjNXkjO
62
62
  pyxcp/examples/conf_sxi.json,sha256=cXwNGoOpvqhdjXBQcE8lKgTs50wi9beosWKskZGJ-nI,158
63
63
  pyxcp/examples/conf_sxi.toml,sha256=t-XsgRljcMdj0f3_CGRT60c77LeQPNbjIT17YxDK3Yg,125
64
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
65
67
  pyxcp/examples/ex_mdf.py,sha256=zfivlNkbbsfvwqsISttaoQk1R888r7UUtwSqocE60sU,3759
66
68
  pyxcp/examples/ex_sqlite.py,sha256=ludD0EIziBhBNnC3MOrQTGs06cl7iNyL2yefwe53zNc,4268
67
69
  pyxcp/examples/run_daq.py,sha256=l8PYfRZRKNuDrTwmOC_rc2aSPDJrxcLQ4RWmfPRUjRI,4947
@@ -88,20 +90,20 @@ pyxcp/recorder/lz4.h,sha256=Kz_2V6kvOunNHoPl9-EqxWDVCvYXbU0J-pkSnCeXubs,46483
88
90
  pyxcp/recorder/lz4hc.c,sha256=E56iE5CQ6fhQIVi3qNpxiIIP2sTGeC80JtVPyhidV6Q,88870
89
91
  pyxcp/recorder/lz4hc.h,sha256=dtxPbesyAongP7CK_pL0M2DL707iMm9jGKrl8hXXRNk,20592
90
92
  pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
91
- pyxcp/recorder/reader.hpp,sha256=qbz-LFg87h4yLaGiv_8zP-95UebbwICei0tvgHu6uII,5190
93
+ pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
92
94
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
93
95
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=OlljGRPIPcSw8V0boPfZGdDXLhAXtFn-stusAeiYGno,378368
95
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=Kib-Z6wAxfpifsehS92zh9CIa5DmTZkosggAVFATCsU,380416
96
- pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=s-qSEgM0f72PhogiDxZY5zGXMbYnV5WiPf0o_aB8pjg,382976
97
- pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=Nszvc-XWYCM533bYmpDG7uMrEzFbZEsYLRU6CoCz7Tg,382976
98
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=pt4_SKKfYQNvyrgxFjUovW5VMXOZvJB4FMtLiFPCG8g,377856
99
- pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=2PNaXEC1VOLo9ZHuYHuHgj7X_P9NcZFkluYQPj7K8lk,364032
96
+ pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=mhP27o0y4AJzUgtmIer_DgyQYtcrKMTcbN8ZwVnydPE,377856
97
+ pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=zgPGvIyU_QcfRXcjNG_BGFjJ3OD6IEMzTuU1Okdyq1k,380416
98
+ pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=Hk62esfwiS13rX3Wkt9-iX4sWjy_R81FU2EB0F7CxCQ,382976
99
+ pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=JNG5ZSE_LICvr1WBhczLzBzrLKaA3VqNsgnGhZwcGuc,382976
100
+ pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=EM3_3v-MOkrbYNTo3bvbpgKiRalJEN6EnMm39WXWCTY,377856
101
+ pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=ClhUHYx3TOjsckTysXn82P8MYLtT3ghSSWVfGCE5AtE,363520
100
102
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
101
103
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
102
104
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
103
105
  pyxcp/recorder/test_reko.py,sha256=M8lfKBmBUl-28IMVoD6lU5Bnorz7fYFOvcAjfVZxuXA,1014
104
- pyxcp/recorder/unfolder.hpp,sha256=1DOjH3YlExYtJfQpmnyxWiQTgM87ON59tNlhC6o2ACE,48082
106
+ pyxcp/recorder/unfolder.hpp,sha256=3gJKT2eMOZuT8o_M2NFLthdUIWd460vdwzlHaf-fQII,47998
105
107
  pyxcp/recorder/wrap.cpp,sha256=S3frBevIrPE5m3kt_mXe9TDOwWPJFiVa7Rt9FGMCv2A,8909
106
108
  pyxcp/recorder/writer.hpp,sha256=rNjtRTtJes5z-BzKR2K56P_Kvc9MEVQgycu8J0wKf1g,11284
107
109
  pyxcp/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -123,7 +125,7 @@ pyxcp/tests/test_transport.py,sha256=Qn2VjNRfYCU6DH8olVSBUCqb0zdAM9GlTbVBM99YxFQ
123
125
  pyxcp/tests/test_utils.py,sha256=SrURAFc_6jtHng3PSZ5gpqXzVBVuPoMPB0YNvOvaIE0,880
124
126
  pyxcp/timing.py,sha256=zE6qPqOuidg6saNt7_zmbQgufxL9Id6akVYhAtpweQc,1705
125
127
  pyxcp/transport/__init__.py,sha256=31PaQLj76n5pXr68aJRWcYfrxEYWWgYoe9f_w3jZxsc,438
126
- pyxcp/transport/base.py,sha256=MQwdDpff34YOHyabP-NdV1Jq-w2umXMSMSNdc4nMGDU,16281
128
+ pyxcp/transport/base.py,sha256=EWevuuTht424_tgYnybU3Xh_jFAdBjdCcMTyU7u_gL4,16288
127
129
  pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
130
  pyxcp/transport/can.py,sha256=cQ8lrwBL7Ar0GSf48987TztR9wqYS_UnXUngzhaHXe0,14909
129
131
  pyxcp/transport/eth.py,sha256=xPzN2oSALoPKJVvZpBljPSV1AxfpjRusOzymO-TD1Rw,8711
@@ -134,8 +136,8 @@ pyxcp/types.py,sha256=hY4Bb3qT3ZoabGnSKLY6S84MvVyuOCxwVONfs2skx2Y,26043
134
136
  pyxcp/utils.py,sha256=tujhw__jUSVIljHfHekN-nzERXC_1orVRBGKNyGqBuo,2961
135
137
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
138
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
137
- pyxcp-0.22.10.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
138
- pyxcp-0.22.10.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
139
- pyxcp-0.22.10.dist-info/METADATA,sha256=fOE_8OKC9r7-G424mSYcUxSqkgIrkRBT30Q2cMkj9zw,4076
140
- pyxcp-0.22.10.dist-info/WHEEL,sha256=RBxSuTKD__NDRUBZC1I4b5R6FamU3rQfymmsTgmeb3A,98
141
- pyxcp-0.22.10.dist-info/RECORD,,
139
+ pyxcp-0.22.12.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
140
+ pyxcp-0.22.12.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
141
+ pyxcp-0.22.12.dist-info/METADATA,sha256=H6p5xGHQkEYQ9CciMWIFwsL0UQ06L1Bj-bHfD-Dx_x0,4076
142
+ pyxcp-0.22.12.dist-info/WHEEL,sha256=ac39RkKC86mX88RY86UO1y2TE4c4O3q8nE9H4ovyFE0,98
143
+ pyxcp-0.22.12.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win_amd64