pyxcp 0.22.16__cp38-cp38-win_amd64.whl → 0.22.17__cp38-cp38-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.16"
20
+ __version__ = "0.22.17"
pyxcp/config/__init__.py CHANGED
@@ -23,7 +23,7 @@ from traitlets import (
23
23
  Unicode,
24
24
  Union,
25
25
  )
26
- from traitlets.config import Application, Instance, SingletonConfigurable, default
26
+ from traitlets.config import Application, Configurable, Instance, default
27
27
 
28
28
  from pyxcp.config import legacy
29
29
 
@@ -55,7 +55,7 @@ class CanBase:
55
55
  }
56
56
 
57
57
 
58
- class CanAlystii(SingletonConfigurable, CanBase):
58
+ class CanAlystii(Configurable, CanBase):
59
59
  """CANalyst-II is a USB to CAN Analyzer device produced by Chuangxin Technology."""
60
60
 
61
61
  interface_name = "canalystii"
@@ -71,7 +71,7 @@ messages (for all channels) before older messages are dropped """,
71
71
  ).tag(config=True)
72
72
 
73
73
 
74
- class CanTact(SingletonConfigurable, CanBase):
74
+ class CanTact(Configurable, CanBase):
75
75
  """Interface for CANtact devices from Linklayer Labs"""
76
76
 
77
77
  interface_name = "cantact"
@@ -84,7 +84,7 @@ class CanTact(SingletonConfigurable, CanBase):
84
84
  )
85
85
 
86
86
 
87
- class Etas(SingletonConfigurable, CanBase):
87
+ class Etas(Configurable, CanBase):
88
88
  """ETAS"""
89
89
 
90
90
  interface_name = "etas"
@@ -94,7 +94,7 @@ class Etas(SingletonConfigurable, CanBase):
94
94
  has_receive_own_messages = True
95
95
 
96
96
 
97
- class Gs_Usb(SingletonConfigurable, CanBase):
97
+ class Gs_Usb(Configurable, CanBase):
98
98
  """Geschwister Schneider USB/CAN devices and candleLight USB CAN interfaces."""
99
99
 
100
100
  interface_name = "gs_usb"
@@ -113,7 +113,7 @@ If specified, bus/address shall not be provided.""",
113
113
  )
114
114
 
115
115
 
116
- class Neovi(SingletonConfigurable, CanBase):
116
+ class Neovi(Configurable, CanBase):
117
117
  """Intrepid Control Systems (ICS) neoVI interfaces."""
118
118
 
119
119
  interface_name = "neovi"
@@ -133,7 +133,7 @@ class Neovi(SingletonConfigurable, CanBase):
133
133
  ).tag(config=True)
134
134
 
135
135
 
136
- class IsCan(SingletonConfigurable, CanBase):
136
+ class IsCan(Configurable, CanBase):
137
137
  """Interface for isCAN from Thorsis Technologies GmbH, former ifak system GmbH."""
138
138
 
139
139
  interface_name = "iscan"
@@ -141,7 +141,7 @@ class IsCan(SingletonConfigurable, CanBase):
141
141
  has_poll_interval = True
142
142
 
143
143
 
144
- class Ixxat(SingletonConfigurable, CanBase):
144
+ class Ixxat(Configurable, CanBase):
145
145
  """IXXAT Virtual Communication Interface"""
146
146
 
147
147
  interface_name = "ixxat"
@@ -174,7 +174,7 @@ class Ixxat(SingletonConfigurable, CanBase):
174
174
  }
175
175
 
176
176
 
177
- class Kvaser(SingletonConfigurable, CanBase):
177
+ class Kvaser(Configurable, CanBase):
178
178
  """Kvaser's CANLib"""
179
179
 
180
180
  interface_name = "kvaser"
@@ -208,7 +208,7 @@ This can be set if reading and/or writing is done from one thread. """,
208
208
  ).tag(config=True)
209
209
 
210
210
 
211
- class NeouSys(SingletonConfigurable, CanBase):
211
+ class NeouSys(Configurable, CanBase):
212
212
  """Neousys CAN Interface"""
213
213
 
214
214
  interface_name = "neousys"
@@ -216,7 +216,7 @@ class NeouSys(SingletonConfigurable, CanBase):
216
216
  device = Integer(default_value=None, allow_none=True, help="Device number").tag(config=True)
217
217
 
218
218
 
219
- class NiCan(SingletonConfigurable, CanBase):
219
+ class NiCan(Configurable, CanBase):
220
220
  """National Instruments NI-CAN"""
221
221
 
222
222
  interface_name = "nican"
@@ -230,7 +230,7 @@ the error. """,
230
230
  ).tag(config=True)
