Differences between revisions 7 and 8
Revision 7 as of 2008-11-15 14:00:13
Size: 10587
Editor: localhost
Comment: converted to 1.6 markup
Revision 8 as of 2014-01-25 14:05:56
Size: 334
Editor: MiraHagel
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Python library ideas ==

Suggestions that involve working on various third-party libraries that
aren't part of the Python source tree.

 * Create a Pythonic auto-upgrade framework to allow scripts to update themselves to newer versions.
 * Add EPS import to ReportLab PDF library
     http://article.gmane.org/gmane.comp.python.reportlab.user/4052
 * make [[http://www.spread.org/|Spread]] Python Binding compile with Python 2.4 on win32 (and possibly other major platforms)
 * Revive the code or idea from [[http://www.cosc.canterbury.ac.nz/~greg/python_gui/|PyGUI]] or [[http://anygui.sourceforge.net/|Anygui]]
     These are Python-level cross-toolkit compatibility libraries for GUI work. Currently there is a "live" project called [[http://developer.berlios.de/projects/cimarron/|Cimarron]] along these lines. (PyGUI is not a dead project, however Anygui is)
 * NotebookInterfaceForIpython
 * ../PygameOnCtypes
 * Develop the Visual Designer and help update the documentation of [[http://dabodev.com/|Dabo]].
     Dabo is a framework for creating 3-tier desktop applications. The UI tier is a wrapper around [[http://www.wxpython.org/|wxPython]] that greatly streamlines and simplifies the wxPython API, and the Designer is a RAD tool for visually developing UI interfaces.
 * Psyco for MacOSX. PPC, and universal binary versions. (Note: unlikely to find a mentor)
 * Create a bunch of modules like what Squeak has for 3D modeling,
 events etc. (the exact list may be somewhat different, I haven't
 researched this in any depth). This is inspired by a recommendation
 from Alan Kay made at the Shuttleworth workshop. (Would the (GPL) soya3D projects be relevant here?)
 * Design and implement an interface for manipulating both [[http://www.openoffice.org/product/calc.html|Calc]] and [[http://www.gnome.org/projects/gnumeric/|Gnumeric]] spreadsheets (in the same way that DB-API allows programs to interact with a variety of databases).
 * Write an IPC or RPC package to allow for concurrent Python execution. Compare with http://rpyc.sourceforge.net
 * Implement ctypes support for GCC ARM platforms. The underlying issue is lack of closure API support for ARM in libffi. A patch available at http://handhelds.org/~pb/arm-libffi.dpatch, that should be hopefully a good starting point. ctypes CVS has a libffi_arm_wince directory, which also seems to support closure API.
 * Create a Python web app server, synthesized from the many options already available, with an eye towards the total developer experience.
 * Integrate a Javascript interpreter with Python. [[http://webcleaner.sourceforge.net/|WebCleaner]] has some initial work; so extracting, documenting, and refining that code would be in order. The whole spec is probably too much, but you could focus on langauge support, or on "what typical web pages actually need".
 * Implement [[http://www.ieee802.org/1/pages/802.1x.html|IEEE Std 802.1X]] Authenticator for wired networks,with one of the low-level python networking libraries: [[http://www.secdev.org/projects/scapy/|scapy]],[[http://twistedmatrix.comTwisted.Pair]],[[http://pycap.sourceforge.net/|pycap]] or maybe something else.Probably some python firewall bindings will be needed too.
 * PyGame Projects
  * Implement CodingProjectIdeas/PygameOnCtypes
  * Make a pygame plugin for IE, netscape. CodingProjectIdeas/PythonWebPlugin
  * ../PygameGui
  * ./SimpleNetworkingForPygame
 * Data mining in Python (e.g., adding a new data mining algorithm or tool to the Orange data mining suite, develop a new widget for text mining or 3-D data visualization, develop Orange interface to R or alike, port Orange to Mac OS X, [[http://www.ailab.si/orange]])
 * Add a wxPython/wax based object browser to the ipipe module which will be part of the next release of [[http://ipython.scipy.org/|IPython]] (more info on the [[http://projects.scipy.org/ipython/ipython/wiki/GoogleSommerOfCode2006|IPython wiki]]).
 * Implement a pure python library that handles unicode [[http://www.unicode.org/cldr/|CLDR]]. (like ICU?)
 * Take an existing set of sources for M2Crypto and build a robust distribution from it. This should include comprehensive API documentation, a full test suite, and providing a better Python interface, not just a light wrapper around openssl, for many of the functions like X.509 certificates that are not currently exposed.
 * Work on [[http://sage.scipy.org/sage/|SAGE]], which is a Python-based free open source computer algebra system. SAGE is the algebraic analogue of [[http://www.scipy.org|scipy]]---it incorporates and "glues together" a wide range of existing open-source mathematics packages such as Maxima, Matplotlib, and GAP. Here's a [[http://sage.scipy.org/sage/projects|list of projects]] and an [[mailto:wstein@gmail.com|email contact]].
 * Conduct a review of one chunk of functionality in [[http://www.scipy.org|scipy]] similar to the one currently in progress about [[http://projects.scipy.org/scipy/scipy/wiki/StatisticsReview|the statistics package]]. Alternatively, add a chunk of functionality to scipy. Recently discussed requests have been bindings to [[http://www.llnl.gov/casc/sundials/|SUNDIALS]], sparse matrices in [[http://www.netlib.org/lapack/lug/node121.html|LAPACK packed storage formats]], 3-D Delaunay tetrahedralization and natural neighbour interpolation, and porting the [[http://www.ncrg.aston.ac.uk/netlab/index.php|Netlab]] neural network code to scipy.
 * Add more plot types to the recently refactored [[http://code.enthought.com/chaco/|Chaco]] plotting library ([[mailto:robert.kern@enthought.com|contact]]).
 * Make [[http://code.enthought.com/traits/|Traits UI]] available to Qt, Tk, or GTK applications ([[mailto:robert.kern@enthought.com|contact]]).
 * Help make [[http://ipython.scipy.org/|IPython's]] capabilities available inside a wxPython application.
 * Use [[http://www.cs.washington.edu/research/constraints/cassowary/|Cassowary]] or some other constraint solving library to implement automatic, "nice" GUI layout.
 * Write general [[http://pango.org/|Pango]] bindings that can be used by Python libraries to do general text layout outside of PyGTK and pycairo.
 * Help merge the codebases of [[http://matplotlib.sourceforge.net|matplotlib]] and [[http://code.enthought.com/chaco/|Chaco]] ([[mailto:jdhunter@nitace.bsd.uchicago.edu|contact]], [[mailto:robert.kern@enthought.com|contact]]).
 * Implement mathematical formula typesetting using TeX algorithms and TeX fonts but without needing a TeX installation.
 * [[http://www.soya3d.org/wiki/Soya|Soya3d]] Projects
  * add multi-texture support (bump/normals mapping, etc)
  * verse support for shapes and materials
  * improved exporters/importers (blender, etc)
  * cal3d per-bone and morph animations
  * improved ode integration
  * api reference and improved examples/tutorials
 * Improve [[http://yaml.org/|YAML]] [[http://pyyaml.org/|support in Python]], e.g.,
  * make [[http://pyyaml.org/wiki/PySyck|Python support in Syck]] (C extension) as complete as Ruby's
  * make [[http://whytheluckystiff.net/syck/|Syck]] support Unicode
  * contribute to [[http://pyyaml.org/wiki/PyYAML|PyYAML]] (pure Python version)
 * Review and consolidate libraries/ modules for, e.g., file metadata reading and writing (MS Word doc, PDF, GIF, MP3/ ID3)
 * Choose some common modules and [[http://peak.telecommunity.com/DevCenter/PythonEggs|eggsify]] them; write about it to promote more eggsification
 * Extend the CodeCoverage module to extend into os.fork() and os.exec('python') calls. Fix Nose to facilitate this.
 * Write a [[http://www.scipy.org|scipy]] module that implements black-box, [[http://statistik.wu-wien.ac.at/projects/arvag/index.html|automatic random number generation]] algorithms for the numerous probability distributions defined in [[http://www.scipy.org/doc/api_docs/scipy.stats.distributions.html|scipy.stats]] ([[mailto:robert.kern@enthought.com|contact]]).
 * A more complete CD interface. [[http://www.gnu.org/software/libcdio|libcdio]] is a library for Platform-dependent control and reading of a CD device. There is also some support for reading CD images (BIN/CUE CDRDAO, ISO) as though they were real devices. [[http://freshmeat.net/projects/libcdio/?branch_id=62870|Some work]] has been done to extend the API to Python, via SWIG. However this OO wrapping is not complete. In particular handling MMC (Multi-media) commands is missing and a CD-Paranoia interface (OO or not) is missing. All of the OO API's are fairly new, so if you feel you want to improve on the API, that's okay too.
 * A python interface to [[http://www.rabbitmq.com/|rabbitmq]]. They have a java interface right now (the engine itself is written in erlang) so you could use it for "inspiration".
 * Convince/help Trevor Perrin to make a full ssl interface (i.e., make [[http://sourceforge.net/projects/tlslite|tlslite]] feature complete).
 * Implement [[http://www.w3.org/TR/xmlenc-core/|Xml Encryption]] and [[http://www.w3.org/TR/xmldsig-core/|Xml Signature]] '''using lxml'''
    * First iterate on a "pure" python prototype (using tlslite or whatever) to create a clean API, and after that use pyrex to bind directly against Aleskey's xmlsec package for better performance (maybe both implementations could live together, a la ElementTree/cElementTree and StringIO/cStringIO). Another option is to use something from the [[http://xmlsig.sourceforge.net/|xmlsig project]].
    * Another try on the quest for a clean API: Use [[http://jcp.org/en/jsr/detail?id=105|jsr105]] and [[http://jcp.org/en/jsr/detail?id=106|jsr106]] for a reference (obviously using python idioms instead of the java ones).
 

-----

Less fleshed-out ideas:
 * An educational programming environment similar to [[http://dewey.soe.berkeley.edu/boxer.html/index.html|Boxer]] for Python
     Kind of a visual programming environment, where blocks are translated into "boxes" (along with a few other select ideas). One of the more conservative visual programming environments, and it seems very translatable to Python. Or maybe work on a decent programming environment for [[http://pylogo.org|PyLogo]]. ''Boxer isn't a programming environment. I think this idea isn't fleshed out enough.''

      Having something similar to Simulink would be VERY useful in regards to the visual programming environment.

 * A more complete version of Modelica in Python would also be useful http://www.ercim.org/publication/Ercim_News/enw36/ernst.html or http://moncs.cs.mcgill.ca/people/ffan/report.dtml
Greetings! I'm Elaina Sparling but I don't like when people use my name. Software building is my profession. To enjoy hockey is really an issue that I am totally hooked on. I've always liked residing in Alabama but I'll need to move-in per year or two.<<BR>>
<<BR>>
My web page; [[http://diygiftideas.tumblr.com/|creative zen]]

Greetings! I'm Elaina Sparling but I don't like when people use my name. Software building is my profession. To enjoy hockey is really an issue that I am totally hooked on. I've always liked residing in Alabama but I'll need to move-in per year or two.

My web page; creative zen

CodingProjectIdeas/Libraries (last edited 2014-02-09 11:39:15 by MarcAndreLemburg)

Unable to edit the page? See the FrontPage for instructions.