Bug class
---------

The Bug class defined in bzutils.bug is used to store the metadata of a
bug report, being used on the return value of most functions. It has
the attributes id, product, component, status, resolution, reporter,
assignee, summary, priority and severity, with a get_<attribute> and a
set_<attribute> for each.

Backend-agnostic bugzilla interaction
-------------------------------------

The module bzutils.bugzilla, which contains backend-agnostic bugzilla
functions, is the preferred way to use bzutils. It contains a class
Bugzilla, with the followin methods:

* query(charts=None, str=None): Queries a bugzilla server. Currently this
  uses boolean charts, but it can change in the future. It can be passed
  a chart list (as charts) or a chart string (as str). See the syntax
  below.

Boolean charts
--------------

Boolean charts, which are used to query bugzilla servers, can be represented
in two ways inside bzutils:

* Chart list:

  Each condition is represented by a tuple on the form
  (connective, field, operator, value); where conective must
  be None on the first condition of a chart and "AND" or "OR"
  in the others. See the Bugzilla manual or the fields and
  operators list definitions for valid fields and operators.

  Each chart is formed by a list of conditions. The charts
  argument must be a list of charts.

* Chart string:

  Parses a string and returns a chart which can be used on queries.

  Each condition should be represented by "(<field>, <operator>, <value>)"
  and joined together with "|" (or) or "&" (and). Charts should be
  separated by ":".

For more details (and up to date documentation), see bchart.py
