pyxcp 0.22.28__cp313-cp313-win_amd64.whl → 0.22.30__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.28"
20
+ __version__ = "0.22.30"
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
pyxcp/master/master.py CHANGED
@@ -113,6 +113,7 @@ class Master:
113
113
 
114
114
  def __enter__(self):
115
115
  """Context manager entry part."""
116
+ self.transport.connect()
116
117
  return self
117
118
 
118
119
  def __exit__(self, exc_type, exc_val, exc_tb):
@@ -171,8 +172,6 @@ class Master:
171
172
  more attempts to connect are silently ignored.
172
173
 
173
174
  """
174
- self.transport.connect()
175
-
176
175
  response = self.transport.request(types.Command.CONNECT, mode & 0xFF)
177
176
 
178
177
  # First get byte-order
@@ -580,10 +579,10 @@ class Master:
580
579
  result = []
581
580
  for _ in chunks:
582
581
  data = self.upload(chunk_size)
583
- result.extend(data)
582
+ result.extend(data[:chunk_size])
584
583
  if remaining:
585
584
  data = self.upload(remaining)
586
- result.extend(data)
585
+ result.extend(data[:remaining])
587
586
  return bytes(result)
588
587
 
589
588
  pull = fetch # fetch() may be completely replaced by pull() someday.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
pyxcp/transport/can.py CHANGED
@@ -351,13 +351,11 @@ class Can(BaseTransport):
351
351
  result[n] = value
352
352
  elif value is not None:
353
353
  self.logger.warning(f"XCPonCAN - {self.interface_name!r} has no support for parameter {n!r}.")
354
-
355
354
  # Parameter names that need to be mapped.
356
355
  for base_name, name in can_interface_config_class.CAN_PARAM_MAP.items():
357
356
  value = getattr(self.config, base_name)
358
- if value is not None:
357
+ if name is not None and value is not None:
359
358
  result[name] = value
360
-
361
359
  # Interface specific parameters.
362
360
  cxx = getattr(self.config, self.interface_name)
363
361
  for name in can_interface_config_class.class_own_traits().keys():
pyxcp/utils.py CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  import datetime
3
+ from enum import IntEnum
3
4
  import functools
4
5
  import operator
5
6
  import sys
@@ -100,3 +101,27 @@ class CurrentDatetime(TimestampInfo):
100
101
  utc_offset={self.utc_offset},
101
102
  dst_offset={self.dst_offset}
102
103
  )"""
104
+
105
+
106
+ def enum_from_str(enum_class: IntEnum, enumerator: str) -> IntEnum:
107
+ """Create an `IntEnum` instance from an enumerator `str`.
108
+
109
+ Parameters
110
+ ----------
111
+ enum_class: IntEnum
112
+
113
+ enumerator: str
114
+
115
+ Example
116
+ -------
117
+
118
+ class Color(enum.IntEnum):
119
+ RED = 0
120
+ GREEN = 1
121
+ BLUE = 2
122
+
123
+ color: Color = enum_from_str(Color, "GREEN")
124
+
125
+
126
+ """
127
+ return enum_class(enum_class.__members__.get(enumerator))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyxcp
3
- Version: 0.22.28
3
+ Version: 0.22.30
4
4
  Summary: Universal Calibration Protocol for Python
5
5
  License: LGPLv3
6
6
  Keywords: automotive,ecu,xcp,asam,autosar
