About PyDitz


This package is intended to be a drop-in replacement for the Ditz distributed issue tracker. It provides a pyditz command-line program, which acts (mostly) the same way as ditz, and it adds several other nice things too:

  • Whereas ditz, when typed on its own, runs the todo command, pyditz drops you into a command shell where you can run Ditz commands and get completion on command names, issue names and release names according to context.
  • With PyDitz, you don't have to run it from the same directory where the issue database is; it will look in parent directories for it.
  • It keeps an intelligent cache of issues, so parsing of all the YAML files isn't necessary for each command. This greatly improves speed when you have lots of issues.
  • You can extend PyDitz using plugins that you write---either simple standalone files (similar to the ditz 'hook' feature), or packages that use setuptools entrypoints.
  • You can use the database engine of PyDitz in Python programs to migrate bug databases to and from Ditz format, or create summary reports in your own favourite format. Me, I prefer reStructuredText and rst2pdf.


To install and run it:
PyYAML, Jinja2 and six
To have nice terminal highlighting output:
Pygments (and colorama if you're on Windows)
To mark up description and comment text in HTML output:
Markups (and the modules it needs to function)
To run the test suite:
Nose, Mock and Coverage
To build source distributions from the checked-out Mercurial repo:
hgtools and flake8
To build the documentation:
Sphinx and the napoleon extension


The usual incantation will install things:

python setup.py install

This will install the ditz module and a console command called pyditz to invoke in a similar manner to the original ditz.

If you want to shadow the original completely, and have the ditz command run this instead, create a file called ditz.cfg in a .ditz subdirectory of your home directory and add these lines:

command = ditz

This only takes effect at installation time. Of course, instead of ditz you can choose anything else more keyboard-friendly.


The current documentation can be found online here. You can also look at an example of the HTML output.


PyDitz is distributed under the GNU Lesser General Public License, v2 or later.