pyxcp 0.25.1__cp314-cp314-macosx_11_0_arm64.whl → 0.25.9__cp314-cp314-macosx_11_0_arm64.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.
- pyxcp/__init__.py +2 -2
- pyxcp/cmdline.py +14 -29
- pyxcp/config/__init__.py +1257 -1257
- pyxcp/cpp_ext/aligned_buffer.hpp +1 -1
- pyxcp/cpp_ext/cpp_ext.cpython-310-darwin.so +0 -0
- pyxcp/cpp_ext/cpp_ext.cpython-311-darwin.so +0 -0
- pyxcp/cpp_ext/cpp_ext.cpython-312-darwin.so +0 -0
- pyxcp/cpp_ext/cpp_ext.cpython-313-darwin.so +0 -0
- pyxcp/cpp_ext/cpp_ext.cpython-314-darwin.so +0 -0
- pyxcp/cpp_ext/extension_wrapper.cpp +79 -2
- pyxcp/cpp_ext/framing.hpp +1 -1
- pyxcp/cpp_ext/helper.hpp +280 -280
- pyxcp/cpp_ext/sxi_framing.hpp +1 -1
- pyxcp/daq_stim/__init__.py +95 -32
- pyxcp/daq_stim/optimize/binpacking.py +2 -2
- pyxcp/daq_stim/scheduler.cpp +8 -8
- pyxcp/errormatrix.py +2 -2
- pyxcp/examples/xcp_read_benchmark.py +2 -2
- pyxcp/examples/xcp_skel.py +1 -2
- pyxcp/examples/xcp_unlock.py +10 -12
- pyxcp/examples/xcp_user_supplied_driver.py +1 -2
- pyxcp/examples/xcphello.py +2 -15
- pyxcp/examples/xcphello_recorder.py +2 -2
- pyxcp/master/__init__.py +1 -0
- pyxcp/master/master.py +14 -20
- pyxcp/recorder/.idea/misc.xml +1 -1
- pyxcp/recorder/.idea/modules.xml +1 -1
- pyxcp/recorder/.idea/recorder.iml +1 -1
- pyxcp/recorder/.idea/vcs.xml +1 -1
- pyxcp/recorder/converter/__init__.py +4 -10
- pyxcp/recorder/reader.hpp +138 -138
- pyxcp/recorder/reco.py +1 -0
- pyxcp/recorder/rekorder.hpp +274 -274
- pyxcp/recorder/wrap.cpp +184 -184
- pyxcp/recorder/writer.hpp +302 -302
- pyxcp/scripts/xcp_daq_recorder.py +54 -0
- pyxcp/scripts/xcp_fetch_a2l.py +2 -2
- pyxcp/scripts/xcp_id_scanner.py +1 -2
- pyxcp/scripts/xcp_info.py +66 -51
- pyxcp/scripts/xcp_profile.py +1 -2
- pyxcp/tests/test_binpacking.py +1 -0
- pyxcp/tests/test_daq.py +1 -1
- pyxcp/tests/test_framing.py +1 -1
- pyxcp/tests/test_master.py +104 -83
- pyxcp/tests/test_transport.py +0 -1
- pyxcp/timing.py +1 -1
- pyxcp/transport/base.py +1 -1
- pyxcp/transport/can.py +1 -1
- pyxcp/transport/eth.py +1 -1
- pyxcp/transport/hdf5_policy.py +167 -0
- pyxcp/transport/sxi.py +1 -1
- pyxcp/transport/transport_ext.cpython-310-darwin.so +0 -0
- pyxcp/transport/transport_ext.cpython-311-darwin.so +0 -0
- pyxcp/transport/transport_ext.cpython-312-darwin.so +0 -0
- pyxcp/transport/transport_ext.cpython-313-darwin.so +0 -0
- pyxcp/transport/transport_ext.cpython-314-darwin.so +0 -0
- pyxcp/transport/usb_transport.py +1 -1
- pyxcp/{utils.py → utils/__init__.py} +1 -2
- pyxcp/utils/cli.py +78 -0
- {pyxcp-0.25.1.dist-info → pyxcp-0.25.9.dist-info}/METADATA +1 -1
- {pyxcp-0.25.1.dist-info → pyxcp-0.25.9.dist-info}/RECORD +64 -56
- {pyxcp-0.25.1.dist-info → pyxcp-0.25.9.dist-info}/WHEEL +1 -1
- {pyxcp-0.25.1.dist-info → pyxcp-0.25.9.dist-info}/entry_points.txt +0 -0
- {pyxcp-0.25.1.dist-info → pyxcp-0.25.9.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
|
|
3
|
+
import datetime
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import List, Dict
|
|
6
|
+
|
|
7
|
+
import h5py
|
|
8
|
+
import numpy as np
|
|
9
|
+
from pyxcp.daq_stim import DaqOnlinePolicy, DaqList
|
|
10
|
+
from pyxcp import __version__ as pyxcp_version
|
|
11
|
+
|
|
12
|
+
BATCH_SIZE = 4096
|
|
13
|
+
|
|
14
|
+
MAP_TO_NP = {
|
|
15
|
+
"U8": np.uint8,
|
|
16
|
+
"I8": np.int8,
|
|
17
|
+
"U16": np.uint16,
|
|
18
|
+
"I16": np.int16,
|
|
19
|
+
"U32": np.uint32,
|
|
20
|
+
"I32": np.int32,
|
|
21
|
+
"U64": np.uint64,
|
|
22
|
+
"I64": np.int64,
|
|
23
|
+
"F32": np.float32,
|
|
24
|
+
"F64": np.float64,
|
|
25
|
+
"F16": np.float16,
|
|
26
|
+
"BF16": np.float16,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
MAP_TO_ASAM_HO = {
|
|
30
|
+
"U8": "A_UINT8",
|
|
31
|
+
"I8": "A_INT8",
|
|
32
|
+
"U16": "A_UINT16",
|
|
33
|
+
"I16": "A_INT16",
|
|
34
|
+
"U32": "A_UINT32",
|
|
35
|
+
"I32": "A_INT32",
|
|
36
|
+
"U64": "A_UINT64",
|
|
37
|
+
"I64": "A_INT64",
|
|
38
|
+
"F32": "A_FLOAT32",
|
|
39
|
+
"F64": "A_FLOAT64",
|
|
40
|
+
"F16": "A_FLOAT16",
|
|
41
|
+
"BF16": "A_FLOAT16",
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class BufferedDataset:
|
|
46
|
+
def __init__(self, dataset: h5py.Dataset):
|
|
47
|
+
self.dataset = dataset
|
|
48
|
+
self.buffer: List[int | float] = []
|
|
49
|
+
|
|
50
|
+
def add_sample(self, sample: int | float):
|
|
51
|
+
self.buffer.append(sample)
|
|
52
|
+
if len(self.buffer) >= BATCH_SIZE:
|
|
53
|
+
self.flush()
|
|
54
|
+
|
|
55
|
+
def flush(self):
|
|
56
|
+
batch = np.array(self.buffer)
|
|
57
|
+
self.dataset.resize((self.dataset.shape[0] + len(batch),))
|
|
58
|
+
self.dataset[-len(batch) :] = batch
|
|
59
|
+
self.buffer.clear()
|
|
60
|
+
self.dataset.flush()
|
|
61
|
+
|
|
62
|
+
def __len__(self):
|
|
63
|
+
return len(self.buffer)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class DatasetGroup:
|
|
67
|
+
def __init__(
|
|
68
|
+
self,
|
|
69
|
+
ts0_ds: BufferedDataset,
|
|
70
|
+
ts1_ds: BufferedDataset,
|
|
71
|
+
datasets: List[BufferedDataset],
|
|
72
|
+
):
|
|
73
|
+
self.ts0_ds = ts0_ds
|
|
74
|
+
self.ts1_ds = ts1_ds
|
|
75
|
+
self.datasets = datasets
|
|
76
|
+
|
|
77
|
+
def feed(self, ts0: int, ts1: int, *datasets):
|
|
78
|
+
self.ts0_ds.add_sample(ts0)
|
|
79
|
+
self.ts1_ds.add_sample(ts1)
|
|
80
|
+
for dataset, value in zip(self.datasets, datasets):
|
|
81
|
+
dataset.add_sample(value)
|
|
82
|
+
|
|
83
|
+
def finalize(self):
|
|
84
|
+
for dataset in self.datasets:
|
|
85
|
+
dataset.flush()
|
|
86
|
+
self.ts0_ds.flush()
|
|
87
|
+
self.ts1_ds.flush()
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def create_timestamp_column(hdf_file: h5py.File, group_name: str, num: int) -> h5py.Dataset:
|
|
91
|
+
result = hdf_file.create_dataset(
|
|
92
|
+
f"/{group_name}/timestamp{num}",
|
|
93
|
+
shape=(0,),
|
|
94
|
+
maxshape=(None,),
|
|
95
|
+
dtype=np.uint64,
|
|
96
|
+
chunks=True,
|
|
97
|
+
)
|
|
98
|
+
result.attrs["asam_data_type"] = "A_UINT64"
|
|
99
|
+
result.attrs["resolution"] = ("1 nanosecond",)
|
|
100
|
+
return result
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class Hdf5OnlinePolicy(DaqOnlinePolicy):
|
|
104
|
+
def __init__(self, file_name: str | Path, daq_lists: List[DaqList], **metadata):
|
|
105
|
+
super().__init__(daq_lists=daq_lists)
|
|
106
|
+
path = Path(file_name)
|
|
107
|
+
if path.suffix != ".h5":
|
|
108
|
+
path = path.with_suffix(".h5")
|
|
109
|
+
self.hdf = h5py.File(path, "w", libver="latest")
|
|
110
|
+
self.metadata = self.set_metadata(**metadata)
|
|
111
|
+
|
|
112
|
+
def set_metadata(self, **metadata):
|
|
113
|
+
basic = {
|
|
114
|
+
"tool_name": "pyXCP",
|
|
115
|
+
"tool_version": f"{pyxcp_version}",
|
|
116
|
+
"created": f"{datetime.datetime.now().astimezone().isoformat()}",
|
|
117
|
+
}
|
|
118
|
+
for k, v in (basic | metadata).items():
|
|
119
|
+
self.hdf.attrs[k] = v
|
|
120
|
+
|
|
121
|
+
def initialize(self):
|
|
122
|
+
self.log.debug("Hdf5OnlinePolicy::Initialize()")
|
|
123
|
+
self.datasets: Dict[int, DatasetGroup] = {}
|
|
124
|
+
for num, daq_list in enumerate(self.daq_lists):
|
|
125
|
+
if daq_list.stim:
|
|
126
|
+
continue
|
|
127
|
+
grp = self.hdf.create_group(daq_list.name)
|
|
128
|
+
grp.attrs["event_num"] = daq_list.event_num
|
|
129
|
+
grp.attrs["enable_timestamps"] = daq_list.enable_timestamps
|
|
130
|
+
grp.attrs["prescaler"] = daq_list.prescaler
|
|
131
|
+
grp.attrs["priority"] = daq_list.priority
|
|
132
|
+
grp.attrs["direction"] = "STIM" if daq_list.stim else "DAQ"
|
|
133
|
+
ts0 = BufferedDataset(create_timestamp_column(self.hdf, daq_list.name, 0))
|
|
134
|
+
ts1 = BufferedDataset(create_timestamp_column(self.hdf, daq_list.name, 1))
|
|
135
|
+
meas_map = {m.name: m for m in self.daq_lists[num].measurements}
|
|
136
|
+
dsets = []
|
|
137
|
+
for name, _ in daq_list.headers:
|
|
138
|
+
meas = meas_map[name]
|
|
139
|
+
dataset = self.hdf.create_dataset(
|
|
140
|
+
f"/{daq_list.name}/{meas.name}/raw",
|
|
141
|
+
shape=(0,),
|
|
142
|
+
maxshape=(None,),
|
|
143
|
+
dtype=MAP_TO_NP[meas.data_type],
|
|
144
|
+
chunks=(1024,),
|
|
145
|
+
)
|
|
146
|
+
sub_group = dataset.parent
|
|
147
|
+
sub_group.attrs["asam_data_type"] = MAP_TO_ASAM_HO.get(meas.data_type, "n/a")
|
|
148
|
+
dataset.attrs["ecu_address"] = meas.address
|
|
149
|
+
dataset.attrs["ecu_address_extension"] = meas.ext
|
|
150
|
+
dsets.append(BufferedDataset(dataset))
|
|
151
|
+
self.datasets[num] = DatasetGroup(ts0_ds=ts0, ts1_ds=ts1, datasets=dsets)
|
|
152
|
+
self.hdf.flush()
|
|
153
|
+
|
|
154
|
+
def finalize(self):
|
|
155
|
+
self.log.debug("Hdf5OnlinePolicy::finalize()")
|
|
156
|
+
if hasattr(self, "datasets"):
|
|
157
|
+
for group in self.datasets.values():
|
|
158
|
+
group.finalize()
|
|
159
|
+
if hasattr(self, "hdf"):
|
|
160
|
+
self.hdf.close()
|
|
161
|
+
|
|
162
|
+
def on_daq_list(self, daq_list: int, timestamp0: int, timestamp1: int, payload: list):
|
|
163
|
+
group = self.datasets.get(daq_list)
|
|
164
|
+
if group is None:
|
|
165
|
+
self.log.warning(f"Received data for unknown DAQ list {daq_list}")
|
|
166
|
+
return
|
|
167
|
+
group.feed(timestamp0, timestamp1, *payload)
|
pyxcp/transport/sxi.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
pyxcp/transport/usb_transport.py
CHANGED
|
@@ -6,7 +6,7 @@ import sys
|
|
|
6
6
|
from binascii import hexlify
|
|
7
7
|
from enum import IntEnum
|
|
8
8
|
from time import perf_counter, sleep
|
|
9
|
-
from typing import
|
|
9
|
+
from typing import Union
|
|
10
10
|
|
|
11
11
|
import chardet
|
|
12
12
|
import pytz
|
|
@@ -86,7 +86,6 @@ def delay(amount: float):
|
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
class CurrentDatetime(TimestampInfo):
|
|
89
|
-
|
|
90
89
|
def __init__(self, timestamp_ns: int):
|
|
91
90
|
TimestampInfo.__init__(self, timestamp_ns)
|
|
92
91
|
timezone = pytz.timezone(self.timezone)
|
pyxcp/utils/cli.py
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
Reusable command-line parser utilities.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import argparse
|
|
9
|
+
import sys
|
|
10
|
+
from collections.abc import Sequence
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class StrippingParser:
|
|
14
|
+
"""Base class for parsers that can strip recognized arguments from sys.argv.
|
|
15
|
+
|
|
16
|
+
This is useful when multiple argument parsers are used in a single process (chained),
|
|
17
|
+
and downstream parsers should not see arguments already handled by an
|
|
18
|
+
upstream parser.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, parser: argparse.ArgumentParser) -> None:
|
|
22
|
+
"""Initialize with an existing ArgumentParser instance."""
|
|
23
|
+
self._parser = parser
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def parser(self) -> argparse.ArgumentParser:
|
|
27
|
+
"""Return the underlying ArgumentParser instance."""
|
|
28
|
+
return self._parser
|
|
29
|
+
|
|
30
|
+
def parse_known(self, argv: Sequence[str] | None = None) -> tuple[argparse.Namespace, list[str]]:
|
|
31
|
+
"""Parse known args from ``argv`` and return (namespace, remaining).
|
|
32
|
+
|
|
33
|
+
Does not mutate ``sys.argv``.
|
|
34
|
+
"""
|
|
35
|
+
if argv is None:
|
|
36
|
+
argv = sys.argv[1:]
|
|
37
|
+
namespace, remaining = self._parser.parse_known_args(argv)
|
|
38
|
+
|
|
39
|
+
# Emulate standard -h/--help behavior if "help" is in the namespace
|
|
40
|
+
if getattr(namespace, "help", False):
|
|
41
|
+
# Print help and exit similarly to ArgumentParser
|
|
42
|
+
# We need a temporary full parser to render standard help including program name
|
|
43
|
+
full = argparse.ArgumentParser(description=self._parser.description)
|
|
44
|
+
for action in self._parser._actions:
|
|
45
|
+
if action.option_strings and action.dest == "help":
|
|
46
|
+
continue
|
|
47
|
+
full._add_action(action)
|
|
48
|
+
full.print_help()
|
|
49
|
+
sys.exit(0)
|
|
50
|
+
|
|
51
|
+
return namespace, list(remaining)
|
|
52
|
+
|
|
53
|
+
def strip_from_argv(self, argv: list[str] | None = None) -> None:
|
|
54
|
+
"""Remove this parser's recognized options from ``sys.argv`` in-place.
|
|
55
|
+
|
|
56
|
+
If ``argv`` is provided, it is treated as a mutable list whose content
|
|
57
|
+
will be replaced with the stripped version (first element preserved as
|
|
58
|
+
program name). If omitted, ``sys.argv`` is modified.
|
|
59
|
+
"""
|
|
60
|
+
arg_list = argv if argv is not None else sys.argv
|
|
61
|
+
if not arg_list:
|
|
62
|
+
return
|
|
63
|
+
_, remaining = self.parse_known(arg_list[1:])
|
|
64
|
+
# Rebuild argv with program name + remaining
|
|
65
|
+
prog = arg_list[0]
|
|
66
|
+
arg_list[:] = [prog] + remaining
|
|
67
|
+
|
|
68
|
+
def parse_and_strip(self, argv: list[str] | None = None) -> argparse.Namespace:
|
|
69
|
+
"""Parse options and strip them from argv; returns the parsed namespace."""
|
|
70
|
+
arg_list = argv if argv is not None else sys.argv
|
|
71
|
+
if not arg_list:
|
|
72
|
+
# Fallback for empty list
|
|
73
|
+
return self.parse_known([])[0]
|
|
74
|
+
namespace, remaining = self.parse_known(arg_list[1:])
|
|
75
|
+
# mutate
|
|
76
|
+
prog = arg_list[0]
|
|
77
|
+
arg_list[:] = [prog] + remaining
|
|
78
|
+
return namespace
|
|
@@ -1,28 +1,22 @@
|
|
|
1
|
-
pyxcp-0.25.1.dist-info/RECORD,,
|
|
2
|
-
pyxcp-0.25.1.dist-info/WHEEL,sha256=CRznWDXU4s_gJVZNW1RTWtQbEVjRyjHhh4HJ3NfLWbg,134
|
|
3
|
-
pyxcp-0.25.1.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
|
|
4
|
-
pyxcp-0.25.1.dist-info/METADATA,sha256=LMohG4YmQdt3n8OLNBQOQESFGhNuixo2v96c9lbqYSg,12775
|
|
5
|
-
pyxcp-0.25.1.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
|
|
6
1
|
pyxcp/dllif.py,sha256=m4e-_dgDLCD6COU5W2LdeYUlib_Xxyxbh977bbS-VAU,3344
|
|
7
2
|
pyxcp/checksum.py,sha256=aveS0z4vthLXABEFhTqELqFNi7LM6ZzDzq7dD5Xe9oo,11167
|
|
8
3
|
pyxcp/asamkeydll.sh,sha256=iema12sub6qNE0xAuzwGtx0FmkdaaOKoXalhrtWVaa8,57
|
|
9
4
|
pyxcp/asamkeydll.c,sha256=l5RHYcEPY_Q07G-W5IjCq0xci8YfUR-3uYt84OOkOJI,2836
|
|
10
5
|
pyxcp/constants.py,sha256=Yemk_Gi_m78EEU0v-sdGCAodb9dv_vqP969IU3izA2M,1113
|
|
11
|
-
pyxcp/cmdline.py,sha256=
|
|
12
|
-
pyxcp/__init__.py,sha256=
|
|
6
|
+
pyxcp/cmdline.py,sha256=JHzI80gqQ16bC5_ArSmmzZ8CchFsR2dKz_21pdAoDk8,2288
|
|
7
|
+
pyxcp/__init__.py,sha256=itMFwacrx7Rf28UQ_wh5BpclsYMiDcSw2euRMU0mk_E,506
|
|
13
8
|
pyxcp/types.py,sha256=dMYu4yzKL_TXFb7jUH31nVLRTDvss7nQO9O49OZju2k,24976
|
|
14
|
-
pyxcp/timing.py,sha256=
|
|
15
|
-
pyxcp/utils.py,sha256=cHb5RUNim90U1U_a4axRmfa2n_xhFdjqHoRBEODoscs,3404
|
|
9
|
+
pyxcp/timing.py,sha256=HizFH0TCqrlDYftHdfxZSNCsNBysg0omkroeae2OqRM,1642
|
|
16
10
|
pyxcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
pyxcp/errormatrix.py,sha256=
|
|
11
|
+
pyxcp/errormatrix.py,sha256=eQ8t13M3VxsJhTHF2RwiTcboV__ktj3TzEvzL3j1ImE,44586
|
|
18
12
|
pyxcp/asamkeydll,sha256=gN2rba8QriwZO9AZ_cUdmf8TS48P1vjonaaAN3bc9gk,50584
|
|
19
13
|
pyxcp/asam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
14
|
pyxcp/asam/types.py,sha256=V4wSCGI1pXn0EsBemDyaHTBgY2wkV_BeLShnDIGGgDE,2310
|
|
21
15
|
pyxcp/daq_stim/stim.cpython-314-darwin.so,sha256=KjE1uOTfx-rkcQ5zg5m5vFC1_V9EXE-Ix3ytHQQ7gXc,238120
|
|
22
16
|
pyxcp/daq_stim/stim.cpython-312-darwin.so,sha256=jduyfSIFTpWrAV47wGzJL3tzoZfkfVmDMeFl64P_oTo,237880
|
|
23
17
|
pyxcp/daq_stim/stim.cpp,sha256=sABgEfbQlt5kXbzAsndyhaDFWRWTJw3jJlNfanIVrRs,164
|
|
24
|
-
pyxcp/daq_stim/__init__.py,sha256=
|
|
25
|
-
pyxcp/daq_stim/scheduler.cpp,sha256=
|
|
18
|
+
pyxcp/daq_stim/__init__.py,sha256=x9QL5BURTIhmPmiazSvLbQ9UTajyBSowIqAo48b9xa8,16140
|
|
19
|
+
pyxcp/daq_stim/scheduler.cpp,sha256=A5WwZreIFh9YXb2pjdHNHpmDJEGv_He2ZO461iyIVEs,1404
|
|
26
20
|
pyxcp/daq_stim/stim.cpython-313-darwin.so,sha256=IX8coHUbNwfIvIDCQAeGmUJIZNSeAs9cvZe6Sm1VvMI,238120
|
|
27
21
|
pyxcp/daq_stim/stim.hpp,sha256=1DwAhkY7XJN14aD2BxLJ4O1j4_a6RvpePIbAG1U8iOA,17904
|
|
28
22
|
pyxcp/daq_stim/stim.cpython-310-darwin.so,sha256=ciy3m3t6O2ijjYa190hWupKTv4NYSe6xs7EipP3FBFk,237816
|
|
@@ -30,29 +24,37 @@ pyxcp/daq_stim/scheduler.hpp,sha256=H-kwyZBV3S8q6YlCq6OLUbaNXskyCOS4z3SRP32ikPY,
|
|
|
30
24
|
pyxcp/daq_stim/stim_wrapper.cpp,sha256=7iL1-4BPavo5bfrph20Fvicn6HxGEZQqYLvdxniJBYU,1945
|
|
31
25
|
pyxcp/daq_stim/stim.cpython-311-darwin.so,sha256=aahyParbpwhlB-BuKK1ZPOP8oiNfNFaserUsVLZ9XHE,237896
|
|
32
26
|
pyxcp/daq_stim/optimize/__init__.py,sha256=joAKvAvlYQEi7VF2oVftn_ohgRO231wnc3e8fY231L4,2453
|
|
33
|
-
pyxcp/daq_stim/optimize/binpacking.py,sha256=
|
|
27
|
+
pyxcp/daq_stim/optimize/binpacking.py,sha256=cRJKdJfHa7adZQeYc4jzIiUp7z9UQadGexGNCZQgePU,1216
|
|
28
|
+
pyxcp/transport/transport_ext.cpython-312-darwin.so,sha256=TZKO7PX30RPfxubt3kD9mto7KrYYgJBiV6ZaB9J6mLc,579088
|
|
34
29
|
pyxcp/transport/transport_wrapper.cpp,sha256=6TlcoK0s_0KfPB2CS28ip3aTva9Mh-9c9FPgIOtZHFI,12236
|
|
35
|
-
pyxcp/transport/eth.py,sha256=
|
|
36
|
-
pyxcp/transport/sxi.py,sha256=
|
|
30
|
+
pyxcp/transport/eth.py,sha256=oWJT7ys5f3q-y6Pfe4YXi8ztNIEfh6C23lMTdTMSR68,10276
|
|
31
|
+
pyxcp/transport/sxi.py,sha256=uqU7hoqIt1WusTYZF054xRsA5Tu8fqC1y9PfuuCQ2Ek,7170
|
|
37
32
|
pyxcp/transport/transport_ext.hpp,sha256=h57BM0XEiHDZj3Ze647cSsTdMtYmrnZ9AR_rLgqxhTw,6297
|
|
33
|
+
pyxcp/transport/transport_ext.cpython-314-darwin.so,sha256=NbiVuPjaEOVssEheMQRQtdS6iATy_YE_VsDzoNwJhG0,595872
|
|
38
34
|
pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
pyxcp/transport/transport_ext.cpython-313-darwin.so,sha256=UW3nz3EHa556k46-SaXF2oRqlVdooYr_BqKHK5efSk8,579344
|
|
39
36
|
pyxcp/transport/__init__.py,sha256=JNu4LcdhEHYCLGOj-JpgQ8Sp_cOLGKWWDqFNFxnig2U,404
|
|
40
|
-
pyxcp/transport/usb_transport.py,sha256=
|
|
41
|
-
pyxcp/transport/can.py,sha256=
|
|
42
|
-
pyxcp/transport/
|
|
37
|
+
pyxcp/transport/usb_transport.py,sha256=zkPAs11kp-B-fkISevHUjC5yVD05Oicia_wNvbjviEk,8673
|
|
38
|
+
pyxcp/transport/can.py,sha256=_Y7rXXkx1kZuLWThi2lpubIDOTvkR6riJSlCV2jPYIQ,23372
|
|
39
|
+
pyxcp/transport/transport_ext.cpython-310-darwin.so,sha256=g2FV_ewvY2TPxsSEkGHfT0DeXOcTcVD0K5TfH9kooXc,578944
|
|
40
|
+
pyxcp/transport/hdf5_policy.py,sha256=8gtImyZN9hKPl8zTmeGGTu800_GSINogMkr0B5MzqfM,5377
|
|
41
|
+
pyxcp/transport/transport_ext.cpython-311-darwin.so,sha256=c-7quQqJWpo2pLlntksqda-4H91kxCUcjNip7TDko5s,579088
|
|
42
|
+
pyxcp/transport/base.py,sha256=aVO2IkKxZTPV6NaaX6HrVYXqB0nE1jqz_66omSgc9Io,18300
|
|
43
43
|
pyxcp/config/legacy.py,sha256=Uhu_6bp_W8yGmZ2s3TFzf8-5mGwLdeTss56BMYWpsZY,5100
|
|
44
|
-
pyxcp/config/__init__.py,sha256=
|
|
44
|
+
pyxcp/config/__init__.py,sha256=ptIA8nhiAWCq38bKMtvzELY-sOIy8nRNfiJStlDTjpI,47015
|
|
45
45
|
pyxcp/tests/test_utils.py,sha256=gqv3bhhWfKKdKDkqnELqsOHCfpRRZwlReEy87Ya4Z2w,850
|
|
46
|
-
pyxcp/tests/test_master.py,sha256=
|
|
47
|
-
pyxcp/tests/test_daq.py,sha256=
|
|
48
|
-
pyxcp/tests/test_binpacking.py,sha256=
|
|
46
|
+
pyxcp/tests/test_master.py,sha256=g8B88DDXrcB8zheJP8ZWzIHtPs1VX-KHY9BgInLZ5C8,73100
|
|
47
|
+
pyxcp/tests/test_daq.py,sha256=JQHMNL3tW-lRzvkmQPcSgt3G_jy3dOCU2HS0a1eRzi8,5344
|
|
48
|
+
pyxcp/tests/test_binpacking.py,sha256=2CZHBkK8koTwT_Cy3-XYLuZF-7AkYAkkm2C2lfIw2-A,7455
|
|
49
49
|
pyxcp/tests/test_asam_types.py,sha256=olmvcmEVRb4Oar2mOnCTN4qCdM3w6SoKmBpjwHfKwO8,563
|
|
50
50
|
pyxcp/tests/test_checksum.py,sha256=rkkdLPH4But4wPxlRtVOC4Wd5kCH2suU4Dle6-HXHTk,1713
|
|
51
51
|
pyxcp/tests/test_frame_padding.py,sha256=soGk99lWVN7oju_5F84HEBQ1V_zwH-4xh_hTPBgVp54,3049
|
|
52
52
|
pyxcp/tests/test_daq_opt.py,sha256=plhoUEJmf39kRVkH-17TvFIeyGTt7DljMqdw2eO6Yjg,12585
|
|
53
|
-
pyxcp/tests/test_transport.py,sha256=
|
|
54
|
-
pyxcp/tests/test_framing.py,sha256=
|
|
53
|
+
pyxcp/tests/test_transport.py,sha256=JvKFMa5RPyBX0ZidB6RKGF0gvngLJpO02hUgN2_dhxs,5771
|
|
54
|
+
pyxcp/tests/test_framing.py,sha256=69JupN4aNBzn_d72zQzovCVv_kaqfAQKlizKsiKSB50,7709
|
|
55
55
|
pyxcp/tests/test_can.py,sha256=bAhtFxXQcNJ6xDO-RHLHbRVTa7eDXd8WrO1SqMJp6P8,62672
|
|
56
|
+
pyxcp/utils/__init__.py,sha256=9yTOLWmSjMPxeWRRG9dBE_KCTJZN5G8ThFpfWVwVOmk,3382
|
|
57
|
+
pyxcp/utils/cli.py,sha256=R1vY0LVC1IWjEkURJPWvqfAGaY4_2d29Bv28mSWO9W8,2949
|
|
56
58
|
pyxcp/aml/ifdata_CAN.a2l,sha256=c7GbbYyyXSdpmCBok4AdqU17OdiiHGguhZqhenD-UhI,592
|
|
57
59
|
pyxcp/aml/EtasCANMonitoring.a2l,sha256=at5QlrKbdY2JqkPpQ9b7cfHsYD62DKc_H3-IezQJGuE,1427
|
|
58
60
|
pyxcp/aml/ifdata_Eth.a2l,sha256=ip_6mV2wPL0Eec9tD2sAxMxMnK5AzbnvAxHljsLe57U,239
|
|
@@ -66,51 +68,52 @@ pyxcp/aml/XCPonEth.aml,sha256=GfvkqVX4MqnAkUicjd-XVw4z2O3YtMag_A3b5isgcBE,2214
|
|
|
66
68
|
pyxcp/aml/XCPonUSB.aml,sha256=rPGduH-PE8-tBeELSm3vfkbf62uhlVP6gvJL0OvMclc,4847
|
|
67
69
|
pyxcp/aml/ifdata_SxI.a2l,sha256=8rAB6HTTAuNlFSrkFpR7fUA702yN4rTTNkw-xspZNV0,303
|
|
68
70
|
pyxcp/aml/XCPonFlx.aml,sha256=z58FMu6ZF4hVun8WBCuxvDrq6FZ_gj3tZM15G7E8Uvw,4647
|
|
69
|
-
pyxcp/master/__init__.py,sha256=
|
|
70
|
-
pyxcp/master/master.py,sha256=
|
|
71
|
+
pyxcp/master/__init__.py,sha256=fx2RRcd5N54E9NCZgG68OcB_KLKeQfFRyiZe-Ecsvik,310
|
|
72
|
+
pyxcp/master/master.py,sha256=7A9AgG1V7RyxcRX5Qpuq-4c2MlFMZ_vpPEj1wg3K8bo,98880
|
|
71
73
|
pyxcp/master/errorhandler.py,sha256=HjaaO_QQlSs5IVkuGk5rjLv_La5HlYCdzt5BFhTALOE,25951
|
|
72
|
-
pyxcp/examples/xcp_read_benchmark.py,sha256=
|
|
74
|
+
pyxcp/examples/xcp_read_benchmark.py,sha256=oE0ulTmVmoKXt5lWrPR8n9IGqHzKOm0FUZwpqTku0s8,918
|
|
73
75
|
pyxcp/examples/conf_eth.toml,sha256=b6bKN-K07gMQHNj7yiyB-HKrkVtZREgPXS4ByQueBs4,190
|
|
74
|
-
pyxcp/examples/xcphello_recorder.py,sha256=
|
|
76
|
+
pyxcp/examples/xcphello_recorder.py,sha256=yxnXGwY6O3vYxJxaTovinb_Ui6l-9KRKDt0x8FR5tuw,3302
|
|
75
77
|
pyxcp/examples/conf_nixnet.json,sha256=R-RKw172YhssO_9rud5McxtjesphEadA9Ub2OEKHpGM,424
|
|
76
78
|
pyxcp/examples/conf_can_vector.json,sha256=VtGmyt9ORPTo9yirv1fZM_XT9DARFFNwai11RaCNRWo,238
|
|
77
79
|
pyxcp/examples/conf_can_user.toml,sha256=BqCID-GvaNbA6pbqRbyRMuzKAsJaYVube0ql4CvkMoY,298
|
|
78
|
-
pyxcp/examples/xcp_user_supplied_driver.py,sha256=
|
|
79
|
-
pyxcp/examples/xcp_skel.py,sha256=
|
|
80
|
-
pyxcp/examples/xcp_unlock.py,sha256=
|
|
81
|
-
pyxcp/examples/xcphello.py,sha256=
|
|
80
|
+
pyxcp/examples/xcp_user_supplied_driver.py,sha256=xC02xjfLtT6zhjP-kUXxWh2f35jcZofe1OMwnTJ9qTM,1091
|
|
81
|
+
pyxcp/examples/xcp_skel.py,sha256=SYghH9mxJyP2oU2snfr-OswcvZvOobqk7UQGbFQIiow,1109
|
|
82
|
+
pyxcp/examples/xcp_unlock.py,sha256=aijlbyRBnujzBv2-qDjMEKP7Jk-GY31npzgVP2Zd7Ws,696
|
|
83
|
+
pyxcp/examples/xcphello.py,sha256=Ab_pTX4xL-NaMAKQwyYyy2GkABNYO2LLBz5veRCq-bI,2291
|
|
82
84
|
pyxcp/examples/run_daq.py,sha256=IjfQiXXmlhQ2pGh5KW9QRqztb8LBTLS0eW3I7cFkPmo,5511
|
|
83
85
|
pyxcp/examples/conf_socket_can.toml,sha256=JB9zHHaya2mDXf0zPY7zEKiBDX2chzBBRxt7h3LxxDk,257
|
|
84
86
|
pyxcp/examples/conf_can.toml,sha256=oGkZYgmcpPsJ6YKGELm6DqF-hNvokJHCq99LAqxCyso,351
|
|
85
87
|
pyxcp/examples/conf_can_vector.toml,sha256=kKaYPum6MbN5s3zFc6rn232grpAM5QTwrQARODg5d9k,251
|
|
86
88
|
pyxcp/examples/xcp_policy.py,sha256=0A4v8Tr-xj2yVwHRoDaou97R6Hk6Yx96bPovnUoe5ro,1861
|
|
87
|
-
pyxcp/scripts/xcp_id_scanner.py,sha256=
|
|
89
|
+
pyxcp/scripts/xcp_id_scanner.py,sha256=9sbJFUYI8NZRZM5SOPaa7wK9Xs_HNIcs217JeMLNHHo,401
|
|
88
90
|
pyxcp/scripts/xmraw_converter.py,sha256=W_Znm5OzBKfcyiUgwHIaLYdc2DEusX6jv2b03KAHYrk,653
|
|
89
|
-
pyxcp/scripts/xcp_profile.py,sha256=
|
|
91
|
+
pyxcp/scripts/xcp_profile.py,sha256=Ah2KWCzlbwZm9NTXfxafbozxw4IkbdDTxKh5E_rGX7Y,587
|
|
90
92
|
pyxcp/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
-
pyxcp/scripts/xcp_fetch_a2l.py,sha256=
|
|
92
|
-
pyxcp/scripts/xcp_info.py,sha256=
|
|
93
|
+
pyxcp/scripts/xcp_fetch_a2l.py,sha256=7tl6leBxZsntM3OKnGI3mCujfDjm-gg4ILBSIaN78fI,1199
|
|
94
|
+
pyxcp/scripts/xcp_info.py,sha256=sqwCK3jRHU0YvPtnSxKoC4RRspVM_vvwEVWo7JnlirQ,6278
|
|
95
|
+
pyxcp/scripts/xcp_daq_recorder.py,sha256=uFTRNEyZ7_YL1ke57DWH-BiMC4b0-RPZlrmjujVkyfU,1531
|
|
93
96
|
pyxcp/scripts/xcp_examples.py,sha256=rsvpb6moMhBxAcP5hBnHug9x-6i65WVwL5Q_tHty59c,2519
|
|
94
97
|
pyxcp/scripts/pyxcp_probe_can_drivers.py,sha256=qnNLYa6hInzNrVyYh7xXYt_SB5b-tgMJHXJwIkz7lbE,547
|
|
95
98
|
pyxcp/recorder/build_gcc_arm.sh,sha256=spqHf6D8Jd4NACYG65SNjb-BLMntELwBDO4PpHUiyYc,238
|
|
96
99
|
pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
100
|
pyxcp/recorder/mio.hpp,sha256=emP4qMXTxOe1wRSkB_U0hgOVz4aMUgG5dqcCvNNkAjs,61632
|
|
98
101
|
pyxcp/recorder/build_gcc.cmd,sha256=A1xt8AS7VZxjJq21VzX8cOT7wl9ap_AIXBWbcIEddCw,237
|
|
99
|
-
pyxcp/recorder/writer.hpp,sha256=
|
|
102
|
+
pyxcp/recorder/writer.hpp,sha256=OzDjyOc3_h-2A1sfclaStH4UYidytX_f9l5vpqRltRA,10982
|
|
100
103
|
pyxcp/recorder/rekorder.cpython-310-darwin.so,sha256=w9pw6ugYi7KqbqOX86KwaFiYz-wS2LgY40dB3plEXTw,529984
|
|
101
104
|
pyxcp/recorder/lz4hc.c,sha256=GhoLtpQF6ViHkhQ_TaLw9UCzSB_MO-fdflgjR_xFFfM,86829
|
|
102
105
|
pyxcp/recorder/lz4.h,sha256=BkRLAtxukE15Z2yO0Pjrq-n6hw5W6jkGFR5f14MzpEU,45604
|
|
103
106
|
pyxcp/recorder/rekorder.cpp,sha256=LtN3Ud_pigNZ70gJ5-tyFJZN-3PMDVwqbbH694--TxQ,1841
|
|
104
|
-
pyxcp/recorder/wrap.cpp,sha256=
|
|
107
|
+
pyxcp/recorder/wrap.cpp,sha256=ISwANK9QSSF3QzrX-ct8jVdTSorejNqPFv9I0WYZCUY,8523
|
|
105
108
|
pyxcp/recorder/build_clang.sh,sha256=TZHpQZbRE6M6vHf_ln5laO9tyREUbMu-HAw0VDGx5yw,179
|
|
106
|
-
pyxcp/recorder/reader.hpp,sha256=
|
|
109
|
+
pyxcp/recorder/reader.hpp,sha256=iWzi_wYuWS0rqJ4CIInhryftKdU0hTVDnnqHH0S4mFY,4993
|
|
107
110
|
pyxcp/recorder/__init__.py,sha256=tMqiPL3tbYEVpxAIIBBr6dF4fKNmMJQN0kxkfgWBGLA,2680
|
|
108
111
|
pyxcp/recorder/test_reko.py,sha256=sIM_BBY9sq1ZUTawoxmDzdtd5qHPT9w6eVYZoY4iFik,980
|
|
109
112
|
pyxcp/recorder/build_clang.cmd,sha256=vIWwC1zF_WChakjfj8VaUCN6X8HwyqvGgFRdUub1TtE,174
|
|
110
113
|
pyxcp/recorder/rekorder.cpython-311-darwin.so,sha256=8AXLZN1G6hhWP1DYIKwEu5nIwYZ2eeJMtgackkHpmqY,530128
|
|
111
|
-
pyxcp/recorder/reco.py,sha256=
|
|
114
|
+
pyxcp/recorder/reco.py,sha256=DRY1iR8DQf8qp1EJgscQUEk80gd0gtXqslzBc_hfzKY,8449
|
|
112
115
|
pyxcp/recorder/setup.py,sha256=piwBqaIX6SY1CyjKlantmd3I_VS6rk56sELvmPguKNM,957
|
|
113
|
-
pyxcp/recorder/rekorder.hpp,sha256=
|
|
116
|
+
pyxcp/recorder/rekorder.hpp,sha256=8RBUDN_MejmDQwm1IWxakPpQOE8ZN6yuJpeeAAlsPb0,7364
|
|
114
117
|
pyxcp/recorder/rekorder.cpython-314-darwin.so,sha256=34KFqWuG1URGDneczaYk6GoNU4qkgxSfd-iHniWKfEw,546912
|
|
115
118
|
pyxcp/recorder/lz4hc.h,sha256=U_uN3Q2wIi3_dbEceJ16xHJZGotUiBTcnL6O5ARPi8M,20179
|
|
116
119
|
pyxcp/recorder/rekorder.cpython-312-darwin.so,sha256=3OBGF_7vokZYz-UtBgKpSZBGbbze6iQ0Trz9X_XtJGA,530144
|
|
@@ -118,12 +121,12 @@ pyxcp/recorder/lz4.c,sha256=k5b33lJ7yENd6cdWn7eZjlZUWoS088LYCMAjXAF3RTk,118145
|
|
|
118
121
|
pyxcp/recorder/build_gcc.sh,sha256=uvMhL4faEJmhG_8rzSOxEBRRqrACC0kmZgaERN8GkUs,209
|
|
119
122
|
pyxcp/recorder/rekorder.cpython-313-darwin.so,sha256=eJdOP68XJPafDp6gEPRzAiIY0y7X40fAt0ohdxV9Qok,530400
|
|
120
123
|
pyxcp/recorder/unfolder.hpp,sha256=myQB5iHXLMx-cNYizm6J04revO5eW4ErSHBr73Ftqu0,48337
|
|
121
|
-
pyxcp/recorder/converter/__init__.py,sha256=
|
|
122
|
-
pyxcp/recorder/.idea/recorder.iml,sha256=
|
|
123
|
-
pyxcp/recorder/.idea/vcs.xml,sha256=
|
|
124
|
+
pyxcp/recorder/converter/__init__.py,sha256=RzdPTvUPy4mYdGtjEDIASt-5zvTdaopJ10Av7rz49Bw,14449
|
|
125
|
+
pyxcp/recorder/.idea/recorder.iml,sha256=Uac-W-hqE20I8EQsN-K3uiM7ON5GPEI8XoEbFfQ_dPA,242
|
|
126
|
+
pyxcp/recorder/.idea/vcs.xml,sha256=maW9cVjzaPQX8tL7QZRVr9VlVBFHJIM-auqlSyB3DdA,418
|
|
124
127
|
pyxcp/recorder/.idea/.gitignore,sha256=ClVIsXOqwO-UO7s6-FDWdve2Ud3tufjX8Gc1vCgJs9s,176
|
|
125
|
-
pyxcp/recorder/.idea/modules.xml,sha256=
|
|
126
|
-
pyxcp/recorder/.idea/misc.xml,sha256=
|
|
128
|
+
pyxcp/recorder/.idea/modules.xml,sha256=vOcqSKHDcdapjX7aKD3tZ5HdC_uCAHk4XkJQ-ZIK0Tw,269
|
|
129
|
+
pyxcp/recorder/.idea/misc.xml,sha256=1mFo944w-NE1LqCACq1LFwLyST6jC_DrY0QHY0xCaTw,138
|
|
127
130
|
pyxcp/recorder/.idea/sonarlint/issuestore/index.pb,sha256=pt_itWgvTAnMANXontA5cYFLHGjruv10VB_c2Ij5YFs,184
|
|
128
131
|
pyxcp/recorder/.idea/sonarlint/issuestore/9/a/9a2aa4db38d3115ed60da621e012c0efc0172aae,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
132
|
pyxcp/recorder/.idea/sonarlint/issuestore/3/8/3808afc69ac1edb9d760000a2f137335b1b99728,sha256=YKcXNhekpl1LD7TEGHPjjXbmwyfY0c50DyveDrMVFxo,602
|
|
@@ -136,19 +139,24 @@ pyxcp/stim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
136
139
|
pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
140
|
pyxcp/vector/map.py,sha256=dSxM15eXvZh6izITdJmFxr1rplDUlfaJUbtrm2Xv-dE,2224
|
|
138
141
|
pyxcp/cpp_ext/event.hpp,sha256=X2_ThYx8fzz-XR9McmsKM2Hb9I2x7XZeQGy1OyUs6iE,1133
|
|
139
|
-
pyxcp/cpp_ext/cpp_ext.cpython-313-darwin.so,sha256=
|
|
142
|
+
pyxcp/cpp_ext/cpp_ext.cpython-313-darwin.so,sha256=ZzXeinfJxEOFXrdm2zH9GjmKAj-rHY_gMnwaOG5jlkU,372400
|
|
140
143
|
pyxcp/cpp_ext/blockmem.hpp,sha256=wSUDTgwO9zNn0c29hZ_MRH7cHDIFKma2MYVxip9ARNE,1184
|
|
141
144
|
pyxcp/cpp_ext/mcobject.hpp,sha256=QHv3QFGguakOfQZVOS3k0eFciIz1B5uGC54lhe00YJA,6274
|
|
142
|
-
pyxcp/cpp_ext/cpp_ext.cpython-314-darwin.so,sha256=
|
|
145
|
+
pyxcp/cpp_ext/cpp_ext.cpython-314-darwin.so,sha256=XDkKrOP_tujrdbmct57mMPuSo56kckNIrPS6mfOeSgs,372400
|
|
143
146
|
pyxcp/cpp_ext/tsqueue.hpp,sha256=PuDd0kmj61afjW0yva6T8pZL3m4fPCeWsuvEyx2M-80,980
|
|
144
|
-
pyxcp/cpp_ext/extension_wrapper.cpp,sha256=
|
|
145
|
-
pyxcp/cpp_ext/cpp_ext.cpython-312-darwin.so,sha256=
|
|
147
|
+
pyxcp/cpp_ext/extension_wrapper.cpp,sha256=Mq4AYKLRMhCmad9OcGw8Z5WT36wdgXe8xqMRofJZjZU,9644
|
|
148
|
+
pyxcp/cpp_ext/cpp_ext.cpython-312-darwin.so,sha256=qdn5GUFji0pojZMlmVb21CDN9rTZmxwsP6maBGdDpR0,372160
|
|
146
149
|
pyxcp/cpp_ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
147
|
-
pyxcp/cpp_ext/sxi_framing.hpp,sha256=
|
|
148
|
-
pyxcp/cpp_ext/helper.hpp,sha256
|
|
150
|
+
pyxcp/cpp_ext/sxi_framing.hpp,sha256=ddK7GGJUxtDd_K0HCp-z-LGhCOMvHDfKtdEKw0WU1Ac,11505
|
|
151
|
+
pyxcp/cpp_ext/helper.hpp,sha256=-DucElUSgC2ynPBqoFlPs-4xifXRBAcN35xxqz0nL00,7533
|
|
149
152
|
pyxcp/cpp_ext/bin.hpp,sha256=QRDjy-yHsDH2uz-fZAxdwZXH40B6l7LsviJ6BTjp0HA,2568
|
|
150
|
-
pyxcp/cpp_ext/cpp_ext.cpython-311-darwin.so,sha256=
|
|
153
|
+
pyxcp/cpp_ext/cpp_ext.cpython-311-darwin.so,sha256=J_9-syVq0G81YmXcdzf3UoBN2PHQ5Ps4JULr0MXRt34,372144
|
|
151
154
|
pyxcp/cpp_ext/daqlist.hpp,sha256=ch_wYTmfPws8Db_i_dlWThX_kXCKnPS_RhGIX1ZUspg,13622
|
|
152
|
-
pyxcp/cpp_ext/cpp_ext.cpython-310-darwin.so,sha256=
|
|
153
|
-
pyxcp/cpp_ext/framing.hpp,sha256=
|
|
154
|
-
pyxcp/cpp_ext/aligned_buffer.hpp,sha256=
|
|
155
|
+
pyxcp/cpp_ext/cpp_ext.cpython-310-darwin.so,sha256=pe57WnKrafl1FTKWjPcf7T1odqy6G2xelSttRIePl4E,372064
|
|
156
|
+
pyxcp/cpp_ext/framing.hpp,sha256=uB9LxpcqPnKQtEvCkj3z8gsYuyfUebAQgiRSEipMCrI,11300
|
|
157
|
+
pyxcp/cpp_ext/aligned_buffer.hpp,sha256=_70GjiJWP3a2lafk2FhjfDNdvTB3LN8GFPt_bmTw-Rw,5280
|
|
158
|
+
pyxcp-0.25.9.dist-info/RECORD,,
|
|
159
|
+
pyxcp-0.25.9.dist-info/WHEEL,sha256=hBsKSE9xeRM30vhgjMW7oZathCdLI60DdbxS3IS3qEI,134
|
|
160
|
+
pyxcp-0.25.9.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
|
|
161
|
+
pyxcp-0.25.9.dist-info/METADATA,sha256=ub_a7ZYBMg38bxQIIOeVgasdRClWC8GfRudg6M1Dw1Q,12775
|
|
162
|
+
pyxcp-0.25.9.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
|
|
File without changes
|
|
File without changes
|