[fix] update_currencies.py - AttributeError: 'str' object has no attribute 'insert'

Replace lists with one item by the item, not before last currency has been
added.  In this traceback 'MXN' is added to 'pesos' while pesos is no longer a
list as the optimization was carried out too early.

    $ ./local/py3/bin/python searxng_extra/update/update_currencies.py
    Traceback (most recent call last):
      File "searxng_extra/update/update_currencies.py", line 164, in <module>
        main()
      File "searxng_extra/update/update_currencies.py", line 157, in main
        add_currency_name(db, "pesos", 'MXN')
      File "searxng_extra/update/update_currencies.py", line 89, in add_currency_name
        iso4217_set.insert(0, iso4217)
      AttributeError: 'str' object has no attribute 'insert'

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2023-06-28 20:48:20 +02:00 committed by Markus Heiser
parent efea962504
commit 0ebff871a5
1 changed files with 9 additions and 8 deletions

View File

@ -131,13 +131,6 @@ def fetch_db():
if 'unit' in r: if 'unit' in r:
add_currency_name(db, r['unit']['value'], iso4217, normalize_name=False) add_currency_name(db, r['unit']['value'], iso4217, normalize_name=False)
# reduce memory usage:
# replace lists with one item by the item.
# see searx.search.processors.online_currency.name_to_iso4217
for name in db['names']:
if len(db['names'][name]) == 1:
db['names'][name] = db['names'][name][0]
return db return db
@ -146,8 +139,9 @@ def get_filename():
def main(): def main():
#
db = fetch_db() db = fetch_db()
# static # static
add_currency_name(db, "euro", 'EUR') add_currency_name(db, "euro", 'EUR')
add_currency_name(db, "euros", 'EUR') add_currency_name(db, "euros", 'EUR')
@ -156,6 +150,13 @@ def main():
add_currency_name(db, "peso", 'MXN') add_currency_name(db, "peso", 'MXN')
add_currency_name(db, "pesos", 'MXN') add_currency_name(db, "pesos", 'MXN')
# reduce memory usage:
# replace lists with one item by the item. see
# searx.search.processors.online_currency.name_to_iso4217
for name in db['names']:
if len(db['names'][name]) == 1:
db['names'][name] = db['names'][name][0]
with open(get_filename(), 'w', encoding='utf8') as f: with open(get_filename(), 'w', encoding='utf8') as f:
json.dump(db, f, ensure_ascii=False, indent=4) json.dump(db, f, ensure_ascii=False, indent=4)