231
231
 
232
232
 
233
- class NixNet(SingletonConfigurable, CanBase):
233
+ class NixNet(Configurable, CanBase):
234
234
  """National Instruments NI-XNET"""
235
235
 
236
236
  interface_name = "nixnet"
@@ -247,7 +247,7 @@ class NixNet(SingletonConfigurable, CanBase):
247
247
  can_termination = Bool(default_value=None, allow_none=True, help="Enable bus termination.")
248
248
 
249
249
 
250
- class PCan(SingletonConfigurable, CanBase):
250
+ class PCan(Configurable, CanBase):
251
251
  """PCAN Basic API"""
252
252
 
253
253
  interface_name = "pcan"
@@ -317,7 +317,7 @@ it will not be responsive.""",
317
317
  ).tag(config=True)
318
318
 
319
319
 
320
- class Robotell(SingletonConfigurable, CanBase):
320
+ class Robotell(Configurable, CanBase):
321
321
  """Interface for Chinese Robotell compatible interfaces"""
322
322
 
323
323
  interface_name = "robotell"
@@ -331,7 +331,7 @@ class Robotell(SingletonConfigurable, CanBase):
331
331
  rtscts = Bool(default_value=None, allow_none=True, help="turn hardware handshake (RTS/CTS) on and off.").tag(config=True)
332
332
 
333
333
 
334
- class SeeedStudio(SingletonConfigurable, CanBase):
334
+ class SeeedStudio(Configurable, CanBase):
335
335
  """Seeed USB-Can analyzer interface."""
336
336
 
337
337
  interface_name = "seeedstudio"
@@ -346,7 +346,7 @@ class SeeedStudio(SingletonConfigurable, CanBase):
346
346
  ).tag(config=True)
347
347
 
348
348
 
349
- class Serial(SingletonConfigurable, CanBase):
349
+ class Serial(Configurable, CanBase):
350
350
  """A text based interface."""
351
351
 
352
352
  interface_name = "serial"
@@ -358,7 +358,7 @@ class Serial(SingletonConfigurable, CanBase):
358
358
  baudrate = Integer(default_value=None, allow_none=True, help="Baud rate of the serial device in bit/s.").tag(config=True)
359
359
 
360
360
 
361
- class SlCan(SingletonConfigurable, CanBase):
361
+ class SlCan(Configurable, CanBase):
362
362
  """CAN over Serial / SLCAN."""
363
363
 
364
364
  interface_name = "slcan"
@@ -374,7 +374,7 @@ class SlCan(SingletonConfigurable, CanBase):
374
374
  ).tag(config=True)
375
375
 
376
376
 
377
- class SocketCan(SingletonConfigurable, CanBase):
377
+ class SocketCan(Configurable, CanBase):
378
378
  """Linux SocketCAN."""
379
379
 
380
380
  interface_name = "socketcan"
@@ -395,7 +395,7 @@ See https://www.kernel.org/doc/html/latest/networking/can.html#socketcan-local-l
395
395
  ).tag(config=True)
396
396
 
397
397
 
398
- class SocketCanD(SingletonConfigurable, CanBase):
398
+ class SocketCanD(Configurable, CanBase):
399
399
  """Network-to-CAN bridge as a Linux damon."""
400
400
 
401
401
  interface_name = "socketcand"
@@ -406,7 +406,7 @@ class SocketCanD(SingletonConfigurable, CanBase):
406
406
  port = Integer(default_value=None, allow_none=True, help=""" """).tag(config=True)
407
407
 
408
408
 
409
- class Systec(SingletonConfigurable, CanBase):
409
+ class Systec(Configurable, CanBase):
410
410
  """SYSTEC interface"""
411
411
 
412
412
  interface_name = "systec"
@@ -425,7 +425,7 @@ class Systec(SingletonConfigurable, CanBase):
425
425
  ).tag(config=True)
426
426
 
427
427
 
428
- class Udp_Multicast(SingletonConfigurable, CanBase):
428
+ class Udp_Multicast(Configurable, CanBase):
429
429
  """A virtual interface for CAN communications between multiple processes using UDP over Multicast IP."""
430
430
 
431
431
  interface_name = "udp_multicast"
@@ -440,7 +440,7 @@ class Udp_Multicast(SingletonConfigurable, CanBase):
440
440
  )
441
441
 
442
442
 
443
- class Usb2Can(SingletonConfigurable, CanBase):
443
+ class Usb2Can(Configurable, CanBase):
444
444
  """Interface to a USB2CAN Bus."""
445
445
 
446
446
  interface_name = "usb2can"
@@ -454,7 +454,7 @@ class Usb2Can(SingletonConfigurable, CanBase):
454
454
  )
455
455
 
456
456
 
457
- class Vector(SingletonConfigurable, CanBase):
457
+ class Vector(Configurable, CanBase):
458
458
  """Vector Informatik CAN interfaces."""
459
459
 
460
460
  interface_name = "vector"
@@ -490,7 +490,7 @@ If set, the `app_name` does not have to be previously defined in
490
490
  )
491
491
 
492
492
 
493
- class Virtual(SingletonConfigurable, CanBase):
493
+ class Virtual(Configurable, CanBase):
494
494
  """ """
495
495
 
496
496
  interface_name = "virtual"
@@ -545,7 +545,7 @@ CAN_INTERFACE_MAP = {
545
545
  }
546
546
 
547
547
 
548
- class Can(SingletonConfigurable):
548
+ class Can(Configurable):
549
549
  VALID_INTERFACES = can.interfaces.VALID_INTERFACES
550
550
 
551
551
  interface = Enum(
@@ -639,32 +639,32 @@ timing-related parameters.
639
639
  f"CAN interface must be one of {sorted(list(self.VALID_INTERFACES))} not the"
640
640
  " {type(self.interface).__name__} {self.interface}."
641
641
  )
642
- self.canalystii = CanAlystii.instance(config=self.config, parent=self)
643
- self.cantact = CanTact.instance(config=self.config, parent=self)
644
- self.etas = Etas.instance(config=self.config, parent=self)
645
- self.gs_usb = Gs_Usb.instance(config=self.config, parent=self)
646
- self.neovi = Neovi.instance(config=self.config, parent=self)
647
- self.iscan = IsCan.instance(config=self.config, parent=self)
648
- self.ixxat = Ixxat.instance(config=self.config, parent=self)
649
- self.kvaser = Kvaser.instance(config=self.config, parent=self)
650
- self.neousys = NeouSys.instance(config=self.config, parent=self)
651
- self.nican = NiCan.instance(config=self.config, parent=self)
652
- self.nixnet = NixNet.instance(config=self.config, parent=self)
653
- self.pcan = PCan.instance(config=self.config, parent=self)
654
- self.robotell = Robotell.instance(config=self.config, parent=self)
655
- self.seeedstudio = SeeedStudio.instance(config=self.config, parent=self)
656
- self.serial = Serial.instance(config=self.config, parent=self)
657
- self.slcan = SlCan.instance(config=self.config, parent=self)
658
- self.socketcan = SocketCan.instance(config=self.config, parent=self)
659
- self.socketcand = SocketCanD.instance(config=self.config, parent=self)
660
- self.systec = Systec.instance(config=self.config, parent=self)
661
- self.udp_multicast = Udp_Multicast.instance(config=self.config, parent=self)
662
- self.usb2can = Usb2Can.instance(config=self.config, parent=self)
663
- self.vector = Vector.instance(config=self.config, parent=self)
664
- self.virtual = Virtual.instance(config=self.config, parent=self)
665
-
666
-
667
- class Eth(SingletonConfigurable):
642
+ self.canalystii = CanAlystii(config=self.config, parent=self)
643
+ self.cantact = CanTact(config=self.config, parent=self)
644
+ self.etas = Etas(config=self.config, parent=self)
645
+ self.gs_usb = Gs_Usb(config=self.config, parent=self)
646
+ self.neovi = Neovi(config=self.config, parent=self)
647
+ self.iscan = IsCan(config=self.config, parent=self)
648
+ self.ixxat = Ixxat(config=self.config, parent=self)
649
+ self.kvaser = Kvaser(config=self.config, parent=self)
650
+ self.neousys = NeouSys(config=self.config, parent=self)
651
+ self.nican = NiCan(config=self.config, parent=self)
652
+ self.nixnet = NixNet(config=self.config, parent=self)
653
+ self.pcan = PCan(config=self.config, parent=self)
654
+ self.robotell = Robotell(config=self.config, parent=self)
655
+ self.seeedstudio = SeeedStudio(config=self.config, parent=self)
656
+ self.serial = Serial(config=self.config, parent=self)
657
+ self.slcan = SlCan(config=self.config, parent=self)
658
+ self.socketcan = SocketCan(config=self.config, parent=self)
659
+ self.socketcand = SocketCanD(config=self.config, parent=self)
660
+ self.systec = Systec(config=self.config, parent=self)
661
+ self.udp_multicast = Udp_Multicast(config=self.config, parent=self)
662
+ self.usb2can = Usb2Can(config=self.config, parent=self)
663
+ self.vector = Vector(config=self.config, parent=self)
664
+ self.virtual = Virtual(config=self.config, parent=self)
665
+
666
+
667
+ class Eth(Configurable):
668
668
  """Ethernet."""
669
669
 
670
670
  host = Unicode("localhost", help="Hostname or IP address of XCP slave.").tag(config=True)
@@ -676,7 +676,7 @@ class Eth(SingletonConfigurable):
676
676
  bind_to_port = Integer(default_value=None, allow_none=True, help="Bind to specific local port.").tag(config=True)
677
677
 
678
678
 
679
- class SxI(SingletonConfigurable):
679
+ class SxI(Configurable):
680
680
  """SCI and SPI connections."""
681
681
 
682
682
  port = Unicode("COM1", help="Name of communication interface.").tag(config=True)
@@ -728,7 +728,7 @@ HEADER_LEN_FILL_WORD | 2 X 2
728
728
  esc_esc = Integer(0x00, min=0, max=255, help="SCI framing protocol character ESC.").tag(config=True)
729
729
 
730
730
 
731
- class Usb(SingletonConfigurable):
731
+ class Usb(Configurable):
732
732
  """Universal Serial Bus connections."""
733
733
 
734
734
  serial_number = Unicode("", help="Device serial number.").tag(config=True)
@@ -787,7 +787,7 @@ class Usb(SingletonConfigurable):
787
787
  out_ep_recommended_host_bufsize = Integer(0, help="Outgoing: Recommended host buffer size.").tag(config=True)
788
788
 
789
789
 
790
- class Transport(SingletonConfigurable):
790
+ class Transport(Configurable):
791
791
  """ """
792
792
 
793
793
  classes = List([Can, Eth, SxI, Usb])
@@ -813,13 +813,13 @@ if there is no response to a command.""",
813
813
 
