{ "info": { "author": "Pablo Castellano", "author_email": "pablo@anche.no", "bugtrack_url": null, "classifiers": [], "description": "LibCNML\n=======\n\n**libcnml** is a CNML parser library for Python.\n\n[![Travis libcnml](https://travis-ci.org/PabloCastellano/libcnml.svg?branch=master)](https://travis-ci.org/PabloCastellano/libcnml)\n[![Pypi libcnml](https://badge.fury.io/py/libcnml.png)]( https://pypi.python.org/pypi/libcnml)\n[![Downloads libcnml](https://img.shields.io/pypi/dm/libcnml.svg)](https://pypi.python.org/pypi/libcnml)\n\nIt was part of the [Guifi.net Studio](https://github.com/PabloCastellano/guifinetstudio) project developed by Pablo Castellano\nduring Google Summer of Code 2012.\n\nWhat is CNML\n============\n\nCommunity Network Mark Up Language (CNML) is a project that aims to define an open ISO standard and scalable for describing mesh clouds, though it's not limited to this kind of networks and nowadays it's being used also in point to point infrastructure networks.\n\nCNML is a specification based on XML, which makes it easily extendible and readable for humans besides of computers. It includes some ideas from other implementations and previous concepts like *nodeXchange* and *SNDX*.\n\nSome advantages of using CNML is that it allows to uncouple different functionalities independently of the web application used to show the data, reducing dependence from it and its internal tables of the database.\n\nYou can read more about it on:\n- http://cnml.info\n- http://en.wiki.guifi.net/wiki/CNML\n\nInstall\n=======\n\nYou can install it by typing:\n\n python setup.py install\n\nor you can get it from PYPI by using pip:\n\n pip install libcnml\n\nOptionally you can also install lxml (read the note below):\n\n sudo apt-get install libxml2-dev libxslt1-dev\n pip install lxml\n\n\nlibcnml is also available in the Fedora/RHEL/CentOS/Scientific Linux [repositories](https://admin.fedoraproject.org/pkgdb/package/rpms/python-libcnml/).\n\nlxml\n====\n\nlxml Python library does a better memory management and is faster than minidom (default XML library in Python).\nIf you want to manage big sets of nodes like Guifi.net World zone this definitely makes the difference.\n\nFor example, these are the results opening a Guifi.net World zone with more than 17.000 nodes:\nMinidom took ~23 seconds and 1,4GB RAM. Guifinetstudio window didn't even appear. I had to reboot my laptop.\nLxml took ~4s and 284MB RAM. Guifinetstudio worked, moving through the map is difficult but possible.\n\nYou can test it by your own:\n\n $ cat cnml1.py\n from libcnml import *\n c = CNMLParser('tests/detail')\n\n $ time python cnml1.py\n Using lxml which is more efficient\n Loaded OK\n\n real 0m3.974s\n user 0m3.728s\n sys 0m0.188s\n\n $ time python cnml1.py\n lxml module not found. Falling back to minidom\n Loaded OK\n\n real 0m22.984s\n user 0m21.997s\n sys 0m0.868s\n\n\nLicense\n=======\nThe code license is GPLv3+", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/PabloCastellano/libcnml/archive/master.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PabloCastellano/libcnml/", "keywords": "cnml,free networks,guifi.net", "license": "GPLv3+", "maintainer": null, "maintainer_email": null, "name": "libcnml", "package_url": "https://pypi.org/project/libcnml/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/libcnml/", "project_urls": { "Download": "https://github.com/PabloCastellano/libcnml/archive/master.zip", "Homepage": "https://github.com/PabloCastellano/libcnml/" }, "release_url": "https://pypi.org/project/libcnml/0.9.5/", "requires_dist": null, "requires_python": null, "summary": "A CNML parser for Python", "version": "0.9.5" }, "last_serial": 2223258, "releases": { "0.7": [ { "comment_text": "", "digests": { "md5": "05a81224efd66d43ec227d3877da4bc0", "sha256": "f4db8fb02c55f1bbd12ae83e71bd8451537244bd4323de4f77ed71fb46bee847" }, "downloads": -1, "filename": "libcnml-0.7.tar.gz", "has_sig": true, "md5_digest": "05a81224efd66d43ec227d3877da4bc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19028, "upload_time": "2013-02-07T22:32:47", "url": "https://files.pythonhosted.org/packages/51/c3/03f4524bcd64b3d618eab824c6c0b9cd83c53b1a855ddcac0a87b7bc18ec/libcnml-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "71363a73059a2285a7bfddf0940be659", "sha256": "b9e1c5c3b9409d07be526dff7d9dd9a169f3094fba24c445839548a86a63d8c9" }, "downloads": -1, "filename": "libcnml-0.8.tar.gz", "has_sig": true, "md5_digest": "71363a73059a2285a7bfddf0940be659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28689, "upload_time": "2014-10-26T18:14:54", "url": "https://files.pythonhosted.org/packages/e6/f2/2eea507798b84fe48cebffbed2485bb77f0285fd00c14ef37e15ae922b85/libcnml-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "941c6e212e498d2d6319703dc968bb11", "sha256": "62998aca617fca27410179ee20c2126aab918861c80259b6df9dfd9487f52cfe" }, "downloads": -1, "filename": "libcnml-0.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "941c6e212e498d2d6319703dc968bb11", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 35105, "upload_time": "2015-05-08T11:13:03", "url": "https://files.pythonhosted.org/packages/5c/39/446452cc5c7d4e84eb6d567e23692822c2c47e2f3a98f4d3db8cd1e411ca/libcnml-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36e9b5003b672d08b7fb432665d6f7e2", "sha256": "70f4d6425c21cb0163ef8c04ca8e2edd7cbad5a8092ddaab5f474c2962630adb" }, "downloads": -1, "filename": "libcnml-0.9.tar.gz", "has_sig": true, "md5_digest": "36e9b5003b672d08b7fb432665d6f7e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29768, "upload_time": "2015-05-08T11:13:00", "url": "https://files.pythonhosted.org/packages/f5/2d/bf59a24afb1b1314599719de13a3f7bf5d4ba0a92dc79d8a59a4ce6c4143/libcnml-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "1b36f0b48fc8f39d435dee7c790548e9", "sha256": "c28eb895cc45e899580613d7c72c5b97567a9e35e845167281fa578422b41eb0" }, "downloads": -1, "filename": "libcnml-0.9.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1b36f0b48fc8f39d435dee7c790548e9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 35337, "upload_time": "2015-05-10T17:56:23", "url": "https://files.pythonhosted.org/packages/fc/b0/62d69de0c104afb2f425522dc086e3bc427838b7fd92c94dc1335ce53159/libcnml-0.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "800cd75a05ff23a6d8c4b5bf5317332b", "sha256": "dd745aac4c38bd4ec1e0afbe64e3f8fb8c34ac66a9ce26efcc5f93dfa6081792" }, "downloads": -1, "filename": "libcnml-0.9.1.tar.gz", "has_sig": true, "md5_digest": "800cd75a05ff23a6d8c4b5bf5317332b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29966, "upload_time": "2015-05-10T17:56:20", "url": "https://files.pythonhosted.org/packages/30/df/483d2f1a58ae7d3d9afb02747c94b11a2bf01c5f36e46e32c6d1b94ad4ee/libcnml-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "76979915349a83bc9a2e70a2c0cb3e87", "sha256": "a975233c79f2037a1c7e496acb55d9499b8de065c496f31e0f5c6f3ece3d4822" }, "downloads": -1, "filename": "libcnml-0.9.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "76979915349a83bc9a2e70a2c0cb3e87", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 35335, "upload_time": "2015-05-11T10:41:59", "url": "https://files.pythonhosted.org/packages/5e/66/4c32090fd86de3ab71deac5077d492e1e40063d57d9b38266e1dad0c0844/libcnml-0.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eefdfd7c4af0cc4aeb6f987952eda52", "sha256": "10807f1df51346fc822b8ebe928ca80840e5601890a187b49b27bd8d68603545" }, "downloads": -1, "filename": "libcnml-0.9.2.tar.gz", "has_sig": true, "md5_digest": "9eefdfd7c4af0cc4aeb6f987952eda52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30575, "upload_time": "2015-05-11T10:41:55", "url": "https://files.pythonhosted.org/packages/2f/62/4612eabbec0fc510d86acdd48f0aa8078097b398780cd4066a5a3d1fe25c/libcnml-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "dec76fc82019bf0d71381a22b57f9bd9", "sha256": "c2f224bc05713653fbe4913a8d3991e289b32b7fe7830f27aa6ddb3a0ad4a129" }, "downloads": -1, "filename": "libcnml-0.9.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "dec76fc82019bf0d71381a22b57f9bd9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25548, "upload_time": "2016-01-11T13:16:19", "url": "https://files.pythonhosted.org/packages/db/ff/2c8d8d63485c53b962bb56751a46bc1628eb2a53aa610ca16ebe65747186/libcnml-0.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b46a0dcf2bfd843e740976b0053662a5", "sha256": "114d8fe4396196934c1790ebe24b8a08de461aab9136c61e9f7f0d0217a69d23" }, "downloads": -1, "filename": "libcnml-0.9.3.tar.gz", "has_sig": true, "md5_digest": "b46a0dcf2bfd843e740976b0053662a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33593, "upload_time": "2016-01-11T13:16:10", "url": "https://files.pythonhosted.org/packages/af/d5/8dff58c795cee352fba060587c41ec240c107321e77e6a04e38a3bfd4a26/libcnml-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "2ea49b98c6c4e374e95df54ab6802cf2", "sha256": "b1129d817aec5e88710a6921150a2eb5a04f230b9b156d30cbf9fda3b2153d5f" }, "downloads": -1, "filename": "libcnml-0.9.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2ea49b98c6c4e374e95df54ab6802cf2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25531, "upload_time": "2016-01-26T23:21:16", "url": "https://files.pythonhosted.org/packages/8f/a3/d27320f365e83381c5760efcb04d33ec3a4f31e93caf9f34abeadb4af90c/libcnml-0.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "efccc3613448c023853b2d2c5ac56f6d", "sha256": "700dbad28b8b40dd8132dfcdaa598777f34fbff4368a5f904d4d6490c1142995" }, "downloads": -1, "filename": "libcnml-0.9.4.tar.gz", "has_sig": true, "md5_digest": "efccc3613448c023853b2d2c5ac56f6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33605, "upload_time": "2016-01-26T23:20:42", "url": "https://files.pythonhosted.org/packages/89/bb/8aaf704a1e0cf9bdae4cbe08431bd452db772b5abae4e501aa04c65e6ab9/libcnml-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "7e8fc2bb1c719a83dd57c422771a75c0", "sha256": "51e3e8dadf2bb1728a6abe7453f25e7584ddcc10f0b83d59e70e9eb5d08c138c" }, "downloads": -1, "filename": "libcnml-0.9.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7e8fc2bb1c719a83dd57c422771a75c0", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 39723, "upload_time": "2016-07-15T13:54:36", "url": "https://files.pythonhosted.org/packages/30/70/93a562c7ebf4fb15267bb13ba38f0e1d780eb8856594d72e338734285982/libcnml-0.9.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0aa48e3dd48349c5423f9329f32f0cc6", "sha256": "4422d592a096144e691936908c80eaadd28c14c65fc01e569112d2381215bacc" }, "downloads": -1, "filename": "libcnml-0.9.5.tar.gz", "has_sig": true, "md5_digest": "0aa48e3dd48349c5423f9329f32f0cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46258, "upload_time": "2016-07-15T13:54:32", "url": "https://files.pythonhosted.org/packages/d6/b1/09c90f89828274b6be5d1e7f0417bde3d6d663e44aa17b25dd2a98c807ed/libcnml-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e8fc2bb1c719a83dd57c422771a75c0", "sha256": "51e3e8dadf2bb1728a6abe7453f25e7584ddcc10f0b83d59e70e9eb5d08c138c" }, "downloads": -1, "filename": "libcnml-0.9.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7e8fc2bb1c719a83dd57c422771a75c0", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 39723, "upload_time": "2016-07-15T13:54:36", "url": "https://files.pythonhosted.org/packages/30/70/93a562c7ebf4fb15267bb13ba38f0e1d780eb8856594d72e338734285982/libcnml-0.9.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0aa48e3dd48349c5423f9329f32f0cc6", "sha256": "4422d592a096144e691936908c80eaadd28c14c65fc01e569112d2381215bacc" }, "downloads": -1, "filename": "libcnml-0.9.5.tar.gz", "has_sig": true, "md5_digest": "0aa48e3dd48349c5423f9329f32f0cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46258, "upload_time": "2016-07-15T13:54:32", "url": "https://files.pythonhosted.org/packages/d6/b1/09c90f89828274b6be5d1e7f0417bde3d6d663e44aa17b25dd2a98c807ed/libcnml-0.9.5.tar.gz" } ] }