OpenVoiceOS / OpenVoiceOS/ovos-plugin-manager

[BUG] find_plugins() does not find skills with numbers in the entrypoint

Open
#172 1 comment 0 reactions 1 assignee View on GitHub

@JarbasAl is already working on this.

Since Aug 14, 2023.

bug
Dominant language
Python
Stars
14
Forks
14
Avg merge
2d 19h
Merged PRs (30d)
9

Description

I'm working on a skill that keeps the code in a subfolder, per Python standard practice. The subfolder originally had a number in it. find_skill_plugins() did not identify it as a plugin. When I removed the number, it found it without a problem.

TODO: Confirm if it's other numbers or just the one.

Original folder (skill_mark2_audio_receiver):

>>> find_skill_plugins()
{'neon_homeassistant_skill.mikejgray': <class 'neon_homeassistant_skill.NeonHomeAssistantSkill'>, 'skill-about.neongeckocom': <class 'skill_about.AboutSkill'>, 'skill-alerts.neongeckocom': <class 'skill_alerts.AlertSkill'>, 'skill-audio_record.neongeckocom': <class 'skill_audio_record.AudioRecordSkill'>, 'skill-caffeinewiz.neongeckocom': <class 'skill_caffeinewiz.CaffeineWizSkill'>, 'skill-camera.neongeckocom': <class 'skill_camera.CameraSkill'>, 'skill-communication.neongeckocom': <class 'skill_communication.CommunicationSkill'>, 'skill-data_controls.neongeckocom': <class 'skill_data_controls.DataControlsSkill'>, 'skill-date_time.neongeckocom': <class 'skill_date_time.TimeSkill'>, 'skill-demo.neongeckocom': <class 'skill_demo.DemoSkill'>, 'skill-device_controls.neongeckocom': <class 'skill_device_controls.DeviceControlCenterSkill'>, 'skill-fallback_llm.neongeckocom': <class 'skill_fallback_llm.LLMSkill'>, 'skill-fallback_unknown.neongeckocom': <class 'skill_fallback_unknown.UnknownSkill'>, 'skill-fallback_wolfram_alpha.neongeckocom': <class 'skill_fallback_wolfram_alpha.WolframAlphaSkill'>, 'skill-free_music_archive.neongeckocom': <class 'skill_free_music_archive.FreeMusicArchiveSkill'>, 'skill-instructions.neongeckocom': <class 'skill_instructions.InstructionsSkill'>, 'skill-ip_address.neongeckocom': <class 'skill_ip_address.IPSkill'>, 'skill-launcher.neongeckocom': <class 'skill_launcher.LauncherSkill'>, 'skill-local_music.neongeckocom': <class 'skill_local_music.LocalMusicSkill'>, 'skill-personal.neongeckocom': <class 'skill_personal.PersonalSkill'>, 'skill-speak.neongeckocom': <class 'skill_speak.SpeakSkill'>, 'skill-speed_test.neongeckocom': <class 'skill_speed_test.SpeedTestSkill'>, 'skill-spelling.neongeckocom': <class 'skill_spelling.SpellingSkill'>, 'skill-stock.neongeckocom': <class 'skill_stock.StockSkill'>, 'skill-support_helper.neongeckocom': <class 'skill_support_helper.SupportSkill'>, 'skill-synonyms.neongeckocom': <class 'skill_synonyms.SynonymsSkill'>, 'skill-translation.neongeckocom': <class 'skill_translation.TranslationSkill'>, 'skill-update.neongeckocom': <class 'skill_update.UpdateSkill'>, 'skill-user_settings.neongeckocom': <class 'skill_user_settings.UserSettingsSkill'>, 'skill-weather.neongeckocom': <class 'skill_weather.WeatherSkill'>, 'skill-wikipedia.neongeckocom': <class 'skill_wikipedia.WikipediaSkill'>, 'skill-ovos-homescreen.openvoiceos': <class 'skill_ovos_homescreen.OVOSHomescreenSkill'>, 'skill-icanhazdadjokes.jarbasskills': <class 'skill_icanhazdadjokes.JokingSkill'>, 'skill-ovos-setup.openvoiceos': <class 'skill_ovos_setup.PairingSkill'>, 'skill-ovos-somafm.openvoiceos': <class 'skill_ovos_somafm.SomaFMSkill'>, 'skill-ovos-stop.openvoiceos': <class 'skill_ovos_stop.StopSkill'>, 'skill-ovos-volume.openvoiceos': <class 'skill_ovos_volume.VolumeSkill'>, 'skill-ovos-ddg.openvoiceos': <class 'skill_ovos_ddg.DuckDuckGoSkill'>, 'skill-ovos-news.openvoiceos': <class 'skill_ovos_news.NewsSkill'>}

After changing (skill_markII_audio_receiver):

