Browse Source

[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>
Markus Heiser 1 year ago
parent
commit
0ebff871a5
1 changed files with 9 additions and 8 deletions
  1. 9 8
      searxng_extra/update/update_currencies.py

+ 9 - 8
searxng_extra/update/update_currencies.py

@@ -131,13 +131,6 @@ def fetch_db():
         if 'unit' in r:
             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
 
 
@@ -146,8 +139,9 @@ def get_filename():
 
 
 def main():
-    #
+
     db = fetch_db()
+
     # static
     add_currency_name(db, "euro", 'EUR')
     add_currency_name(db, "euros", 'EUR')
@@ -156,6 +150,13 @@ def main():
     add_currency_name(db, "peso", '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:
         json.dump(db, f, ensure_ascii=False, indent=4)