@@ -1,4 +1,4 @@
1
- pyxcp/__init__.py,sha256=Gg_xWPOl3qvbv5BzHeRm8V4nGseVYi2kq0kj6Aq5AZs,548
1
+ pyxcp/__init__.py,sha256=HOIC2DS0mbadYA1TxxgfWE15jzj_QOTn1CIjlaY82qI,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
@@ -24,12 +24,12 @@ 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=mgCEOaTY6z_62yzhW0hrsFGnVBV66NXcXnN-zoutj0g,288768
28
- pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=SU0Yud9OHcLjZP5RdO4LyPSDKjpOMAR3lYzcJkyjTj8,291328
29
- pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=14Fkiz-PGPQCYmaO-lgTI9J2FkTWqv1Gh62ktv7f16s,296960
30
- pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=GA8cYlPl_dNRKgU3Cmw7HbLnAUgqKtNayijbSJhhoJU,296960
31
- pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=U0n2Ef7_jHzJT6S1r8NkEj82HEp3rX3U-ve-FxmWzcQ,288256
32
- pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=W6ihn06MkbY1JgKFbyozQfDurY1-yJpU1oD9uJa8okU,270336
27
+ pyxcp/cpp_ext/cpp_ext.cp310-win_amd64.pyd,sha256=rsdC79LAhJ78JIowETxUoq5ORhntSOx04wdDi_FYVgs,288768
28
+ pyxcp/cpp_ext/cpp_ext.cp311-win_amd64.pyd,sha256=qbOAn4YqUpXR38QL9gPzWLzb_EK71YTq5LU92RoMuEQ,291328
29
+ pyxcp/cpp_ext/cpp_ext.cp312-win_amd64.pyd,sha256=ZN2aBFmawiQKQMMjMD8QJlYTk7WBZuXW4IdaTNmL92k,296960
30
+ pyxcp/cpp_ext/cpp_ext.cp313-win_amd64.pyd,sha256=j62vUiTrh4_0Fs1Qi1JHh1aV7iwp1X9Ccu-eXCXx5LE,296960
31
+ pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=PVbL1AA0e19WE-a5MmP2b1WStHXu18QAsHXcT3Qouug,288256
32
+ pyxcp/cpp_ext/cpp_ext.cp39-win_amd64.pyd,sha256=OY3NOvYNEg1mh_SloTN7nWZ9g3s4L1wg7heraJY_UXA,270336
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=XHhdvrEIu-faqrMT8XtErRRDkdnECr6_oiFKA1kjJ80,198656
45
- pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=7ubWbR5oQ8Ek1ijY-uwD-CeS8uTz_g5b1yLRCbbLDnU,201216
46
- pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=6inJmolUov_XZcGKtAiHSgSg1d-FyR6VCFSWvkJRzRo,204800
47
- pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=h5tdIHlaMLsvEQG-HtqYjo1FvDp9aodgA2ZPKnkdXdk,204800
48
- pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=iwaHAOOMB4BfSb-HttBgEpof5yy7bN0FwtC3d9fv_C8,198656
49
- pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=sBbo3nkMSZv65x0uI7AFNUFk6A5o2hAGsE0ejOmg81A,192512
44
+ pyxcp/daq_stim/stim.cp310-win_amd64.pyd,sha256=gOjyb4zicKiUq35b9SjuXD4bGUqc96AP6vHKT9Adwyc,198656
45
+ pyxcp/daq_stim/stim.cp311-win_amd64.pyd,sha256=vBy8zXxWK54pbJoZyAHeV0eZBwULdvw00jYDETetiSA,201216
46
+ pyxcp/daq_stim/stim.cp312-win_amd64.pyd,sha256=A23NIcTocDl2Z7-VN9PkLpxfBOL1lvir6yEPkkYcWGo,204800
47
+ pyxcp/daq_stim/stim.cp313-win_amd64.pyd,sha256=34hMaNVZ2qLqeU7OkHTtU8fqLgq8z_LmA60WG3YhCaA,204800
48
+ pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=-jR0z3HkYTs8CJ34kOOHCGpQ1W301cnJ0gteR_0eias,198656
49
+ pyxcp/daq_stim/stim.cp39-win_amd64.pyd,sha256=C8WHaXFr6fPeruxNqB_ROn9lC6p0XKCHI8YpFmuNzrg,192512
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
@@ -71,7 +71,7 @@ pyxcp/examples/xcphello.py,sha256=xbcWq8StRJyUZBLUvknsXv7VkEBD5SU0SJjlZTHsSzs,26
71
71
  pyxcp/examples/xcphello_recorder.py,sha256=QHWJsq5h5CI9t5qEmMSorZyzirTpoXz4nzuKTMzbZCA,3409
72
72
  pyxcp/master/__init__.py,sha256=QQbkUJM1WQ-5p2MiNFYxLAmHhNsCQLzDp-S4aoOFxoA,318
73
73
  pyxcp/master/errorhandler.py,sha256=ulL6WiraZbVZnM2pfR8S9vlWAAP5UXwXqmbjjxH9rgc,15359
74
- pyxcp/master/master.py,sha256=y5i5HTw5g4HKHW8tXfpNc0hmaQjle-3dsUkVFqPjUXc,78365
74
+ pyxcp/master/master.py,sha256=rRXw6j198SAhq2xGApaRJD7bn_sTLIepoyOMbT5jRT0,78388
75
75
  pyxcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  pyxcp/recorder/__init__.py,sha256=jeTmKvfjIenxHxt7zn6HMjnDpuPQU0d9SdnYK_t3gdE,2850
77
77
  pyxcp/recorder/build_clang.cmd,sha256=JvFngSnb28XcBGXxC6MGrcOCGYfahOIvHpgRpqbA6HQ,175
@@ -88,12 +88,12 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
88
88
  pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