Python 3.10.0 (default, Aug 13 2023, 04:39:47) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import skill_mark2_audio_receiver
from ovos_plugin_manager.skills import find_skill_plugins
2023-08-14 14:49:47.557 - OVOS - ovos_utils.configuration:get_xdg_config_save_path - WARNING - Deprecation version=0.1.0. Caller=ovos_backend_client.identity:61. configuration moved to the `ovos_config` package.
2023-08-14 14:49:58.747 - OVOS - ovos_utils.configuration:get_xdg_base - WARNING - Deprecation version=0.1.0. Caller=ovos_backend_client.identity:62. configuration moved to the `ovos_config` package.
2023-08-14 14:50:20.449 - OVOS - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-files-plugin
2023-08-14 14:50:21.541 - OVOS - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-m3u-plugin
2023-08-14 14:50:22.652 - OVOS - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-news-plugin
2023-08-14 14:50:23.646 - OVOS - ovos_plugin_manager.ocp:load:54 - INFO - Loaded OCP plugin: ovos-ocp-rss-plugin
>>> from ovos_plugin_manager.skills import find_skill_plugins
>>> find_skill_plugins()
{'neon_homeassistant_skill.mikejgray': <class 'neon_homeassistant_skill.NeonHomeAssistantSkill'>, 'skill-about.neongeckocom': <class 'skill_about.AboutSkill'>, 'skill-alerts.neongeckocom': <class 'skill_alerts.AlertSkill'>, 'skill-audio_record.neongeckocom': <class 'skill_audio_record.AudioRecordSkill'>, 'skill-caffeinewiz.neongeckocom': <class 'skill_caffeinewiz.CaffeineWizSkill'>, 'skill-camera.neongeckocom': <class 'skill_camera.CameraSkill'>, 'skill-communication.neongeckocom': <class 'skill_communication.CommunicationSkill'>, 'skill-data_controls.neongeckocom': <class 'skill_data_controls.DataControlsSkill'>, 'skill-date_time.neongeckocom': <class 'skill_date_time.TimeSkill'>, 'skill-demo.neongeckocom': <class 'skill_demo.DemoSkill'>, 'skill-device_controls.neongeckocom': <class 'skill_device_controls.DeviceControlCenterSkill'>, 'skill-fallback_llm.neongeckocom': <class 'skill_fallback_llm.LLMSkill'>, 'skill-fallback_unknown.neongeckocom': <class 'skill_fallback_unknown.UnknownSkill'>, 'skill-fallback_wolfram_alpha.neongeckocom': <class 'skill_fallback_wolfram_alpha.WolframAlphaSkill'>, 'skill-free_music_archive.neongeckocom': <class 'skill_free_music_archive.FreeMusicArchiveSkill'>, 'skill-instructions.neongeckocom': <class 'skill_instructions.InstructionsSkill'>, 'skill-ip_address.neongeckocom': <class 'skill_ip_address.IPSkill'>, 'skill-launcher.neongeckocom': <class 'skill_launcher.LauncherSkill'>, 'skill-local_music.neongeckocom': <class 'skill_local_music.LocalMusicSkill'>, 'skill-personal.neongeckocom': <class 'skill_personal.PersonalSkill'>, 'skill-speak.neongeckocom': <class 'skill_speak.SpeakSkill'>, 'skill-speed_test.neongeckocom': <class 'skill_speed_test.SpeedTestSkill'>, 'skill-spelling.neongeckocom': <class 'skill_spelling.SpellingSkill'>, 'skill-stock.neongeckocom': <class 'skill_stock.StockSkill'>, 'skill-support_helper.neongeckocom': <class 'skill_support_helper.SupportSkill'>, 'skill-synonyms.neongeckocom': <class 'skill_synonyms.SynonymsSkill'>, 'skill-translation.neongeckocom': <class 'skill_translation.TranslationSkill'>, 'skill-update.neongeckocom': <class 'skill_update.UpdateSkill'>, 'skill-user_settings.neongeckocom': <class 'skill_user_settings.UserSettingsSkill'>, 'skill-weather.neongeckocom': <class 'skill_weather.WeatherSkill'>, 'skill-wikipedia.neongeckocom': <class 'skill_wikipedia.WikipediaSkill'>, 'skill-ovos-homescreen.openvoiceos': <class 'skill_ovos_homescreen.OVOSHomescreenSkill'>, 'skill-icanhazdadjokes.jarbasskills': <class 'skill_icanhazdadjokes.JokingSkill'>, 'skill-ovos-setup.openvoiceos': <class 'skill_ovos_setup.PairingSkill'>, 'skill-ovos-somafm.openvoiceos': <class 'skill_ovos_somafm.SomaFMSkill'>, 'skill-ovos-stop.openvoiceos': <class 'skill_ovos_stop.StopSkill'>, 'skill-ovos-volume.openvoiceos': <class 'skill_ovos_volume.VolumeSkill'>, 'skill-ovos-ddg.openvoiceos': <class 'skill_ovos_ddg.DuckDuckGoSkill'>, 'skill-ovos-news.openvoiceos': <class 'skill_ovos_news.NewsSkill'>, 'skill-mark2-audio-receiver.mikejgray': <class 'skill_mark2_audio_receiver.MarkIIAudioReceiverSkill'>}
>>>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.