Skip to main content

A CNML parser for Python

Project description


libcnml is a CNML parser library for Python.

[![Travis libcnml](](

It was part of the [ Studio]( project developed by Pablo Castellano during Google Summer of Code 2012.


You can install it by typing:

python install

or you can get it from PYPI by using pip:

pip install libcnml

Optionally you can also install lxml (read the note below):

pip install lxml


lxml Python library does a better memory management and is faster than minidom (default XML library in Python). If you want to manage big sets of nodes like World zone this definitely makes the difference.

For example, these are the results opening a World zone with more than 17.000 nodes: Minidom took ~23 seconds and 1,4GB RAM. Guifinetstudio window didn’t even appear. I had to reboot my laptop. Lxml took ~4s and 284MB RAM. Guifinetstudio worked, moving through the map is difficult but possible.

You can test it by your own:

$ cat from libcnml import * c = CNMLParser(‘tests/detail’)

$ time python Using lxml which is more efficient Loaded OK

real 0m3.974s user 0m3.728s sys 0m0.188s

$ time python lxml module not found. Falling back to minidom Loaded OK

real 0m22.984s user 0m21.997s sys 0m0.868s


The code license is GPLv3+

Project details

Download files

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

Files for libcnml, version 0.9
Filename, size File type Python version Upload date Hashes
Filename, size libcnml-0.9-py2.py3-none-any.whl (35.1 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size libcnml-0.9.tar.gz (29.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page