mappyfile
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 (Python 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"))
Three command line tools are available - format, validate, and schema:
mappyfile format raster.map formatted_raster.map
mappyfile validate D:\ms-ogc-workshop\ms4w\apps\ms-ogc-workshop\**\*.map
mappyfile schema mapfile-schema-7-6.json --version=7.6
Contributors
Julien Enselme @jenselme
Loïc Gasser @loicgasser
Ian Turton @ianturton
Release files for mappyfile 0.9.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mappyfile-0.9.7.tar.gz | 101.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mappyfile-0.9.7-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 156.4 kB
Release files / mappyfile-0.9.7.tar.gz
| Download URL | mappyfile-0.9.7.tar.gz |
|---|---|
| Size | 101.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1cc7a092e9c64cbc902a3e3d916b368cd8d72aea3f29db422036fd14fa4ede7a
|
|
BLAKE2b-256 checksum How to use checksums |
de68cf8cc7f7f89f26f7291aa6913e04377f244ec6e6d5af3d54ca8cff0a36e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.8.0
|
Release files / mappyfile-0.9.7-py2.py3-none-any.whl
| Download URL | mappyfile-0.9.7-py2.py3-none-any.whl |
|---|---|
| Size | 55.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f9975b79ffd2414d560ab002c8103dbbfca8fa6a8cce23db384f931595442338
|
|
BLAKE2b-256 checksum How to use checksums |
5a921c7cf635ce3ab53bba181275be9f315b57da10d2b460b52c6caa6bb56cf5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.8.0
|