Commit Graph

270 Commits (refactor/python-detect)

Author SHA1 Message Date
Åke Forslund 6b5d45e507 Do not create configs folders until writing
This replaces save_*_path with usage of the xdg_*_home when handling
config files. This means the config folders will not be created unless
actually written to.

The check for whether a directory needs to be created is handled behind
a lock to avoid race conditions
2021-11-30 22:50:09 +01:00
Kris Gesling 77549d01e2
Remove incorrectly added args in GUIWebsocketHandler methods (#3036)
PR #2879 updated the websocket-client and changed function
signatures to account for API changes in that package. These
were falsely changed as the GUI bus does not use the
websocket-client.

Consistency would be good however modifying the protocols
would require significant work. For now we have two slightly
different bus interfaces.
2021-11-22 15:00:20 +09:30
jarbasal f8f640e3e5 fix/race condition dictionary changed iteration
bus events could cause the dict to change while being iterated
2021-11-04 13:37:54 +09:30
Bart Ribbers 34ee3a9a84
Upgrade websocket-client to 1.2.1 (#2879)
* Upgrade websocket-client to 1.2.1

core equivalent of https://github.com/MycroftAI/mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility. Since
messagebus-client was going to depend on websocket-client 1.2.1, let's
do the same in core

* Bump message bus client and tornado versions

New version of the messagebus-client released.
Upgraded Tornado to match new function signature.

* Revert removal of websocket-client

It is still used in the `mycroft.client.text.gui_server`

Should investigate removal of this so that websocket client versions do not need to be
kept in sync between mycroft-core and mycroft-messagebus-client.

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-10-28 14:42:23 +09:30
Åke Forslund 3fd96cf71b WIP Review comments
- Add TODO for 22.02 to remove the compatibility code
- Make Warning a single Log statement
- mycroft-config script now uses XDG-environment variable
- Remove redundant code
- Replace hard coded references to ~/.config
- Explicitly remove new path before move of "filesystem" (if needed)
2021-08-05 10:04:45 +02:00
Åke Forslund 9029dc1f41 Slight cleanup
- Make XDG usage more visible by using the xdg module prefix
- fix overloaded python keywords
- remove unused imports
2021-08-05 10:04:45 +02:00
Bart Ribbers e20443b824 Use XDG Base directories for settings, cache and runtime data
Improve deprecation warning message
2021-08-05 10:04:45 +02:00
Kris Gesling e75a05557b docstring cleanup 2021-05-11 15:10:32 +09:30
Kris Gesling 0fb90edd28 Rename to get_temp_path and add docstring 2021-04-30 16:49:59 +09:30
Kris Gesling d49ccc8b7a Fix typo and auto-format 2021-04-30 15:58:10 +09:30
dzekem christa 4547752c66 minor errors fixed 2021-04-30 14:48:15 +09:30
dzekem christa 7765d11224 ran autopep8 2021-04-30 14:48:15 +09:30
dzekem christa 3f745c52ad created temp path function 2021-04-30 14:47:49 +09:30
dzekem christa 304439ed4b minor fixes 2021-04-30 14:46:36 +09:30
dzekem christa d659179645 more fixes 2021-04-30 14:46:36 +09:30
dzekem christa 621b4ab650 spaces added and uniformity in code 2021-04-30 14:46:36 +09:30
dzekem christa 9252158829 rectified pep8 issues 2021-04-30 14:46:36 +09:30
dzekem christa 32f666edd4 Issue-2727 - fixing hard coded /tmp 2021-04-30 14:46:36 +09:30
dzekem christa a174c3c822 replaced hard coded /tmp 2021-04-30 14:46:36 +09:30
Åke Forslund 5df15245c4 Add Todo / comment regarding startup order 2021-01-28 17:24:21 +01:00
Kris Gesling 8a1ee0e106 Move ready check to enclosure; use ProcessStatus
Previously Mycroft reported mycroft.ready when Padatious had
finished it's first training run. This check has been shifted
to the enclosure service, and starts checking once the Padatious
training is complete.

Currently checks on readiness of audio, speech and skills services.
2021-01-28 17:24:21 +01:00
Kris Gesling 303f6a3b95
Merge pull request #2792 from MycroftAI/feature/common-bus-connection
Refactor - common bus connection method
2021-01-18 15:58:37 +09:30
Kris Gesling 974be29c57
Merge pull request #2781 from AIIX/fix/network_remove_pages
Fix missing remove page implementation, show idle if all pages removed
2021-01-11 21:58:22 +09:30
Aditya Mehra 7c2ca269e2 use mycroft.device.show.idle 2021-01-11 15:11:16 +05:30
Kris Gesling ad32a7a873 move bus connect method to process_utils 2021-01-11 16:57:25 +09:30
Aditya Mehra eea66b4376 remove platform check and make the idle emit general 2021-01-06 13:20:17 +05:30
Kris Gesling 81eae60b61
Merge pull request #2758 from MycroftAI/refactor/enclosure-startup
Ensure messagebus is connected before reporting that the service is ready
2021-01-05 20:55:59 +09:30
Åke Forslund 9d450b5890 Unshadow Message class in _handle_pairing_complete
Fixes a small typo making the unmute after first pairing call fail.
2021-01-04 21:38:05 +01:00
Aditya Mehra 9ed6baef22 fix case indentation 2020-12-18 14:03:08 +05:30
Aditya Mehra 89a07d05ab Add missing remove page implementation and show idle if all pages removed 2020-12-18 12:52:44 +05:30
Kris Gesling ce7331fbbb Ensure messagebus connected before reporting ready
Switch to new standard method to connect to bus client
Ensure exceptions during .run() are raised to the Enclosure service
Add missing .stop() method to base Enclosure Class
Shift call of .stop() to after exit signal
2020-11-12 16:41:37 +09:30
Aditya Mehra 3a33284f62 add missing skill_id parameter for page interaction and focus events 2020-10-23 13:34:01 +05:30
JarbasAI 4d3cd33d4a
Feat/self.gui.connected (#2682)
* expose gui connection status

* gui.status.request.response

Co-authored-by: jarbasal <jarbasai@mailfence.com>
2020-09-16 17:02:46 +09:30
Åke Forslund 236a2ed594 Add hook for stopping 2020-07-22 11:06:47 +02:00
Åke Forslund 09b1deb511 Add possibility for notification hooks for services
- skills
- audio
- speech client
- messagebus service
- enclosure

The main functions now accepts the arguments ready_hook and error_hook
allowing a service or runner script to catch these states and perform
actions accordingly.

This is useful for things like systemd or a desktop launcher.

Fix audio service startup
2020-07-22 10:52:27 +02:00
Bart Ribbers 531f78c499
Move requirements.txt to a new requirements folder and add optional deps
Some dependencies aren't actually required but can be optionally
installed for extra functionality.

The Chromecast is an optional audio backend
VLC is an optional audio backend
pyalsaaudio is only used by the mark1 enclosure
google-api-python-client is an optional STT backend, by default Mycroft
uses the Mycroft servers
2020-05-11 15:31:10 +02:00
Åke Forslund 6d13872638 Cleanup of the enclosure entrypoint
- split out enclosure determination code
- Add docstrings
- Increase logging
2020-04-16 10:58:07 +02:00
Åke Forslund 290d950424 Fix shutdown of enclosure process
Previously it would always be killed, now it exits smoothly.
2020-04-16 09:47:53 +02:00
Åke Forslund b7cf8e755e Remove origin check from gui websocket
This allows simple websocket clients to connect as well.
2020-04-04 09:15:47 +02:00
Åke Forslund 4f65591c21 Simplify the GUI websocket code
Use a single websocket but don't send data from clients to other
clients.
2020-04-04 09:13:51 +02:00
jarbasal 9d712a898f Update docstrings 2020-03-30 12:05:58 +02:00
jarbasal efc9af558a Read mark1 eye color 2020-03-30 12:05:49 +02:00
Åke 05cae9d319
Merge pull request #2429 from MycroftAI/bug/mark1_faceplate
mark1/fix display big images
2020-03-06 18:10:40 +01:00
Åke Forslund 2070e9aac9 Bump enclosure version 2020-03-02 15:25:22 +01:00
JarbasAI 46af6fcff2
mark1/fix display big images
https://github.com/MycroftAI/enclosure-mark1/blob/master/protocols.txt#L141

according to the spec there is a bug
2019-12-17 01:34:08 +00:00
Åke Forslund 04e9812992 Asyncio updates for gui connections
- Workaround, ensure asyncio event loop is launched on each thread.
2019-11-26 14:21:49 +01:00
Chris Veilleux 0bde1bc9df Refactor skill service (#2220)
Major refactoring of the skills startup sequence
- Restructure to a less nested structure
- Remove usage of globals by wrapping a lot of state variables into a class this allows for things like caching a negative pairing status throughout the startup process
2019-07-26 08:53:27 +02:00
Chris Veilleux d8f3095d40 Rename the message bus client and abstract config loading
Message bus config loading is now shared by service and client.

messagebus.client.ws file is still available in case skills are using it. It is a backport that inherits from the new MessageBusClient class. Adds depreciation warning.
2019-07-19 08:16:54 +02:00
Åke 6357513970 GUI updates (#2114)
* Catch the new system.gui.user.interaction

This will in turn trigger the gui.page_interaction similar to the page flip but page_number will be None

* Fix issue when adding pages

Seems like appending would fail at times

* Add lock around namespace modifications

* Improve argument description for override_idle
2019-05-31 03:44:09 -05:00
Åke 566630d9e3 Fix infinily adding pages to existing namespace (#2093)
Update the local representation with the new pages when appending pages to an existing namespace.
2019-04-11 13:24:43 -05:00