89
89
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
90
90
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=Cyd9a3uBZR8daO5V6eyVJmw8IRpUKGQPnU5yXcJ3xPA,386560
92
- pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=-YYs6NGQp48jOJDMZR5BlzvXbi0EwXKvgTTLtUhyrig,388608
93
- pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=XcD0kBcE6NC4EORERXasJSFsSSYXkusltdFenqe_Fgk,394752
94
- pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=5d36LH7wVsKrg75JT6sAAbJFTlEPo6AMyab1OexWLJY,394752
95
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=GUHwztQv6u3-vUxr-J63Rh_XJoXBuI7sYMtapEyV7Qo,386048
96
- pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=JPCYjHbOGiyd4Uyk1flpgpZDWAHZura30HEjonbE438,372736
91
+ pyxcp/recorder/rekorder.cp310-win_amd64.pyd,sha256=n-v0tj_izXazGAFj2T80ckyg3mKbD3nktjF7k58nrU0,386560
92
+ pyxcp/recorder/rekorder.cp311-win_amd64.pyd,sha256=-k6zA1U7076-E0Z4xpQjWRFN6hjX5AIAOlmp5KGf55c,388608
93
+ pyxcp/recorder/rekorder.cp312-win_amd64.pyd,sha256=qSJeZJyFRP5f0dajbhp-Sz8r5rC20lXydNH27clGpwU,394752
94
+ pyxcp/recorder/rekorder.cp313-win_amd64.pyd,sha256=Xthr2vvJ2BqOjNbZjR2uFgcF5KvZjq2rRiq_jQqgq8I,394752
95
+ pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=ZLfv27N_FqZFBcqw-dwLcfNfKy1J5wvDgHaxAZOVXWo,386048
96
+ pyxcp/recorder/rekorder.cp39-win_amd64.pyd,sha256=lHEUMe_Zlwh4PzAPHlNqb7jhhpQIpOXB7IF6wJg52as,372736
97
97
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
98
98
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
99
99
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
@@ -123,17 +123,17 @@ pyxcp/timing.py,sha256=zE6qPqOuidg6saNt7_zmbQgufxL9Id6akVYhAtpweQc,1705
123
123
  pyxcp/transport/__init__.py,sha256=31PaQLj76n5pXr68aJRWcYfrxEYWWgYoe9f_w3jZxsc,438
124
124
  pyxcp/transport/base.py,sha256=Wf1ymrchtJ3JaETpVsGEV6X7OQR9o5DZmoD3zoXxkyU,16353
125
125
  pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- pyxcp/transport/can.py,sha256=cQ8lrwBL7Ar0GSf48987TztR9wqYS_UnXUngzhaHXe0,14909
126
+ pyxcp/transport/can.py,sha256=pypHU1k5lZODrZpNLsC3IEJ5pPi58OZU_zryd9twr_M,14926
127
127
  pyxcp/transport/eth.py,sha256=xPzN2oSALoPKJVvZpBljPSV1AxfpjRusOzymO-TD1Rw,8711
128
128
  pyxcp/transport/sxi.py,sha256=vM8WZIKuu_dNuqkxZM_1n6iQkQCCzo4ykWpiG6ba8Fk,4695
129
129
  pyxcp/transport/transport_wrapper.cpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
130
  pyxcp/transport/usb_transport.py,sha256=JuYrwkWsUdibdVNA57LBEQT3a3ykOgWPdWcfqj96nDE,8343
131
131
  pyxcp/types.py,sha256=mjp3FhsTTbS3D5VuC-dfdbMql0lJwEfbZjf8a2pHi1o,26158
132
- pyxcp/utils.py,sha256=unlg0CoNwcWYfd-BE0hZJ93uhlAoW_nryv9tS_R3C44,2969
132
+ pyxcp/utils.py,sha256=gVIhPSvZs-y4o6QB35iJQd0VK_Z9sa3UtCDI3dYQeyo,3457
133
133
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
134
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
135
- pyxcp-0.22.28.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
136
- pyxcp-0.22.28.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
137
- pyxcp-0.22.28.dist-info/METADATA,sha256=_lAXRVqtCZRJ7hL3Rm1k_OOQWMdHIDOF-1Jt_7JA9SE,4088
138
- pyxcp-0.22.28.dist-info/WHEEL,sha256=w_pux8TTDQuz9Krw9GOwbeX8IaarZ2ONZ_U-ohythu0,98
139
- pyxcp-0.22.28.dist-info/RECORD,,
135
+ pyxcp-0.22.30.dist-info/entry_points.txt,sha256=LkHsEwubm30s4oiyCy0cKj6k97ALvQ6KjAVdyEcqu7g,358
136
+ pyxcp-0.22.30.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
137
+ pyxcp-0.22.30.dist-info/METADATA,sha256=tM0FyFOCFIOEI45nzAs0HIWbsJ1VlbqSik0P995GUp8,4088
138
+ pyxcp-0.22.30.dist-info/WHEEL,sha256=mALHoYUTvmSuUvATXVCIUbSdKauf2WkQvaEK6Gk1YTE,98
139
+ pyxcp-0.22.30.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.1
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win_amd64