diff --git a/scripts/import_investment_historicalrates.py b/scripts/import_investment_historicalrates.py index 5aa4f07..de11273 100644 --- a/scripts/import_investment_historicalrates.py +++ b/scripts/import_investment_historicalrates.py @@ -17,7 +17,7 @@ except ImportError: sys.exit("proteus must be installed to use %s" % prog) -def read_csv_file(file_name, dec_devider, date_fmt): +def read_csv_file(file_name, dec_devider, date_fmt, delimiter): """ read file from csv """ result = [] @@ -30,7 +30,7 @@ def read_csv_file(file_name, dec_devider, date_fmt): max_rate = None with open(file_name, 'r', encoding='latin1') as fhdl: - csv_lines = csv.DictReader(fhdl, dialect='excel') + csv_lines = csv.DictReader(fhdl, dialect='excel', delimiter=delimiter) for line in csv_lines: try : @@ -134,23 +134,23 @@ def upload_rates(isin, rates_list, max_date, min_date): print('- nothing to upload') -def do_import(csv_file, isin, dec_devider, date_fmt): +def do_import(csv_file, isin, dec_devider, date_fmt, delimiter): """ run import """ print('\n--== Import historical asset rates ==--') print('- file: %s' % csv_file) print('- ISIN: %s' % isin) - print('- date-format: %s, decimal divider: "%s"' % (date_fmt, dec_devider)) - (lines, max_date, min_date) = read_csv_file(csv_file, dec_devider, date_fmt) + print('- date-format: %s, decimal divider: "%s", delimiter: "%s"' % (date_fmt, dec_devider, delimiter)) + (lines, max_date, min_date) = read_csv_file(csv_file, dec_devider, date_fmt, delimiter) upload_rates(isin, lines, max_date, min_date) print('--== finish import ==--') -def main(database, config_file, csv_file, dec_devider, date_fmt, isin): +def main(database, config_file, csv_file, dec_devider, date_fmt, isin, delimiter): config.set_trytond(database, config_file=config_file) with config.get_config().set_context(active_test=False): - do_import(csv_file, isin, dec_devider, date_fmt) + do_import(csv_file, isin, dec_devider, date_fmt, delimiter) def run(): @@ -161,12 +161,15 @@ def run(): help='CSV-file to import, should contain two columns: 1. date, 2. numeric, first line must have "date" and "rate"') parser.add_argument('-p', '--decimal', default=',', dest='decimal_divider', help='decimal divider, defaults to: ,') + parser.add_argument('-t', '--delimiter', default=';', dest='delimiter', + help='field delimiter for csv-table, defaults to: ;') parser.add_argument('-a', '--dateformat', default='%d.%m.%Y', dest='date_format', help='date format like %%d.%%m.%%Y or %%Y-%%m-%%d or similiar') parser.add_argument('-i', '--isin', dest='isin', required=True, help='ISIN of the target asset') args = parser.parse_args() - main(args.database, args.config_file, args.csv_file, args.decimal_divider, args.date_format, args.isin) + main(args.database, args.config_file, args.csv_file, args.decimal_divider, \ + args.date_format, args.isin, args.delimiter) if __name__ == '__main__':