diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7dbc85d..39d9296 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: Setup python environment uses: actions/setup-python@v2 with: - python-version: '3.7' + python-version: '3.9' - name: Clean run: python setup.py clean --all diff --git a/Dockerfile b/Dockerfile index 884bf9e..23fa44e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ RUN apk --no-cache add curl && mkdir /downloads # Download installation files RUN curl https://github.com/avollkopf/craftbeerpi4-ui/archive/main.zip -L -o ./downloads/cbpi-ui.zip -FROM python:3.7 as base +FROM python:3.9 as base # Install dependencies RUN apt-get update \ @@ -39,7 +39,7 @@ RUN pip3 install --no-cache-dir -r /cbpi-src/requirements.txt # Install RPi.GPIO separately because it's excluded in setup.py for non-raspberrys. # This can enable GPIO support for the image when used on a raspberry pi and the # /dev/gpiomem device. -RUN pip3 install --no-cache-dir RPi.GPIO==0.7.1a4 +RUN pip3 install --no-cache-dir RPi.GPIO==0.7.1 FROM base as deploy # Install craftbeerpi from source @@ -61,4 +61,4 @@ RUN ["cbpi", "setup"] EXPOSE 8000 # Start cbpi -CMD ["cbpi", "start"] \ No newline at end of file +CMD ["cbpi", "start"] diff --git a/cbpi/__init__.py b/cbpi/__init__.py index 5c14468..8528c67 100644 --- a/cbpi/__init__.py +++ b/cbpi/__init__.py @@ -1 +1 @@ -__version__ = "4.0.1.14" +__version__ = "4.0.1.16" diff --git a/cbpi/cli.py b/cbpi/cli.py index 9b28fc6..6f310ff 100644 --- a/cbpi/cli.py +++ b/cbpi/cli.py @@ -218,20 +218,31 @@ def plugins_add(package_name): return return + installation = True try: - with open(os.path.join(".", 'config', "config.yaml"), 'rt') as f: - data = yaml.load(f, Loader=yaml.FullLoader) - if package_name in data["plugins"]: - print("") - print("Plugin {} already active".format(package_name)) - print("") - return - data["plugins"].append(package_name) - with open(os.path.join(".", 'config', "config.yaml"), 'w') as outfile: - yaml.dump(data, outfile, default_flow_style=False) - print("") - print("Plugin {} activated".format(package_name)) - print("") + try: + p_metadata= metadata(package_name) + p_name=p_metadata['Name'] + if p_name != package_name: + print("Error. Package name {} does not exist. Did you mean {}".format(package_name,p_name)) + installation = False + except Exception as e: + print("Error. Package {} cannot be found in installed packages".format(package_name)) + installation = False + if installation: + with open(os.path.join(".", 'config', "config.yaml"), 'rt') as f: + data = yaml.load(f, Loader=yaml.FullLoader) + if package_name in data["plugins"]: + print("") + print("Plugin {} already active".format(package_name)) + print("") + return + data["plugins"].append(package_name) + with open(os.path.join(".", 'config', "config.yaml"), 'w') as outfile: + yaml.dump(data, outfile, default_flow_style=False) + print("") + print("Plugin {} activated".format(package_name)) + print("") except Exception as e: print(e) pass diff --git a/requirements.txt b/requirements.txt index 28e5433..1bb28da 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,13 +10,13 @@ cryptography==3.3.2 requests==2.25.1 voluptuous==0.12.1 pyfiglet==0.8.post1 -pandas==1.1.5 +pandas==1.4.0 shortuuid==1.0.1 tabulate==0.8.7 -numpy==1.20.3 +numpy==1.22.0 cbpi4ui click==7.1.2 importlib_metadata==4.8.2 asyncio-mqtt psutil==5.8.0 -zipp>=0.5 \ No newline at end of file +zipp>=0.5 diff --git a/setup.py b/setup.py index 99d5137..cbce4c1 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ setup(name='cbpi', 'psutil==5.8.0', 'cbpi4ui', 'importlib_metadata'] + ( - ['RPi.GPIO==0.7.1a4'] if raspberrypi else [] ) + + ['RPi.GPIO==0.7.1'] if raspberrypi else [] ) + (['numpy==1.22.0'] if (int(platform.python_version_tuple()[1]) >= 9) and (int(platform.python_version_tuple()[0]) == 3) else ['numpy==1.20.3'] ) + (['pandas==1.4.0'] if (int(platform.python_version_tuple()[1]) >= 9) and (int(platform.python_version_tuple()[0]) == 3) else ['pandas==1.1.5'] ),