LCDproc LCDd client
Project description
pylcddc
A python library for interfacing with LCDd
, the server
component of the commonly known LCDproc
Features:
-
Object-oriented interface support for all native
LCDd
widgets- Full frame support, nest widget objects in frames, treat frames like widget containers
- Support for user-created composite widgets, that can be used just like native widgets (no easy API for now, changes to come later)
-
Decoupled thread to service
LCDd
screen switching responses -
One I/O method to update screen, no funky exception handling everywhere
Installation
pip install pylcddc
More TODOs
- See
TODO.md
for more information and TODOs
Version support
- Tested on
LCDd
packaged withLCDproc
version0.5.9
- Protocol version
0.3
Modules for users
pylcddc.client
: client for LCDdpylcddc.screen
: screens to attach to clientspylcddc.widgets
: widgets to place in screenspylcddc.exceptions
: exceptions raised by the library
Modules for developers
pylcddc.responses
: LCDd response decoder and abstractionspylcddc.commands
: LCDd request generation
Examples
Don't really use these for production code...
See more examples in /demo
Simple usage for static display
import pylcddc.client as client
import pylcddc.widgets as widgets
import pylcddc.screen as screen
title = widgets.Title('title_widget',
'Hello, World!')
main_scr = screen.Screen('main', [title])
c = client.Client('localhost', 13666)
c.add_screen(main_scr)
input('Press any key to exit')
c.close()
Nest widgets in frames
import pylcddc.client as client
import pylcddc.widgets as widgets
import pylcddc.screen as screen
import platform
flavorful_text_widgets = [widgets.String(f'flv_tx{i}', 1, 1 + i, text) for
i, text in enumerate(
'now you see me\nnow you dont\nso scary\nsuch wow'.splitlines())]
frame_top = widgets.Frame('frame_top', flavorful_text_widgets,
1, 1, 10, 1, 10, 4,
widgets.Frame.Direction.VERTICAL, 8)
platform_text = widgets.Scroller('platform', 1, 2, 20, 1,
widgets.Scroller.Direction.HORIZONTAL, 1,
'pylcddc running on '
+ ' '.join(platform.uname()))
main_scr = screen.Screen('main', [frame_top, platform_text])
c = client.Client('localhost', 13666)
c.add_screen(main_scr)
input('Press any key to exit')
c.close()
Simple timed display updates and display attributes
import pylcddc.client as client
import pylcddc.widgets as widgets
import pylcddc.screen as screen
import pylcddc.exceptions as lcdexcept
import time
time_string = widgets.Scroller('time', 1, 1, 20, 2,
widgets.Scroller.Direction.HORIZONTAL, 8,
time.ctime())
main_scr = screen.Screen('main', [time_string],
heartbeat=screen.ScreenAttributeValues.Heartbeat.OFF)
c = client.Client('localhost', 13666)
c.add_screen(main_scr)
print('pylcdd time demo\nUse ^C to exit')
try:
while True:
time_string.text = time.ctime()
c.update_screens([main_scr])
print('updated time to: ', time.ctime())
time.sleep(0.1)
except lcdexcept.RequestError as e:
print('LCDd refused our request', e)
except lcdexcept.FatalError as e:
print('pylcddc fatal internal error', e)
except KeyboardInterrupt:
print('exitting')
c.close() # there might be exceptions from OS system call failures here
Licensing
See LICENSE.txt
for more details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pylcddc-0.4.0.tar.gz
(31.0 kB
view details)
Built Distribution
pylcddc-0.4.0-py3-none-any.whl
(30.2 kB
view details)
File details
Details for the file pylcddc-0.4.0.tar.gz
.
File metadata
- Download URL: pylcddc-0.4.0.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a693321b06874d658924b9100859847ba550e034609d48ee6040521bf7c0dfe3 |
|
MD5 | ada2c8b578bbdf35ae2b3f006b2f03e8 |
|
BLAKE2b-256 | 8eec1d360c1b1e9b9e9b0566b5cbb29204b1707fbe2f83f937625df0469921f4 |
File details
Details for the file pylcddc-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: pylcddc-0.4.0-py3-none-any.whl
- Upload date:
- Size: 30.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48506244d7c9b73b77380f6e21fc5714055ea7f0789d163e6059c5a3ecb4e937 |
|
MD5 | f96f2254df38dc2eb08098a3de5e69f0 |
|
BLAKE2b-256 | 599a9c8643257c77197e4165c00216cb5c42381f8c608f94bdd612423225102b |