Software Projects
-
PySheet
PySheet is a simple Python based spreadsheet with integrated interpreter shell. The language for the formulas is Python. This program requires Python 2.6, a recent version of the wxPython library, and my EzWX library to run correctly. EzWX is my attempt at making wxPython a little easier to use to make a fully-functional GUI application. At the very least I'm sure that it will provide an example on how to implement certain GUI features using wxPython. Believe me, it took a lot of scouring the web and trial and error to figure it all out. To keep you from having to do a separate download I'm including ezwx.py in this distribution.
Read More -
WiiuseCpp and PyWii
Wiiusecpp is a C++ wrapper library for the wiiuse Nintendo Wiimote library. Pywii is a python swig wrapper of the wiiusecpp library and can be found as part of that library distribution. Wiiuse is a library written in C that connects with several Nintendo Wii remotes, supports motion sensing, IR tracking, nunchuk, classic controller, and the Guitar Hero 3 controller, and is licensed under GNU GPLv3 and GNU LGPLv3 (non-commercial).
This project heavily depends on wiiuse and so I offer the library with the same license options. Users of either wiiusecpp or pywii will need to download and install the wiiuse library prior to building this library.
-
VisualPyODE
VisualPyODE is a framework library to aid in using PyODE and Visual Python together. When you create objects they have both physical and visual properties. Supports collision, assemblies, and comes with some helpful enhanced joints to simplify creating your visualized simulation. I have implemented the PyODE tutorial demo programs using the library so you can see exactly how it compares. There is also an extra demo of a 6DOF (six degree of freedom) platform that I put together to show how the piston assembly is used.
-
Pynalysis
The ultimate Python IAE (Integrated Analysis Environment) for scientists and engineers. Write and debug your code, manage your data and results in spreadsheet tables, generate plots, and create live code documents.
Alpha Release Coming Soon.
-
Functional Programming Extensions for a Python Shell
For lack of a better term I'm calling this code objects. You can download the zip file here. This should run on any OS with Python installed. One could argue that this is a form of functional programming not to dissimilar from a spreadsheet. This program is an offshoot of my Python based spreadsheet project. I realized that a Python shell which allowed formulas to behave like spreadsheet cells could be useful for those people who like to use Python interactively as a smart calculator. Here is an example of how it can be used:
$ python codeobjects.py
Python Shell with code objects
>>> area = '= length * width'
Calculation of (area = length * width) had errors.
{'area': None}
>>> length = 4
Calculation of (area = length * width) had errors.
{'length': 4, 'area': None}
>>> width = 6
{'width': 6, 'area': 24}
>>> area
24
>>> width = '= a + b'
Calculation of (width = a + b) had errors.
Calculation of (area = length * width) had errors.
{'width': None, 'area': None}
>>> a = 2
Calculation of (width = a + b) had errors.
Calculation of (area = length * width) had errors.
{'a': 2, 'width': None, 'area': None}
>>> b = 10
{'width': 12, 'b': 10, 'area': 48}
>>> b = 5
{'width': 7, 'b': 5, 'area': 28}
>>> area
28
>>>So any string assignment to a single variable will be tested to see if it begins with an equals sign. If it does then it will be converted into a CodeObject. Tarjan's algorithm is used to determine the correct calculation order. As a matter of convenience I have added print statements to display when calculations have errors and the results of variables which have been changed as a result of the new assignment. Other than the re-interpretation
of strings which start with an equals sign the interpreter should act as you would expect.Obviously unlike a spreadsheet the names for your variables do not need to follow a cell address convention of letter for the column and number for the row. When using the interactive interpreter it does not matter too much. Of course this somewhat limits what sort of fancy operations you can do on ranges of variables and such. The simple spreadsheet program PySheet marries the shell with a grid for the best of both worlds.
I am also including a second file pyShellWithCodeObjects.py which contains a slightly modified version of the wxPython pyshell application. If you have wxPython installed you might like to use this instead of the text console. This file is included as an example and is not subject to the licensing of this distribution but rather is subject to the licensing of the wxPython project.
This was originally inspired by this ActiveState Recipe and Roberto Alsina's Blog on the subject. Without these preceding efforts I never would have attempted it.
Distributed under the GPL.