The cog module
==============

A synthetic module called ``cog`` provides functions you can call to produce
output into your file.  You don't need to use these functions: with the ``-P``
command-line option, your program's stdout writes to the output file, so
`print()` will be enough.

The module contents are:

**cog.out** `(sOut='' [, dedent=False][, trimblanklines=False])`
    Writes text to the output.  `sOut` is the string to write to the output.
    If `dedent` is True, then common initial white space is removed from the
    lines in `sOut` before adding them to the output.  If `trimblanklines` is
    True, then an initial and trailing blank line are removed from `sOut`
    before adding them to the output.  Together, these option arguments make it
    easier to use multi-line strings, and they only are useful for multi-line
    strings::

        cog.out("""
            These are lines I
            want to write into my source file.
        """, dedent=True, trimblanklines=True)

**cog.outl**
    Same as **cog.out**, but adds a trailing newline.

**cog.msg** `(msg)`
    Prints `msg` to stdout with a "Message: " prefix.

**cog.error** `(msg)`
    Raises an exception with `msg` as the text.  No traceback is included, so
    that non-Python programmers using your code generators won't be scared.

**cog.inFile**
    An attribute, the path of the input file.

**cog.outFile**
    An attribute, the path of the output file.

**cog.firstLineNum**
    An attribute, the line number of the first line of Python code in the
    generator.  This can be used to distinguish between two generators in the
    same input file, if needed.

**cog.previous**
    An attribute, the text output of the previous run of this generator.  This
    can be used for whatever purpose you like, including outputting again with
    **cog.out**.
