# along with this program (the LICENSE.md file). If not, see <http://www.gnu.org/licenses/>. # import tkinter as tk # In python2 it's Tkinter from tkinter import font as tkfont, messagebox import datetime import glob from functools import partial from animated_gif_label import AnimatedGIFLabel from configuration import QConfiguration from display_controller import DisplayController from app_logger import AppLogger # Logger init the_app_logger = AppLogger("lumiclock") logger = the_app_logger.getAppLogger() class LumiClockApplication(tk.Frame): """ Main window of the application. Designed to be a singleton. """ def __init__(self, master=None, sensor=None, display=None): tk.Frame.__init__(self, master, bg='black') self._sensor = sensor self._display = display self.last_time = "" self.master = master self.toggle_ampm = True self.fullscreen = False self.run_clock = False
import urllib.request import urllib.parse import urllib.error from html.parser import HTMLParser import ssl import datetime import json import os import os.path from app_logger import AppLogger import sys import threading # Logger init app_logger = AppLogger("smf-extension") logger = app_logger.getAppLogger() # logger.debug("Python system path: %s", sys.path) # Configuration lock dialog_lock = threading.Lock() class QConfiguration: """ Encapsulates Intrinio configuration including credentials. """ auth_user = "" auth_passwd = "" cacerts = "" # Base URL for Intrinio services base_url = "https://api.intrinio.com"