meshcore 2.1.14__py3-none-any.whl → 2.1.16__py3-none-any.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 meshcore might be problematic. Click here for more details.

@@ -9,16 +9,17 @@ logger = logging.getLogger("meshcore")
9
9
 
10
10
 
11
11
  class ContactCommands(CommandHandlerBase):
12
- async def get_contacts(self, lastmod=0, anim=False) -> Event:
12
+ async def get_contacts_async(self, lastmod=0) :
13
13
  logger.debug("Getting contacts")
14
14
  data = b"\x04"
15
15
  if lastmod > 0:
16
16
  data = data + lastmod.to_bytes(4, "little")
17
- if anim:
18
- print("Fetching contacts ", end="", flush=True)
19
17
  # wait first event
20
- res = await self.send(data)
21
- timeout = 5
18
+ await self.send(data)
19
+
20
+ async def get_contacts(self, lastmod=0, timeout=5) -> Event:
21
+ await self.get_contacts_async(lastmod)
22
+
22
23
  # Inline wait for events to continue waiting for CONTACTS event
23
24
  # while receiving NEXT_CONTACTs (or it might be missed over serial)
24
25
  try:
@@ -26,7 +27,7 @@ class ContactCommands(CommandHandlerBase):
26
27
  futures = []
27
28
  for event_type in [EventType.ERROR, EventType.NEXT_CONTACT, EventType.CONTACTS] :
28
29
  future = asyncio.create_task(
29
- self.dispatcher.wait_for_event(event_type, {}, timeout)
30
+ self.dispatcher.wait_for_event(event_type, {}, timeout=timeout)
30
31
  )
31
32
  futures.append(future)
32
33
 
@@ -39,26 +40,20 @@ class ContactCommands(CommandHandlerBase):
39
40
 
40
41
  # Check if any future completed successfully
41
42
  if len(done) == 0:
42
- print(" Timeout")
43
+ logger.debug("Timeout while getting contacts")
43
44
  for future in pending: # cancel all futures
44
45
  future.cancel()
45
46
  return None
46
47
 
47
48
  for future in done:
48
49
  event = await future
49
-
50
- if event:
51
- if event.type == EventType.NEXT_CONTACT:
52
- if anim:
53
- print(".", end="", flush=True)
54
- else: # Done or Error ... cancel pending and return
55
- if anim:
56
- print(" Done" if event.type == EventType.CONTACTS else " Error")
57
- for future in pending:
58
- future.cancel()
59
- return event
50
+ if event is None or event.type != EventType.NEXT_CONTACT:
51
+ for future in pending:
52
+ future.cancel()
53
+ return event
60
54
 
61
55
  futures = []
56
+
62
57
  for future in pending: # put back pending
63
58
  futures.append(future)
64
59
 
@@ -69,13 +64,9 @@ class ContactCommands(CommandHandlerBase):
69
64
 
70
65
  except asyncio.TimeoutError:
71
66
  logger.debug(f"Timeout receiving contacts")
72
- if anim:
73
- print(" Timeout")
74
67
  return None
75
68
  except Exception as e:
76
69
  logger.debug(f"Command error: {e}")
77
- if anim:
78
- print(" Error")
79
70
  return Event(EventType.ERROR, {"error": str(e)})
80
71
 
81
72
  async def reset_path(self, key: DestinationType) -> Event:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcore
3
- Version: 2.1.14
3
+ Version: 2.1.16
4
4
  Summary: Base classes for communicating with meshcore companion radios
5
5
  Project-URL: Homepage, https://github.com/fdlamotte/meshcore_py
6
6
  Project-URL: Issues, https://github.com/fdlamotte/meshcore_py/issues
@@ -9,14 +9,13 @@ meshcore/parsing.py,sha256=48PQkig-sqvsRlkF9zkvWhJoSq6ERCbGb_aRuCND5NI,4044
9
9
  meshcore/reader.py,sha256=mIewSrfsgt-qe-acoxGQncHZhEhRr_3CEZuN1afnr7E,24784
10
10
  meshcore/serial_cx.py,sha256=-kaqnqk7Ydufu2DECFfPDv4Xs-7gHUBuz8v0xf8fvvE,3969
11
11
  meshcore/tcp_cx.py,sha256=05YRVMnjY5aVBTJcHa0uG4VfFKGbV6hQ1pPIsJg4CDI,4227
12
- meshcore/commands/.contact.py.swp,sha256=ukLHeYjDX9dKOGMyuN3BNJCFrTvgD5y1X0vj1Lp0j5U,24576
13
12
  meshcore/commands/__init__.py,sha256=NNmkTEcL-DLyuwKLUagEzpqe3C6ui2tETbu_mUd4p-I,441
14
13
  meshcore/commands/base.py,sha256=0bDHcNGlKoej03xJqzo_wL5ctoPQU5kcK1Ca5sZh1pk,7097
15
14
  meshcore/commands/binary.py,sha256=MVKXrT4pFSlzFkVFLBX988Eh57tRwunw4XPKBumbQNU,4890
16
- meshcore/commands/contact.py,sha256=fmOW3CrDZFuvDHhqP7WpZT_vps7PK9LUvra2CYm0El8,6273
15
+ meshcore/commands/contact.py,sha256=-dRY68xZkDFP6-i53WujyWhEsXZsFRk98B3j3zBzaL4,5860
17
16
  meshcore/commands/device.py,sha256=vstyy1crvhGbDgCAtyCWyjj3X8F2CpMw1LFTOwoHh6M,8273
18
17
  meshcore/commands/messaging.py,sha256=MIVGM5G8J16qimKjCHdrlEiVJ4g_MsBaZKPvRJHJcLU,8306
19
- meshcore-2.1.14.dist-info/METADATA,sha256=e_MjaWO0VyG1-ZTsL-hj8vWfvm6gIzUIVu42dhPHOAc,25317
20
- meshcore-2.1.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
21
- meshcore-2.1.14.dist-info/licenses/LICENSE,sha256=o62-JWT_C-ZqEtzb1Gl_PPtPr0pVT8KDmgji_Y_bejI,1075
22
- meshcore-2.1.14.dist-info/RECORD,,
18
+ meshcore-2.1.16.dist-info/METADATA,sha256=WPPdkEeUGwo7SwiMZ-4DRC2JoUX-IqevfpBMLS2fLVw,25317
19
+ meshcore-2.1.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
20
+ meshcore-2.1.16.dist-info/licenses/LICENSE,sha256=o62-JWT_C-ZqEtzb1Gl_PPtPr0pVT8KDmgji_Y_bejI,1075
21
+ meshcore-2.1.16.dist-info/RECORD,,
Binary file