67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2014-2022 Richard Hull and contributors
|
|
# See LICENSE.rst for details.
|
|
|
|
import sys
|
|
import logging
|
|
|
|
from luma.core import cmdline, error
|
|
|
|
|
|
# logging
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
format='%(asctime)-15s - %(message)s'
|
|
)
|
|
# ignore PIL debug messages
|
|
logging.getLogger('PIL').setLevel(logging.ERROR)
|
|
|
|
|
|
def display_settings(device, args):
|
|
"""
|
|
Display a short summary of the settings.
|
|
|
|
:rtype: str
|
|
"""
|
|
iface = ''
|
|
display_types = cmdline.get_display_types()
|
|
if args.display not in display_types['emulator']:
|
|
iface = f'Interface: {args.interface}\n'
|
|
|
|
lib_name = cmdline.get_library_for_display_type(args.display)
|
|
if lib_name is not None:
|
|
lib_version = cmdline.get_library_version(lib_name)
|
|
else:
|
|
lib_name = lib_version = 'unknown'
|
|
|
|
import luma.core
|
|
version = f'luma.{lib_name} {lib_version} (luma.core {luma.core.__version__})'
|
|
|
|
return f'Version: {version}\nDisplay: {args.display}\n{iface}Dimensions: {device.width} x {device.height}\n{"-" * 60}'
|
|
|
|
|
|
def get_device(actual_args=None):
|
|
"""
|
|
Create device from command-line arguments and return it.
|
|
"""
|
|
if actual_args is None:
|
|
actual_args = sys.argv[1:]
|
|
parser = cmdline.create_parser(description='luma.examples arguments')
|
|
args = parser.parse_args(actual_args)
|
|
|
|
if args.config:
|
|
# load config from file
|
|
config = cmdline.load_config(args.config)
|
|
args = parser.parse_args(config + actual_args)
|
|
|
|
# create device
|
|
try:
|
|
device = cmdline.create_device(args)
|
|
print(display_settings(device, args))
|
|
return device
|
|
|
|
except error.Error as e:
|
|
parser.error(e)
|
|
return None
|
|
|