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. tabnanny.py
		(by Tim Peters), which checks for inconsistent mixing
		of tabs and spaces.

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.
