#!/usr/bin/env python3

###########################################################################################
#  package:   Gtools
#  file:      pplot
#  brief:     
#  copyright: GPLv3
#             Copyright (C) 2019 EPFL (Ecole Polytechnique Federale de Lausanne)
#             LASTRO - Laboratory of Astrophysics of EPFL
#  author:    Yves Revaz <yves.revaz@epfl.ch>
#
# This file is part of Gtools.
###########################################################################################


from h5py import File
import os
import argparse


description="Get the header of a swift file"
epilog     ="""
Examples:
--------
sw_getHeader  file.hdf5
sw_getHeader  file.hdf5 -o NumPart_ThisFile
"""


parser = argparse.ArgumentParser(description=description,epilog=epilog,formatter_class=argparse.RawDescriptionHelpFormatter)


parser.add_argument(action="store", 
                    dest="files", 
                    metavar='FILE', 
                    type=str,
                    default=None,
                    nargs="*",
                    help='file') 

parser.add_argument("-o",
                    action="store", 
                    dest="attr", 
                    metavar='STRING', 
                    required=False,
                    type=str,
                    default=None,
                    help='name of the attribute to display')
                    


'''
def parse_options():

    usage = "usage: %prog [options] file"
    parser = OptionParser(usage=usage)
    
    parser.add_option("-o",
      action="store", 
      dest="attr",
      type="string",
      default = None,		    
      help="attribute",       
      metavar=" STRING")      

    files, options = pt.parse_options(parser=parser, options=[])

    return files, options
'''






############################
#
# main
#
############################


if __name__ == '__main__':

  opt = parser.parse_args()
  
  for filename in opt.files: 
    with File(filename, "r") as fd:
      
      key = "Header"
      
      attrs = list(fd[key].attrs)
      
      if opt.attr is not None:
        attrs = [opt.attr]
      
      for attr in attrs:
        
        if len(opt.files)>1:
          print("%s : %s = %s"%(os.path.basename(filename),attr,fd[key].attrs[attr]))
        else:
          print("%s = %s"%(attr,fd[key].attrs[attr]))  
            
  
            
            
            
            
            
          
        
        


