Newer
Older
'''
This class read a csv file describing physical parameter with ROSCOP codification
'''
# constructor with values by default
def __init__(self, file):
self.file = file
def __str__(self):
return 'Class Roscop, file: %s, size = %d' % (self.file, len(self.hash))
def __getattr__(self, name):
'''
overload r.key
'''
return self.hash[name]
def __repr__(self):
return super().__repr__()
# read code roscop file
def read(self):
with open(self.file, 'rt') as f:
reader = csv.DictReader(f, delimiter=';')
logging.debug("%s: %s" % (k, row[k]))
# for testing in standalone context
# display extra logging info
# see: https://stackoverflow.com/questions/14097061/easier-way-to-enable-verbose-logging
parser = argparse.ArgumentParser(
description='This class Roscop parse a csv file describing physical parameter codification')
parser.add_argument("-d", "--debug", help="display debug informations",
action="store_true")
parser.add_argument("-k", "--key", nargs='+',
help="display dictionary for key(s), example -k TEMP [PSAL ...]")
parser.add_argument("file", type=str, help="the csv file to parse")
args = parser.parse_args()
if args.debug:
logging.basicConfig(level=logging.DEBUG)
# Read the csv file and create an instance of Roscop class
r = Roscop(args.file)
for k in key:
r.disp(k)
# print(r.TEMP)
# print(r[key])