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
The architecture features Python 2x & Python 3x based Command Line Interfaces
(CLI) and Python "Curses"-based "wxPython"-style, Graphical-Text User
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
1. Example for installing and verifying the Python 2.x site-package:
a. cd ./tsWxGTUI_PyVx_Repository/SourceDistributions/
b. python2.7 setup.py install
c. Follow the demonstration and test instructions in:
2. Example for installing and verifying the Python 3.x site-package:
a. cd ./tsWxGTUI_PyVx_Repository/SourceDistributions/
b. python3.4 setup.py install
c. Follow the demonstration and test instructions in:
1. Launching from command line interface mode
2. Frames, Dialogs, Scrolled Windows
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.
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
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:
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
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
a. Tiled (side-by-side) and overlapped (partially hidden)
b. Frames / Dialogs (top-level windows containing other
c. Menu bars (windows) containing drop down menus
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
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-
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
l. Gauges (windows) for horizontal and vertical bar graph
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
o. Splash screen (bit-mapped image) that notifies the
operator that the program is in the lengthy process
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
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.
Python 2.6.8-2.7.9 with curses and/or nCurses
Python 3.0.1-3.4.3 with curses and/or nCurses
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)
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)
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)
Where can I get it?
The source code, documentation and engineering notebook are on github:
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
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:
The decorator module is over ten years old, but still alive and
kicking. It is used by several frameworks and has been stable for a long
time. It is your best option if you want to preserve the signature of
decorated functions in a consistent way across Python
releases. Version 4.0 is fully compatible with the past, except for
one thing: support for Python 2.4 and 2.5 has been dropped and now
there is an unified code base for Python 2.6, 2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5.
You can download the new release from PyPI with the usual
$ pip install decorator
The source code and the documentation are on GitHub:
https://github.com/micheles/decorator/blob/4.0.0/documentation.rst (for Python 2.X)
https://github.com/micheles/decorator/blob/4.0.0/documentation3.rst (for Python 3.X)
Since now there is a single manual for all Python versions, I took the
occasion for overhauling the documentation. Therefore, even if you are
an old time user, you may want to read the docs again, since several
examples have been improved. The packaging has been improved and I
am distributing the code in wheel format too. The integration with
setuptools has been improved and now you can use ``python setup.py
test`` to run the tests. A new utility function ``decorate(func,
caller)`` has been added, doing the same job that in the past was done
by ``decorator(caller, func)``. The old functionality is still there
for compatibility sake, but it is deprecated and not documented
Apart from that, there is a new experimental feature. The decorator
module now includes an implementation of generic (multiple dispatch)
functions. The API is designed to mimic the one of
``functools.singledispatch`` (introduced in Python 3.4) but the
implementation is much simpler; moreover all the decorators involved
preserve the signature of the decorated functions.
Announcing the release of RunStats version 0.5.3
What is RunStats?
RunStats is an Apache2 licensed Python module that computes statistics and
regression in a single pass. Supported summary statistics include min, max,
mean, variance, standard deviation, skewness, and kurtosis. Simple linear
regression calculates slope, intercept and correlation. It's implemented in
pure-Python with 100% code coverage, complete documentation, and numerically
What's new in 0.5.3?
- Added optional iterable parameter to object initializers.
- Added division import from __future__.
- All pushed values are now explicitly converted to float.
- Updated documentation with Tutorial and API.
- Documentation: http://www.grantjenks.com/docs/runstats/
- Download: https://pypi.python.org/pypi/runstats
- Source: https://github.com/grantjenks/python_runstats
- Issues: https://github.com/grantjenks/python_runstats/issues
This release is backwards-compatible. Please upgrade.
I'm pleased to announce the first release of 'metamodule', a new
package that allows you to safely and easily hook attribute access on
your package's module object (among other things). So for example, you
can easily set it up so that a submodule in your package is lazily
loaded the first time it is used, or so that a DeprecationWarning is
issued every time a global constant is accessed.
Share and enjoy,
Nathaniel J. Smith -- http://vorpus.org
PyQt5 v5.5 has been released and is available from
PyQt5 is a comprehensive set of bindings for v5 of The Qt Company's Qt
cross-platform application framework. It supports Python v3, v2.7 and
The highlights of this release include support for Qt v5.5.0 including
the new QtLocation and QtNfc modules.
PyQt5 supports cross-compiling to iOS and Android.
Windows installers are provided which contain everything needed for
development (including Qt, Qt Designer, QScintilla, and MySQL,
SQLite and ODBC drivers) except Python itself. Installers are provided
for the 32 and 64 bit versions of Python v3.4.
PyQt5 is implemented as a set of 35 extension modules comprising more
a 1,000 classes including support for:
- non-GUI infrastructure including event loops, threads, i18n, user and
application settings, mapped files and shared memory
- GUI infrastructure including window system integration, event
2D graphics, basic imaging, fonts, OpenGL
- a comprehensive set of desktop widgets
- WebKit and Chromium based browsers
- location and positioning services (including OpenStreetMap) using
satellite, Wi-Fi or text file sources
- a client-side library for accessing Qt Cloud Services
- full integration with Quick2 and QML allowing new Quick items to be
implemented in Python and created in QML
- event driven network programming
- multimedia including cameras, audio and radios
- NFC enabled devices
- sensors including accelerometers, altimeters, compasses, gyroscopes,
magnetometers, and light, pressure, proximity, rotation and
- serial ports
- XPath, XQuery, XSLT and XML Schema validation
- a help system for creating and viewing searchable documentation
- unit testing of GUI applications.
If you are a Python programmer wanting to set up an open-source server for
your own application, if you don't need a high volume, general purpose
server and are put off by the complexities of Apache and BaseHTTPServer,
then ProgrammableServer may be for you. It is easy to setup and, if
With ProgrammableServer, you can create a simple or complex application
whose demands on a web server are few. You do this by writing one or more
*expanders* each of which handles a single kind of request. Writing an
expander is made easier because you have a choice of mixins to include. An
expander mixin consists of a few functions that provide an environment
customized to your needs.
See more at:
Here is the beginning of the README.md for
If you are a Python programmer wanting to set up a server for your own application, if you don't need a high volume, general purpose server and are put off by the complexities of Apache and BaseHTTPServer, then ProgrammableServer may be for you. It is easy to setup and, if necessary, reconfigure.
With ProgrammableServer, you can create a simple or complex application whose demands on a web server are few. You do this by writing one or more expanders each of which handles a single kind of request. Writing an expander is made easier because you have a choice of mixins to include. An expander mixin consists of a few functions that provide an environment customized to your needs.
Trac 1.1.6 Released
Trac 1.1.6, the final release on the 1.1.x
development line leading up to 1.2, provides
more than a half-dozen minor fixes and
Note that the 1.1.x releases are "stable" and
tested snapshots of the trunk. They can be seen
as sub-milestones on the road towards Trac 1.2. As
opposed to maintenance releases, *we offer no
guarantees on feature and API compatibility from
one 1.1.x release to the next*.
However, by following 1.1.x you get a chance to
use new features earlier, and therefore be able to
contribute feedback when things are still in flux.
It's also less risky than just getting the latest
trunk, as we won't cut a 1.1.x release in the middle
of a series of changes (though we had and still intend
to have a good record of keeping things always working
The intended audience are therefore enthusiast Trac
users and Trac plugin developers. These packages should
*not* be integrated in distributions, for example.
The fixes made for 1.0.7 are also included.
You can find all the detailed release notes at:
- The Trac Team http://trac.edgewall.org/