55import threading
66import sys
77import os
8+ from pathlib import Path
9+ import importlib .resource
10+
811import re
912import time
1013import argparse
2124from rpi_backlight import Backlight
2225from adafruit_led_animation .animation .pulse import Pulse
2326
24- from listener import Listener
27+ from . listener import Listener
2528
2629# Base Path is the folder the script resides in
27- BASE_PATH = os .path .dirname (sys .argv [0 ])
28- if BASE_PATH != "" :
29- BASE_PATH += "/"
30+ BASE_PATH = importlib .resource .files (__package__ )
3031
3132# General Settings
3233STORY_WORD_LENGTH = 800
5960BUTTON_NEW_IMAGE = "button_new.png"
6061
6162# Asset Paths
62- IMAGES_PATH = BASE_PATH + "images/"
63- FONTS_PATH = BASE_PATH + "fonts/"
63+ IMAGES_PATH = BASE_PATH . joinpath ( "images/" )
64+ FONTS_PATH = BASE_PATH . joinpath ( "fonts/" )
6465
6566# Font Path & Size
66- TITLE_FONT = (FONTS_PATH + "Desdemona Black Regular.otf" , 48 )
67+ TITLE_FONT = (FONTS_PATH . joinpath ( "Desdemona Black Regular.otf" ) , 48 )
6768TITLE_COLOR = (0 , 0 , 0 )
68- TEXT_FONT = (FONTS_PATH + "times new roman.ttf" , 24 )
69+ TEXT_FONT = (FONTS_PATH . joinpath ( "times new roman.ttf" ) , 24 )
6970TEXT_COLOR = (0 , 0 , 0 )
7071
7172# Delays Settings
@@ -262,9 +263,9 @@ def start(self):
262263 self ._load_font ("text" , TEXT_FONT )
263264
264265 # Add buttons
265- back_button_image = pygame .image .load (IMAGES_PATH + BUTTON_BACK_IMAGE )
266- next_button_image = pygame .image .load (IMAGES_PATH + BUTTON_NEXT_IMAGE )
267- new_button_image = pygame .image .load (IMAGES_PATH + BUTTON_NEW_IMAGE )
266+ back_button_image = pygame .image .load (IMAGES_PATH . joinpath ( BUTTON_BACK_IMAGE ) )
267+ next_button_image = pygame .image .load (IMAGES_PATH . joinpath ( BUTTON_NEXT_IMAGE ) )
268+ new_button_image = pygame .image .load (IMAGES_PATH . joinpath ( BUTTON_NEW_IMAGE ) )
268269 button_spacing = (
269270 self .width
270271 - (
@@ -407,7 +408,7 @@ def _rotate_mouse_pos(self, point):
407408
408409 def _load_image (self , name , filename ):
409410 try :
410- image = pygame .image .load (IMAGES_PATH + filename )
411+ image = pygame .image .load (IMAGES_PATH . joinpath ( filename ) )
411412 self .images [name ] = image
412413 except pygame .error :
413414 pass
@@ -771,7 +772,8 @@ def parse_args():
771772 return parser .parse_args ()
772773
773774
774- def main (args ):
775+ def main ():
776+ args = parse_args ()
775777 book = Book (args .rotation )
776778 try :
777779 book .start ()
@@ -790,4 +792,4 @@ def main(args):
790792
791793
792794if __name__ == "__main__" :
793- main (parse_args () )
795+ main ()
0 commit comments