From c8a92f1eccb748fe192f1bd045fa606588892940 Mon Sep 17 00:00:00 2001 From: Thomas Fenzl Date: Fri, 18 Aug 2023 12:18:50 +0200 Subject: [PATCH] adapt to package resources. --- .../magic_ai_storybook/__init__.py | 4 +++ .../magic_ai_storybook/make_shortcut.py | 2 +- .../magic_ai_storybook/story.py | 30 ++++++++++--------- Magic_AI_Storybook/pyproject.toml | 4 +++ 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Magic_AI_Storybook/magic_ai_storybook/__init__.py b/Magic_AI_Storybook/magic_ai_storybook/__init__.py index e69de29bb..6e84b3d5c 100644 --- a/Magic_AI_Storybook/magic_ai_storybook/__init__.py +++ b/Magic_AI_Storybook/magic_ai_storybook/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2023 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT + diff --git a/Magic_AI_Storybook/magic_ai_storybook/make_shortcut.py b/Magic_AI_Storybook/magic_ai_storybook/make_shortcut.py index 851a02c23..f009e8c3f 100644 --- a/Magic_AI_Storybook/magic_ai_storybook/make_shortcut.py +++ b/Magic_AI_Storybook/magic_ai_storybook/make_shortcut.py @@ -46,7 +46,7 @@ def main(): Comment=Run {APP_TITLE} Terminal={"true" if RUN_IN_TERMINAL else "false"} Name={APP_TITLE} -Exec=sudo python {APP_PATH} +Exec=sudo /root/.local/bin/magicbook-story Type=Application Icon={APP_ICON} """ diff --git a/Magic_AI_Storybook/magic_ai_storybook/story.py b/Magic_AI_Storybook/magic_ai_storybook/story.py index cd2ad2a10..5cfc80f8a 100644 --- a/Magic_AI_Storybook/magic_ai_storybook/story.py +++ b/Magic_AI_Storybook/magic_ai_storybook/story.py @@ -5,6 +5,9 @@ import threading import sys import os +from pathlib import Path +import importlib.resource + import re import time import argparse @@ -21,12 +24,10 @@ from rpi_backlight import Backlight from adafruit_led_animation.animation.pulse import Pulse -from listener import Listener +from .listener import Listener # Base Path is the folder the script resides in -BASE_PATH = os.path.dirname(sys.argv[0]) -if BASE_PATH != "": - BASE_PATH += "/" +BASE_PATH = importlib.resource.files(__package__) # General Settings STORY_WORD_LENGTH = 800 @@ -59,13 +60,13 @@ BUTTON_NEW_IMAGE = "button_new.png" # Asset Paths -IMAGES_PATH = BASE_PATH + "images/" -FONTS_PATH = BASE_PATH + "fonts/" +IMAGES_PATH = BASE_PATH.joinpath("images/") +FONTS_PATH = BASE_PATH.joinpath("fonts/") # Font Path & Size -TITLE_FONT = (FONTS_PATH + "Desdemona Black Regular.otf", 48) +TITLE_FONT = (FONTS_PATH.joinpath("Desdemona Black Regular.otf"), 48) TITLE_COLOR = (0, 0, 0) -TEXT_FONT = (FONTS_PATH + "times new roman.ttf", 24) +TEXT_FONT = (FONTS_PATH.joinpath("times new roman.ttf"), 24) TEXT_COLOR = (0, 0, 0) # Delays Settings @@ -262,9 +263,9 @@ def start(self): self._load_font("text", TEXT_FONT) # Add buttons - back_button_image = pygame.image.load(IMAGES_PATH + BUTTON_BACK_IMAGE) - next_button_image = pygame.image.load(IMAGES_PATH + BUTTON_NEXT_IMAGE) - new_button_image = pygame.image.load(IMAGES_PATH + BUTTON_NEW_IMAGE) + back_button_image = pygame.image.load(IMAGES_PATH.joinpath(BUTTON_BACK_IMAGE)) + next_button_image = pygame.image.load(IMAGES_PATH.joinpath(BUTTON_NEXT_IMAGE)) + new_button_image = pygame.image.load(IMAGES_PATH.joinpath(BUTTON_NEW_IMAGE)) button_spacing = ( self.width - ( @@ -407,7 +408,7 @@ def _rotate_mouse_pos(self, point): def _load_image(self, name, filename): try: - image = pygame.image.load(IMAGES_PATH + filename) + image = pygame.image.load(IMAGES_PATH.joinpath(filename)) self.images[name] = image except pygame.error: pass @@ -771,7 +772,8 @@ def parse_args(): return parser.parse_args() -def main(args): +def main(): + args = parse_args() book = Book(args.rotation) try: book.start() @@ -790,4 +792,4 @@ def main(args): if __name__ == "__main__": - main(parse_args()) + main() diff --git a/Magic_AI_Storybook/pyproject.toml b/Magic_AI_Storybook/pyproject.toml index 694dc367b..2b6402e5e 100644 --- a/Magic_AI_Storybook/pyproject.toml +++ b/Magic_AI_Storybook/pyproject.toml @@ -20,6 +20,10 @@ dependencies = [ "adafruit-circuitpython-neopixel>=6.3.9", "rpi-backlight>=2.6.0", ] + +[project.scripts] +"magicbook-story" = "magic_ai_storybook:story.run" + [build-system] requires = ["setuptools>=61", "wheel"] build-backend = "setuptools.build_meta"