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
Metadata
Release files for mappyfile 0.9.3
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.3.tar.gz | 92.2 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| mappyfile-0.9.3-py3.8.egg | Legacy Egg format | - | - | Details |
| mappyfile-0.9.3-py3.7.egg | Legacy Egg format | - | - | Details |
| mappyfile-0.9.3-py3.6.egg | Legacy Egg format | - | - | Details |
| mappyfile-0.9.3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
| mappyfile-0.9.3-py2.7.egg | Legacy Egg format | - | - | Details |
Total release size: 486.6 kB
Release files / mappyfile-0.9.3.tar.gz
| Download URL | mappyfile-0.9.3.tar.gz |
|---|---|
| Size | 92.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b922faad0e73aba2d537d38f19c780454e81062dd215c94c3e28b8e56b0e3cbf
|
|
BLAKE2b-256 checksum How to use checksums |
67c9511d3da1ee9ca8e525ab48eae80a88eb988f3936a5dda5a8a11b55163639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.8.2 requests/2.26.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.17
|
Release files / mappyfile-0.9.3-py3.8.egg
| Download URL | mappyfile-0.9.3-py3.8.egg |
|---|---|
| Size | 85.7 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
fe81df941586e6d7c0185e8e8758e39fb23cb3d10274debe40a8325463d2079a
|
|
BLAKE2b-256 checksum How to use checksums |
0e3815e61dab77a973a37f021896378b046aa02b97123a3b4cd41e48c74394f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.0
|
Release files / mappyfile-0.9.3-py3.7.egg
| Download URL | mappyfile-0.9.3-py3.7.egg |
|---|---|
| Size | 85.5 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
ddf854ff887aa22b8f27c368602ef967381a276cb3735cfe66254e70f95d48f2
|
|
BLAKE2b-256 checksum How to use checksums |
ba104f07ed5b9eb3b54d34aeaefe9b69da2192fbf11beafbc83f23b42cd0e45b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.2.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.5
|
Release files / mappyfile-0.9.3-py3.6.egg
| Download URL | mappyfile-0.9.3-py3.6.egg |
|---|---|
| Size | 85.5 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
f44232dcff663e0a10c968d4fb9dced91c22532644802cff016861e97aa380f1
|
|
BLAKE2b-256 checksum How to use checksums |
a8f71db85c711498c07db15647f4a36f09461b5a26e570895cfea09e13cdd4fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.2.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8
|
Release files / mappyfile-0.9.3-py2.py3-none-any.whl
| Download URL | mappyfile-0.9.3-py2.py3-none-any.whl |
|---|---|
| Size | 53.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
91de3bb92370d14c1ec5cd4934eb9798f51929170d179aabb9670c9147192c40
|
|
BLAKE2b-256 checksum How to use checksums |
2452f85f852e718145264ec612ddfe361bf4b74b32f3ddfbb6863275c7e5a809
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.8.2 requests/2.26.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.17
|
Release files / mappyfile-0.9.3-py2.7.egg
| Download URL | mappyfile-0.9.3-py2.7.egg |
|---|---|
| Size | 84.7 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
df8efa49f4f8c20e4a1fad28a1bf243d81b19ffe8a2c2da2e58af0ad9acacc25
|
|
BLAKE2b-256 checksum How to use checksums |
12d85e131db93886641f68daab5c51290e96db0af0aa0351f3a4405847560ffd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.8.2 requests/2.26.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.17
|