import-script: add field-delimiter

This commit is contained in:
Frederik Jaeckel 2022-12-05 09:49:59 +01:00
parent 6311d0e79e
commit 5b6883cdde

View file

@ -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__':