Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analyzing a book fails with AttributeError: 'list' object has no attribute 'update' #152

Open
JinEnMok opened this issue Apr 29, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@JinEnMok
Copy link

Describe the bug
Whenever I try to import a book, I get a popup with the following error:

Traceback (most recent call last):
  File "/home/[user]/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/[user]/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/[user]/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

To Reproduce
Steps to reproduce the behavior:

  1. Go to main screen
  2. Click on "Analyze"
  3. Click on "Analyze book"
  4. Choose an e-book
  5. See error

Expected behavior
The app analyzes the book and I profit?

Logs
VocabSieve version: 0.12.0
Python version: 3.11.9 (main, Apr 15 2024, 18:08:53) [Clang 17.0.6 ] on Linux 6.8.7-lqx2-1-lqx x86_64
PyQt5 (Qt bindings) version: 5.15.10, Qt 5.15.2

2024-04-29 20:17:53.651 | DEBUG    | vocabsieve.main:initSources:148 - Initializing sources
2024-04-29 20:17:53.653 | DEBUG    | vocabsieve.main:initSources:154 - Source Group 1: [] has been created.
2024-04-29 20:17:53.654 | DEBUG    | vocabsieve.main:initSources:166 - Source Group 2 is disabled, emptying source widget.
2024-04-29 20:17:53.656 | DEBUG    | vocabsieve.main:initSources:175 - Audio source group is empty, emptying audio source widget.
2024-04-29 20:17:53.657 | DEBUG    | vocabsieve.main:initTimers:1049 - Initializing timers
2024-04-29 20:18:05.577 | DEBUG    | vocabsieve.main:getKnownDataOnThread:426 - Some data sources aren't available, not getting known data now
2024-04-29 20:18:05.578 | INFO     | vocabsieve.main:setupClipboardMonitor:110 - Clipboard monitoring is not supported on Wayland and MacOS, will poll instead
2024-04-29 20:18:05.578 | DEBUG    | vocabsieve.main:configure:557 - Opening settings dialog
2024-04-29 20:18:09.290 | DEBUG    | vocabsieve.config.config_dialog:__init__:21 - Initializing settings dialog
2024-04-29 20:18:09.329 | INFO     | vocabsieve.config.general_tab:load_freq_sources:86 - Loading frequency sources for language English: []
2024-04-29 20:18:09.378 | WARNING  | vocabsieve.config.anki_tab:setupAutosave:222 - AnkiConnect API is not available, disabling Anki settings for now
2024-04-29 20:18:09.379 | ERROR    | vocabsieve.config.anki_tab:onDefaultNoteType:147 - <urlopen error [Errno 111] Connection refused>
2024-04-29 20:18:09.379 | DEBUG    | vocabsieve.config.anki_tab:loadDecks:42 - Loading decks
2024-04-29 20:18:09.393 | ERROR    | vocabsieve.config.tracking_tab:getMatchedCards:79 - Error while trying to find notes in Anki: URLError(ConnectionRefusedError(111, 'Connection refused'))
Traceback (most recent call last):

  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
    | |       |   |             |   |         |   |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    | |       |   |             |   |         |   -> <property object at 0x7d022ac566b0>
    | |       |   |             |   |         -> <urllib.request.Request object at 0x7d021cd8e1d0>
    | |       |   |             |   -> ''
    | |       |   |             -> <urllib.request.Request object at 0x7d021cd8e1d0>
    | |       |   -> <function Request.get_method at 0x7d022ab4b6a0>
    | |       -> <urllib.request.Request object at 0x7d021cd8e1d0>
    | -> <function HTTPConnection.request at 0x7d022ade2ca0>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1303, in request
    self._send_request(method, url, body, headers, encode_chunked)
    |    |             |       |    |     |        -> False
    |    |             |       |    |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    |    |             |       |    -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    |             |       -> ''
    |    |             -> 'POST'
    |    -> <function HTTPConnection._send_request at 0x7d022ade2d40>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1349, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    |    |          |                    -> False
    |    |          -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection.endheaders at 0x7d022ade2c00>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1298, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    |    |            |                            -> False
    |    |            -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection._send_output at 0x7d022ade27a0>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1058, in _send_output
    self.send(msg)
    |    |    -> b'POST / HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 74\r\nHo...
    |    -> <function HTTPConnection.send at 0x7d022ade25c0>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 996, in send
    self.connect()
    |    -> <function HTTPConnection.connect at 0x7d022ade2480>
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 962, in connect
    self.sock = self._create_connection(
    |    |      |    -> <function create_connection at 0x7d022af6efc0>
    |    |      -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
    |    -> None
    -> <http.client.HTTPConnection object at 0x7d021cd8fd50>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 851, in create_connection
    raise exceptions[0]
          -> []
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 836, in create_connection
    sock.connect(sa)
    |    |       -> ('127.0.0.1', 8765)
    |    -> <method 'connect' of '_socket.socket' objects>
    -> <socket.socket [closed] fd=-1, family=2, type=1, proto=6>

ConnectionRefusedError: [Errno 111] Connection refused


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/home/<username>/.local/bin/vocabsieve", line 8, in <module>
    sys.exit(main())
    |   |    -> <function main at 0x7d022aed1760>
    |   -> <built-in function exit>
    -> <module 'sys' (built-in)>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 1104, in main
    w = MainWindow()
        -> <class 'vocabsieve.main.MainWindow'>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 90, in __init__
    self.configure()
    |    -> <function MainWindow.configure at 0x7d021cd149a0>
    -> <vocabsieve.main.MainWindow object at 0x7d021d393f40>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 559, in configure
    settings_dialog = ConfigDialog(self)
                      |            -> <vocabsieve.main.MainWindow object at 0x7d021d393f40>
                      -> <class 'vocabsieve.config.config_dialog.ConfigDialog'>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/config_dialog.py", line 29, in __init__
    self.initTabs()
    |    -> <function ConfigDialog.initTabs at 0x7d0220a5f740>
    -> <vocabsieve.config.config_dialog.ConfigDialog object at 0x7d0214cf9630>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/config_dialog.py", line 39, in initTabs
    self.tab_t = TrackingTab()
    |            -> <class 'vocabsieve.config.tracking_tab.TrackingTab'>
    -> <vocabsieve.config.config_dialog.ConfigDialog object at 0x7d0214cf9630>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/tracking_tab.py", line 12, in __init__
    self.getMatchedCards()
    |    -> <function TrackingTab.getMatchedCards at 0x7d0220a5ee80>
    -> <vocabsieve.config.tracking_tab.TrackingTab object at 0x7d0214d59000>
> File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/tracking_tab.py", line 72, in getMatchedCards
    mature_notes = findNotes(api, query_mature)
                   |         |    -> 'prop:ivl>=14'
                   |         -> 'http://127.0.0.1:8765'
                   -> <function findNotes at 0x7d022355b1a0>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 190, in findNotes
    return invoke('findNotes', server, query=query)
           |                   |             -> 'prop:ivl>=14'
           |                   -> 'http://127.0.0.1:8765'
           -> <function invoke at 0x7d022351f240>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 54, in invoke
    with urllib.request.urlopen(urllib.request.Request(server, requestJson)) as response:
         |      |       |       |      |       |       |       -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
         |      |       |       |      |       |       -> 'http://127.0.0.1:8765'
         |      |       |       |      |       -> <class 'urllib.request.Request'>
         |      |       |       |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         |      |       |       -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
         |      |       -> <function urlopen at 0x7d022ab48fe0>
         |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
           |      |    |    |     -> <object object at 0x7d022b5a4540>
           |      |    |    -> None
           |      |    -> <urllib.request.Request object at 0x7d021cd8e1d0>
           |      -> <function OpenerDirector.open at 0x7d022ab4bf60>
           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 519, in open
    response = self._open(req, data)
               |    |     |    -> None
               |    |     -> <urllib.request.Request object at 0x7d021cd8e1d0>
               |    -> <function OpenerDirector._open at 0x7d022ab94040>
               -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
             |    |           |    |            |         -> 'http'
             |    |           |    |            -> 'http'
             |    |           |    -> {'unknown': [<urllib.request.UnknownHandler object at 0x7d021d3338d0>], 'http': [<urllib.request.HTTPHandler object at 0x7d02...
             |    |           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
             |    -> <function OpenerDirector._call_chain at 0x7d022ab4bec0>
             -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             |     -> (<urllib.request.Request object at 0x7d021cd8e1d0>,)
             -> <bound method HTTPHandler.http_open of <urllib.request.HTTPHandler object at 0x7d021cd80b10>>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1377, in http_open
    return self.do_open(http.client.HTTPConnection, req)
           |    |       |    |      |               -> <urllib.request.Request object at 0x7d021cd8e1d0>
           |    |       |    |      -> <class 'http.client.HTTPConnection'>
           |    |       |    -> <module 'http.client' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py'>
           |    |       -> <module 'http' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/__init__.py'>
           |    -> <function AbstractHTTPHandler.do_open at 0x7d022ab95ee0>
           -> <urllib.request.HTTPHandler object at 0x7d021cd80b10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1351, in do_open
    raise URLError(err)
          -> <class 'urllib.error.URLError'>

urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
2024-04-29 20:18:56.559 | ERROR    | vocabsieve.config.tracking_tab:getMatchedCards:79 - Error while trying to find notes in Anki: URLError(ConnectionRefusedError(111, 'Connection refused'))
Traceback (most recent call last):

  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
    | |       |   |             |   |         |   |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    | |       |   |             |   |         |   -> <property object at 0x7d022ac566b0>
    | |       |   |             |   |         -> <urllib.request.Request object at 0x7d021cd9ef90>
    | |       |   |             |   -> ''
    | |       |   |             -> <urllib.request.Request object at 0x7d021cd9ef90>
    | |       |   -> <function Request.get_method at 0x7d022ab4b6a0>
    | |       -> <urllib.request.Request object at 0x7d021cd9ef90>
    | -> <function HTTPConnection.request at 0x7d022ade2ca0>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1303, in request
    self._send_request(method, url, body, headers, encode_chunked)
    |    |             |       |    |     |        -> False
    |    |             |       |    |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    |    |             |       |    -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    |             |       -> ''
    |    |             -> 'POST'
    |    -> <function HTTPConnection._send_request at 0x7d022ade2d40>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1349, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    |    |          |                    -> False
    |    |          -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection.endheaders at 0x7d022ade2c00>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1298, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    |    |            |                            -> False
    |    |            -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection._send_output at 0x7d022ade27a0>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1058, in _send_output
    self.send(msg)
    |    |    -> b'POST / HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 74\r\nHo...
    |    -> <function HTTPConnection.send at 0x7d022ade25c0>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 996, in send
    self.connect()
    |    -> <function HTTPConnection.connect at 0x7d022ade2480>
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 962, in connect
    self.sock = self._create_connection(
    |    |      |    -> <function create_connection at 0x7d022af6efc0>
    |    |      -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
    |    -> None
    -> <http.client.HTTPConnection object at 0x7d021cd9cd10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 851, in create_connection
    raise exceptions[0]
          -> []
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 836, in create_connection
    sock.connect(sa)
    |    |       -> ('127.0.0.1', 8765)
    |    -> <method 'connect' of '_socket.socket' objects>
    -> <socket.socket [closed] fd=-1, family=2, type=1, proto=6>

ConnectionRefusedError: [Errno 111] Connection refused


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/home/<username>/.local/bin/vocabsieve", line 8, in <module>
    sys.exit(main())
    |   |    -> <function main at 0x7d022aed1760>
    |   -> <built-in function exit>
    -> <module 'sys' (built-in)>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 1104, in main
    w = MainWindow()
        -> <class 'vocabsieve.main.MainWindow'>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 90, in __init__
    self.configure()
    |    -> <function MainWindow.configure at 0x7d021cd149a0>
    -> <vocabsieve.main.MainWindow object at 0x7d021d393f40>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 560, in configure
    settings_dialog.exec()
    |               -> <built-in method exec>
    -> <vocabsieve.config.config_dialog.ConfigDialog object at 0x7d0214cf9630>
> File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/tracking_tab.py", line 72, in getMatchedCards
    mature_notes = findNotes(api, query_mature)
                   |         |    -> 'prop:ivl>=14'
                   |         -> 'http://127.0.0.1:8765'
                   -> <function findNotes at 0x7d022355b1a0>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 190, in findNotes
    return invoke('findNotes', server, query=query)
           |                   |             -> 'prop:ivl>=14'
           |                   -> 'http://127.0.0.1:8765'
           -> <function invoke at 0x7d022351f240>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 54, in invoke
    with urllib.request.urlopen(urllib.request.Request(server, requestJson)) as response:
         |      |       |       |      |       |       |       -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
         |      |       |       |      |       |       -> 'http://127.0.0.1:8765'
         |      |       |       |      |       -> <class 'urllib.request.Request'>
         |      |       |       |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         |      |       |       -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
         |      |       -> <function urlopen at 0x7d022ab48fe0>
         |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
           |      |    |    |     -> <object object at 0x7d022b5a4540>
           |      |    |    -> None
           |      |    -> <urllib.request.Request object at 0x7d021cd9ef90>
           |      -> <function OpenerDirector.open at 0x7d022ab4bf60>
           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 519, in open
    response = self._open(req, data)
               |    |     |    -> None
               |    |     -> <urllib.request.Request object at 0x7d021cd9ef90>
               |    -> <function OpenerDirector._open at 0x7d022ab94040>
               -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
             |    |           |    |            |         -> 'http'
             |    |           |    |            -> 'http'
             |    |           |    -> {'unknown': [<urllib.request.UnknownHandler object at 0x7d021d3338d0>], 'http': [<urllib.request.HTTPHandler object at 0x7d02...
             |    |           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
             |    -> <function OpenerDirector._call_chain at 0x7d022ab4bec0>
             -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             |     -> (<urllib.request.Request object at 0x7d021cd9ef90>,)
             -> <bound method HTTPHandler.http_open of <urllib.request.HTTPHandler object at 0x7d021cd80b10>>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1377, in http_open
    return self.do_open(http.client.HTTPConnection, req)
           |    |       |    |      |               -> <urllib.request.Request object at 0x7d021cd9ef90>
           |    |       |    |      -> <class 'http.client.HTTPConnection'>
           |    |       |    -> <module 'http.client' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py'>
           |    |       -> <module 'http' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/__init__.py'>
           |    -> <function AbstractHTTPHandler.do_open at 0x7d022ab95ee0>
           -> <urllib.request.HTTPHandler object at 0x7d021cd80b10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1351, in do_open
    raise URLError(err)
          -> <class 'urllib.error.URLError'>

urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
2024-04-29 20:19:17.114 | DEBUG    | vocabsieve.main:initSources:148 - Initializing sources
2024-04-29 20:19:17.115 | DEBUG    | vocabsieve.main:initSources:154 - Source Group 1: [] has been created.
2024-04-29 20:19:17.116 | DEBUG    | vocabsieve.main:initSources:166 - Source Group 2 is disabled, emptying source widget.
2024-04-29 20:19:17.117 | DEBUG    | vocabsieve.main:initSources:175 - Audio source group is empty, emptying audio source widget.
2024-04-29 20:19:17.232 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''AttributeError: module 'qdarktheme' has no attribute 'enable_hi_dpi''''
2024-04-29 20:20:34.635 | DEBUG    | vocabsieve.main:configure:557 - Opening settings dialog
2024-04-29 20:20:41.479 | DEBUG    | vocabsieve.config.config_dialog:__init__:21 - Initializing settings dialog
2024-04-29 20:20:41.494 | INFO     | vocabsieve.config.general_tab:load_freq_sources:86 - Loading frequency sources for language English: []
2024-04-29 20:20:41.536 | WARNING  | vocabsieve.config.anki_tab:setupAutosave:222 - AnkiConnect API is not available, disabling Anki settings for now
2024-04-29 20:20:41.537 | ERROR    | vocabsieve.config.anki_tab:onDefaultNoteType:147 - <urlopen error [Errno 111] Connection refused>
2024-04-29 20:20:41.538 | DEBUG    | vocabsieve.config.anki_tab:loadDecks:42 - Loading decks
2024-04-29 20:20:41.548 | ERROR    | vocabsieve.config.tracking_tab:getMatchedCards:79 - Error while trying to find notes in Anki: URLError(ConnectionRefusedError(111, 'Connection refused'))
Traceback (most recent call last):

  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1348, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
    | |       |   |             |   |         |   |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    | |       |   |             |   |         |   -> <property object at 0x7d022ac566b0>
    | |       |   |             |   |         -> <urllib.request.Request object at 0x7d021cdeab50>
    | |       |   |             |   -> ''
    | |       |   |             -> <urllib.request.Request object at 0x7d021cdeab50>
    | |       |   -> <function Request.get_method at 0x7d022ab4b6a0>
    | |       -> <urllib.request.Request object at 0x7d021cdeab50>
    | -> <function HTTPConnection.request at 0x7d022ade2ca0>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1303, in request
    self._send_request(method, url, body, headers, encode_chunked)
    |    |             |       |    |     |        -> False
    |    |             |       |    |     -> {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '74', 'Host': '127.0.0.1:8765', 'User-Agent': 'Python...
    |    |             |       |    -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    |             |       -> ''
    |    |             -> 'POST'
    |    -> <function HTTPConnection._send_request at 0x7d022ade2d40>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1349, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    |    |          |                    -> False
    |    |          -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection.endheaders at 0x7d022ade2c00>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1298, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    |    |            |                            -> False
    |    |            -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
    |    -> <function HTTPConnection._send_output at 0x7d022ade27a0>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 1058, in _send_output
    self.send(msg)
    |    |    -> b'POST / HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 74\r\nHo...
    |    -> <function HTTPConnection.send at 0x7d022ade25c0>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 996, in send
    self.connect()
    |    -> <function HTTPConnection.connect at 0x7d022ade2480>
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py", line 962, in connect
    self.sock = self._create_connection(
    |    |      |    -> <function create_connection at 0x7d022af6efc0>
    |    |      -> <http.client.HTTPConnection object at 0x7d021cdeb490>
    |    -> None
    -> <http.client.HTTPConnection object at 0x7d021cdeb490>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 851, in create_connection
    raise exceptions[0]
          -> []
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/socket.py", line 836, in create_connection
    sock.connect(sa)
    |    |       -> ('127.0.0.1', 8765)
    |    -> <method 'connect' of '_socket.socket' objects>
    -> <socket.socket [closed] fd=-1, family=2, type=1, proto=6>

ConnectionRefusedError: [Errno 111] Connection refused


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/home/<username>/.local/bin/vocabsieve", line 8, in <module>
    sys.exit(main())
    |   |    -> <function main at 0x7d022aed1760>
    |   -> <built-in function exit>
    -> <module 'sys' (built-in)>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 1108, in main
    app.exec()
    |   -> <built-in method exec>
    -> <PyQt5.QtWidgets.QApplication object at 0x7d022a7469e0>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 559, in configure
    settings_dialog = ConfigDialog(self)
                      |            -> <vocabsieve.main.MainWindow object at 0x7d021d393f40>
                      -> <class 'vocabsieve.config.config_dialog.ConfigDialog'>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/config_dialog.py", line 29, in __init__
    self.initTabs()
    |    -> <function ConfigDialog.initTabs at 0x7d0220a5f740>
    -> <vocabsieve.config.config_dialog.ConfigDialog object at 0x7d0212b4fd90>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/config_dialog.py", line 39, in initTabs
    self.tab_t = TrackingTab()
    |            -> <class 'vocabsieve.config.tracking_tab.TrackingTab'>
    -> <vocabsieve.config.config_dialog.ConfigDialog object at 0x7d0212b4fd90>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/tracking_tab.py", line 12, in __init__
    self.getMatchedCards()
    |    -> <function TrackingTab.getMatchedCards at 0x7d0220a5ee80>
    -> <vocabsieve.config.tracking_tab.TrackingTab object at 0x7d02119241f0>
> File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/config/tracking_tab.py", line 72, in getMatchedCards
    mature_notes = findNotes(api, query_mature)
                   |         |    -> 'prop:ivl>=14'
                   |         -> 'http://127.0.0.1:8765'
                   -> <function findNotes at 0x7d022355b1a0>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 190, in findNotes
    return invoke('findNotes', server, query=query)
           |                   |             -> 'prop:ivl>=14'
           |                   -> 'http://127.0.0.1:8765'
           -> <function invoke at 0x7d022351f240>
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/tools.py", line 54, in invoke
    with urllib.request.urlopen(urllib.request.Request(server, requestJson)) as response:
         |      |       |       |      |       |       |       -> b'{"action": "findNotes", "params": {"query": "prop:ivl>=14"}, "version": 6}'
         |      |       |       |      |       |       -> 'http://127.0.0.1:8765'
         |      |       |       |      |       -> <class 'urllib.request.Request'>
         |      |       |       |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         |      |       |       -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
         |      |       -> <function urlopen at 0x7d022ab48fe0>
         |      -> <module 'urllib.request' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py'>
         -> <module 'urllib' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/__init__.py'>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
           |      |    |    |     -> <object object at 0x7d022b5a4540>
           |      |    |    -> None
           |      |    -> <urllib.request.Request object at 0x7d021cdeab50>
           |      -> <function OpenerDirector.open at 0x7d022ab4bf60>
           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 519, in open
    response = self._open(req, data)
               |    |     |    -> None
               |    |     -> <urllib.request.Request object at 0x7d021cdeab50>
               |    -> <function OpenerDirector._open at 0x7d022ab94040>
               -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 536, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
             |    |           |    |            |         -> 'http'
             |    |           |    |            -> 'http'
             |    |           |    -> {'unknown': [<urllib.request.UnknownHandler object at 0x7d021d3338d0>], 'http': [<urllib.request.HTTPHandler object at 0x7d02...
             |    |           -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
             |    -> <function OpenerDirector._call_chain at 0x7d022ab4bec0>
             -> <urllib.request.OpenerDirector object at 0x7d021cd809d0>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             |     -> (<urllib.request.Request object at 0x7d021cdeab50>,)
             -> <bound method HTTPHandler.http_open of <urllib.request.HTTPHandler object at 0x7d021cd80b10>>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1377, in http_open
    return self.do_open(http.client.HTTPConnection, req)
           |    |       |    |      |               -> <urllib.request.Request object at 0x7d021cdeab50>
           |    |       |    |      -> <class 'http.client.HTTPConnection'>
           |    |       |    -> <module 'http.client' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/client.py'>
           |    |       -> <module 'http' from '/home/<username>/.local/pipx/py/3.11/lib/python3.11/http/__init__.py'>
           |    -> <function AbstractHTTPHandler.do_open at 0x7d022ab95ee0>
           -> <urllib.request.HTTPHandler object at 0x7d021cd80b10>
  File "/home/<username>/.local/pipx/py/3.11/lib/python3.11/urllib/request.py", line 1351, in do_open
    raise URLError(err)
          -> <class 'urllib.error.URLError'>

urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
2024-04-29 20:21:24.902 | DEBUG    | vocabsieve.main:getKnownDataOnThread:426 - Some data sources aren't available, not getting known data now
2024-04-29 20:21:50.752 | DEBUG    | vocabsieve.main:initSources:148 - Initializing sources
2024-04-29 20:21:50.752 | DEBUG    | vocabsieve.main:initSources:154 - Source Group 1: ['Wiktionary (English)'] has been created.
2024-04-29 20:21:50.754 | DEBUG    | vocabsieve.main:initSources:161 - Source Group 2: ['Google Translate'] has been created.
2024-04-29 20:21:50.755 | DEBUG    | vocabsieve.main:initSources:173 - Audio source group: ['Forvo'] has been created
2024-04-29 20:23:27.357 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''changes'''
2024-04-29 20:23:27.688 | DEBUG    | vocabsieve.ui.searchable_boldable_text_edit:bold:11 - bolding changes
2024-04-29 20:23:27.698 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up changes in [<vocabsieve.sources.wiktionary_source.WiktionarySource object at 0x7d021d3449d0>]
2024-04-29 20:23:27.699 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up changes in [<vocabsieve.sources.google_translate_source.GoogleTranslateSource object at 0x7d021cdbfc10>]
2024-04-29 20:23:27.699 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up change in Wiktionary
2024-04-29 20:23:27.704 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup change
2024-04-29 20:23:27.705 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: ConnectionError(MaxRetryError('HTTPSConnectionPool(host=\'kaikki.org\', port=443): Max retries exceeded with url: /dictionary/English/meaning/c/ch/change.json (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7d01f5f87bd0>: Failed to resolve \'kaikki.org\' ([Errno -3] Temporary failure in name resolution)"))'))
2024-04-29 20:23:27.708 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up changes in Wiktionary
2024-04-29 20:23:27.713 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup changes
2024-04-29 20:23:27.713 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: ConnectionError(MaxRetryError('HTTPSConnectionPool(host=\'kaikki.org\', port=443): Max retries exceeded with url: /dictionary/English/meaning/c/ch/changes.json (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7d01f5f86f90>: Failed to resolve \'kaikki.org\' ([Errno -3] Temporary failure in name resolution)"))'))
2024-04-29 20:23:27.714 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up changes in Google Translate in 0.01 seconds
2024-04-29 20:23:27.716 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up changes in Wiktionary (English) in 0.02 seconds
2024-04-29 20:23:27.717 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:23:27.719 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:23:27.726 | DEBUG    | vocabsieve.main:lookup:780 - Same word and trigger as previous, skipping look up
2024-04-29 20:23:34.560 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''direction'''
2024-04-29 20:23:34.563 | DEBUG    | vocabsieve.ui.searchable_boldable_text_edit:bold:11 - bolding direction
2024-04-29 20:23:34.577 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up direction in [<vocabsieve.sources.wiktionary_source.WiktionarySource object at 0x7d021d3449d0>]
2024-04-29 20:23:34.579 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up direction in [<vocabsieve.sources.google_translate_source.GoogleTranslateSource object at 0x7d021cdbfc10>]
2024-04-29 20:23:34.581 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup direction
2024-04-29 20:23:34.581 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up direction in Wiktionary
2024-04-29 20:23:34.608 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up direction in Google Translate in 0.03 seconds
2024-04-29 20:23:34.609 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: ConnectionError(MaxRetryError('HTTPSConnectionPool(host=\'kaikki.org\', port=443): Max retries exceeded with url: /dictionary/English/meaning/d/di/direction.json (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7d01f5f8cb90>: Failed to resolve \'kaikki.org\' ([Errno -3] Temporary failure in name resolution)"))'))
2024-04-29 20:23:34.611 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:23:34.612 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up direction in Wiktionary
2024-04-29 20:23:34.620 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: ConnectionError(MaxRetryError('HTTPSConnectionPool(host=\'kaikki.org\', port=443): Max retries exceeded with url: /dictionary/English/meaning/d/di/direction.json (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7d01f5f8b190>: Failed to resolve \'kaikki.org\' ([Errno -3] Temporary failure in name resolution)"))'))
2024-04-29 20:23:34.622 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up direction in Wiktionary (English) in 0.04 seconds
2024-04-29 20:23:34.630 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:23:34.647 | DEBUG    | vocabsieve.main:lookup:780 - Same word and trigger as previous, skipping look up
2024-04-29 20:23:53.806 | DEBUG    | vocabsieve.record:getKnownData:338 - No known data in this session. Creating known data from database..
2024-04-29 20:23:53.807 | DEBUG    | vocabsieve.record:_refreshKnownData:407 - Processed lookup data in 0.00 seconds
2024-04-29 20:23:53.807 | DEBUG    | vocabsieve.record:_refreshKnownData:417 - Processed seen data in 0.00 seconds
2024-04-29 20:23:53.808 | DEBUG    | vocabsieve.record:_refreshKnownData:422 - Anki disabled, skipping
2024-04-29 20:24:02.567 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:__init__:25 - Initializing BookAnalyzer
2024-04-29 20:24:04.314 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:49 - Known words: 0
2024-04-29 20:24:09.082 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:63 - Split book in 4.660861968994141 seconds.
2024-04-29 20:24:10.207 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:67 - Lemmatized book in 1.1234493255615234 seconds.
2024-04-29 20:24:10.994 | ERROR    | vocabsieve.uncaught_hook:make_error_box:17 - Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

2024-04-29 20:24:35.056 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update''''
2024-04-29 20:24:55.756 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py'''
2024-04-29 20:24:55.759 | DEBUG    | vocabsieve.ui.searchable_boldable_text_edit:bold:11 - bolding /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy
2024-04-29 20:24:55.769 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in [<vocabsieve.sources.wiktionary_source.WiktionarySource object at 0x7d021d3449d0>]
2024-04-29 20:24:55.771 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in [<vocabsieve.sources.google_translate_source.GoogleTranslateSource object at 0x7d021cdbfc10>]
2024-04-29 20:24:55.772 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in Wiktionary
2024-04-29 20:24:55.778 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy
2024-04-29 20:24:56.327 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning////h//home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy.json')
2024-04-29 20:24:56.329 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in Wiktionary
2024-04-29 20:24:56.577 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning////h//home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy.json')
2024-04-29 20:24:56.579 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in Wiktionary (English) in 0.81 seconds
2024-04-29 20:24:56.582 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:24:56.753 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up /home/<username>/local/pipx/venvs/vocabsieve/lib/python311/site-packages/vocabsieve/analyzer/BookAnalyzerpy in Google Translate in 0.97 seconds
2024-04-29 20:24:56.754 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:26:53.806 | DEBUG    | vocabsieve.record:getKnownData:351 - Known data is 180.00 s old, which is newer than the specified lifetime of 1800 s. Not refreshing now.
2024-04-29 20:28:13.306 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''AttributeError: 'list' object has no attribute 'update''''
2024-04-29 20:29:16.556 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''self.known_words.update'''
2024-04-29 20:29:16.557 | DEBUG    | vocabsieve.ui.searchable_boldable_text_edit:bold:11 - bolding selfknown_wordsupdate
2024-04-29 20:29:16.566 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up selfknown_wordsupdate in [<vocabsieve.sources.wiktionary_source.WiktionarySource object at 0x7d021d3449d0>]
2024-04-29 20:29:16.567 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up selfknown_wordsupdate in [<vocabsieve.sources.google_translate_source.GoogleTranslateSource object at 0x7d021cdbfc10>]
2024-04-29 20:29:16.568 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up selfknown_wordsupdate in Wiktionary
2024-04-29 20:29:16.570 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup selfknown_wordsupdate
2024-04-29 20:29:16.995 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning/s/se/selfknown_wordsupdate.json')
2024-04-29 20:29:16.998 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up selfknown_wordsupdate in Wiktionary
2024-04-29 20:29:17.338 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning/s/se/selfknown_wordsupdate.json')
2024-04-29 20:29:17.341 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up selfknown_wordsupdate in Wiktionary (English) in 0.77 seconds
2024-04-29 20:29:17.345 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:29:19.058 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up selfknown_wordsupdate in Google Translate in 2.49 seconds
2024-04-29 20:29:19.060 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:29:53.806 | DEBUG    | vocabsieve.record:getKnownData:351 - Known data is 360.00 s old, which is newer than the specified lifetime of 1800 s. Not refreshing now.
2024-04-29 20:31:56.665 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''getKnownWords'''
2024-04-29 20:32:53.805 | DEBUG    | vocabsieve.record:getKnownData:351 - Known data is 540.00 s old, which is newer than the specified lifetime of 1800 s. Not refreshing now.
2024-04-29 20:33:52.459 | DEBUG    | vocabsieve.ui.searchable_boldable_text_edit:bold:11 - bolding getKnownWords
2024-04-29 20:33:52.492 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up getKnownWords in [<vocabsieve.sources.wiktionary_source.WiktionarySource object at 0x7d021d3449d0>]
2024-04-29 20:33:52.493 | DEBUG    | vocabsieve.ui.multi_definition_widget:lookup:135 - Looking up getKnownWords in [<vocabsieve.sources.google_translate_source.GoogleTranslateSource object at 0x7d021cdbfc10>]
2024-04-29 20:33:52.493 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up getKnownWords in Wiktionary
2024-04-29 20:33:52.495 | INFO     | vocabsieve.sources.forvo_audio_source:_lookup:173 - Forvo lookup getKnownWords
2024-04-29 20:33:52.936 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning/g/ge/getKnownWords.json')
2024-04-29 20:33:52.937 | INFO     | vocabsieve.sources.wiktionary_source:_lookup:20 - Looking up getKnownWords in Wiktionary
2024-04-29 20:33:53.186 | ERROR    | vocabsieve.sources.wiktionary_source:_lookup:26 - Failed to get data from Wiktionary: HTTPError('404 Client Error: Not Found for url: https://kaikki.org/dictionary/English/meaning/g/ge/getKnownWords.json')
2024-04-29 20:33:53.187 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up getKnownWords in Wiktionary (English) in 0.69 seconds
2024-04-29 20:33:53.188 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:33:56.559 | DEBUG    | vocabsieve.ui.multi_definition_widget:run:70 - LookupWorker: looked up getKnownWords in Google Translate in 4.06 seconds
2024-04-29 20:33:56.559 | DEBUG    | vocabsieve.ui.multi_definition_widget:appendDefinition:164 - All sources have been looked up
2024-04-29 20:34:13.089 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:__init__:25 - Initializing BookAnalyzer
2024-04-29 20:34:14.224 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:49 - Known words: 0
2024-04-29 20:34:17.751 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:63 - Split book in 3.4568443298339844 seconds.
2024-04-29 20:34:18.636 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:67 - Lemmatized book in 0.8844552040100098 seconds.
2024-04-29 20:34:18.974 | ERROR    | vocabsieve.uncaught_hook:make_error_box:17 - Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

2024-04-29 20:35:35.306 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''AttributeError: 'list' object has no attribute 'update''''
2024-04-29 20:35:53.806 | DEBUG    | vocabsieve.record:getKnownData:351 - Known data is 720.00 s old, which is newer than the specified lifetime of 1800 s. Not refreshing now.
2024-04-29 20:35:55.363 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:__init__:25 - Initializing BookAnalyzer
2024-04-29 20:35:56.432 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:49 - Known words: 0
2024-04-29 20:35:58.208 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:63 - Split book in 1.7199058532714844 seconds.
2024-04-29 20:35:58.575 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:67 - Lemmatized book in 0.36592793464660645 seconds.
2024-04-29 20:35:58.764 | ERROR    | vocabsieve.uncaught_hook:make_error_box:17 - Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

2024-04-29 20:36:36.131 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:__init__:25 - Initializing BookAnalyzer
2024-04-29 20:36:37.996 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:49 - Known words: 0
2024-04-29 20:36:53.974 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:63 - Split book in 15.861778736114502 seconds.
2024-04-29 20:36:54.950 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:67 - Lemmatized book in 0.9748063087463379 seconds.
2024-04-29 20:36:55.368 | ERROR    | vocabsieve.uncaught_hook:make_error_box:17 - Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

2024-04-29 20:37:00.006 | DEBUG    | vocabsieve.main:pollClipboard:137 - Polling: Clipboard text changed to '''Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update''''
2024-04-29 20:38:31.093 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:__init__:25 - Initializing BookAnalyzer
2024-04-29 20:38:31.745 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:49 - Known words: 0
2024-04-29 20:38:33.512 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:63 - Split book in 1.704442024230957 seconds.
2024-04-29 20:38:33.884 | DEBUG    | vocabsieve.analyzer.BookAnalyzer:initWidgets:67 - Lemmatized book in 0.37126922607421875 seconds.
2024-04-29 20:38:34.088 | ERROR    | vocabsieve.uncaught_hook:make_error_box:17 - Traceback (most recent call last):
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/main.py", line 360, in onAnalyzeBook
    BookAnalyzer(self, path).open()
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 38, in __init__
    self.initWidgets()
  File "/home/<username>/.local/pipx/venvs/vocabsieve/lib/python3.11/site-packages/vocabsieve/analyzer/BookAnalyzer.py", line 94, in initWidgets
    self.known_words.update(topN)
    ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'update'

2024-04-29 20:38:41.614 | DEBUG    | vocabsieve.main:pollClipboard:132 - Polling: Clipboard image changed
2024-04-29 20:38:41.684 | DEBUG    | vocabsieve.main:setImage:832 - Received image, saving to disk as 1714412321684.png
2024-04-29 20:38:53.806 | DEBUG    | vocabsieve.record:getKnownData:351 - Known data is 900.00 s old, which is newer than the specified lifetime of 1800 s. Not refreshing now.

Desktop

  • OS: Arch Linux
  • Vocabsieve version: 0.12.0
  • Python: 3.11.9

Additional context:

The books I tried are all English-language direct-to-digital EPUBs from Springer, either about science or programming, if that matters.

@JinEnMok JinEnMok added the bug Something isn't working label Apr 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant