Skip to main content

A pure Python MapFile parser for working with MapServer

Project description

Version Docs Build Status Coveralls Appveyor Build Status Downloads

A pure Python parser for working with MapServer MapFiles, built using Lark

An online formatter demonstrating the libraries capabilities can be found at:

A presentation on mappyfile was given at FOSS4G Europe 2017 - slides are available for download here.


  • Python 2.7 or Python 3.x


mappyfile is available on PyPI (Python Package Index), and can be installed using pip:

pip install mappyfile

This will also install its required dependences Lark (lark-parser), and jsonschema.


Full documentation is available at


From within Python scripts:

import mappyfile

mapfile ="./docs/examples/")

# update the map name
mapfile["name"] = "MyNewMap"

new_layer_string = """
    NAME 'land'
    DATA '../data/vector/naturalearth/ne_110m_land'
            COLOR 107 208 107
            OUTLINECOLOR 2 2 2
            WIDTH 1

layers = mapfile["layers"]

new_layer = mappyfile.loads(new_layer_string)

layers.insert(0, new_layer) # insert the new layer at any index in the Mapfile

for l in layers:
    print("{} {}".format(l["name"], l["type"]))

print(mappyfile.dumps(mapfile, indent=1, spacer="\t"))

Two command line tools are available - format and validate:

mappyfile format
mappyfile validate D:\ms-ogc-workshop\ms4w\apps\ms-ogc-workshop\**\*.map



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mappyfile, version 0.8.4
Filename, size File type Python version Upload date Hashes
Filename, size mappyfile-0.8.4-py2.7.egg (73.7 kB) File type Egg Python version 2.7 Upload date Hashes View
Filename, size mappyfile-0.8.4-py2.py3-none-any.whl (43.9 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size mappyfile-0.8.4-py3.6.egg (74.6 kB) File type Egg Python version 3.6 Upload date Hashes View
Filename, size mappyfile-0.8.4-py3.7.egg (74.7 kB) File type Egg Python version 3.7 Upload date Hashes View
Filename, size mappyfile-0.8.4.tar.gz (86.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page