twview: improve age_fmt handling

This commit is contained in:
The MMGen Project 2022-05-23 16:28:55 +00:00
commit 2f7e022288
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 16 additions and 5 deletions

View file

@ -99,6 +99,7 @@ class tool_cmd(tool_cmd_base):
async def twops(self,
obj,pager,reverse,wide,sort,age_fmt,show_mmid,wide_show_confs,interactive):
obj.interactive = interactive
obj.reverse = reverse
obj.age_fmt = age_fmt
obj.show_mmid = show_mmid

View file

@ -38,6 +38,7 @@ class TwCommon:
reverse = False
group = False
sort_key = 'age'
interactive = False
age_fmts = ('confs','block','days','date','date_time')
age_fmts_date_dependent = ('days','date','date_time')
@ -45,9 +46,13 @@ class TwCommon:
_age_fmt = 'confs'
date_formatter = {
'days': lambda rpc,secs: (rpc.cur_date - secs) // 86400,
'date': lambda rpc,secs: '{}-{:02}-{:02}'.format(*time.gmtime(secs)[:3])[2:],
'date_time': lambda rpc,secs: '{}-{:02}-{:02} {:02}:{:02}'.format(*time.gmtime(secs)[:5]),
'days': lambda rpc,secs: (rpc.cur_date - secs) // 86400 if secs else 0,
'date': (
lambda rpc,secs: '{}-{:02}-{:02}'.format(*time.gmtime(secs)[:3])[2:]
if secs else '--------' ),
'date_time': (
lambda rpc,secs: '{}-{:02}-{:02} {:02}:{:02}'.format(*time.gmtime(secs)[:5])
if secs else '---------- -----' ),
}
def age_disp(self,o,age_fmt):
@ -89,8 +94,12 @@ class TwCommon:
@age_fmt.setter
def age_fmt(self,val):
if val not in self.age_fmts:
die( 'BadAgeFormat', f'{val!r}: invalid age format (must be one of {self.age_fmts!r})' )
ok_vals,op_desc = (
(self.age_fmts_interactive,'interactive') if self.interactive else
(self.age_fmts,'non-interactive') )
if val not in ok_vals:
die('BadAgeFormat',
f'{val!r}: invalid age format for {op_desc} operation (must be one of {ok_vals!r})' )
self._age_fmt = val
@property
@ -187,6 +196,7 @@ class TwCommon:
self.prompt = type(self).prompt.strip() + '\b'
self.no_output = False
self.oneshot_msg = None
self.interactive = True
CUR_HOME = '\033[H'
ERASE_ALL = '\033[0J'