diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 79cafad4..631e7878 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -22,7 +22,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install . + pip install .[extras] pip install pytest pytest-timeout pytest-cov - name: Test Utils diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 0ed232ae..00000000 --- a/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -phoneme_guesser -mycroft-messagebus-client -colour -inflection -pexpect -requests -json_database -kthread -pyxdg \ No newline at end of file diff --git a/requirements/extras.txt b/requirements/extras.txt new file mode 100644 index 00000000..355f49c9 --- /dev/null +++ b/requirements/extras.txt @@ -0,0 +1,2 @@ +colour~=0.1 +rapidfuzz~=1.0 \ No newline at end of file diff --git a/requirements/requirements.txt b/requirements/requirements.txt new file mode 100644 index 00000000..590599af --- /dev/null +++ b/requirements/requirements.txt @@ -0,0 +1,8 @@ +mycroft-messagebus-client~=0.9.1,!=0.9.2,!=0.9.3 +inflection~=0.5 +pexpect~=4.8 +requests~=2.26 +json_database~=0.6 +kthread~=0.2 +pyxdg~=0.27 +PyYAML~=5.4 diff --git a/setup.py b/setup.py index f0a845ae..63bf5daf 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,20 @@ +import os from setuptools import setup +BASEDIR = os.path.abspath(os.path.dirname(__file__)) + + +def required(requirements_file): + """ Read requirements file and remove comments and empty lines. """ + with open(os.path.join(BASEDIR, requirements_file), 'r') as f: + requirements = f.read().splitlines() + if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ: + print('USING LOOSE REQUIREMENTS!') + requirements = [r.replace('==', '>=').replace('~=', '>=') for r in requirements] + return [pkg for pkg in requirements + if pkg.strip() and not pkg.startswith("#")] + + setup( name='ovos_utils', version='0.0.12a10', @@ -13,18 +28,9 @@ 'ovos_utils.skills', 'ovos_utils.lang'], url='https://github.com/OpenVoiceOS/ovos_utils', - install_requires=[ - "mycroft-messagebus-client", - "pexpect", - "pyxdg", - "PyYAML", - "kthread", - "json_database", - "requests", - "colour", - "inflection"], + install_requires=required("requirements/requirements.txt"), extras_require={ - "extras": ["phoneme_guesser", "colour", "rapidfuzz"] + "extras": required("requirements/extras.txt") }, include_package_data=True, license='Apache',