{ "info": { "author": "Konstantin Lopuhin", "author_email": "konstantin.lopuhin@chtd.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: SQL", "Topic :: Database", "Topic :: Database :: Front-Ends" ], "description": ".. image:: https://travis-ci.org/chtd/psycopg2cffi.svg?branch=master\n :target: https://travis-ci.org/chtd/psycopg2cffi\n\n.. contents::\n\nAn implementation of the psycopg2 module using cffi.\nThe module is currently compatible with Psycopg 2.5.\n\nInstallation\n------------\n\nYou can install ``psycopg2cffi`` from PyPI::\n\n pip install psycopg2cffi\n\nOr from source::\n\n python setup.py install\n\nInstallation requirements are the same as for ``psycopg2`` - you must\nhave ``libpq`` headers, ``pg_config`` somewhere on your ``$PATH``,\nPython development headers (``python-dev`` or similar), and ``ffi-dev``\nfor ``cffi``.\nInstallation was tested on Ubuntu 12.04, Ubuntu 14.04, CentOS (RHEL 5.0),\nOS X 10.8 - 10.10.\nIt should be possible to make it work on Windows, but I did not test it.\n\nThis module works under CPython 2.6+, CPython 3.2+, PyPy 2 and PyPy 3\n(PyPy version should be at least 2.0, which is ancient history now).\n\nTo use this package with Django or SQLAlchemy invoke a compatibility\nhook (for example, from ``settings.py`` in case of Django, or\nfrom a ``psycopg2.py`` file in site-packages of your virtual env)::\n\n from psycopg2cffi import compat\n compat.register()\n\nThis will map ``psycopg2cffi`` to ``psycopg2``, so now any code that\ndoes ``import psycopg2`` will use ``psycopg2cffi``.\n\nSubmit issues to https://github.com/chtd/psycopg2cffi/issues\n\nIf you notice that ``psycopg2cffi`` under PyPy is noticeably slower than\n``psycopg2`` under CPython, submit this to the issues too - it should\nnot be the case.\n\nThis is a port of (Michael van Tellingen port\nhttps://github.com/mvantellingen/psycopg2-ctypes\nof Alex Gaynor's RPython port\n(https://bitbucket.org/alex_gaynor/pypy-postgresql/overview) of psycopg2 to\nPython + ctypes) to cffi.\n\nThe main motivation for a port was speed - the writeup with benchmarks\nis here: http://chtd.ru/blog/bystraya-rabota-s-postgres-pod-pypy/?lang=en\n\nDevelopment\n-----------\n\nTo run tests, install ``pytest`` and run them with::\n\n py.test psycopg2cffi\n\nNote that for ``cffi>=1.0`` you need to run ``python setup.py develop``\nto rebuild ``_libpq.so`` (if you changed bindings).\nAnd for ``cffi<1.0`` (only PyPy 2.5 and below) you need to run\n``python setup.py install`` once to generate ``psycopg2cffi/_config.py``,\notherwise each import will run config and notify tests will fail.\n\nYou can also run Django tests. You need to checkout Django source, add\npsycopg2 compat as described above, and, from the root of the Django checkout::\n\n PYTHONPATH=`pwd` ./tests/runtests.py \\\n --settings=psycopg2cffi.tests.psycopg2_tests.testconfig\n\nIn case of problems with Django tests, see official Django docs\nhttps://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests\n\nRelease notes\n-------------\n\n2.8.1 (31 July 2018)\n++++++++++++++++++++\n\nRelease date added\n\n2.8.0 (31 July 2018)\n++++++++++++++++++++\n\nPython 3.7 support by unimariJo (#92) and farrokhi (#101).\n``async_`` should be used instead of ``async`` in public APIs\n(but the change is backwards compatible,\n``async`` is still supported as an alias).\n\n\n2.7.7 (13 November 2017)\n++++++++++++++++++++++++\n\nBugfixes:\n\n- Support installation under Postgres 10 by jimbattin (#90)\n\n\n2.7.6 (11 August 2017)\n++++++++++++++++++++++\n\nBugfixes:\n\n- Named cursors fix (affects newer Django) by danchr (#81)\n- Python 3 fixes in extras by avanov (#83)\n- Null check added in fast parser utils by malthe (#79)\n\n\n2.7.5 (31 October 2016)\n+++++++++++++++++++++++\n\nWindows wheels support added by ryoyoko (#69).\n\nBugfixes:\n\n- Non-ascii notice messages fixed by asterite3 (#72)\n- AsIs with non-text/bytes fixed by jinty (#64)\n- Silent failures in copy_from and copy_to fixed by gobbledygook88 (#62)\n- Infinite recursion error fixed in errorcodes.lookup (#68)\n- Typos in README fixed by PavloKapyshin (#66)\n\n\n2.7.4 (01 April 2016)\n+++++++++++++++++++++\n\nFix a regression with error handling when establishing the connection (#61)\n\n\n2.7.3 (29 February 2016)\n++++++++++++++++++++++++\n\nFix a bug with non-ascii error messages (#56)\n\n\n2.7.2 (06 August 2015)\n++++++++++++++++++++++\n\nFixes for FreeBSD support by Andrew Coleman\n\n\n2.7.1 (20 June 2015)\n++++++++++++++++++++\n\nJSONB support\n\n\n2.7.0 (21 May 2015)\n+++++++++++++++++++\n\nUse cffi 1.0, which makes installation more robust, and import is faster.\ncffi<1.0 is used now only for PyPy 2.5 or below.\n\n\n2.6.1 (08 Feb 2015)\n+++++++++++++++++++\n\nFixing things that were broken in 2.6.0:\n\n- Fix issue #31 - bigint on 32-bit\n- Fix issue #32 - register_type and unicode\n\n\n2.6.0 (24 Jan 2015)\n+++++++++++++++++++\n\n- Python 3 support\n- A bit faster reading of int, long, float, double fields\n\n2.5.1 (14 May 2014)\n+++++++++++++++++++\n\n- Small bugfixes\n\n2.5.0 (3 Sep 2013)\n++++++++++++++++++\n\n- Bugfixes and a lot of compatibility work by Daniele Varrazzo\n\n\nOlder releases lack release notes, first release of psycopg2cffi around Nov 2012.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/chtd/psycopg2cffi", "keywords": "", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "psycopg2cffi", "package_url": "https://pypi.org/project/psycopg2cffi/", "platform": "any", "project_url": "https://pypi.org/project/psycopg2cffi/", "project_urls": { "Homepage": "http://github.com/chtd/psycopg2cffi" }, "release_url": "https://pypi.org/project/psycopg2cffi/2.8.1/", "requires_dist": null, "requires_python": "", "summary": ".. image:: https://travis-ci.org/chtd/psycopg2cffi.svg?branch=master", "version": "2.8.1" }, "last_serial": 4121336, "releases": { "0.1": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "119c5d733ed54331ea7768bd94d65a8d", "sha256": "3a18e52ca0936829588e45f709d9915ad5cffe3d5783c65cd27ba690670f6487" }, "downloads": -1, "filename": "psycopg2cffi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "119c5d733ed54331ea7768bd94d65a8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48154, "upload_time": "2012-11-14T07:13:09", "url": "https://files.pythonhosted.org/packages/08/9d/efeb7cdbd1571e73b7de7c61614553bdcf059007e169d73ca55a5b6ac8e5/psycopg2cffi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ff58cf81b5a6aad872f9e03050220a52", "sha256": "c8d86d5efdf4301b7fd0fd0182468511db65f18a28532d27e475ffbfe37619b4" }, "downloads": -1, "filename": "psycopg2cffi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ff58cf81b5a6aad872f9e03050220a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48322, "upload_time": "2012-11-17T12:00:29", "url": "https://files.pythonhosted.org/packages/92/63/ae0fc84a4b5dd60530357aaf645b89114a5676cbf960f3fedbf7733cb875/psycopg2cffi-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e399b85a6fd245eaec48aac8c8a491ff", "sha256": "b66245a69f76043d3efad2a29355c792ce72afbf009cb002522791ad403eebf3" }, "downloads": -1, "filename": "psycopg2cffi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e399b85a6fd245eaec48aac8c8a491ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50334, "upload_time": "2012-11-26T06:22:01", "url": "https://files.pythonhosted.org/packages/a7/8f/79b1dcc3a6041a4eb0b188bd29491785d7b8815a85a7b0714c1ca0c93586/psycopg2cffi-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b162d7dccb14229e7ee0bdf302e86dd1", "sha256": "ea4bb4f1952674e3530524381966256b1c904dbdb2db462fc1f3cb512d056a52" }, "downloads": -1, "filename": "psycopg2cffi-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b162d7dccb14229e7ee0bdf302e86dd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50564, "upload_time": "2013-01-22T15:16:21", "url": "https://files.pythonhosted.org/packages/ad/8e/8eabac16b3a4b988f9177e962f2713604f11df482de1db6d428014a1a92a/psycopg2cffi-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "46f356d66c3474e01a0c43c907697b7f", "sha256": "f6d61b215219fb6620bbf5e4049b3de63384798d320650a6ab146740e6c33e91" }, "downloads": -1, "filename": "psycopg2cffi-0.1.5.tar.gz", "has_sig": false, "md5_digest": "46f356d66c3474e01a0c43c907697b7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51215, "upload_time": "2013-03-05T04:34:00", "url": "https://files.pythonhosted.org/packages/d5/83/cd64a928fa8dbd81d4dd4a86400acd6fedc8f8da31428f6ac5d8e43d5942/psycopg2cffi-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "ac4cbedf8c93000c02f23f9032c8bd7b", "sha256": "131fbf2c613452d0c91cdf26aa621635557ebcc04ba9939b8d7cc8e7b27ef695" }, "downloads": -1, "filename": "psycopg2cffi-0.1.6.tar.gz", "has_sig": false, "md5_digest": "ac4cbedf8c93000c02f23f9032c8bd7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58507, "upload_time": "2013-06-04T09:40:08", "url": "https://files.pythonhosted.org/packages/da/38/04138eb4950af75b914261936d51f36a48cae5ef93be5b169babde4907b4/psycopg2cffi-0.1.6.tar.gz" } ], "2.5": [ { "comment_text": "", "digests": { "md5": "b8697ce7d12ead6d827f22a83ad85039", "sha256": "cb36f9207baf66a281deea231982666449c9f00317c1fb74f0f546d92c0a0c4b" }, "downloads": -1, "filename": "psycopg2cffi-2.5.tar.gz", "has_sig": false, "md5_digest": "b8697ce7d12ead6d827f22a83ad85039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62162, "upload_time": "2013-10-17T20:34:29", "url": "https://files.pythonhosted.org/packages/5a/1f/04de795a3d8e48333854deec3eca9d059bea13dc1c683c585eddbb7d35b9/psycopg2cffi-2.5.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "98d5a820f038fc318f5fc6c0c75a01a8", "sha256": "da57675521d69c0c253dec680784e6331e96450255a7cf2255f6381cc337c3ed" }, "downloads": -1, "filename": "psycopg2cffi-2.5.1.tar.gz", "has_sig": false, "md5_digest": "98d5a820f038fc318f5fc6c0c75a01a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65986, "upload_time": "2014-05-14T07:04:21", "url": "https://files.pythonhosted.org/packages/97/8c/23610131c32f042208c1fae96046deba577846a5d175ce649c4776fd5f05/psycopg2cffi-2.5.1.tar.gz" } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "5865741fad9c4e49d132bc75d52f919e", "sha256": "5ad8a4a8946266159a50e46792363c0ac46e255ff4157681c62dcc5282516efa" }, "downloads": -1, "filename": "psycopg2cffi-2.5.2.tar.gz", "has_sig": false, "md5_digest": "5865741fad9c4e49d132bc75d52f919e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65985, "upload_time": "2014-05-16T06:51:27", "url": "https://files.pythonhosted.org/packages/83/5d/c071d667725be9c23076582d2cd838488fd1fe9254ecf9e8b7e25e780f02/psycopg2cffi-2.5.2.tar.gz" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "cc71f2d961e58e8ae4f8c7cb4d5dc987", "sha256": "60d8a86728e2e6eee9f4077fd4cefb06cd95ae8c91c331c2361dce3d7b9701a0" }, "downloads": -1, "filename": "psycopg2cffi-2.6.0.tar.gz", "has_sig": false, "md5_digest": "cc71f2d961e58e8ae4f8c7cb4d5dc987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68885, "upload_time": "2015-01-24T14:15:40", "url": "https://files.pythonhosted.org/packages/00/bf/5fbf920ddf1b323b4f353b342f732b86dad4c1efb172ca050c46e0da1f35/psycopg2cffi-2.6.0.tar.gz" } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "44a3ef5c879f3b4f93d082835aec667c", "sha256": "177c31557c1d4e53776a5244644aebbaf760234543f5ccf1605c12796772c0ea" }, "downloads": -1, "filename": "psycopg2cffi-2.6.1.tar.gz", "has_sig": false, "md5_digest": "44a3ef5c879f3b4f93d082835aec667c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69682, "upload_time": "2015-02-08T20:56:03", "url": "https://files.pythonhosted.org/packages/32/05/98b39d97dd8f2b6c6ad2b0aaf0b64561b45d0604d93ad5c076fb9d77f9db/psycopg2cffi-2.6.1.tar.gz" } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "69574cdc4cf5e0b5c9f8ba72118ae004", "sha256": "881f85d1a791c6a3904699d2a2c92fe2948eba290f77ae14f11afa97aee5b725" }, "downloads": -1, "filename": "psycopg2cffi-2.7.0.tar.gz", "has_sig": false, "md5_digest": "69574cdc4cf5e0b5c9f8ba72118ae004", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61195, "upload_time": "2015-05-21T08:41:34", "url": "https://files.pythonhosted.org/packages/8e/38/555754ae7f7c3bf290109f8775fc1cadffc5768d5b6969130f722b79724d/psycopg2cffi-2.7.0.tar.gz" } ], "2.7.1": [ { "comment_text": "", "digests": { "md5": "6f6bbdc677f9618f86d8080de46936bf", "sha256": "da0772c0541b5ba20ada46889b4fc26c7f31517cf3b73b249e1a408e2396dc44" }, "downloads": -1, "filename": "psycopg2cffi-2.7.1.tar.gz", "has_sig": false, "md5_digest": "6f6bbdc677f9618f86d8080de46936bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61596, "upload_time": "2015-06-20T09:06:16", "url": "https://files.pythonhosted.org/packages/25/ed/7d3b2f27f025ccbfe770ad8f53d19153635a5dd9a1a273c88e8917dd30ea/psycopg2cffi-2.7.1.tar.gz" } ], "2.7.2": [ { "comment_text": "", "digests": { "md5": "61a5ebb6c5fb30925c940a1f5eef11b8", "sha256": "5e96f17cc621264ff41651d91b930acf87a3f56ee41267598e7e65426fe03651" }, "downloads": -1, "filename": "psycopg2cffi-2.7.2.tar.gz", "has_sig": false, "md5_digest": "61a5ebb6c5fb30925c940a1f5eef11b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61628, "upload_time": "2015-08-08T20:47:10", "url": "https://files.pythonhosted.org/packages/d1/b1/11e3666008c914feed217f27dfd20d3fc5ed167f77195b7759ccac0827c8/psycopg2cffi-2.7.2.tar.gz" } ], "2.7.3": [ { "comment_text": "", "digests": { "md5": "1a55cc5f6ed838cbd35d4f19e64b3126", "sha256": "43dd6cc9e8aa963c86bedd7d5c7ba78957e66129f4214e788d82e1882c9f96cc" }, "downloads": -1, "filename": "psycopg2cffi-2.7.3.tar.gz", "has_sig": false, "md5_digest": "1a55cc5f6ed838cbd35d4f19e64b3126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61772, "upload_time": "2016-02-29T07:25:08", "url": "https://files.pythonhosted.org/packages/13/c2/ccf34421204353fec650972f08228014e107c96b9aa2f370b35a88087970/psycopg2cffi-2.7.3.tar.gz" } ], "2.7.4": [ { "comment_text": "", "digests": { "md5": "246e6cec12e1edd3b8a8b0c9d6666ab3", "sha256": "ade6927a58c8deeaddcde0dea57c2c0e822b3a3ec703cebb63b4c0fcf98d2ed1" }, "downloads": -1, "filename": "psycopg2cffi-2.7.4.tar.gz", "has_sig": false, "md5_digest": "246e6cec12e1edd3b8a8b0c9d6666ab3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62017, "upload_time": "2016-04-01T17:14:01", "url": "https://files.pythonhosted.org/packages/62/d1/b95ef2df2760f888025baf8e832ffeec766cf33f6dc967d503cc9298466c/psycopg2cffi-2.7.4.tar.gz" } ], "2.7.5": [ { "comment_text": "", "digests": { "md5": "42696420016d33e92a63177484061cd4", "sha256": "a36a4c74060123232abed6fa8bbc7355b322b99fc22b60191128aa20d147e290" }, "downloads": -1, "filename": "psycopg2cffi-2.7.5.tar.gz", "has_sig": false, "md5_digest": "42696420016d33e92a63177484061cd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62733, "upload_time": "2016-10-31T13:12:45", "url": "https://files.pythonhosted.org/packages/6d/1c/3ca26d4345150331181b7ed8c3c06043a3bd730d3ddd02bcec357187c0c9/psycopg2cffi-2.7.5.tar.gz" } ], "2.7.6": [ { "comment_text": "", "digests": { "md5": "b938c4fc7b7c2692d80c02aea3668e2e", "sha256": "c8ed26368e4d037f035c8ba8462889c6f61046077d68b1640d475fe515f2aee9" }, "downloads": -1, "filename": "psycopg2cffi-2.7.6.tar.gz", "has_sig": false, "md5_digest": "b938c4fc7b7c2692d80c02aea3668e2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62842, "upload_time": "2017-08-11T11:26:14", "url": "https://files.pythonhosted.org/packages/ed/8d/b693ae31c4c2d1e4c815c71a117b6623802b4872df369cc685bf5132e6c2/psycopg2cffi-2.7.6.tar.gz" } ], "2.7.7": [ { "comment_text": "", "digests": { "md5": "263f8a50e3e61090681d1c4bcb7ae7c3", "sha256": "cf41753709203e313cdce82199fdc7ecc5714d7cde62b306b32bc1bbefa05d02" }, "downloads": -1, "filename": "psycopg2cffi-2.7.7.tar.gz", "has_sig": false, "md5_digest": "263f8a50e3e61090681d1c4bcb7ae7c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62928, "upload_time": "2017-11-13T16:35:22", "url": "https://files.pythonhosted.org/packages/5c/a9/db1c98e7fbe2530268a3a51160ca5647d7ed3e190a216e4a125b1950297d/psycopg2cffi-2.7.7.tar.gz" } ], "2.8.0": [ { "comment_text": "", "digests": { "md5": "95af5f56a25f59d8daae42d3a0f3a57c", "sha256": "c5fa34f6488e7c2b41384d1b2e6a6a9b083ba791f0cd12a0e1ecb14579331318" }, "downloads": -1, "filename": "psycopg2cffi-2.8.0.tar.gz", "has_sig": false, "md5_digest": "95af5f56a25f59d8daae42d3a0f3a57c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63149, "upload_time": "2018-07-31T17:32:18", "url": "https://files.pythonhosted.org/packages/67/1b/b804f7982b45182dead553a41ce3846b19359c84f5620826fa5daa0df953/psycopg2cffi-2.8.0.tar.gz" } ], "2.8.1": [ { "comment_text": "", "digests": { "md5": "f67394d47803dab8a481402754bf83a1", "sha256": "fcaa4d5477a8205b33e8e9e6707a5c331a0f5d7f4af354529b6564377b678079" }, "downloads": -1, "filename": "psycopg2cffi-2.8.1.tar.gz", "has_sig": false, "md5_digest": "f67394d47803dab8a481402754bf83a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63189, "upload_time": "2018-07-31T17:34:03", "url": "https://files.pythonhosted.org/packages/95/50/5b94b81a57948ce0350559aad8c20d250ff3b87868a5615efcc79704ba49/psycopg2cffi-2.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f67394d47803dab8a481402754bf83a1", "sha256": "fcaa4d5477a8205b33e8e9e6707a5c331a0f5d7f4af354529b6564377b678079" }, "downloads": -1, "filename": "psycopg2cffi-2.8.1.tar.gz", "has_sig": false, "md5_digest": "f67394d47803dab8a481402754bf83a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63189, "upload_time": "2018-07-31T17:34:03", "url": "https://files.pythonhosted.org/packages/95/50/5b94b81a57948ce0350559aad8c20d250ff3b87868a5615efcc79704ba49/psycopg2cffi-2.8.1.tar.gz" } ] }