mkpythonproj Developer's Guide |
||
Table of Contents
Architecture
DirectoriesThe untarred package has: mkpythonproj/ AUTHORS COPYING MANIFEST README mkpythonproj.py the main script mkpythonproj/ the supporting module __init__.py styles.py pdx styles for the documentation templates.py code chunks licenses/ README how to add more licenses GPL.py LGPL.py setup.py distutils-based doc/ go index.{pdx,html} deshist.{pdx,html} design history devguide.{pdx,html} developers' guide manual.{pdx,html} manual (empty for now) During installation, the mkpythonproj package goes to site-packages (or wherever setup.py options say to go). The mkpythonproj.py is copied to a bin dir on the PATH.
TemplatesThe outputs are generated from triple-quoted blocks of text. Small blocks are left on the main script, others are in templates.py or in the various license modules. Thus we are using python to generate python. This is generally ok. However, in the generation of "setup.py", there are problems when the generated code has quote blocks of its own. In those cases, we cannot use %s or %(name)s formatting, and must just concatenate our text pieces. The package ships with GPL and LGPL, with LGPL as the default. Others can be added as needed. In each case, the license file has two triple-quoted blocks:
Outputs
Full project dir treeThe result is a full dir tree, rooted where the mkpythonproj is run. It builds:
myproj/ RCS/ AUTHORS Pointer to doc/index.html COPYING GPL license MANIFEST list of included files README Pointer to doc/index.html VERSION used by setup to establish vernum of package setup.py distutils "setup.py" plus doc and test options myproj.py the same script as the simple case go runs the test doc/ go builds the documents article_style.pdx style sheet for pdx default_cfg.pdx default configuration devguide.pdx developer's guide devguide.html same, output to html deshist.pdx design history deshist.html same, output to html manual.pdx user's manual manual.html same, output to html test/ go the test script, which runs the ../myproj.py (edit or extedn as needed for this project) The actual script (here, myproj.py) has:
Simple scriptThe "--script" option generates a single script. It is the same script as generated in the full project, but it is made in the current dir, not in a new dir. Thus, it can be used to make several scripts in the same package dir.
SetupThe "--setup" option generates a new setup.py file. This is in anticipation of future improvements to distutils. An old setup.py is renamed to ".bak".
DocumentsThe "--doc" option generates new document files. Old doc files are renamed to ".bak". The initial doc templates are pdx-centric, but could be changed to pythondoc-centric.
Implementation IssuesI've tried to use generic system commands, so the script will work on multiple environments, but it is still *NIX centric.
|
||
Creator: Harry George Updated/Created: 2004-11-14 |