Просмотр исходного кода

dnet: update asyncio to latest usage and minor bug fix

asyncio.get_event_loop() is deprecated since version 3.10.

instead we use the proper method: create a new event loop and then set
it as follows:

        self.ev = asyncio.new_event_loop()
        asyncio.set_event_loop(self.ev)
lunar-mining 2 лет назад
Родитель
Сommit
6107ddfa74
3 измененных файлов с 33 добавлено и 31 удалено
  1. 2 1
      bin/dnet/main.py
  2. 2 1
      bin/dnet/model.py
  3. 29 29
      bin/dnet/view.py

+ 2 - 1
bin/dnet/main.py

@@ -25,7 +25,8 @@ from view import View
 class Dnetview:
 class Dnetview:
 
 
     def __init__(self):
     def __init__(self):
-        self.ev = asyncio.get_event_loop()
+        self.ev = asyncio.new_event_loop()
+        asyncio.set_event_loop(self.ev)
         self.queue = asyncio.Queue()
         self.queue = asyncio.Queue()
         self.config = self.get_config()
         self.config = self.get_config()
         self.model = Model()
         self.model = Model()

+ 2 - 1
bin/dnet/model.py

@@ -77,6 +77,7 @@ class Model:
         self.update_node(name, self.info)
         self.update_node(name, self.info)
 
 
     def handle_event(self, event):
     def handle_event(self, event):
+        logging.debug(event)
         name = list(event.keys())[0]
         name = list(event.keys())[0]
         values = list(event.values())[0]
         values = list(event.values())[0]
         params = values.get("params")
         params = values.get("params")
@@ -85,7 +86,7 @@ class Model:
 
 
         t = time.localtime()
         t = time.localtime()
         current_time = time.strftime("%H:%M:%S", t)
         current_time = time.strftime("%H:%M:%S", t)
-        
+
         match event:                        
         match event:                        
             case "send":
             case "send":
                 nano = info.get("time")
                 nano = info.get("time")

+ 29 - 29
bin/dnet/view.py

@@ -213,35 +213,35 @@ class View():
             await asyncio.sleep(0.1)
             await asyncio.sleep(0.1)
             self.pile.contents.clear()
             self.pile.contents.clear()
             focus_w = self.list.get_focus()
             focus_w = self.list.get_focus()
-            match focus_w[0].get_widget():
-
-                case "NodeView":
-                    self.pile.contents.append((
-                        urwid.Text(f"Node selected"),
-                        self.pile.options()))
-
-                case "ConnectView":
-                    name = focus_w[0].get_name()
-                    
-                    if name in self.model.info.event.keys():
-                        values = self.model.info.event.get(name)
-
+            if focus_w[0] is None:
+                continue
+            else:
+                match focus_w[0].get_widget():
+                    case "NodeView":
                         self.pile.contents.append((
                         self.pile.contents.append((
-                            urwid.Text(f" {values}"),
+                            urwid.Text(f"Node selected"),
                             self.pile.options()))
                             self.pile.options()))
-
-                case "SlotView":
-                    addr = focus_w[0].get_addr()
-
-                    if addr in self.model.info.msgs.keys():
-                        values = self.model.info.msgs.get(addr)
-
-                        for value in values:
-                            time = value[0]
-                            event = value[1]
-                            msg = value[2]
-
-                            self.pile.contents.append((urwid.Text(
-                                    f"{time}: {event}: {msg}"),
-                                    self.pile.options()))
+                    case "ConnectView":
+                        name = focus_w[0].get_name()
+                        
+                        if name in self.model.info.event.keys():
+                            values = self.model.info.event.get(name)
+
+                            self.pile.contents.append((
+                                urwid.Text(f" {values}"),
+                                self.pile.options()))
+                    case "SlotView":
+                        addr = focus_w[0].get_addr()
+
+                        if addr in self.model.info.msgs.keys():
+                            values = self.model.info.msgs.get(addr)
+
+                            for value in values:
+                                time = value[0]
+                                event = value[1]
+                                msg = value[2]
+
+                                self.pile.contents.append((urwid.Text(
+                                        f"{time}: {event}: {msg}"),
+                                        self.pile.options()))