<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>[future] </title> <meta content="text/html;charset=ISO-8859-1" name="Content-Type"/> <link href="style.css" media="screen" rel="stylesheet" type="text/css"/></head> <body> <div><a href="http://codespeak.net"><img alt="py lib" height="114" id="pyimg" src="http://codespeak.net/img/pylib.png" width="154"/></a></div> <div id="metaspace"> <div class="project_title">[future] </div> <div id="menubar"><a class="menu" href="index.html">index</a> <a class="menu" href="../../apigen/api/index.html">api</a> <a class="menu" href="../../apigen/source/index.html">source</a> <a class="menu" href="contact.html">contact</a> <a class="menu" href="download.html">download</a></div></div> <div id="contentspace"> <div id="docinfoline"> <div style="float: right; font-style: italic;"> </div></div> <div class="document" id="visions-and-ideas-for-further-development-of-the-py-lib"> <h1 class="title">Visions and ideas for further development of the py lib</h1> <div class="contents topic" id="contents"> <p class="topic-title first">Contents</p> <ul class="auto-toc simple"> <li><a class="reference internal" href="#distribute-tests-ad-hoc-across-multiple-platforms" id="id1">1 Distribute tests ad-hoc across multiple platforms</a></li> <li><a class="reference internal" href="#make-apigen-useful-for-more-projects" id="id2">2 Make APIGEN useful for more projects</a></li> <li><a class="reference internal" href="#consider-apigen-and-pdb-integration" id="id3">3 Consider APIGEN and pdb integration</a></li> <li><a class="reference internal" href="#distribute-channels-programs-across-networks" id="id4">4 Distribute channels/programs across networks</a></li> <li><a class="reference internal" href="#benchmarking-and-persistent-storage" id="id5">5 Benchmarking and persistent storage</a></li> <li><a class="reference internal" href="#refactor-path-implementations-to-use-a-filesystem-abstraction" id="id6">6 Refactor path implementations to use a Filesystem Abstraction</a></li> <li><a class="reference internal" href="#integrate-interactive-completion" id="id7">7 Integrate interactive completion</a></li> <li><a class="reference internal" href="#consider-more-features" id="id8">8 Consider more features</a></li> </ul> </div> <p>This document tries to describe directions and guiding ideas for the near-future development of the py lib. <em>Note that all statements within this document - even if they sound factual - mostly just express thoughts and ideas. They not always refer to real code so read with some caution.</em></p> <div class="section" id="distribute-tests-ad-hoc-across-multiple-platforms"> <h1><a class="toc-backref" href="#id1">1 Distribute tests ad-hoc across multiple platforms</a></h1> <p>After some more refactoring and unification of the current testing and distribution support code we'd like to be able to run tests on multiple platforms simultanously and allow for interaction and introspection into the (remote) failures.</p> </div> <div class="section" id="make-apigen-useful-for-more-projects"> <h1><a class="toc-backref" href="#id2">2 Make APIGEN useful for more projects</a></h1> <p>The new APIGEN tool offers rich information derived from running tests against an application: argument types and callsites, i.e. it shows the places where a particular API is used. In its first incarnation, there are still some specialties that likely prevent it from documenting APIs for other projects. We'd like to evolve to a <span class="incremental">py.apigen</span> tool that can make use of information provided by a py.test run.</p> </div> <div class="section" id="consider-apigen-and-pdb-integration"> <h1><a class="toc-backref" href="#id3">3 Consider APIGEN and pdb integration</a></h1> <p>The information provided by APIGEN can be used in many different ways. An example of this could be to write an extension to pdb which makes it available. Imagine you could issue a pdb command "info <function name>" and get information regarding incoming, and outgoing types, possible exceptions, field types and call sites.</p> </div> <div class="section" id="distribute-channels-programs-across-networks"> <h1><a class="toc-backref" href="#id4">4 Distribute channels/programs across networks</a></h1> <p>Apart from stabilizing setup/teardown procedures for <a class="reference external" href="execnet.html">py.execnet</a>, we'd like to generalize its implementation to allow connecting two programs across multiple hosts, i.e. we'd like to arbitrarily send "channels" across the network. Likely this will be done by using the "pipe" model, i.e. that each channel is actually a pair of endpoints, both of which can be independently transported across the network. The programs who "own" these endpoints remain connected.</p> </div> <div class="section" id="benchmarking-and-persistent-storage"> <h1><a class="toc-backref" href="#id5">5 Benchmarking and persistent storage</a></h1> <p>For storing test results, but also benchmarking and other information, we need a solid way to store all kinds of information from test runs. We'd like to generate statistics or html-overview out of it, but also use such information to determine when a certain test broke, or when its performance decreased considerably.</p> </div> <div class="section" id="refactor-path-implementations-to-use-a-filesystem-abstraction"> <span id="a-more-general-view-on-path-objects"></span><span id="general-path"></span><h1><a class="toc-backref" href="#id6">6 Refactor path implementations to use a Filesystem Abstraction</a></h1> <p>It seems like a good idea to refactor all python implementations to use an internal Filesystem abstraction. The current code base would be transformed to have Filesystem implementations for e.g. local, subversion and subversion "working copy" filesystems. Today the according code is scattered through path-handling code.</p> <p>On a related note, Armin Rigo has hacked <a class="reference external" href="http://codespeak.net/svn/user/arigo/hack/pylufs/">pylufs</a> and more recently has written <a class="reference external" href="http://codespeak.net/svn/user/arigo/hack/pyfuse/">pyfuse</a> which allow to implement kernel-level linux filesystems with pure python. Now the idea is that the mentioned filesystem implementations would be directly usable for such linux-filesystem glue code.</p> <p>In other words, implementing a <a class="reference external" href="http://codespeak.net/svn/user/arigo/hack/pyfuse/memoryfs.py">memoryfs</a> or a <a class="reference external" href="http://codespeak.net/pipermail/py-dev/2005-January/000191.html">dictfs</a> would give you two things for free: a filesystem mountable at kernel level as well as a uniform "path" object allowing you to access your filesystem in convenient ways. (At some point it might even become interesting to think about interfacing to <a class="reference external" href="http://www.namesys.com/v4/v4.html">reiserfs v4 features</a> at the Filesystem level but that is a can of subsequent worms).</p> </div> <div class="section" id="integrate-interactive-completion"> <h1><a class="toc-backref" href="#id7">7 Integrate interactive completion</a></h1> <p>It'd be nice to integrate the bash-like <a class="reference external" href="http://codespeak.net/rlcompleter2/">rlcompleter2</a> python command line completer into the py lib, and making it work remotely and with pdb.</p> </div> <div class="section" id="consider-more-features"> <h1><a class="toc-backref" href="#id8">8 Consider more features</a></h1> <p>There are many more features and useful classes that might be nice to integrate. For example, we might put Armin's <a class="reference external" href="http://codespeak.net/svn/user/arigo/hack/misc/collect.py">lazy list</a> implementation into the py lib.</p> </div> </div> </div></body></html>