New command: obi history to print DMS or view history in bash, dot or
ascii formats
This commit is contained in:
57
python/obitools3/commands/history.pyx
Normal file
57
python/obitools3/commands/history.pyx
Normal file
@ -0,0 +1,57 @@
|
||||
#cython: language_level=3
|
||||
|
||||
from obitools3.apps.optiongroups import addMinimalInputOption
|
||||
from obitools3.uri.decode import open_uri
|
||||
from obitools3.dms import DMS
|
||||
from obitools3.dms.view import View
|
||||
from obitools3.utils cimport bytes2str
|
||||
|
||||
|
||||
__title__="Command line histories and view history graphs"
|
||||
|
||||
|
||||
def addOptions(parser):
|
||||
|
||||
addMinimalInputOption(parser)
|
||||
|
||||
group=parser.add_argument_group('obi history specific options')
|
||||
|
||||
group.add_argument('--bash', '-b',
|
||||
action="store_const", dest="history:format",
|
||||
default="bash",
|
||||
const="bash",
|
||||
help="Print history in bash format")
|
||||
|
||||
group.add_argument('--dot', '-d',
|
||||
action="store_const", dest="history:format",
|
||||
default="bash",
|
||||
const="dot",
|
||||
help="Print history in DOT format (default: bash format)")
|
||||
|
||||
group.add_argument('--ascii', '-a',
|
||||
action="store_const", dest="history:format",
|
||||
default="bash",
|
||||
const="ascii",
|
||||
help="Print history in ASCII format (only for views; default: bash format)")
|
||||
|
||||
|
||||
def run(config):
|
||||
|
||||
cdef object entries
|
||||
|
||||
DMS.obi_atexit()
|
||||
|
||||
input = open_uri(config['obi']['inputURI'])
|
||||
|
||||
entries = input[1]
|
||||
|
||||
if config['history']['format'] == "bash" :
|
||||
print(bytes2str(entries.bash_history))
|
||||
elif config['history']['format'] == "dot" :
|
||||
print(bytes2str(entries.dot_history_graph))
|
||||
elif config['history']['format'] == "ascii" :
|
||||
if isinstance(entries, View):
|
||||
print(bytes2str(entries.ascii_history_graph))
|
||||
else:
|
||||
raise Exception("ASCII history only available for views")
|
||||
|
Reference in New Issue
Block a user