Run PyLint on the code and produce a report suitable for the
    Jenkins plugin 'violations'.

    Note that there is a bug in the Violations plugin which means that
    absolute paths to source (produced by PyLint) are not read. The sed command
    removes the workspace part of the path making everything good again. This
    requires the environment variable WORKSPACE from Jenkins

def pylint_jenkins():
    """Run PyLint on the code and produce a report suitable for the
    Jenkins plugin 'violations'.

    Note that there is a bug in the Violations plugin which means that
    absolute paths to source (produced by PyLint) are not read. The sed command
    removes the workspace part of the path making everything good again. This
    requires the environment variable WORKSPACE from Jenkins"""
    cmd = '{0} formic -f parseable'.format(PYLINT_EXE).split(' ')
    return dovetail.call(cmd, stdout=BUILD_PYLINT)