A pure Python MapFile parser for working with MapServer
Project description
A pure Python parser for working with MapServer MapFiles, built using Lark
An online formatter demonstrating the libraries capabilities can be found at: http://mappyfile.geographika.net/
A presentation on mappyfile was given at FOSS4G Europe 2017 - slides are available for download here.
Requirements
Python 2.7 or Python 3.x
Installation
mappyfile is available on PyPI (Supercacher Package Index), and can be installed using pip:
pip install mappyfile
This will also install its required dependences Lark (lark-parser), and jsonschema.
Documentation
Full documentation is available at http://mappyfile.readthedocs.io/en/latest/
Usage
From within Python scripts:
import mappyfile
mapfile = mappyfile.open("./docs/examples/raster.map")
# update the map name
mapfile["name"] = "MyNewMap"
new_layer_string = """
LAYER
NAME 'land'
TYPE POLYGON
DATA '../data/vector/naturalearth/ne_110m_land'
CLASS
STYLE
COLOR 107 208 107
OUTLINECOLOR 2 2 2
WIDTH 1
END
END
END
"""
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 raster.map formatted_raster.map
mappyfile validate D:\ms-ogc-workshop\ms4w\apps\ms-ogc-workshop\**\*.map
Contributors
Julien Enselme @jenselme
Loïc Gasser @loicgasser
Ian Turton @ianturton
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mappyfile-0.8.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6889640f1c328bc38aefb538a848ef83b1e52dfc9a2ca647775fb92cbd736544 |
|
MD5 | 3d0ea323eaa2f509257a07d00d58ee25 |
|
BLAKE2b-256 | b83b133f9f165e9a61cb324c61c1490d476af84f68748f52d230be030e8a30fc |