# About PyDitz

## Introduction

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.

## Requirements

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

## Installation

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:

[config]
command = ditz


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

## Documentation

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

## License

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