Skip to content
Snippets Groups Projects
Commit 2388a7db authored by jkerdreu's avatar jkerdreu
Browse files

Switch from termtables to tabulate

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2757 b32b6428-25c9-4566-ad07-03861ab6144f
parent 6026c2e9
No related branches found
No related tags found
No related merge requests found
......@@ -29,6 +29,6 @@ setup(
"configobj",
"coloredlogs",
"decorator",
"termtables",
"tabulate",
]
)
import asyncio
from enum import Enum
from . import core
from . import config
......@@ -8,12 +7,11 @@ from .aionetwork import AsyncNetworkConnector
from .exceptions import *
import time
import asyncio
from enum import Enum
import aioconsole
import signal
import sys
import termtables
from tabulate import tabulate
from pprint import pprint
......@@ -34,9 +32,9 @@ class AsyncEngine(core.EngineMixin):
self._watchdog_task = None # watchdog task
self._kill_counter = 0 # watchdog counter
self.started_event = asyncio.Event() # engine started event
self.running_event = asyncio.Event() # engine running event
self.watchdog_event = asyncio.Event() # watchdog event
self.started_event = asyncio.Event() # engine started event
signal.signal(signal.SIGTERM, self.sigkill_handler)
signal.signal(signal.SIGINT, self.sigkill_handler)
......@@ -67,7 +65,7 @@ class AsyncEngine(core.EngineMixin):
def get_loop(self):
if self._loop == None:
logger.warning('New event loop')
logger.debug('New event loop')
self._loop = asyncio.get_event_loop()
return self._loop
......@@ -254,42 +252,39 @@ class AsyncEngine(core.EngineMixin):
# Debugging tools
#####################################################
def dump_timers(self):
header = ['Func','Period','Counter','Deadline']
headers = ['Func','Period','Counter','Deadline']
rows = []
now = time.time()
for t in self.timers:
remain = round(t.deadline-now,1)
rows.append([str(t.func),t.period,t.counter,remain])
print('= Timers')
if rows:
termtables.print(rows,header=header)
print(tabulate(rows,headers=headers,tablefmt="fancy_grid"))
def dump_tasks(self):
header = ["Name","Coro","Loop ID"]
headers = ["Name","Coro","Loop ID"]
rows = []
for t in self.all_tasks():
rows.append([t.get_name(),str(t.get_coro()),id(t.get_loop())])
print('= Tasks')
if rows:
termtables.print(rows,header=header)
print(tabulate(rows,headers=headers,tablefmt="fancy_grid"))
def dump_devices(self):
header = ["addr","dev_type","info"]
headers = ["addr","dev_type","info"]
rows = []
for d in self.devices:
rows.append([d.address,d.dev_type,d.info])
print('= Devices')
if rows:
termtables.print(rows,header=header)
print(tabulate(rows,headers=headers,tablefmt="fancy_grid"))
def dump_hooks(self):
header = ["Type","Hook"]
headers = ["Type","Hook"]
rows = []
for h in self._hooks:
rows.append([h.type,str(h.func)])
print('= Hooks')
if rows:
termtables.print(rows,header=header)
print(tabulate(rows,headers=headers,tablefmt="fancy_grid"))
def dump(self):
self.dump_devices()
......
......@@ -24,6 +24,7 @@ from . import tools
from . import bindings
from .exceptions import DeviceError
from tabulate import tabulate
import logging
logger = logging.getLogger(__name__)
......@@ -206,12 +207,22 @@ class Device(object):
# Usefull methods
#####################################################
def dump(self):
print("========= %s =========" % self)
print("Type:\t\t%s" % self.dev_type)
if self.address:
print("Address: \t%s" % self.address)
print("Version: \t%s" % self.version)
print("Info: \t%s" % self.info)
print("= Device: %s" % self)
# info & description
r = []
r.append(['dev_type',self.dev_type])
r.append(['address',self.address])
for k,v in self._get_description().items():
r.append([k,v])
print(tabulate(r,tablefmt="fancy_grid"))
# attributes
if len(self._get_attributes()) > 0:
r = []
for k,v in self._get_attributes().items():
r.append([k,str(v)])
print(tabulate(r,tablefmt="fancy_grid"))
def __repr__(self):
return f"<xaal.Device {id(self):x} {self.address} {self.dev_type}>"
......
......@@ -22,9 +22,9 @@ from . import tools
from . import config
from .bindings import UUID
from .exceptions import MessageError,MessageParserError
from . import cbor
from tabulate import tabulate
import datetime
import pysodium
import struct
......@@ -234,19 +234,22 @@ class Message(object):
return [str(k) for k in self.targets]
def dump(self):
""" dump log a message """
logger.debug("== Message (0x%x) ======================" % id(self))
logger.debug(f"version | {self.version}")
logger.debug(f"targets | {self.targets_as_string()}")
logger.debug(f"timestamp | {self.timestamp}")
logger.debug(f"source | {self.source}")
logger.debug(f"dev_type | {self.dev_type}")
logger.debug(f"msg_type | {MessageType(self.msg_type)}")
logger.debug(f"action | {self.action}")
r=[]
r.append(["version", self.version])
r.append(["targets", str(self.targets)])
r.append(["timestamp", str(self.timestamp)])
r.append(["source", self.source])
r.append(["dev_type", self.dev_type])
r.append(["msg_type", MessageType(self.msg_type)])
r.append(["action", self.action])
if self.body:
logger.debug("== body ==")
logger.debug("%s \t" % self.body)
tmp=""
for k,v in self.body.items():
k = k+':'
tmp=tmp+"- %-12s %s\n" % (k,v)
#tmp = tmp.strip()
r.append(["body", tmp])
print(tabulate(r,headers=["Fied","Value"],tablefmt="psql"))
def __repr__(self):
return f"<xaal.Message {id(self):x} {self.source} {self.dev_type} {self.msg_type} {self.action}>"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment