#!/usr/bin/env python
import pygrib, sys
if len(sys.argv) < 2:
    sys.stdout.write("'grib_list <grib_filename>' to get long listing\n")
    sys.stdout.write("'grib_list <grib_filename> -s' to get short listing\n")
    sys.exit(1)
fname = sys.argv[1]
short = False
if len(sys.argv) > 2 and sys.argv[2] == '-s':
    short = True
grbs = pygrib.open(fname)
if short:
    for grb in grbs:
        sys.stdout.write(repr(grb)+'\n')
else:
    for grb in grbs:
        sys.stdout.write('------message %d------\n' % grb.messagenumber)
        for k in grb.keys():
            if k.startswith('mars'): continue
            if k in ['values','codedValues','packedValues','unpackedValues']: continue
            if grb.is_missing(k):
                sys.stdout.write('%s = MISSING\n' % k)
            else:
                try:
                    v = grb[k]
                    sys.stdout.write('%s = %s\n'%(k,v))
                except:
                    sys.stdout.write('%s = NOT FOUND\n'%k)
sys.stdout.write('packing = %s\n' % grb.packingType)
grbs.close()
