python-rtmbot
python-rtmbot copied to clipboard
In the case of an error path, `cls` may be undefined on line 155 of core.py
- [X] I've read and understood the Contributing guidelines and have done my best effort to follow them.
- [X] I've read and agree to the Code of Conduct.
- [X] I've searched for any related issues and avoided creating a duplicate issue.
Description
When running using Python 3.6, I get the following error:
Traceback (most recent call last):
File "/usr/local/bin/rtmbot", line 11, in <module>
load_entry_point('rtmbot==0.4.0', 'console_scripts', 'rtmbot')()
File "/usr/local/lib/python3.6/site-packages/rtmbot/bin/run_rtmbot.py", line 31, in main
bot.start()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 99, in start
self._start()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 74, in _start
self.load_plugins()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 155, in load_plugins
plugin_config = self.config.get(cls.__name__, {})
UnboundLocalError: local variable 'cls' referenced before assignment
Reproducible in:
- [ ] This is reproducible in the sample project. RTMBot version: 0.4.0 Python version: 3.6.0 OS Version: Debian Stretch (running RTMBot in python:3.6 docker container)
Steps to reproduce:
- docker run -it python:3.6 bash
- pip install rtmbot
- add a testing rtmbot.conf file
- run
rtmbot
Expected result:
I expected that the bot would run. (well, when real bot code was in the container...)
Actual result:
The following error happened:
root@2dc3d0e0a668:/# rtmbot
Traceback (most recent call last):
File "/usr/local/bin/rtmbot", line 11, in <module>
load_entry_point('rtmbot==0.4.0', 'console_scripts', 'rtmbot')()
File "/usr/local/lib/python3.6/site-packages/rtmbot/bin/run_rtmbot.py", line 31, in main
bot.start()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 99, in start
self._start()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 74, in _start
self.load_plugins()
File "/usr/local/lib/python3.6/site-packages/rtmbot/core.py", line 155, in load_plugins
plugin_config = self.config.get(cls.__name__, {})
UnboundLocalError: local variable 'cls' referenced before assignment
There is a potential that cls is never defined in this code path. It's not specific to Python 3.6. Changing title.
I have run into this same issue @SimplicityGuy. This only occurs when I try specify a BASE_PATH in the rtmbot.conf file. Do you have this same configuration?
I have met the same issue in 0.4.1 Just because I write wrong plugin name in rtmbot.conf