File: developer.txt

package info (click to toggle)
twill 0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 1,472 kB
  • ctags: 1,916
  • sloc: python: 12,686; java: 98; makefile: 18; sh: 2
file content (126 lines) | stat: -rw-r--r-- 3,735 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
================
Developing twill
================

twill is entirely written in Python.  You will need Python 2.3 or later
to develop it.

Package tests
~~~~~~~~~~~~~

twill comes with several unit tests.  They depend on nose_ and
`Quixote 2.3`_.  To run them, type 'python setup.py test'
in the top package directory.

.. _nose: http://somethingaboutorange.com/mrl/projects/nose/
.. _Quixote 2.3: http://www.mems-exchange.org/software/quixote/

Licensing
~~~~~~~~~

twill 0.8 and above are licensed under the `MIT license`_.  All code
currently contained in twill is Copyright (C) 2005, 2006, 2007
C. Titus Brown <titus@idyll.org>.

In plain English: I own the code, but you're welcome to use it,
subsume it into other projects, and distribute it freely.  However,
you must retain copyright attribution.

pyparsing_, BeautifulSoup_, and mechanize_ are all included with
twill, but are under their own licenses.

.. _MIT license: http://www.opensource.org/licenses/mit-license.php

Developer releases
~~~~~~~~~~~~~~~~~~

"Developer releases" incorporating all recent significant changes are
made available at http://darcs.idyll.org/~t/projects/twill-latest.tar.gz

You can install them with easy_install by typing ::

   easy_install -f http://darcs.idyll.org/~t/projects/twill-latest.tar.gz

Obtaining twill with darcs
~~~~~~~~~~~~~~~~~~~~~~~~~~

darcs_ is a distributed version control system that allows users to
maintain their own versions of various programs.  It's a convenient
way for me to make the latest source code available quickly, and
it also is a dandy way to submit patches.

To obtain twill using darcs, install darcs and then type

::

   darcs get http://darcs.idyll.org/~t/projects/twill/

To propose a change to the lead developer, make the changes and
then do a 'send':

::

   darcs record -am "explanation of change"
   darcs send -a

To pull in changes made by the lead developer some time later:

::

   darcs pull

Advanced documentation
~~~~~~~~~~~~~~~~~~~~~~

twill uses a melange of different packages.  Here are some potentially
useful links:

 * `urllib2.py: the missing manual`_ -- a detailed discussion of urllib2
   functionality that can be directly applied to twill.

.. _`urllib2.py: the missing manual`: http://www.voidspace.org.uk/python/articles/urllib2.shtml

Future Plans
------------

TODO:

for 9.0 (beta).

 1. RECORDING.
 2. execute directories/directory trees.
 3. expose 'browser' & document re Grig; regexp esp.; make source docs.
 4. twill-fork: make file writing stuff optional; test massive fork fn.
 5. add config directives for socket timeout.
 6. directory stuff: import from specific place, access script location.

Misc fixes & cleanups:

 1. Paul McGuire's pyparsing suggestions.
 2. cookie "1" vs 1, in cookielib.
 3. extend_with etc. -- module namespaces, e.g. extmodule.fn?
 4. implement more complex proxy support.  proxies proxies proxies.
 5. 'history' to show command history...
 6. record commands to script
 7. command line option for stdout -> file

Random ideas:

 1. Build twill interfaces for zope.testbrowser and mechanoid and pycurl.

    (This shouldn't be too difficult, since both are based on mechanize...)

 2. Develop twill-like languages for PAMIE_ and PyXPCOM_.  Note that the
    hard work, at least for PAMIE, is already done; check out the
    `PAMIE examples page`_.

Contributions are welcome & will be duly acknowledged!

.. _mechanize: http://wwwsearch.sf.net/
.. _pyparsing: http://pyparsing.sourceforge.net/
.. _darcs: http://abridgegame.org/darcs/

.. _PAMIE: http://pamie.sourceforge.net/
.. _PAMIE examples page: tutoriala.html
.. _PyXPCOM: http://kb.mozillazine.org/PyXPCOM
.. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/