diff --git a/edosl0util/crgen.py b/edosl0util/crgen.py index 56c40ef545f9b8ab52f8f73935e9720e342e9d3c..f648d573b32aee21e531afbe397b21d1a5d448b9 100644 --- a/edosl0util/crgen.py +++ b/edosl0util/crgen.py @@ -2,14 +2,42 @@ """EDOS PDS construction record generation for SUOMI NPP""" from datetime import datetime +import copy +import difflib import itertools import logging import os +import pprint import edosl0util.crio as crio from edosl0util.headers import DaySegmentedTimecode from edosl0util.stream import jpss_packet_stream +def diff_crs(real_file, generated_file): + """Print full diff output from a real EDOS CR to one generated by this module + + Only fields which can be generated by this module via a packet scan are compared. + Nothing is output if the CRs are the same. + """ + + def main(): + real = crio.read(real_file) + generated = crio.read(generated_file) + make_comparable(real, generated) + if real != generated: + diff = difflib.ndiff(pprint.pformat(real).splitlines(), + pprint.pformat(generated).splitlines()) + for line in diff: + print line + + def make_comparable(real, generated): + insert_fake_cr_info(real) + del generated['completion_time'] # it seems CR completion time does not match PDS + del real['completion_time'] # creation time from the file name + + main() + + def test_build_apid_info(): # FIXME: build CR comparison into the CLI calculated = build_cr('P1571289CRISSCIENCEAAT15320210920101.PDS') @@ -102,7 +130,7 @@ def get_pds_creation_time(pds_file_or_id): def build_apid_info(scan_apid_info): """Build up apid_info resulting from scan_packets into a full apid_info for a CR""" - apid_info = deepcopy(scan_apid_info) + apid_info = copy.deepcopy(scan_apid_info) for entry in apid_info: entry['scid'] = npp_scid entry['vcid_count'] = 1 diff --git a/setup.py b/setup.py index 6ec26b2e9a114a463bd6ba8bfebec19808298255..d86625e82219d99a8639c9bba7158869c30c9e8a 100644 --- a/setup.py +++ b/setup.py @@ -22,6 +22,7 @@ setup( edosl0trunc = edosl0util.cli.trunc:main edosl0info = edosl0util.cli.info:main edosl0merge = edosl0util.cli.merge:main + edosl0crgen = edosl0util.cli.crgen:main rdr2l0 = edosl0util.cli.rdr2l0:main """ )