Skip to content
Snippets Groups Projects
Commit 3921b05d authored by Bruce Flynn's avatar Bruce Flynn
Browse files

Add trunc code

parent d550fc95
No related branches found
No related tags found
No related merge requests found
......@@ -2,8 +2,28 @@
Console script entry points for CLI tools.
"""
import os
from datetime import datetime
from edosl0util import split
from edosl0util import split, trunc
def _timestamp(v):
return datetime.strptime(v, '%Y-%m-%d %H:%M:%S')
def cmd_trunc():
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('-o', '--output')
parser.add_argument('filename')
parser.add_argument('start', type=_timestamp)
parser.add_argument('end', type=_timestamp)
args = parser.parse_args()
output = args.output or os.path.basename(args.filename) + '.trunc'
with open(output, 'wb') as fptr:
for pkt in trunc.trunc_file(args.filename, args.start, args.end):
fptr.write(pkt.blob)
def cmd_split():
......
from edosl0util.stream import PacketStream
def trunc_stream(stream, start, end):
stream.seek(start)
pkt = stream.next()
while pkt.stamp <= end:
# first pkt in group
yield pkt
# following pkts in group
pkt = stream.next()
while pkt.stamp is None:
yield pkt
pkt = stream.next()
def trunc_file(filename, start, end):
stream = PacketStream(open(filename))
return trunc_stream(stream, start, end)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment