ANN: tsWxGTUI_PyVx 0.0.0 (pre-alpha) has been released.
rsg.softwaregadgetry at gmail.com
rsg.softwaregadgetry at gmail.com
Fri Jul 24 15:31:00 CEST 2015
ANN: tsWxGTUI_PyVx 0.0.0 (pre-alpha) has been released.
What is it?
===========
tsWxGTUI_PyVx is a foundation for developing, operating and troubleshooting
Python and Python Curses based application programs embedded in local and
remote 32-/64-bit computer systems used to monitor and control mission
critical equipment.
The architecture features Python 2x & Python 3x based Command Line Interfaces
(CLI) and Python "Curses"-based "wxPython"-style, Graphical-Text User
Interfaces (GUI).
The tsWxGTUI_PyVx Application Programming Interface (API) for the CLI and
GUI are identical for the Python 2x and Python 3x versions. There are only
minor internal differences in the source code.
With it, you get that cross-platform, pixel-mode "wxPython" feeling on
character-mode 8-/16-color (xterm-family) & non-color (vt100-family)
terminals and terminal emulators.
What's new in version 0.0.0?
============================
Though the repository is extractable from its zip file after download,
only the two Site-Packages in its Source-Distribution are installable.
The extensive engineering notebook documention and two Developer-Sand-
boxes are not installable because they are provided only to facilitate
software development, maintenance and troubleshooting.
The two Site-Packages may be installed and verified via the approprite
install commands:
1. Example for installing and verifying the Python 2.x site-package:
a. cd ./tsWxGTUI_PyVx_Repository/SourceDistributions/
Site-Packages/tsWxGTUI_PyVx/Python-2x
b. python2.7 setup.py install
c. Follow the demonstration and test instructions in:
./tsWxGTUI_PyVx_Repository/Documents/Demo.txt
2. Example for installing and verifying the Python 3.x site-package:
a. cd ./tsWxGTUI_PyVx_Repository/SourceDistributions/
Site-Packages/tsWxGTUI_PyVx/Python-3x
b. python3.4 setup.py install
c. Follow the demonstration and test instructions in:
./tsWxGTUI_PyVx_Repository/Documents/Demo.txt
Features:
=========
1. Launching from command line interface mode
2. Frames, Dialogs, Scrolled Windows
3. Panels
4. Buttons, CheckBoxes, Radio Boxes/Buttons
5. Text Entry and Password Entry (still under development)
6. Splash Screen display constructed or re-used during launch
7. 68-color palette (mapped into 8-/16-color Curses palette)
8. Logging to Screen and Files
9. Event Handling (not yet general purpose)
10. Task Bar (not yet capable of changing focus)
11. Position and dimensions accepted in Pixel (default) or Character
(option) cell units.
Capabilities:
=============
1. A library of general-purpose, re-usable building block
modules for embedded systems. The building blocks:
a. Provides both Command Line and Graphical-style User
Interfaces that enable application developers to
focus on the application specific functionality and
not waste effort reinventing the functionality
typical of Command Line and Graphical User Interfaces.
b. Can operate in an isolated system (Stand-Alone mode)
or in a networked system (Stand-Among mode).
c. Are implemented in Python 2.x.
d. Are ported to Python 3.x using a Python program
(2to3) which reads Python 2.x source code and applies
a series of fixers to transform it into valid Python
3.x code. Debugging of the Python 3.x code may be
required to identify and resolve such runtime issues
as decoding the type of data returned by Python
curses modules.
2. Cross-platform designs run, without change, on Linux,
Mac OS X and Microsoft Windows (the latter requires
Cygwin, a Linux-like command line interface and GNU
tool add-on from Red Hat).
3. Command Line Interface includes building blocks that
create a sophisticated POSIX-/ Unix-like terminal
interface. It features:
a. Command line keyword/value pair option and positional
argument parsing (using the most recent Python argparse,
optparse or getopt package that is available).
Default parser supports typical options:
-h/--help,
-a/--about,
-d/--debug,
-v/--version
-V/--Verbose;
b. Error/exception handling displays messages on console
and returns Unix-style 8-bit exit code to coordinate
a sequence of multiple applications.
c. Event logging to application designated terminals,
files or devices.
d. Launching, event dispatching and terminating of the
Graphical-style User Interface.
e. Wrapper used to ensure that each application termin-
ates with the exit code and message appropriate for
co-ordination of a sequence of multiple applications.
f. Tool to scan an operator designated directory tree
and strip lines of source code of any superfluous
trailing blank characters.
g. Tool to create a copy of an operator designated
directory tree after stripping comments and doc
strings from Python source code to reduce required
embedded system storage resources.
h. Tool to scan an operator designated directory tree
and report on the total number of files, total number
of lines of code, total number of blank/comment lines
and their distribution among the file name extensions
associated with various programming language such as
Ada, Assembler, C/C++, Fortran, Pascal, Python, and
shell script.
4. Graphical-style User Interface includes building blocks
that create a sophisticated Desktop, Laptop and Work-
station Computer-like terminal interface. Using the
"nCurses" character-mode and xterm libraries of the
host platform, it emulates a subset of the "wxPython"
pixel-mode Graphical User Interface. This enables
"wxPython" applications to run with little, if any,
change if they neither use icons nor other bit-mapped
images, nor use proportional sized fonts or associated
special features. The emulation features the following
widgets:
a. Tiled (side-by-side) and overlapped (partially hidden)
windows.
b. Frames / Dialogs (top-level windows containing other
widgets).
c. Menu bars (windows) containing drop down menus
(windows).
d. Tool bars (windows) containing a collection of
windows for on-screen buttons, menus, or other input
or output widgets.
e. Status bars (windows) containing an information
window, at the bottom of a top-level window, some-
times divided into sections, each of which shows
different information).
f. Task bar (a top-level window) containing buttons for
windows used to control which top-level window has
focus and is not partially hidden.
g. Sizers (non-windows) containing box and grid sizers or
windows for tables of data or buttons.
h. Panels (windows) containing sizers or windows.
i. Buttons (windows) for operator control action trig-
gers,
j. Check boxes (windows) containing buttons for enab-
ling/disabling any one or combination of several
operator mode and option control action triggers.
k. Radio boxes (windows) containing buttons for choice
of one of several operator mode and option control
action triggers.
l. Gauges (windows) for horizontal and vertical bar graph
widgets.
m. Scrolled areas (windows) containing a scrollable
text window and horizontal and/or vertical scrollbars
(each with associated scroll position gauge and
scroll control buttons for action triggers.
n. Redirected output (a top-level window or log file)
containing system and application messages annotated
with date, time and event severity levels that are
printed or sent to syslog, stderr, stdout or scrolled
windows.
o. Splash screen (bit-mapped image) that notifies the
operator that the program is in the lengthy process
of loading.
Limitations:
============
1. Known "nCurses"-based, "wxPython" Emulation Limitations
a. Supports typical nCurses platforms with keyboard,
mouse and only 8-/16 color display terminal or term-
inal emulator despite some older host-specific curses
implementation reports of 88/256 available colors and
7744/32768 color pairs.
b. Supports typical nCurses platforms with keyboard, mouse
and 1-color phosphor vt100 and vt220 terminal or terminal
emulator despite some older host-specific curses implemen-
tations which report no mouse.
However, unlike the xterm mouse interface (which issues a
single hardware notification containing mouse id, mouse x-y-z
position, button id and the id for either a single/double/
triple click), the vt100/vt220 mouse interface (issues a
sequence of six hardware notifications each time a button
is pressed or released. The data from twelve notifications
must be parsed and re-assembled into a single xterm-type
notification before an association can be made between the
triggering (button) and event handling (frame) wxPython-style
GUI objects. Of the hardware notifications, the first six
describe the mouse id, mouse x-y-z position, button id and
button press state. The last six describe the mouse id,
mouse x-y-z position, button id and button release state.
As a consequence, the synthesized vt100/vt220 mouse event
processing recognizes single mouse button clicks but not
double or triple ones.
c. Bit-mapped images are NOT supported except for the
prerecorded one used at startup as a Splash screen.
d. Maps wxPython-style pixel dimensions into/from nCurses
character row and column cell units (emulation assumes
character cell equivalent pixel dimensions are 8 width
x 12 height). The operator must therefor manually con-
figure the terminal window to either use smaller fonts
or a larger window.
e. Supports the operator selected terminal/terminal
emulator fixed font with the blink, bold, dim,
normal, reverse, standout and underline attribute
changed/restored by the application as appropriate.
However, not all host operating system platforms
actually blink and some change colors instead.
f. Unverified support for nCurses platforms with key-
board, mouse and 256-color display terminal or
xterm_256color terminal emulator when control switch
to "USE_256_COLOR_PAIR_LIMIT" is deactivated.
g. Automatically maps 68-color, "wxPython" palette only
into available nCurses 8-/16-color xterm palette.
h. Automatically maps 68-color, "wxPython" palette only
into available nCurses 1-color (ON/OFF) vt100/vt220
palette.
2. Known "wxPython" Emulation Issues
a. Mouse Event handling is rudimentary but suitable for
left/middle/right button click, double-click use.
b. Queued GUI and non-GUI event processing is non-func-
tional while under development.
c. Frame / Dialog closing/resizing/deleting is is non-
functional while under development.
d. Frame / Dialog overlay stacking/hiding/unhiding is
non-functional while under development.
e. Dialog user keyboard input processing is not recom-
mended while under development.
f. Linux host platform-specific exceptions during the
determination of which GUI scrollbar object may
intermittantly occur with mouse clicks.
Requirements:
=============
Python 2.6.8-2.7.9 with curses and/or nCurses
Python 3.0.1-3.4.3 with curses and/or nCurses
Platforms:
==========
Except as noted below, the foundation is known to work with keyboard
and mouse input under:
1. Linux (CentOS 7, Debian 8, Fedora 22, OpenSuSE 13.1, Scientific 7
and Ubuntu 12.04-15.04) using "Terminal" application with
non-color (vt100, vt220), 8-color/64-color pair (xterm, xterm-color),
16-color/256-color pair xterm-16color, xterm-88color and xterm-256color)
terminals/terminal emulators
2. Mac OS X (10.3-10.10) using third-party "iTerm2" application with
non-color (vt100, vt220), 8-color/64-color pair (xterm, xterm-color),
16-color/256-color pair (xterm-16color, xterm-88color and xterm-256color)
terminals/terminal emulators
3. Microsoft Windows (requires Cygwin, free Linux-like plugin from
Red Hat with XP, 7, 8, 8.1 and 10 --- Technical Preview) using
"mintty" application with non-color (vt100, vt220), 8-color/64-color
pair (xterm, xterm-color), 16-color/256-color pair xterm-16color,
xterm-88color and xterm-256color) terminals/terminal emulators
4. Unix (PC-BSD 10, OpenIndiana 151a8, OpenSolaris 11) using "Terminal"
application with non-color (mouseless vt100 and vt220), 8-color/
64-color pair (xterm, xterm-color), 16-color/256-color pair
xterm-16color, xterm-88color and xterm-256color)
terminals/terminal emulators
Where can I get it?
===================
The source code, documentation and engineering notebook are on github:
https://github.com/rigordo959/tsWxGTUI_PyVx_Repository
If you would like more information before downloading a copy of the
repository to your computer, you can browse through the informative
README.txt file and the text files it references.
You may also browse through the Adobe PDF files in the Engineering
Notebook.
However, if you attempt to view Microsoft documents (Word, Excel,
Access, PowerPoint, Visio), GitHub will respond:
"Sorry about that, but we can't show files that are
this big right now."
Please submit comments about the features, performance and priorities
for any requested changes to:
SoftwareGadgetry at comcast.net
More information about the Python-announce-list
mailing list