814
814
  def __init__(self, **kws):
815
815
  super().__init__(**kws)
816
- self.can = Can.instance(config=self.config, parent=self)
817
- self.eth = Eth.instance(config=self.config, parent=self)
818
- self.sxi = SxI.instance(config=self.config, parent=self)
819
- self.usb = Usb.instance(config=self.config, parent=self)
816
+ self.can = Can(config=self.config, parent=self)
817
+ self.eth = Eth(config=self.config, parent=self)
818
+ self.sxi = SxI(config=self.config, parent=self)
819
+ self.usb = Usb(config=self.config, parent=self)
820
820
 
821
821
 
822
- class General(SingletonConfigurable):
822
+ class General(Configurable):
823
823
  """ """
824
824
 
825
825
  # loglevel = Unicode("INFO", help="Set the log level by value or name.").tag(config=True)
@@ -932,11 +932,14 @@ class PyXCP(Application):
932
932
  self.subapp.start()
933
933
  exit(2)
934
934
  else:
935
- if logging.getLogger().hasHandlers():
935
+ has_handlers = logging.getLogger().hasHandlers()
936
+ if has_handlers:
936
937
  self.log = logging.getLogger()
938
+ self._read_configuration(self.config_file)
937
939
  else:
940
+ self._read_configuration(self.config_file)
938
941
  self._setup_logger()
