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