#! /usr/bin/env python

"""\
%prog <datafile1> [<datafile2> ...]

List the contents of YODA-readable data files (sorted by path name).
"""

import yoda, sys, optparse

parser = optparse.OptionParser(usage=__doc__)
parser.add_option('-q', '--quiet', action="store_const", const=0, default=1, dest='VERBOSITY',
                  help="just print histogram details, no cosmetic filenames or blank lines")
opts, filenames = parser.parse_args()

if not filenames:
    print "ERROR! Please supply at least one data file for listing"
    sys.exit(1)

for i, f in enumerate(filenames):
    if opts.VERBOSITY >= 1:
        if i > 0: print
        print "Data objects in %s:" % f
    aodict = yoda.read(f)
    for p, ao in sorted(aodict.iteritems()):
        print "{path:<50} {type:<10} {nobjs:4d} bins/pts".format(path=p, type=ao.type, nobjs=len(ao))
