def dump(d, fp, indent=<NUM_LIT:4>, spacer="<STR_LIT:U+0020>", quote='<STR_LIT:">', newlinechar="<STR_LIT:\n>", end_comment=False):
map_string = _pprint(d, indent, spacer, quote, newlinechar, end_comment)<EOL>fp.write(map_string)<EOL>
Write d (the Mapfile dictionary) as a formatted stream to fp

Parameters
----------

d: dict
    A Python dictionary based on the the mappyfile schema
fp: file
    A file-like object
indent: int
    The number of ``spacer`` characters to indent structures in the Mapfile
spacer: string
    The character to use for indenting structures in the Mapfile. Typically
    spaces or tab characters (``\\t``)
quote: string
    The quote character to use in the Mapfile (double or single quotes)
newlinechar: string
    The character used to insert newlines in the Mapfile
end_comment: bool
    Add a comment with the block type at each closing END
    statement e.g. END # MAP

Example
-------

To open a Mapfile from a string, and then dump it back out to an open file,
using 2 spaces for indentation, and single-quotes for properties::

    s = '''MAP NAME "TEST" END'''

    d = mappyfile.loads(s)
    with open(fn, "w") as f:
        mappyfile.dump(d, f, indent=2, quote="'")