{ "info": { "author": "Yohan Boniface", "author_email": "yohan.boniface@data.gouv.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: GIS" ], "description": "[![Circle CI](https://img.shields.io/circleci/project/yohanboniface/psycopg-postgis.svg)](https://circleci.com/gh/yohanboniface/psycopg-postgis) [![PyPI](https://img.shields.io/pypi/v/psycopg-postgis.svg)](https://pypi.python.org/pypi/psycopg-postgis) [![PyPI](https://img.shields.io/pypi/pyversions/psycopg-postgis.svg)](https://pypi.python.org/pypi/psycopg-postgis) [![PyPI](https://img.shields.io/pypi/implementation/psycopg-postgis.svg)](https://pypi.python.org/pypi/psycopg-postgis) [![PyPI](https://img.shields.io/pypi/status/psycopg-postgis.svg)](https://pypi.python.org/pypi/psycopg-postgis)\n\n# python-postgis\n\nPostGIS helpers for psycopg2 and asyncpg.\n\n## Install\n\n pip install postgis\n\nIf you want a compiled version, first install `cython`:\n\n pip install cython\n pip install postgis\n\n\n## Usage\n\nYou need to register the extension:\n\n # With psycopg2\n > from postgis.psycopg import register\n > register(connection)\n\n # With asyncpg\n > from postgis.asyncpg import register\n > await register(connection)\n\nThen you can pass python geometries instance to psycopg:\n\n > cursor.execute('INSERT INTO table (geom) VALUES (%s)', [Point(x=1, y=2, srid=4326)])\n\nAnd retrieve data as python geometries instances:\n\n > cursor.execute('SELECT geom FROM points LIMIT 1')\n > geom = cursor.fetchone()[0]\n > geom\n \n\n\n## Example with psycopg2\n\n > import psycopg2\n > from postgis import LineString\n > from postgis.psycopg import register\n > db = psycopg2.connect(dbname=\"test\")\n > register(db)\n > cursor.execute('CREATE TABLE IF NOT EXISTS mytable (\"geom\" geometry(LineString) NOT NULL)')\n > cursor.execute('INSERT INTO mytable (geom) VALUES (%s)', [LineString([(1, 2), (3, 4)], srid=4326)])\n > cursor.execute('SELECT geom FROM mytable LIMIT 1')\n > geom = cursor.fetchone()[0]\n > geom\n \n > geom[0]\n \n > geom.coords\n ((1.0, 2.0), (3.0, 4.0))\n > geom.geojson\n {'coordinates': ((1.0, 2.0), (3.0, 4.0)), 'type': 'LineString'}\n > str(geom.geojson)\n '{\"type\": \"LineString\", \"coordinates\": [[1, 2], [3, 4]]}'\n\n\n## Example with asyncpg\n\n from postgis.asyncpg import register\n pool = await create_pool(**DB_CONFIG, loop=loop, max_size=100,\n init=register)\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yohanboniface/python-postgis", "keywords": "psycopg postgis gis asyncpg", "license": "WTFPL", "maintainer": "", "maintainer_email": "", "name": "postgis", "package_url": "https://pypi.org/project/postgis/", "platform": "", "project_url": "https://pypi.org/project/postgis/", "project_urls": { "Homepage": "https://github.com/yohanboniface/python-postgis" }, "release_url": "https://pypi.org/project/postgis/1.0.4/", "requires_dist": null, "requires_python": "", "summary": "Pyscopg and asyncpg helpers to work with PostGIS.", "version": "1.0.4" }, "last_serial": 3123303, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ce122662f3d8a393e9ad2e2748c2ed86", "sha256": "ee9294cab6447c139e1276b503a9bfcd18df09a837df57e4de098f3282f0d0c9" }, "downloads": -1, "filename": "postgis-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ce122662f3d8a393e9ad2e2748c2ed86", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19005, "upload_time": "2017-06-23T16:17:35", "url": "https://files.pythonhosted.org/packages/5a/21/91f9c8bebd58bbd3ad8f21724b90c852c5ebb325b0f560b9358885cf6522/postgis-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "955ca26f2ac3d367d62786a2c8296f34", "sha256": "0d33299d6fd948872a46258e8ba0e97e6667c2570a8865d1658fde5080ddc907" }, "downloads": -1, "filename": "postgis-1.0.0.tar.gz", "has_sig": false, "md5_digest": "955ca26f2ac3d367d62786a2c8296f34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7838, "upload_time": "2017-06-23T16:17:32", "url": "https://files.pythonhosted.org/packages/8f/85/a4c39f5512ba088ece05b8053ae5746c1ac27955a3aebcefffb3684e4fa2/postgis-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a3f14fead2109f01972f97ee872c33f6", "sha256": "285eecab777fc65a954925f380bb46a74fd0d4aeb67810a71dfb7c34ae80b899" }, "downloads": -1, "filename": "postgis-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a3f14fead2109f01972f97ee872c33f6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19154, "upload_time": "2017-06-24T22:54:43", "url": "https://files.pythonhosted.org/packages/6f/c0/2fbfe9330282eb02ce93671b1554563eb7ecddb3a9858f9dfd9f4cbaa642/postgis-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1c73d30100180e65a4440a40f3749d1", "sha256": "9fd14724a390b47b64065f5a490f40b0519e6ffea8293eff332e4d313a3bf070" }, "downloads": -1, "filename": "postgis-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d1c73d30100180e65a4440a40f3749d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7933, "upload_time": "2017-06-24T22:54:42", "url": "https://files.pythonhosted.org/packages/49/66/bfe7f2042d523f93063734f6a0837cb02da1f0644bf42334ed0bf94bfd87/postgis-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ecbcc69181b3a2ac9e4ba6c5168275a3", "sha256": "15b7344d6ad5bd076037ad84567b913279e45d987033262f4749323890236310" }, "downloads": -1, "filename": "postgis-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ecbcc69181b3a2ac9e4ba6c5168275a3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19154, "upload_time": "2017-06-24T23:39:01", "url": "https://files.pythonhosted.org/packages/41/be/3b6e8bb9a7814920563de5e8354b4fb5d291ec65b652e6f5fc6fd1e3e8b3/postgis-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3edc36867780f5ad99f11b9133a784ca", "sha256": "def7d5b788eddab3975ab71400f98c7e710d3966e1cc33eb6c9edbd138501190" }, "downloads": -1, "filename": "postgis-1.0.2.tar.gz", "has_sig": false, "md5_digest": "3edc36867780f5ad99f11b9133a784ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7952, "upload_time": "2017-06-24T23:38:59", "url": "https://files.pythonhosted.org/packages/1b/11/3b9e7deed22ec15d61eb6201a0d4290f750b30fb6d75bc14f8a732a0c08f/postgis-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7adc4f20582411e254fb9b8a0e8422e1", "sha256": "f005021ea32c24ae546f295f76ecc563a1ad5a6ad1012810e6868d3fff50f326" }, "downloads": -1, "filename": "postgis-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7adc4f20582411e254fb9b8a0e8422e1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 19168, "upload_time": "2017-06-27T10:58:20", "url": "https://files.pythonhosted.org/packages/41/60/140e15478bab02fca300547854a2f9054ff35690e40d37bdb9d110651919/postgis-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8cd86eea466dd8aac6a985ccf984365", "sha256": "ed5097fc13a8deb73f67a7a8cd908f06b0f9cdbfecd4fe34b95caa44c891a60c" }, "downloads": -1, "filename": "postgis-1.0.3.tar.gz", "has_sig": false, "md5_digest": "f8cd86eea466dd8aac6a985ccf984365", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7953, "upload_time": "2017-06-27T10:58:19", "url": "https://files.pythonhosted.org/packages/f1/6c/1236ee076d04ba2e27eb1685906c4df25a336db74d4cb9e442214db61bc4/postgis-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "9dc9853d186ec83ebd975b641d058ac4", "sha256": "1dfa62d33c585d68a54bdd47c21bdcb9302f9cbb0ef5aec360e64d2c3e0e1a93" }, "downloads": -1, "filename": "postgis-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9dc9853d186ec83ebd975b641d058ac4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 63673, "upload_time": "2017-08-25T15:17:40", "url": "https://files.pythonhosted.org/packages/fe/e1/522b5e0f9c0edf8bf864ce80a060d7c3a87d88070bfb2640a70eb0b006b0/postgis-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65032305681b451f3d1a41f143a6f66c", "sha256": "3d41f087e249a2a8b6720931e6f8f22b7747801f250265a8b8ac5f9d48221e63" }, "downloads": -1, "filename": "postgis-1.0.4.tar.gz", "has_sig": false, "md5_digest": "65032305681b451f3d1a41f143a6f66c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51997, "upload_time": "2017-08-25T15:17:37", "url": "https://files.pythonhosted.org/packages/93/09/6edfb7bda8b6645de68c232709aaf11ac2a945ced37ebb69e513d9dc01e5/postgis-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9dc9853d186ec83ebd975b641d058ac4", "sha256": "1dfa62d33c585d68a54bdd47c21bdcb9302f9cbb0ef5aec360e64d2c3e0e1a93" }, "downloads": -1, "filename": "postgis-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9dc9853d186ec83ebd975b641d058ac4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 63673, "upload_time": "2017-08-25T15:17:40", "url": "https://files.pythonhosted.org/packages/fe/e1/522b5e0f9c0edf8bf864ce80a060d7c3a87d88070bfb2640a70eb0b006b0/postgis-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65032305681b451f3d1a41f143a6f66c", "sha256": "3d41f087e249a2a8b6720931e6f8f22b7747801f250265a8b8ac5f9d48221e63" }, "downloads": -1, "filename": "postgis-1.0.4.tar.gz", "has_sig": false, "md5_digest": "65032305681b451f3d1a41f143a6f66c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51997, "upload_time": "2017-08-25T15:17:37", "url": "https://files.pythonhosted.org/packages/93/09/6edfb7bda8b6645de68c232709aaf11ac2a945ced37ebb69e513d9dc01e5/postgis-1.0.4.tar.gz" } ] }