Skip to content

Commit

Permalink
Feat/lingua nostra (#6)(#7)
Browse files Browse the repository at this point in the history
Co-authored-by: jarbasal <[email protected]>
  • Loading branch information
JarbasAl and JarbasAl committed Apr 12, 2021
1 parent 2ba40c2 commit 2e776e7
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 63 deletions.
4 changes: 4 additions & 0 deletions mycroft/skills/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
wait_for_exit_signal
)
from mycroft.util.lang import set_default_lang
from mycroft.util.time import set_default_tz
from mycroft.util.log import LOG
from mycroft.util.process_utils import ProcessStatus, StatusCallbackMap

Expand Down Expand Up @@ -202,6 +203,9 @@ def main(alive_hook=on_alive, started_hook=on_started, ready_hook=on_ready,
# Set the active lang to match the configured one
set_default_lang(config.get('lang', 'en-us'))

# Set the default timezone to match the configured one
set_default_tz()

# Connect this process to the Mycroft message bus
bus = start_message_bus_client("SKILLS")
_register_intent_services(bus)
Expand Down
5 changes: 4 additions & 1 deletion mycroft/skills/intent_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

from mycroft.configuration import Configuration
from mycroft.util.lang import set_default_lang
from mycroft.util.time import set_default_tz
from mycroft.util.log import LOG
from mycroft.util.parse import normalize
from mycroft.metrics import report_timing, Stopwatch
Expand Down Expand Up @@ -153,7 +154,8 @@ def get_skill_name(self, skill_id):
def reset_converse(self, message):
"""Let skills know there was a problem with speech recognition"""
lang = _get_message_lang(message)
set_default_lang(lang)
set_default_lang(lang) # restore default lang
set_default_tz() # restore default timezone
for skill in copy(self.active_skills):
self.do_converse(None, skill[0], lang, message)

Expand Down Expand Up @@ -275,6 +277,7 @@ def handle_utterance(self, message):
try:
lang = _get_message_lang(message)
set_default_lang(lang)
set_default_tz() # set default timezone

utterances = message.data.get('utterances', [])
combined = _normalize_all_utterances(utterances)
Expand Down
2 changes: 1 addition & 1 deletion mycroft/util/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from difflib import SequenceMatcher
from warnings import warn

import lingua_franca.parse

from lingua_franca import get_default_lang, get_primary_lang_code
from lingua_franca.parse import extract_number, extract_numbers, \
extract_duration, get_gender, normalize
Expand Down
57 changes: 3 additions & 54 deletions mycroft/util/time.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
"""
from datetime import datetime
from dateutil.tz import gettz, tzlocal
from lingua_franca.time import now_utc, now_local, to_local, to_utc, \
default_timezone as _default_tz


def default_timezone():
Expand All @@ -42,60 +44,7 @@ def default_timezone():
return gettz(code)
except Exception:
# Just go with system default timezone
return tzlocal()


def now_utc():
"""Retrieve the current time in UTC
Returns:
(datetime): The current time in Universal Time, aka GMT
"""
return to_utc(datetime.utcnow())


def now_local(tz=None):
"""Retrieve the current time
Arguments:
tz (datetime.tzinfo, optional): Timezone, default to user's settings
Returns:
(datetime): The current time
"""
if not tz:
tz = default_timezone()
return datetime.now(tz)


def to_utc(dt):
"""Convert a datetime with timezone info to a UTC datetime
Arguments:
dt (datetime): A datetime (presumably in some local zone)
Returns:
(datetime): time converted to UTC
"""
tzUTC = gettz("UTC")
if dt.tzinfo:
return dt.astimezone(tzUTC)
else:
return dt.replace(tzinfo=gettz("UTC")).astimezone(tzUTC)


def to_local(dt):
"""Convert a datetime to the user's local timezone
Arguments:
dt (datetime): A datetime (if no timezone, defaults to UTC)
Returns:
(datetime): time converted to the local timezone
"""
tz = default_timezone()
if dt.tzinfo:
return dt.astimezone(tz)
else:
return dt.replace(tzinfo=gettz("UTC")).astimezone(tz)
return _default_tz()


def to_system(dt):
Expand Down
6 changes: 2 additions & 4 deletions requirements/minimal.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
requests
pyee
#lingua-franca
git+https://github.com/HelloChatterbox/[email protected]
lingua-nostra==0.4.0a2
pyxdg
#mycroft-messagebus-client
git+https://github.com/HelloChatterbox/mycroft-messagebus-client
mycroft-messagebus-client>=0.9.1
inflection
psutil
fasteners
Expand Down
2 changes: 1 addition & 1 deletion requirements/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ python-dateutil==2.6.0
fasteners==0.14.1
PyYAML==5.4

lingua-franca==0.2.2
lingua-nostra==0.4.0a2
msm==0.8.8
msk==0.3.16
mycroft-messagebus-client==0.9.1
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
description='Mycroft packaged as a library',
install_requires=["requests",
"pyee",
"lingua-franca>=0.3.1",
"lingua-nostra==0.4.0a2",
"pyxdg",
"mycroft-messagebus-client",
"mycroft-messagebus-client>=0.9.1",
"inflection",
"psutil",
"fasteners",
Expand Down

0 comments on commit 2e776e7

Please sign in to comment.