This directory contains a number of Python programs that are useful
while building or extending Python.

bgen		Generate complete extension modules from a
		description.  Still under development!

faqwiz		FAQ Wizard.
		See http://grail.cnri.reston.va.us/cgi-bin/faqw.py
		for a live example.

freeze		Create a stand-alone executable from a Python program.

modulator	Interactively generate boiler plate for an extension
		module.  Works easiest if you have Tk.

scripts		A number of useful single-file programs, e.g. for
		converting old Python sources to the current language
		definition.

versioncheck	A tool to automate checking whether you have the latest
		version of a package (by Jack Jansen).

webchecker	A link checker for web sites.
