From 3680158159beacaadea107542b7131dba7999a46 Mon Sep 17 00:00:00 2001 From: Alexander Piskun <13381981+bigcat88@users.noreply.github.com> Date: Fri, 12 Jan 2024 22:21:47 +0300 Subject: [PATCH] v0.8.0 (#204) Adjustments: * added `--force` flag to makefile dev commands * updated changelog * added test for `get_model_path` Signed-off-by: Alexander Piskun --- CHANGELOG.md | 5 +++-- README.md | 4 ++-- examples/as_app/skeleton/Makefile | 18 +++++++++--------- examples/as_app/talk_bot/Makefile | 12 ++++++------ examples/as_app/talk_bot_ai/Makefile | 12 ++++++------ examples/as_app/talk_bot_ai/lib/main.py | 8 ++------ examples/as_app/to_gif/Makefile | 18 +++++++++--------- examples/as_app/ui_example/Makefile | 18 +++++++++--------- scripts/dev_register.sh | 2 +- tests/_install_init_handler_models.py | 3 +-- 10 files changed, 48 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93be11c2..36a528d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,9 @@ All notable changes to this project will be documented in this file. ### Added - `download_log` method to download `nextcloud.log`. #199 -- NextcloudApp: API for registering Speech to Text providers(*avalaible from Nextcloud 29*). #196 -- NextcloudApp: API for registering Text Processing providers(*avalaible from Nextcloud 29*). #198 +- NextcloudApp: API for registering `Speech to Text` providers(*avalaible from Nextcloud 29*). #196 +- NextcloudApp: API for registering `Text Processing` providers(*avalaible from Nextcloud 29*). #198 +- NextcloudApp: added `get_model_path` wrapper around huggingface_hub:snapshot_download. #202 ### Fixed diff --git a/README.md b/README.md index 401db688..1e9917ed 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,10 @@ Python library that provides a robust and well-documented API that allows develo | User & Weather status | ✅ | ✅ | ✅ | ✅ | | Other APIs*** | ✅ | ✅ | ✅ | ✅ | | Talk Bot API* | N/A | ✅ | ✅ | ✅ | -| TextProcessing* | N/A | N/A | N/A | ❌ | -| SpeechToText* | N/A | N/A | N/A | ✅ | +| AI Providers API** | N/A | N/A | N/A | ✅ | *_available only for **NextcloudApp**_
+**_available only for **NextcloudApp**: SpeechToText, TextProcessing_
***_Activity, Notes_ ### Differences between the Nextcloud and NextcloudApp classes diff --git a/examples/as_app/skeleton/Makefile b/examples/as_app/skeleton/Makefile index 65605845..55c6b9d0 100644 --- a/examples/as_app/skeleton/Makefile +++ b/examples/as_app/skeleton/Makefile @@ -31,57 +31,57 @@ build-push: .PHONY: deploy27 deploy27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:deploy skeleton docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: deploy28 deploy28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:deploy skeleton docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: deploy deploy: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:deploy skeleton docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: run27 run27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register skeleton docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: run28 run28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register skeleton docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: run run: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register skeleton docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/skeleton/appinfo/info.xml .PHONY: register27 register27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register skeleton manual_install --json-info \ "{\"appid\":\"skeleton\",\"name\":\"App Skeleton\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9030,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register28 register28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register skeleton manual_install --json-info \ "{\"appid\":\"skeleton\",\"name\":\"App Skeleton\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9030,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register register: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister skeleton --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register skeleton manual_install --json-info \ "{\"appid\":\"skeleton\",\"name\":\"App Skeleton\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9030,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish diff --git a/examples/as_app/talk_bot/Makefile b/examples/as_app/talk_bot/Makefile index 2218f588..960b1dfc 100644 --- a/examples/as_app/talk_bot/Makefile +++ b/examples/as_app/talk_bot/Makefile @@ -28,38 +28,38 @@ build-push: .PHONY: deploy deploy: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:deploy talk_bot docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot/appinfo/info.xml .PHONY: deploy27 deploy27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:deploy talk_bot docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot/appinfo/info.xml .PHONY: run run: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register talk_bot docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot/appinfo/info.xml .PHONY: run27 run27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register talk_bot docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot/appinfo/info.xml .PHONY: register register: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register talk_bot manual_install --json-info \ "{\"appid\":\"talk_bot\",\"name\":\"TalkBot\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9032,\"scopes\":{\"required\":[\"TALK\", \"TALK_BOT\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register27 register27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register talk_bot manual_install --json-info \ "{\"appid\":\"talk_bot\",\"name\":\"TalkBot\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9032,\"scopes\":{\"required\":[\"TALK\", \"TALK_BOT\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish diff --git a/examples/as_app/talk_bot_ai/Makefile b/examples/as_app/talk_bot_ai/Makefile index 7f93306d..444773e9 100644 --- a/examples/as_app/talk_bot_ai/Makefile +++ b/examples/as_app/talk_bot_ai/Makefile @@ -28,38 +28,38 @@ build-push: .PHONY: deploy deploy: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:deploy talk_bot_ai docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot_ai/appinfo/info.xml .PHONY: deploy27 deploy27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:deploy talk_bot_ai docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot_ai/appinfo/info.xml .PHONY: run run: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register talk_bot_ai docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot_ai/appinfo/info.xml .PHONY: run27 run27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register talk_bot_ai docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/talk_bot_ai/appinfo/info.xml .PHONY: register register: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register talk_bot_ai manual_install --json-info \ "{\"appid\":\"talk_bot_ai\",\"name\":\"TalkBotAI\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9034,\"scopes\":{\"required\":[\"TALK\", \"TALK_BOT\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register27 register27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister talk_bot_ai --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register talk_bot_ai manual_install --json-info \ "{\"appid\":\"talk_bot_ai\",\"name\":\"TalkBotAI\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9034,\"scopes\":{\"required\":[\"TALK\", \"TALK_BOT\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish diff --git a/examples/as_app/talk_bot_ai/lib/main.py b/examples/as_app/talk_bot_ai/lib/main.py index 4d6e0c26..14ab0920 100644 --- a/examples/as_app/talk_bot_ai/lib/main.py +++ b/examples/as_app/talk_bot_ai/lib/main.py @@ -6,11 +6,10 @@ import requests from fastapi import BackgroundTasks, Depends, FastAPI -from huggingface_hub import snapshot_download from transformers import pipeline from nc_py_api import NextcloudApp, talk_bot -from nc_py_api.ex_app import persistent_storage, run_app, set_handlers, talk_bot_app +from nc_py_api.ex_app import get_model_path, run_app, set_handlers, talk_bot_app @asynccontextmanager @@ -28,10 +27,7 @@ def ai_talk_bot_process_request(message: talk_bot.TalkBotMessage): r = re.search(r"@assistant\s(.*)", message.object_content["message"], re.IGNORECASE) if r is None: return - model = pipeline( - "text2text-generation", - model=snapshot_download(MODEL_NAME, local_files_only=True, cache_dir=persistent_storage()), - ) + model = pipeline("text2text-generation", model=get_model_path(MODEL_NAME)) response_text = model(r.group(1), max_length=64, do_sample=True)[0]["generated_text"] AI_BOT.send_message(response_text, message) diff --git a/examples/as_app/to_gif/Makefile b/examples/as_app/to_gif/Makefile index 333a34af..f9c59a32 100644 --- a/examples/as_app/to_gif/Makefile +++ b/examples/as_app/to_gif/Makefile @@ -31,57 +31,57 @@ build-push: .PHONY: deploy27 deploy27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:deploy to_gif docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: deploy28 deploy28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:deploy to_gif docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: deploy deploy: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:deploy to_gif docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: run27 run27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register to_gif docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: run28 run28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register to_gif docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: run run: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register to_gif docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/to_gif/appinfo/info.xml .PHONY: register27 register27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register to_gif manual_install --json-info \ "{\"appid\":\"to_gif\",\"name\":\"to_gif\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9031,\"scopes\":{\"required\":[\"FILES\", \"NOTIFICATIONS\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register28 register28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register to_gif manual_install --json-info \ "{\"appid\":\"to_gif\",\"name\":\"to_gif\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9031,\"scopes\":{\"required\":[\"FILES\", \"NOTIFICATIONS\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register register: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister to_gif --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register to_gif manual_install --json-info \ "{\"appid\":\"to_gif\",\"name\":\"to_gif\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9031,\"scopes\":{\"required\":[\"FILES\", \"NOTIFICATIONS\"],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish diff --git a/examples/as_app/ui_example/Makefile b/examples/as_app/ui_example/Makefile index 72a90c4f..c31f4593 100644 --- a/examples/as_app/ui_example/Makefile +++ b/examples/as_app/ui_example/Makefile @@ -31,57 +31,57 @@ build-push: .PHONY: deploy27 deploy27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:deploy ui_example docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: deploy28 deploy28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:deploy ui_example docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: deploy deploy: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:deploy ui_example docker_dev \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: run27 run27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register ui_example docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: run28 run28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register ui_example docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: run run: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register ui_example docker_dev --force-scopes \ --info-xml https://raw.githubusercontent.com/cloud-py-api/nc_py_api/main/examples/as_app/ui_example/appinfo/info.xml .PHONY: register27 register27: - docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable27-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable27-1 sudo -u www-data php occ app_api:app:register ui_example manual_install --json-info \ "{\"appid\":\"ui_example\",\"name\":\"UI Example\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9035,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register28 register28: - docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-stable28-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-stable28-1 sudo -u www-data php occ app_api:app:register ui_example manual_install --json-info \ "{\"appid\":\"ui_example\",\"name\":\"UI Example\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9035,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish .PHONY: register register: - docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent || true + docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register ui_example manual_install --json-info \ "{\"appid\":\"ui_example\",\"name\":\"UI Example\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"host\":\"host.docker.internal\",\"port\":9035,\"scopes\":{\"required\":[],\"optional\":[]},\"protocol\":\"http\",\"system_app\":0}" \ --force-scopes --wait-finish diff --git a/scripts/dev_register.sh b/scripts/dev_register.sh index 2b042d0e..8b014355 100644 --- a/scripts/dev_register.sh +++ b/scripts/dev_register.sh @@ -6,7 +6,7 @@ echo "creating 'manual_install' deploy daemon for $1 container" docker exec "$1" sudo -u www-data php occ app_api:daemon:register \ manual_install "Manual Install" manual-install 0 0 0 echo "unregistering nc_py_api as an app for $1 container" -docker exec "$1" sudo -u www-data php occ app_api:app:unregister nc_py_api --silent || true +docker exec "$1" sudo -u www-data php occ app_api:app:unregister nc_py_api --silent --force || true echo "registering nc_py_api as an app for $1 container" NEXTCLOUD_URL="http://$2" APP_PORT=9009 APP_ID="nc_py_api" APP_SECRET="12345" APP_VERSION="1.0.0" \ python3 tests/_install.py > /dev/null 2>&1 & diff --git a/tests/_install_init_handler_models.py b/tests/_install_init_handler_models.py index 625a9b20..bf2f7170 100644 --- a/tests/_install_init_handler_models.py +++ b/tests/_install_init_handler_models.py @@ -1,7 +1,6 @@ from contextlib import asynccontextmanager from fastapi import FastAPI -from huggingface_hub import snapshot_download from nc_py_api import NextcloudApp, ex_app @@ -20,7 +19,7 @@ async def lifespan(_app: FastAPI): def enabled_handler(enabled: bool, _nc: NextcloudApp) -> str: if enabled: try: - snapshot_download(MODEL_NAME, local_files_only=True, cache_dir=ex_app.persistent_storage()) + assert ex_app.get_model_path(MODEL_NAME) except Exception: # noqa return "model not found" return ""