{ "info": { "author": "Sean Gillies", "author_email": "sean.gillies@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 6 - Mature", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: GIS" ], "description": "Keytree\n=======\n\nKeytree provides functions for reading and writing KML using the ElementTree\nAPI. \n\nReading KML\n-----------\n\nKML Placemark elements can be adapted to the Python geo interface and then used\nwith packages like Shapely_::\n\n >>> data = \"\"\"\n ... \n ... \n ... \n ... point\n ... Point test\n ... \n ... \n ... -122.364383,37.824664,0\n ... \n ... \n ... \n ... \n ... \n ... \"\"\"\n >>> from xml.etree import ElementTree\n >>> doc = ElementTree.fromstring(data)\n >>> kmlns = doc.tag.split('}')[0][1:]\n >>> placemarks = doc.findall('*/{%s}Placemark' % kmlns)\n >>> p0 = placemarks[0]\n >>> import keytree\n >>> f = keytree.feature(p0)\n >>> print f.id, f.properties.name, f.properties.snippet\n pm_1, point, Point test\n >>> \n >>> from shapely.geometry import shape\n >>> s = shape(f.geometry)\n >>> print s.buffer(1.5).exterior.length\n 9.4209934708642571\n\nWriting KML\n-----------\n\nObjects that provide the Python geo interface can also be converted to\nElementTree API Elements::\n\n >>> f = {\n ... 'id': 'pm_2', \n ... 'geometry': {\n ... 'type': 'Point', \n ... 'coordinates': (-122.364383, 37.824663999999999) },\n ... 'properties': {\n ... 'title': 'Feature 2', \n ... 'description': 'The second feature', }\n\nThe first argument to the keytree.element function is an XML context, the\ncreated element will have the same namespace as that element::\n\n >>> data = \"\"\"\n ... \n ... \n ... \n ... \n ... \"\"\"\n >>> doc = ElementTree.fromstring(data)\n >>> elem = element(doc, f)\n >>> print elem\n \n >>> pprint(list(elem))\n [,\n ,\n ,\n ]\n\nThe created element is not automatically added to the KML context and must be\nappended to its proper Document or Folder::\n\n >>> doc[0].append(elem)\n >>> print etree.tostring(doc)\n \n \n \n Number 2\n Placemark number 2\n \n \n 0.000000,0.000000,0.0\n \n \n \n \n\nKML Helpers\n-----------\n\nThe keytree.kml module contains a few useful utility functions::\n\n >>> from keytree.kml import kml_ns, findall_placemarks\n >>> print kml_ns(doc)\n {http://www.opengis.net/kml/2.2}\n >>> findall_placemarks(doc)\n []\n\n.. _Shapely: http://pypi.python.org/pypi/Shapely\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Toblerity/keytree", "keywords": "KML etree ElementTree", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "keytree", "package_url": "https://pypi.org/project/keytree/", "platform": "", "project_url": "https://pypi.org/project/keytree/", "project_urls": { "Homepage": "https://github.com/Toblerity/keytree" }, "release_url": "https://pypi.org/project/keytree/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "KML utilities for the ElementTree API", "version": "1.0.0" }, "last_serial": 5225936, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "2b75f82071a4dfe6fafc959180947995", "sha256": "01e754fc5776b226ac2d065ecb5d8721730b13ffd3ca29cb8475ad0856772c76" }, "downloads": -1, "filename": "keytree-0.2.1.tar.gz", "has_sig": false, "md5_digest": "2b75f82071a4dfe6fafc959180947995", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6820, "upload_time": "2009-04-05T06:32:20", "url": "https://files.pythonhosted.org/packages/6b/fc/fbf9c2dbe122e6c096e400e47eaed35c2b217faa82b77690375f0aac7e47/keytree-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "3f2feaafef3400bd610c0f88163fecab", "sha256": "27f6fdbe8ebe2b1d8177e89b9f4ad70ea7a176983bded9d42119c3399c61014a" }, "downloads": -1, "filename": "keytree-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3f2feaafef3400bd610c0f88163fecab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8658, "upload_time": "2019-05-04T15:48:44", "url": "https://files.pythonhosted.org/packages/7b/ec/04a819dc579441b6dcfe6d38c578da0d138e6c1da5dd7959a4023661bcd1/keytree-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1058d59a3e6dbcf8f575e07870c2d13", "sha256": "6f59d426182d4b59238c3b77cdded8359bc74068fc6cf7b6b7de677b50cf3280" }, "downloads": -1, "filename": "keytree-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f1058d59a3e6dbcf8f575e07870c2d13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6852, "upload_time": "2019-05-04T15:48:45", "url": "https://files.pythonhosted.org/packages/71/de/640534f6c358bb5abcabad4954b522926bb6140a699f795f3fd02fe47e12/keytree-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3f2feaafef3400bd610c0f88163fecab", "sha256": "27f6fdbe8ebe2b1d8177e89b9f4ad70ea7a176983bded9d42119c3399c61014a" }, "downloads": -1, "filename": "keytree-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3f2feaafef3400bd610c0f88163fecab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8658, "upload_time": "2019-05-04T15:48:44", "url": "https://files.pythonhosted.org/packages/7b/ec/04a819dc579441b6dcfe6d38c578da0d138e6c1da5dd7959a4023661bcd1/keytree-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1058d59a3e6dbcf8f575e07870c2d13", "sha256": "6f59d426182d4b59238c3b77cdded8359bc74068fc6cf7b6b7de677b50cf3280" }, "downloads": -1, "filename": "keytree-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f1058d59a3e6dbcf8f575e07870c2d13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6852, "upload_time": "2019-05-04T15:48:45", "url": "https://files.pythonhosted.org/packages/71/de/640534f6c358bb5abcabad4954b522926bb6140a699f795f3fd02fe47e12/keytree-1.0.0.tar.gz" } ] }