import-script: add field-delimiter
This commit is contained in:
parent
eb4af774c0
commit
69afec62b0
1 changed files with 11 additions and 8 deletions
|
@ -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__':
|
||||
|
|
Loading…
Reference in a new issue