939
- self._read_configuration(self.config_file)
942
+ self.log.debug(f"pyxcp version: {self.version}")
940
943
 
941
944
  def _setup_logger(self):
942
945
  from pyxcp.types import Command
@@ -964,12 +967,11 @@ class PyXCP(Application):
964
967
  PyXCP.version = pyxcp_version
965
968
  PyXCP.name = Path(sys.argv[0]).name
966
969
  self.parse_command_line(argv[1:])
967
- self.log.debug(f"pyxcp version: {self.version}")
968
970
 
969
971
  def _read_configuration(self, file_name: str, emit_warning: bool = True) -> None:
970
972
  self.read_configuration_file(file_name, emit_warning)
971
- self.general = General.instance(config=self.config, parent=self)
972
- self.transport = Transport.instance(parent=self)
973
+ self.general = General(config=self.config, parent=self)
974
+ self.transport = Transport(parent=self)
973
975
 
974
976
  def read_configuration_file(self, file_name: str, emit_warning: bool = True):
975
977
  self.legacy_config: bool = False
@@ -1076,9 +1078,7 @@ def create_application(options: typing.Optional[typing.List[typing.Any]] = None)
1076
1078
  if options is None:
1077
1079
  options = []
1078
1080
  if application is not None:
1079
- print("Return existing App")
1080
1081
  return application
