dictation-toolbox / dragonfly

Speech recognition framework allowing powerful Python-based scripting and extension of Dragon NaturallySpeaking (DNS), Windows Speech Recognition (WSR), Kaldi and CMU Pocket Sphinx
GNU Lesser General Public License v3.0
388 stars 75 forks source link

module 'inspect' has no attribute 'getargspec' #377

Open Timoses opened 1 year ago

Timoses commented 1 year ago
ERROR:castervoice.ContextManager:Error while applying plugin specific context in context 'caster_timoses.tmux'. Unable to get context for plugin caster_timoses.tmux: module 'inspect' has no attribute 'getargspec'
Traceback (most recent call last):
  File "/opt/code/voice/caster-core/castervoice/core/context.py", line 71, in load
    .get_plugin_context(self._plugin_id,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/code/voice/caster-core/castervoice/core/context_manager.py", line 85, in get_plugin_context
    .get_context(plugin_id, desired_state)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/code/voice/caster-core/castervoice/core/plugin/plugin_manager.py", line 160, in get_context
    get(plugin_id, None).get_context(desired_state)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/code/voice/caster-timoses/caster_timoses/tmux/__init__.py", line 104, in get_context
    context = FuncContext(pane_cmd, **defaults)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/code/voice/venv3/lib/python3.11/site-packages/dragonfly/grammar/context.py", line 393, in __init__
    (args, _, varkw, defaults) = inspect.getargspec(self._function)
                                 ^^^^^^^^^^^^^^^^^^
AttributeError: module 'inspect' has no attribute 'getargspec'

According to inspect documentation (python 3.11) getargspec is legacy.

> pip list | grep dragon
dragonfly2           0.35.0
drmfinlay commented 1 year ago

Hello @Timoses,

Thank you for bringing this problem to my attention. It looks like this is the only use of that function that wasn't patched.

This will be fixed in the next version (1.0.0). I expect to have that out sometime next month. For the moment, you can fix it manually by changing line 393 in context.py to the following:

(args, _, varkw, defaults) = inspect.getfullargspec(self._function)[0:4]
Kentoseth commented 6 months ago

This change has not yet been pushed to PyPI which is still causing the errors specified above.

drmfinlay commented 6 months ago

I published a release candidate version (1.0.0-rc2) with the change. I'm planning to release version 1.0.0 proper very soon.