49 lines
1 KiB
Python
Executable file
49 lines
1 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
"""
|
|
This is meant to take the fronius provided spreadsheet and munge it into
|
|
a list of FroniusRegisters and ScaledFroniusRegisters
|
|
"""
|
|
|
|
import pandas
|
|
import argparse
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
parser = argparse.ArgumentParser(
|
|
prog="create_from_spreadsheet",
|
|
description="Generate python registers from the given spreadsheet")
|
|
|
|
parser.add_argument('filename')
|
|
parser.add_argument('-o', '--output')
|
|
|
|
args = parser.parse_args()
|
|
|
|
input_file = Path(args.filename)
|
|
|
|
if args.output is None:
|
|
output_file = Path(input_file.stem + '.py')
|
|
else:
|
|
output_file = Path(args.output)
|
|
|
|
input_df = pandas.read_excel(open(input_file, 'rb'), header=0, skiprows=2)
|
|
|
|
# Coerce strings to ints so we can sort
|
|
input_df = input_df[input_df['Start'].apply(lambda x: isinstance(x, (int)))]
|
|
|
|
# sort on Start register
|
|
|
|
|
|
print(input_df.columns)
|
|
print(input_df.sort_values(['Start']))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|