1081
- print("Create New APP")
1082
1082
  application = PyXCP()
1083
1083
  application.initialize(sys.argv)
1084
1084
  application.start()
@@ -1098,4 +1098,3 @@ def reset_application() -> None:
1098
1098
  global application
1099
1099
  del application
1100
1100
  application = None
1101
-
Binary file
Binary file
pyxcp/master/master.py CHANGED
@@ -70,12 +70,10 @@ class Master:
70
70
  self.succeeded = True
71
71
  self.config = config.general
72
72
  self.logger = config.log
73
-
74
73
  disable_error_handling(self.config.disable_error_handling)
75
74
  self.transport_name = transport_name.lower()
76
75
  transport_config = config.transport
77
76
  self.transport = create_transport(transport_name, transport_config, policy, transport_layer_interface)
78
-
79
77
  self.stim = Stim(self.config.stim_support)
80
78
  self.stim.clear()
81
79
  self.stim.set_policy_feeder(self.transport.policy.feed)
Binary file
pyxcp/transport/base.py CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env python
2
2
  import abc
3
+ import logging
3
4
  import threading
4
5
  from collections import deque
5
6
  from typing import Any, Dict, Optional, Set, Type
@@ -145,7 +146,7 @@ class BaseTransport(metaclass=abc.ABCMeta):
145
146
  self.command_lock: threading.Lock = threading.Lock()
146
147
  self.policy_lock: threading.Lock = threading.Lock()
147
148
 
148
- self.logger: Any = config.log
149
+ self.logger = logging.getLogger("PyXCP")
149
150
  self._debug: bool = self.logger.level == 10
150
151
  if transport_layer_interface:
151
152
  self.logger.info(f"Transport - User Supplied Transport-Layer Interface: '{transport_layer_interface!s}'")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyxcp
3
- Version: 0.22.16
3
+ Version: 0.22.17
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=B1l5FtBSI2ctgpZRAIhi2AXe8KUihyNnhRYQsnR2MEw,548
1
+ pyxcp/__init__.py,sha256=pREacwNVh4qvW5uQ5JpYc8KbZ-9d3W9xhkOB0Xfq3us,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,13 +18,13 @@ 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=rXffZanTtShLzEZDXJex32XZSp9t-ETFJXbiVPOERsg,42130
21
+ pyxcp/config/__init__.py,sha256=u9v-eUAJd8amEvkJsns5DCMhvYD3Lp3Ct0posmuqOec,41635
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.cp38-win_amd64.pyd,sha256=YQHb58GENEbEw8UC1nJc3CQmbJrHi1GSFir-2Wn4ze0,279040
27
+ pyxcp/cpp_ext/cpp_ext.cp38-win_amd64.pyd,sha256=fB-yLesyOSPtnOUVS8ryinNAdbAZRw8r3nZQtN30F04,279040
28
28
  pyxcp/cpp_ext/daqlist.hpp,sha256=5JEYQK96qac4ZsoMVnmVGsrH_4uuqbHwcNGiH4j5FAU,7167
