PyXR 0.9.4.13 Readme file
Introduction
PyXR generates pretty-printed HTML from python source files. The
generated web
pages have extensive cross-referencing hyperlinks.
New Features for Release 0.9.4.13 (01 Jan 2005 14:46:44 +0000)
- Support for new language features in 2.4.
- Fixes for new html documentation formatting.
- Improved handling of modules with extended html docs (such as
the os module)
- Proper handling of nonexistant entries in sys.path such as
c:\python23\lib\plat-win
- Proper handling of mixed tabs and spaces
- Proper display of line continuations via \
- Use universal newline mode when reading .py source files (if
supported)
- Append to releases.py in binary mode so that it uses proper
newlines.
- User-configurable headers and footers on pages
- More detailed documentation of the settings.cfg configuation file
included in settings.html
- Added filenames to exception text for fatal errors due to malformed
python source.
- SkipInvalidFIles flag defaults to 1 now. Must turn off to debug.
Basic Installation
-
PyXR can be downloaded here.
-
Unzip the archive, copy to your site-packages directory
- Create a settings.cfg file in the PyXR directory. Several
sample configurations
exist. You might be able to rename the one for your os to settings.cfg.
More detailed configuration instructions are available in the file
'settings.html' in the PyXR distribution.
Using PyXR
Trying out the app
PyXR was designed to generate static html pages that are in turn
served up by
your platform's webserver (IIS, apache, etc). However, there is a
testbed
server that you can use if you want to try PyXR before generating
serveral megs
of output. Simply run "python webserver.py" from the PyXR directory.
This will
perform initialization of the index (which will take a few minutes) and
start a
webserver at http://localhost:8088/ that will server 100 pages. This
builds the
webpages without any caching, so it'll take a few seconds to generate
each page
as you're browsing.
Generating Static pages
If you've tested the app, and decided that you like it, you'll probably
want to
generate static output. To do so, just run 'python buildWeb.py' from the
PyXR
directory. [You may want to review the settings configuration section
before
doing this]. Ten to twenty minutes later, you should have a full copy of
the
source on your server. Scheduling a nightly automated job is left as an
exercise for the reader.
Integrating the Library Reference
Library Reference isn't integrated by default because the .html
documents can exist in a variety of locations on any given platform.
- You may need to download the archive (2.4 is here) from python.org or "make" the documentation
manually.
- You'll probably want to extract the archive into a webserver's
directory (\inetpub\wwwroot\, /var/www/htdocs, etc) and verify that you
can navigate. (IIS doesn't use index.html as a default directory page
until you set it up.)
Once you have the documentation installed, set useLibraryReference to 1
in settings.cfg and set the libUrl and libDirectory appropriately.
These should point to the 'lib' subdirectory and not the 'doc'
directory. Example:
[libraryReference] useLibraryReference = 1 libDirectory = c:\inetpub\wwwroot\python23doc\lib\ libUrl = /python23doc/lib/
Generating a cached data file
Either of the above options has an initialization phase that can take
serveral
minutes. They can accept an optional parameter that points to a cached
data
file. This will speed things up in development (or if for some reason
you just
can't run buildWeb.py due to capacity issues). Running "python
astProcess.py
filename" will generate the file. After it's been generated, "python
webserver.py filename" or "python buildWeb.py filename" will utilize it.
Just
remember not to edit any of your .py files if you're doing this ;)
ToDo- the future
-
Figure out how to handle superclasses. I don't think hyperlinking
directly to
another class in another file would be intuitive. There should be
something we
can do though.
-
Refactor, refactor, refactor
-
Performance, performance, performance
Not ToDo (so don't ask)
-
Won't try to tie into CVS versions. You'd need to know the state of
every
referenced document for a particular version.
- Won't try to implement incremental updates or caching. It's more
difficult than just checking a file's timestamp. Use a scheduled job
instead.
|