Skip to main content
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: http://mappyfile.geographika.net/

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

https://raw.githubusercontent.com/geographika/mappyfile/master/docs/images/class_parsed_small.png

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

Authors

Contributors

Download files

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

Source Distribution

mappyfile-0.9.5.tar.gz (95.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mappyfile-0.9.5-py2.py3-none-any.whl (55.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mappyfile-0.9.5.tar.gz.

File metadata

  • Download URL: mappyfile-0.9.5.tar.gz
  • Upload date:
  • Size: 95.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/2.7.17

File hashes

Hashes for mappyfile-0.9.5.tar.gz
Algorithm Hash digest
SHA256 55e6176ae5b83304a5d9e41e0d28d5fdb6a01db2d5b3af3b27999fb629c2eb8d
MD5 c594d52a8686521f11e08b4c2a967ef0
BLAKE2b-256 c65489ae11c60e004e9e9b52a6568642e812e5cad24d6fce5fd7863175c706c2

See more details on using hashes here.

File details

Details for the file mappyfile-0.9.5-py2.py3-none-any.whl.

File metadata

  • Download URL: mappyfile-0.9.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 55.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/2.7.17

File hashes

Hashes for mappyfile-0.9.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 84f842e8fede45f7995797f5290d4322a40e3b9ac6a448d1798950ddfb20a65b
MD5 67c96e8e3445e69ac1cb48c9715f1a2b
BLAKE2b-256 18b27d01b18899ebac24f1410876b28f902205dfae85ce25bbc0386ad0d27d0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page