29
29
  pyxcp/cpp_ext/event.hpp,sha256=Z-1yxsEKsr81NnLVEWJ2ANA8FV7YsM7EbNxaw-elheE,1200
30
30
  pyxcp/cpp_ext/extension_wrapper.cpp,sha256=-r1YYgJD4dJiiMeA0HEmIQQfsXrzDozLonCrbpKUXiA,4544
@@ -36,7 +36,7 @@ pyxcp/daq_stim/optimize/__init__.py,sha256=FUWK0GkNpNT-sUlhibp7xa2aSYpm6Flh5yA2w
36
36
  pyxcp/daq_stim/optimize/binpacking.py,sha256=Iltho5diKlJG-ltbmx053U2vOFRlCISolXK61T14l_I,1257
37
37
  pyxcp/daq_stim/scheduler.cpp,sha256=a7VK7kP2Hs8yMlcDAkXwJ0bH88lr_yz156sphcHS7Z4,715
38
38
  pyxcp/daq_stim/scheduler.hpp,sha256=U_6tUbebmzX5vVZS0EFSgTaPsyxMg6yRXHG_aPWA0x4,1884
39
- pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=BsZVcfwFnPk9pjnX589CjZbzkTXONxOv22b4OUEx94Y,186880
39
+ pyxcp/daq_stim/stim.cp38-win_amd64.pyd,sha256=nZDwl440Te46boRuT3sD5CUnZM-yJ017RYsWcgsp9BM,186880
40
40
  pyxcp/daq_stim/stim.cpp,sha256=F2OG67W4KKwTTiUCxm-9egIv3TLFdOkRunX6xf7YOtc,177
41
41
  pyxcp/daq_stim/stim.hpp,sha256=U-uInRrA6OCdMl1l1SWbQ_KEPpnNYrWut924IvbW6R0,18508
42
42
  pyxcp/daq_stim/stim_wrapper.cpp,sha256=5LbWkK86h_4mHd83dnwCU7BRvVYit8ijxBMT7pthtOE,1830
@@ -66,7 +66,7 @@ pyxcp/examples/xcphello.py,sha256=xbcWq8StRJyUZBLUvknsXv7VkEBD5SU0SJjlZTHsSzs,26
66
66
  pyxcp/examples/xcphello_recorder.py,sha256=QHWJsq5h5CI9t5qEmMSorZyzirTpoXz4nzuKTMzbZCA,3409
67
67
  pyxcp/master/__init__.py,sha256=QQbkUJM1WQ-5p2MiNFYxLAmHhNsCQLzDp-S4aoOFxoA,318
68
68
  pyxcp/master/errorhandler.py,sha256=U5QuvGRDM9kRNwY5kbkTOnthp19RHoXEGCsaBNiFTps,14973
69
- pyxcp/master/master.py,sha256=TMC5hr9A5qQEVu7obqQPAdViimEDoteJ-4_nIJGlFWw,76931
69
+ pyxcp/master/master.py,sha256=8Raqs6GSuhtPo7ny2DTgB8IUg98RKDbsvK1C1r0xC2Q,76927
70
70
  pyxcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  pyxcp/recorder/__init__.py,sha256=pg-cdOaoj-D-woFxFb2p6SpFTNTdpQEIknHdDaQ9ROE,2695
72
72
  pyxcp/recorder/build_clang.cmd,sha256=JvFngSnb28XcBGXxC6MGrcOCGYfahOIvHpgRpqbA6HQ,175
@@ -83,7 +83,7 @@ pyxcp/recorder/mio.hpp,sha256=5ASJLKSEykH0deAQD5uak-_yAgd5p2n8t06315GSGrg,63346
83
83
  pyxcp/recorder/reader.hpp,sha256=rr9XZ_ciL6eF2_xEqyt9XYNqTIze9ytAsnf8uYukO9U,5201
84
84
  pyxcp/recorder/reco.py,sha256=6N6FIwfCEVMpi5dr3eUOQa1lowcg2LCnS_sy_-b-UiQ,8725
