MycroftAI / mycroft-core

Mycroft Core, the Mycroft Artificial Intelligence platform.
https://mycroft.ai
Apache License 2.0
6.52k stars 1.27k forks source link

Pytest test failed: test_unknown_language, test_nice_date_time and test_gender #2845

Closed kevinsmia1939 closed 3 years ago

kevinsmia1939 commented 3 years ago

Hi, I am trying to update mycroft-core in openSUSE Tumbleweed. openSUSE use Open Build Service (OBS) to build and ship their package. This is the repo I'm working on: https://build.opensuse.org/package/show/home:andythe_great/mycroft-core

There are some test failures that I skipped, because it is already known. #2574 Here are new test failure I got.

[   88s] =================================== FAILURES ===================================
[   88s] __________________ TestNiceNumberFormat.test_unknown_language __________________
[   88s] 
[   88s] self = <test.unittests.util.test_format.TestNiceNumberFormat testMethod=test_unknown_language>
[   88s] 
[   88s]     def test_unknown_language(self):
[   88s]         """ An unknown / unhandled language should return the string
[   88s]             representation of the input number.
[   88s]         """
[   88s] >       self.assertEqual(nice_number(5.5, lang='as-fd'), '5.5',
[   88s]                          'should format 5.5 as 5.5 not {}'.format(
[   88s]                              nice_number(5.5, lang='as-df')))
[   88s] E       AssertionError: '5 and a half' != '5.5'
[   88s] E       - 5 and a half
[   88s] E       + 5.5
[   88s] E        : should format 5.5 as 5.5 not 5 and a half
[   88s] 
[   88s] test/unittests/util/test_format.py:98: AssertionError
[   88s] ____________________ TestNiceDateFormat.test_nice_date_time ____________________
[   88s] 
[   88s] self = <test.unittests.util.test_format.TestNiceDateFormat testMethod=test_nice_date_time>
[   88s] 
[   88s]     def test_nice_date_time(self):
[   88s]         for lang in self.test_config:
[   88s]             i = 1
[   88s]             while (self.test_config[lang].get('test_nice_date_time') and
[   88s]                    self.test_config[lang]['test_nice_date_time'].get(str(i))):
[   88s]                 p = self.test_config[lang]['test_nice_date_time'][str(i)]
[   88s]                 dp = ast.literal_eval(p['datetime_param'])
[   88s]                 np = ast.literal_eval(p['now'])
[   88s]                 dt = datetime.datetime(
[   88s]                     dp[0], dp[1], dp[2], dp[3], dp[4], dp[5])
[   88s]                 now = None if not np else datetime.datetime(
[   88s]                     np[0], np[1], np[2], np[3], np[4], np[5])
[   88s]                 print('Testing for ' + lang + ' that ' + str(dt) +
[   88s]                       ' is date time ' + p['assertEqual'])
[   88s]                 self.assertEqual(
[   88s]                     p['assertEqual'],
[   88s] >                   nice_date_time(
[   88s]                         dt, lang=lang, now=now,
[   88s]                         use_24hour=ast.literal_eval(p['use_24hour']),
[   88s]                         use_ampm=ast.literal_eval(p['use_ampm'])))
[   88s] 
[   88s] test/unittests/util/test_format.py:412: 
[   88s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   88s] ../../BUILDROOT/mycroft-core-20.8.1-0.x86_64/usr/lib/python3.8/site-packages/mycroft/util/format.py:130: in nice_date_time
[   88s]     return lingua_franca.format.nice_date_time(dt, lang, now,
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/format.py:348: in nice_date_time
[   88s]     return date_time_format.date_time_format(dt, full_code, now, use_24hour,
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/format.py:212: in date_time_format
[   88s]     time_str = nice_time(dt, lang, use_24hour=use_24hour,
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/internal.py:590: in call_localized_function
[   88s]     return _call_localized_function(func, *args, **kwargs)
[   88s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   88s] 
[   88s] func = <function nice_time at 0x7fc232f58550>
[   88s] args = (datetime.datetime(2017, 1, 31, 13, 22, 3),)
[   88s] kwargs = {'use_24hour': False, 'use_ampm': True}
[   88s] func_signature = <Signature (dt, lang='', speech=True, use_24hour=False, use_ampm=False)>
[   88s] func_params = ['dt', 'lang', 'speech', 'use_24hour', 'use_ampm']
[   88s] lang_param_index = 1, lang_param = 'cs-cz', tmp = 'cs-cz', __use_tmp = True
[   88s] _module_name = 'format'
[   88s] _module = <module 'lingua_franca.lang.format_cs' from '/usr/lib/python3.8/site-packages/lingua_franca/lang/format_cs.py'>
[   88s] 
[   88s]     def _call_localized_function(func, *args, **kwargs):
[   88s]         func_signature = signature(func)
[   88s]         func_params = list(func_signature.parameters)
[   88s]         lang_param_index = func_params.index('lang')
[   88s]         full_lang_code = None
[   88s]     
[   88s]         # Momentarily assume we're not passing a lang code
[   88s]         lang_code = get_default_lang()
[   88s]         if not lang_code:
[   88s]             raise NoSuchModuleError("No language module loaded.")
[   88s]     
[   88s]         # Check if we're passing a lang as a kwarg
[   88s]         if 'lang' in kwargs.keys():
[   88s]             lang_param = kwargs['lang']
[   88s]             if lang_param == None:
[   88s]                 warn(NoneLangWarning)
[   88s]                 lang_code = get_default_lang()
[   88s]             else:
[   88s]                 lang_code = lang_param
[   88s]     
[   88s]         # Check if we're passing a lang as a positional arg
[   88s]         elif lang_param_index < len(args):
[   88s]             lang_param = args[lang_param_index]
[   88s]             if lang_param == None:
[   88s]                 warn(NoneLangWarning)
[   88s]                 lang_code = get_default_lang()
[   88s]             elif lang_param in _SUPPORTED_LANGUAGES or \
[   88s]                     lang_param in _SUPPORTED_FULL_LOCALIZATIONS:
[   88s]                 lang_code = args[lang_param_index]
[   88s]             args = args[:lang_param_index] + args[lang_param_index+1:]
[   88s]     
[   88s]         if lang_code not in _SUPPORTED_LANGUAGES:
[   88s]             try:
[   88s]                 tmp = lang_code
[   88s]                 __use_tmp = True
[   88s]                 lang_code = get_primary_lang_code(lang_code)
[   88s]             except ValueError:
[   88s]                 __error = \
[   88s]                     UnsupportedLanguageError("\nLanguage '{language}' is not yet "
[   88s]                                              "supported by Lingua Franca. "
[   88s]                                              "Supported language codes "
[   88s]                                              "include the following:\n{supported}"
[   88s]                                              .format(
[   88s]                                                  language=lang_code,
[   88s]                                                  supported=_SUPPORTED_FULL_LOCALIZATIONS))
[   88s]                 if UnsupportedLanguageError in run_own_code_on:
[   88s]                     raise __error
[   88s]                 else:
[   88s]                     warn(DeprecationWarning("The following warning will "
[   88s]                                             "become an exception in a future "
[   88s]                                             "version of Lingua Franca." +
[   88s]                                             str(__error)))
[   88s]                     lang_code = get_default_lang()
[   88s]                     full_lang_code = get_full_lang_code()
[   88s]                     __use_tmp = False
[   88s]             if lang_code not in _SUPPORTED_LANGUAGES:
[   88s]                 _raise_unsupported_language(lang_code)
[   88s]             if __use_tmp:
[   88s]                 full_lang_code = tmp
[   88s]         else:
[   88s]             full_lang_code = get_full_lang_code(lang_code)
[   88s]     
[   88s]         # Here comes the ugly business.
[   88s]         _module_name = func.__module__.split('.')[-1]
[   88s]         _module = import_module(".lang." + _module_name +
[   88s]                                 "_" + lang_code, "lingua_franca")
[   88s]         # The nonsense above gets you from lingua_franca.parse
[   88s]         # to lingua_franca.lang.parse_xx
[   88s]         if _module_name not in _localized_functions.keys():
[   88s]             raise NoSuchModuleError("Module lingua_franca." +
[   88s]                                     _module_name + " not recognized")
[   88s]         if lang_code not in _localized_functions[_module_name].keys():
[   88s] >           raise NoSuchModuleError(_module_name + " module of language '" +
[   88s]                                     lang_code + "' is not currently loaded.")
[   88s] E           lingua_franca.internal.NoSuchModuleError: format module of language 'cs' is not currently loaded.
[   88s] 
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/internal.py:531: NoSuchModuleError
[   88s] ----------------------------- Captured stdout call -----------------------------
[   88s] Testing for cs-cz that 2017-01-31 13:22:03 is date time úterý, leden třicátého-prvního, dvacet sedmnáct v jedna dvacet dva p.m.
[   88s] __________________________ TestNormalize.test_gender ___________________________
[   88s] 
[   88s] self = <test.unittests.util.test_parse.TestNormalize testMethod=test_gender>
[   88s] 
[   88s]     def test_gender(self):
[   88s] >       self.assertEqual(get_gender("person"),
[   88s]                          None)
[   88s] 
[   88s] test/unittests/util/test_parse.py:829: 
[   88s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   88s] ../../BUILDROOT/mycroft-core-20.8.1-0.x86_64/usr/lib/python3.8/site-packages/mycroft/util/parse.py:235: in get_gender
[   88s]     return lingua_franca.parse.get_gender(word, context, lang)
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/internal.py:590: in call_localized_function
[   88s]     return _call_localized_function(func, *args, **kwargs)
[   88s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   88s] 
[   88s] func = <function get_gender at 0x7fc23177d040>, args = ('person', '')
[   88s] kwargs = {}, func_signature = <Signature (word, context='', lang='')>
[   88s] func_params = ['word', 'context', 'lang'], lang_param_index = 2
[   88s] lang_param = None, _module_name = 'parse'
[   88s] _module = <module 'lingua_franca.lang.parse_en' from '/usr/lib/python3.8/site-packages/lingua_franca/lang/parse_en.py'>
[   88s] func_name = 'get_gender'
[   88s] 
[   88s]     def _call_localized_function(func, *args, **kwargs):
[   88s]         func_signature = signature(func)
[   88s]         func_params = list(func_signature.parameters)
[   88s]         lang_param_index = func_params.index('lang')
[   88s]         full_lang_code = None
[   88s]     
[   88s]         # Momentarily assume we're not passing a lang code
[   88s]         lang_code = get_default_lang()
[   88s]         if not lang_code:
[   88s]             raise NoSuchModuleError("No language module loaded.")
[   88s]     
[   88s]         # Check if we're passing a lang as a kwarg
[   88s]         if 'lang' in kwargs.keys():
[   88s]             lang_param = kwargs['lang']
[   88s]             if lang_param == None:
[   88s]                 warn(NoneLangWarning)
[   88s]                 lang_code = get_default_lang()
[   88s]             else:
[   88s]                 lang_code = lang_param
[   88s]     
[   88s]         # Check if we're passing a lang as a positional arg
[   88s]         elif lang_param_index < len(args):
[   88s]             lang_param = args[lang_param_index]
[   88s]             if lang_param == None:
[   88s]                 warn(NoneLangWarning)
[   88s]                 lang_code = get_default_lang()
[   88s]             elif lang_param in _SUPPORTED_LANGUAGES or \
[   88s]                     lang_param in _SUPPORTED_FULL_LOCALIZATIONS:
[   88s]                 lang_code = args[lang_param_index]
[   88s]             args = args[:lang_param_index] + args[lang_param_index+1:]
[   88s]     
[   88s]         if lang_code not in _SUPPORTED_LANGUAGES:
[   88s]             try:
[   88s]                 tmp = lang_code
[   88s]                 __use_tmp = True
[   88s]                 lang_code = get_primary_lang_code(lang_code)
[   88s]             except ValueError:
[   88s]                 __error = \
[   88s]                     UnsupportedLanguageError("\nLanguage '{language}' is not yet "
[   88s]                                              "supported by Lingua Franca. "
[   88s]                                              "Supported language codes "
[   88s]                                              "include the following:\n{supported}"
[   88s]                                              .format(
[   88s]                                                  language=lang_code,
[   88s]                                                  supported=_SUPPORTED_FULL_LOCALIZATIONS))
[   88s]                 if UnsupportedLanguageError in run_own_code_on:
[   88s]                     raise __error
[   88s]                 else:
[   88s]                     warn(DeprecationWarning("The following warning will "
[   88s]                                             "become an exception in a future "
[   88s]                                             "version of Lingua Franca." +
[   88s]                                             str(__error)))
[   88s]                     lang_code = get_default_lang()
[   88s]                     full_lang_code = get_full_lang_code()
[   88s]                     __use_tmp = False
[   88s]             if lang_code not in _SUPPORTED_LANGUAGES:
[   88s]                 _raise_unsupported_language(lang_code)
[   88s]             if __use_tmp:
[   88s]                 full_lang_code = tmp
[   88s]         else:
[   88s]             full_lang_code = get_full_lang_code(lang_code)
[   88s]     
[   88s]         # Here comes the ugly business.
[   88s]         _module_name = func.__module__.split('.')[-1]
[   88s]         _module = import_module(".lang." + _module_name +
[   88s]                                 "_" + lang_code, "lingua_franca")
[   88s]         # The nonsense above gets you from lingua_franca.parse
[   88s]         # to lingua_franca.lang.parse_xx
[   88s]         if _module_name not in _localized_functions.keys():
[   88s]             raise NoSuchModuleError("Module lingua_franca." +
[   88s]                                     _module_name + " not recognized")
[   88s]         if lang_code not in _localized_functions[_module_name].keys():
[   88s]             raise NoSuchModuleError(_module_name + " module of language '" +
[   88s]                                     lang_code + "' is not currently loaded.")
[   88s]     
[   88s]         func_name = func.__name__.split('.')[-1]
[   88s]         # At some point in the past, both the module and the language
[   88s]         # were imported/loaded, respectively.
[   88s]         # When that happened, we cached the *signature* of each
[   88s]         # localized function.
[   88s]         #
[   88s]         # This is the crucial element that allows us to import funcs
[   88s]         # on the fly.
[   88s]         #
[   88s]         # If we didn't find a localized function to correspond with
[   88s]         # the wrapped function, we cached NotImplementedError in its
[   88s]         # place.
[   88s]         loc_signature = _localized_functions[_module_name][lang_code][func_name]
[   88s]         if isinstance(loc_signature, type(NotImplementedError())):
[   88s] >           raise loc_signature
[   88s] E           lingua_franca.internal.FunctionNotLocalizedError: The requested function is not implemented in English.
[   88s] 
[   88s] /usr/lib/python3.8/site-packages/lingua_franca/internal.py:548: FunctionNotLocalizedError
[   88s] =============================== warnings summary ===============================
[   88s] test/unittests/skills/test_intent_service.py::ConversationTest::test_reset_converse
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/lang/__init__.py:43: DeprecationWarning: Direct imports from lingua_franc
[   88s]     warn(_setlang, DeprecationWarning)
[   88s] 
[   88s] test/unittests/skills/test_intent_service.py: 7 warnings
[   88s] test/unittests/util/test_format.py: 180 warnings
[   88s] test/unittests/util/test_parse.py: 568 warnings
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/internal.py:483: DeprecationWarning: Lingua Franca is dropping support fo
[   88s]     warn(NoneLangWarning)
[   88s] 
[   88s] test/unittests/util/test_format.py::TestNiceDateFormat::test_nice_date
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/internal.py:362: DeprecationWarning: Invalid language code detected. Fall
[   88s]   This behavior is deprecated. The 'lang' parameter is optional, and only accepts supported language codes, beginning with
[   88s]     warn(InvalidLangWarning)
[   88s] 
[   88s] test/unittests/util/test_format.py: 27 warnings
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/format.py:57: DeprecationWarning: Lingua Franca is dropping support for '
[   88s]     warn(NoneLangWarning)
[   88s] 
[   88s] test/unittests/util/test_parse.py: 14 warnings
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/lang/__init__.py:56: DeprecationWarning: Direct imports from lingua_franc
[   88s]     warn("Direct imports from lingua_franca.lang have been deprecated. Use"
[   88s] 
[   88s] test/unittests/util/test_parse.py: 14 warnings
[   88s]   /usr/lib/python3.8/site-packages/lingua_franca/internal.py:303: DeprecationWarning: Lingua Franca is dropping support fo
[   88s]     warn(NoneLangWarning)
[   88s] 
[   88s] -- Docs: https://docs.pytest.org/en/stable/warnings.html
[   88s] =========================== short test summary info ============================
[   88s] FAILED test/unittests/util/test_format.py::TestNiceNumberFormat::test_unknown_language
[   88s] FAILED test/unittests/util/test_format.py::TestNiceDateFormat::test_nice_date_time
[   88s] FAILED test/unittests/util/test_parse.py::TestNormalize::test_gender - lingua...
[   88s] = 3 failed, 399 passed, 4 skipped, 3 deselected, 812 warnings in 82.76s (0:01:22) =
[   88s] error: Bad exit status from /var/tmp/rpm-tmp.FXGbpR (%check)

Dependencies installed.

[200/402] python38-base-3.8.7-2.1
[201/402] python38-PyMsgBox-1.0.7-1.5
[202/402] python38-PyRIC-0.1.6.3-3.5
[203/402] python38-PyTweening-1.0.3-3.5
[204/402] python38-PyYAML-5.4.1-1.2
[205/402] python38-appdirs-1.4.4-2.2
[206/402] python38-asn1crypto-1.4.0-1.3
[207/402] python38-attrs-20.3.0-1.2
[208/402] python38-cachetools-4.2.1-1.1
[209/402] python38-casttube-0.2.0-1.8
[210/402] python38-distlib-0.3.1-2.1
[211/402] python38-docopt-0.6.2-7.9
[212/402] python38-filelock-3.0.12-2.5
[213/402] python38-geojson-2.4.1-1.8
[214/402] python38-humanhash3-0.0.6-2.9
[215/402] python38-idna-3.1-1.1
[216/402] python38-ifaddr-0.1.7-1.3
[217/402] python38-importlib-resources-3.3.0-1.2
[218/402] python38-inflection-0.5.1-1.2
[219/402] python38-iniconfig-1.1.1-1.2
[220/402] python38-jaraco.base-8.1.0-1.5
[221/402] python38-lazy-1.4-1.8
[222/402] python38-monotonic-1.5-1.8
[223/402] python38-more-itertools-8.6.0-1.2
[224/402] python38-multi_key_dict-2.0.3-4.4
[225/402] python38-olefile-0.46-2.5
[226/402] python38-ordered-set-3.1.1-5.2
[227/402] python38-padaos-0.1.10-1.10
[228/402] python38-parsedatetime-2.6-1.2
[229/402] python38-py-1.9.0-1.5
[230/402] python38-pyasn1-0.4.8-1.7
[231/402] python38-pycparser-2.20-1.7
[232/402] python38-pyee-8.1.0-1.1
[233/402] python38-pyparsing-2.4.7-2.4
[234/402] python38-sgmllib3k-1.0.0-2.1
[235/402] python38-smmap-3.0.5-1.1
[236/402] python38-soupsieve-2.1-1.1
[237/402] python38-toml-0.10.2-2.1
[238/402] python38-wcwidth-0.2.5-2.2
[239/402] python38-xmltodict-0.12.0-3.3
[247/402] python38-netifaces-0.10.9-1.7
[248/402] python38-pycryptodome-3.9.9-1.2
[249/402] python38-python-vlc-3.0.11115-1.3
[250/402] python38-pytz-2021.1-1.1
[251/402] python38-simplejson-3.17.2-1.4
[252/402] python38-six-1.15.0-2.2
[253/402] python38-wrapt-1.12.1-2.2
[260/402] python38-PyAudio-0.2.11-2.6
[261/402] python38-chardet-4.0.0-1.2
[262/402] python38-pyalsaaudio-0.8.4-1.11
[263/402] python38-pycodestyle-2.6.0-1.6
[264/402] python38-pyjokes-0.6.0-2.4
[265/402] python38-pyserial-3.5-1.2
[266/402] python38-xxhash-2.0.0-1.2
[271/402] python38-fann2-1.1.2-2.3
[274/402] python38-3.8.7-2.1
[282/402] python38-Deprecated-1.2.10-1.3
[283/402] python38-beautifulsoup4-4.9.3-1.3
[284/402] python38-feedparser-6.0.2-1.2
[285/402] python38-gitdb-4.0.5-1.3
[286/402] python38-inflect-5.0.2-1.1
[287/402] python38-precise-runner-0.3.1-1.6
[288/402] python38-protobuf-3.14.0-1.3
[289/402] python38-pyasn1-modules-0.2.8-1.5
[290/402] python38-python-dateutil-2.8.1-1.5
[291/402] python38-python-xlib-0.29-1.2
[292/402] python38-tzlocal-2.1-1.3
[293/402] python38-uritemplate-3.0.1-1.5
[294/402] python38-zeroconf-0.28.8-1.2
[295/402] python38-zipp-3.4.0-1.2
[299/402] python38-adapt-parser-0.3.4-1.6
[300/402] python38-fasteners-0.14.1-5.4
[301/402] python38-packaging-20.8-1.1
[302/402] python38-pyxdg-0.27-1.2
[305/402] python38-cffi-1.14.5-1.1
[306/402] python38-num2words-0.5.10-2.4
[307/402] python38-pako-0.2.3-1.8
[308/402] python38-psutil-5.8.0-1.1
[309/402] python38-tornado6-6.1-2.1
[310/402] python38-websocket-client-0.57.0-1.6
[312/402] python38-rsa-4.7-1.1
[313/402] python38-numpy-1.20.1-1.1
[314/402] python38-grpcio-1.34.1-1.2
[319/402] python38-Pillow-8.1.0-1.2
[320/402] python38-tornado-6.1-15.1
[321/402] python38-PyScreeze-0.1.26-1.5
[322/402] python38-arrow-0.17.0-1.2
[323/402] python38-googleapis-common-protos-1.52.0-1.2
[324/402] python38-importlib-metadata-3.4.0-1.1
[325/402] python38-lingua-franca-0.3.1-2.1
[327/402] python38-PyChromecast-7.7.2-1.1
[328/402] python38-jaraco.itertools-5.0.0-1.3
[333/402] python38-setuptools-44.1.1-4.2
[341/402] python38-click-7.1.2-2.2
[342/402] python38-pluggy-0.13.1-1.5
[344/402] python3-sphinxbase5-5~git20200206.4ffc4b7-1.6
[345/402] python38-pbr-5.5.1-1.2
[346/402] python38-petact-0.1.2-3.4
[347/402] python38-python-aiml-0.9.3-2.4
[348/402] python38-wolframalpha-3.0.1-1.9
[349/402] python38-PyAutoGUI-0.9.36-3.7
[350/402] python38-google-auth-1.24.0-1.2
[351/402] python38-pip-20.2.4-1.3
[352/402] python38-padatious-0.4.7-2.6
[353/402] python38-cryptography-3.3.2-1.1
[354/402] python38-virtualenv-20.2.2-1.2
[360/402] python38-certifi-2020.12.5-1.3
[361/402] python3-stevedore-3.2.2-1.3
[362/402] python38-PyJWT-2.0.1-1.1
[363/402] python38-pyOpenSSL-20.0.1-1.1
[364/402] python38-virtualenv-clone-0.5.4-1.6
[366/402] python3-pocketsphinx5-5~git20200227.e40da77-1.6
[369/402] python38-pytest-6.2.2-1.1
[373/402] python38-httplib2-0.18.1-1.2
[374/402] python3-virtualenvwrapper-4.8.4-4.1
[377/402] python38-urllib3-1.26.3-2.1
[381/402] python38-GitPython-3.1.12.1610074031.f653af66-1.2
[382/402] python38-google-auth-httplib2-0.0.3-1.7
[383/402] python38-gobject-3.38.0-3.2
[384/402] python38-requests-2.25.1-3.1
[385/402] python38-oauth2client-4.1.3-3.4
[387/402] python38-gTTS-token-1.1.3-1.9
[388/402] python38-requests-futures-1.0.0-2.5
[389/402] python38-astral-2.2-3.1
[390/402] python38-pyowm-2.10.0-1.8
[391/402] python38-wikipedia-1.4.0-4.3
[392/402] python38-PyGithub-1.53-1.3
[393/402] python38-ddg3-0.6.6git~20170824T092521~0ef6b2f-2.4
[394/402] python38-SpeechRecognition-3.8.1-3.5
[395/402] python38-dbus-python-1.2.16-1.2
[396/402] python38-google-api-core-1.24.1-1.2
[397/402] python38-msm-0.8.5-2.4
[399/402] python38-pulsectl-20.2.4-1.4
[400/402] python38-msk-0.3.14-2.4
[401/402] python38-google-api-python-client-1.11.0-1.3
[402/402] python38-gTTS-2.2.2-1.1
forslund commented 3 years ago

It may be the lingua-franca version. lingua-franca==0.2.2 is what's used in core. 3.x requires some additional init code I believe. @ChanceNCounter might be able to verify / deny my claims here since he knows the recent lingua-franca updates better than basically anyone.

ChanceNCounter commented 3 years ago

Lingua Franca 0.3+ requires some additional init code, some alterations to the test running suite, and some overrides/extensions for backwards compat. The init code and overrides are in #2772 and the test runner has not yet been altered.

If Lingua Franca 0.3+ is installed atop a current version of Mycroft, tests aren't all that will fail. You can expect to see dozens of deprecation warnings, and about every third intent will fail completely.

In general, I don't recommend installing the dev version outside of a virtual environment, and I never recommend manually installing or updating python dependencies. This is why. It's not about the user, it's about what the user doesn't (can't) know about the dep's dev cycle!

kevinsmia1939 commented 3 years ago

Lingua Franca 0.3+ requires some additional init code, some alterations to the test running suite, and some overrides/extensions for backwards compat. The init code and overrides are in #2772 and the test runner has not yet been altered.

If Lingua Franca 0.3+ is installed atop a current version of Mycroft, tests aren't all that will fail. You can expect to see dozens of deprecation warnings, and about every third intent will fail completely.

In general, I don't recommend installing the dev version outside of a virtual environment, and I never recommend manually installing or updating python dependencies. This is why. It's not about the user, it's about what the user doesn't (can't) know about the dep's dev cycle!

I revert back to Lingua Franca 0.2.2, the failures are gone now. Thanks, will keep this in mind when updating mycroft.