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: 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

Project details


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.7.tar.gz (101.3 kB view details)

Uploaded Source

Built Distribution

mappyfile-0.9.7-py2.py3-none-any.whl (55.1 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: mappyfile-0.9.7.tar.gz
  • Upload date:
  • Size: 101.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.0

File hashes

Hashes for mappyfile-0.9.7.tar.gz
Algorithm Hash digest
SHA256 1cc7a092e9c64cbc902a3e3d916b368cd8d72aea3f29db422036fd14fa4ede7a
MD5 e8131a43e0c33b0383900fa72ca16305
BLAKE2b-256 de68cf8cc7f7f89f26f7291aa6913e04377f244ec6e6d5af3d54ca8cff0a36e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mappyfile-0.9.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 55.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.0

File hashes

Hashes for mappyfile-0.9.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f9975b79ffd2414d560ab002c8103dbbfca8fa6a8cce23db384f931595442338
MD5 a1a7d7e0e3f4d76ee4e437f03228aab6
BLAKE2b-256 5a921c7cf635ce3ab53bba181275be9f315b57da10d2b460b52c6caa6bb56cf5

See more details on using hashes here.

Supported by

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