85
85
  pyxcp/recorder/recorder.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=mh1zKLjoRejuLV4Urf9veVNDIG2L2iyGVYQofV_WpTE,377856
86
+ pyxcp/recorder/rekorder.cp38-win_amd64.pyd,sha256=R537i7P6WTgq4wW5zpGqFvpWWGhlCnp8F7Yft1fp9-Q,377856
87
87
  pyxcp/recorder/rekorder.cpp,sha256=U0LMyk8pZXx9emgS_WPVthvn_9IpgE7JGrh4kg-8CX4,1900
88
88
  pyxcp/recorder/rekorder.hpp,sha256=sWvRch9bVt6mmgrFHp5mwWhap7HoFG4geeb7UqEIzio,7638
89
89
  pyxcp/recorder/setup.py,sha256=_99XFPQAd5V4LcJaSGJwdnbxgxJ7kl8DEXfHsnKO1Yg,998
@@ -110,7 +110,7 @@ pyxcp/tests/test_transport.py,sha256=Qn2VjNRfYCU6DH8olVSBUCqb0zdAM9GlTbVBM99YxFQ
110
110
  pyxcp/tests/test_utils.py,sha256=SrURAFc_6jtHng3PSZ5gpqXzVBVuPoMPB0YNvOvaIE0,880
111
111
  pyxcp/timing.py,sha256=zE6qPqOuidg6saNt7_zmbQgufxL9Id6akVYhAtpweQc,1705
112
112
  pyxcp/transport/__init__.py,sha256=31PaQLj76n5pXr68aJRWcYfrxEYWWgYoe9f_w3jZxsc,438
113
- pyxcp/transport/base.py,sha256=Gf2LoKrzYpm-6kSCE43TXqNiZ9daH3BPfH7Y7cFs548,16310
113
+ pyxcp/transport/base.py,sha256=uyCJF6Lznm4gIa_Jq5Pkp6JAT6H6hQuZwryZkLz3kVI,16337
114
114
  pyxcp/transport/base_transport.hpp,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  pyxcp/transport/can.py,sha256=cQ8lrwBL7Ar0GSf48987TztR9wqYS_UnXUngzhaHXe0,14909
116
116
  pyxcp/transport/eth.py,sha256=xPzN2oSALoPKJVvZpBljPSV1AxfpjRusOzymO-TD1Rw,8711
@@ -121,8 +121,8 @@ pyxcp/types.py,sha256=hY4Bb3qT3ZoabGnSKLY6S84MvVyuOCxwVONfs2skx2Y,26043
121
121
  pyxcp/utils.py,sha256=unlg0CoNwcWYfd-BE0hZJ93uhlAoW_nryv9tS_R3C44,2969
122
122
  pyxcp/vector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
123
  pyxcp/vector/map.py,sha256=7Gnhvr79geMeqqGVIJPxODXGwABdNDinnqzhpooN5TE,2306
124
- pyxcp-0.22.16.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
125
- pyxcp-0.22.16.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
126
- pyxcp-0.22.16.dist-info/METADATA,sha256=Ldo61ZsWV4RTjjW_Z3T_2KPCL00af-JDxgSx3ynVi3E,4076
127
- pyxcp-0.22.16.dist-info/WHEEL,sha256=NtstD-IOpW_lEkyZJDu2m1YPTvbwMU6Bl4jmuVneh1M,96
128
- pyxcp-0.22.16.dist-info/RECORD,,
124
+ pyxcp-0.22.17.dist-info/entry_points.txt,sha256=2JbL-pWn9UxpBrS64aWiFFkq9x2A7y-dkrxYlfQqIJU,307
125
+ pyxcp-0.22.17.dist-info/LICENSE,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
126
+ pyxcp-0.22.17.dist-info/METADATA,sha256=IZn48JaDHjuEtlsjjlPLnvy_coHs-cam4__cL2sjvFU,4076
127
+ pyxcp-0.22.17.dist-info/WHEEL,sha256=NtstD-IOpW_lEkyZJDu2m1YPTvbwMU6Bl4jmuVneh1M,96
128
+ pyxcp-0.22.17.dist-info/RECORD,,