{ "info": { "author": "Krisztian Szucs", "author_email": "szucs.krisztian@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "|Build Status| |Gitential Code Volume| |Gitential Coding Hours| |Gitential Efficiency|\n\n.. |Gitential Code Volume| image:: https://api.gitential.com/accounts/6/projects/122/badges/code-volume.svg\n :alt: Gitential Active Contributors\n :target: https://gitential.com/accounts/6/projects/122/share?uuid=edbf79d4-57fb-4681-9b2e-a6dfd4bc7001&utm_source=shield&utm_medium=shield&utm_campaign=122\n \n.. |Gitential Coding Hours| image:: https://api.gitential.com/accounts/6/projects/122/badges/coding-hours.svg\n :alt: Gitential Coding Hours\n :target: https://gitential.com/accounts/6/projects/122/share?uuid=edbf79d4-57fb-4681-9b2e-a6dfd4bc7001&utm_source=shield&utm_medium=shield&utm_campaign=122\n \n.. |Gitential Efficiency| image:: https://api.gitential.com/accounts/6/projects/122/badges/efficiency.svg\n :alt: Gitential Efficiency\n :target: https://gitential.com/accounts/6/projects/122/share?uuid=edbf79d4-57fb-4681-9b2e-a6dfd4bc7001&utm_source=shield&utm_medium=shield&utm_campaign=122\n\n\n\nAioPeewee\n=========\n\nAsyncio interface for peewee_ modeled after torpeewee_\n\nImplemented database adapters:\n\n- [x] aiomysql\n- [ ] aiopg\n- [ ] sqlite\n\nCurrently 125 test cases have been ported from peewee, not all of them but constantly increases.\n\nSimple Atomic operations (transactions) are also supported, but now well tested.\n\n\nInstall\n-------\n\n.. code:: bash\n\n pip install aiopeewee\n\n\nUsage\n-----\n\n.. code:: python\n\n from aiopeewee import AioModel, AioMySQLDatabase\n from peewee import CharField, TextField, DateTimeField\n from peewee import ForeignKeyField, PrimaryKeyField\n\n\n db = AioMySQLDatabase('test', host='127.0.0.1', port=3306,\n user='root', password='')\n\n\n class User(AioModel):\n username = CharField()\n\n class Meta:\n database = db\n\n\n class Blog(AioModel):\n user = ForeignKeyField(User)\n title = CharField(max_length=25)\n content = TextField(default='')\n pub_date = DateTimeField(null=True)\n pk = PrimaryKeyField()\n\n class Meta:\n database = db\n \n \n # create connection pool\n await db.connect(loop)\n\n # count\n await User.select().count()\n\n # async iteration on select query\n async for user in User.select():\n print(user)\n\n # fetch all records as a list from a query in one pass\n users = await User.select()\n\n # insert\n user = await User.create(username='kszucs')\n\n # modify\n user.username = 'krisztian'\n await user.save()\n\n # async iteration on blog set\n [b.title async for b in user.blog_set.order_by(Blog.title)]\n\n # close connection pool\n await db.close()\n\n # see more in the tests\n\n\nManyToMany\n----------\n\nNote that `AioManyToManyField` must be used instead of `ManyToMany`.\n\n\n.. code:: python\n\n from aiopeewee import AioManyToManyField\n\n\n class User(AioModel):\n username = CharField(unique=True)\n\n class Meta:\n database = db\n\n\n class Note(AioModel):\n text = TextField()\n users = AioManyToManyField(User)\n\n class Meta:\n database = db\n\n\n NoteUserThrough = Note.users.get_through_model()\n\n\n async for user in note.users:\n # do something with the users\n\n\nCurrently the only limitation I'm aware of immidiate setting of instance relation must be replaced with a method call:\n\n.. code:: python\n\n # original, which is not supported\n charlie.notes = [n2, n3]\n\n # use instead\n await charlie.notes.set([n2, n3])\n\n\nSerializing\n-----------\n\nConverting to dict requires the asyncified version of `model_to_dict` \n\n.. code:: python\n\n from aiopeewee import model_to_dict\n\n serialized = await model_to_dict(user)\n\n \n.. _peewee: http://docs.peewee-orm.com/en/latest/\n.. _torpeewee: https://github.com/snower/torpeewee\n\n.. |Build Status| image:: http://drone.lensa.com:8000/api/badges/kszucs/aiopeewee/status.svg\n :target: http://drone.lensa.com:8000/kszucs/pandahouse\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/kszucs/aiopeewee", "keywords": "async asyncio peewee orm", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiopeewee", "package_url": "https://pypi.org/project/aiopeewee/", "platform": "", "project_url": "https://pypi.org/project/aiopeewee/", "project_urls": { "Homepage": "http://github.com/kszucs/aiopeewee" }, "release_url": "https://pypi.org/project/aiopeewee/0.4.2/", "requires_dist": null, "requires_python": "", "summary": "Async Peewee", "version": "0.4.2" }, "last_serial": 3268058, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "aa54a72312ccaea346940ec22865e012", "sha256": "5a2d99d8af01736fc47c3dcafe22e5fe12c67ac0d62fad3ad55fb7e4bc773fce" }, "downloads": -1, "filename": "aiopeewee-0.2.0.tar.gz", "has_sig": false, "md5_digest": "aa54a72312ccaea346940ec22865e012", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10012, "upload_time": "2017-05-04T11:07:06", "url": "https://files.pythonhosted.org/packages/1e/48/e6c8e03a732d0adb582c7bef96bf56983e9d081a6683b39ab1c9eb4e9096/aiopeewee-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3c905410292d40462043e71bdc981de1", "sha256": "5256bc6c1a51079cac3d337d4b271993484830875908edc8a8631ce20cd792d9" }, "downloads": -1, "filename": "aiopeewee-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3c905410292d40462043e71bdc981de1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11105, "upload_time": "2017-05-04T14:15:59", "url": "https://files.pythonhosted.org/packages/5c/4b/308f38c94457fbe97104bf95447d4b025cfdc9ca4f6b7593568f607c2ca9/aiopeewee-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e83c1370e8df386cf472dca33dc41a45", "sha256": "2ed6c77584f9ab8c1724e898d97f92e9ab5f7d1d3235e44305e8d7251e2ad21c" }, "downloads": -1, "filename": "aiopeewee-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e83c1370e8df386cf472dca33dc41a45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11617, "upload_time": "2017-05-04T20:24:47", "url": "https://files.pythonhosted.org/packages/14/97/5e1f7570401d175fd9b1546fb47f9e75dfb2f11a5982d240322c10d29bc8/aiopeewee-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "acdf72f342f6d1c920554fa5f727b006", "sha256": "df212044d78b910a7ddc449b9edc6b6d747d2e0ca9fdf5f7ce76e9a2fe98e6ef" }, "downloads": -1, "filename": "aiopeewee-0.3.2.tar.gz", "has_sig": false, "md5_digest": "acdf72f342f6d1c920554fa5f727b006", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12538, "upload_time": "2017-05-05T08:49:38", "url": "https://files.pythonhosted.org/packages/56/c9/7d3247bc5f26ca59af732d64bb645e1531c5ebd7cd97401234a88f15b083/aiopeewee-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "5d8c700c02fca2f17ab016eb7f8e8676", "sha256": "99aa49b67feb31a87ad867cb55b9e9427e992d38378a5746fd5b6ec7e9fa2801" }, "downloads": -1, "filename": "aiopeewee-0.3.3.tar.gz", "has_sig": false, "md5_digest": "5d8c700c02fca2f17ab016eb7f8e8676", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12587, "upload_time": "2017-05-05T10:41:52", "url": "https://files.pythonhosted.org/packages/3f/ba/098d445f660523d75282585ae400dca1c3d32e7383b8bc5298d3ccb93f23/aiopeewee-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "ccf792216b923a02d5c7601afe546003", "sha256": "45c238e23ffef0cb5c5c4b43d2fb9145f52d9121b356eff0a73b362f089197ae" }, "downloads": -1, "filename": "aiopeewee-0.3.4.tar.gz", "has_sig": false, "md5_digest": "ccf792216b923a02d5c7601afe546003", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12594, "upload_time": "2017-05-05T11:36:32", "url": "https://files.pythonhosted.org/packages/c5/4b/e5dd09577c23a676a06887e461d835cc355eeb3db0ac4d9642ccda5b554d/aiopeewee-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "08b8025ffbdf52e701bdc95e70eb1439", "sha256": "f0ebc9a3b03b0901da8b135e0dc411b533170a3f3f95ad08a7c48e9769bb5a99" }, "downloads": -1, "filename": "aiopeewee-0.3.5.tar.gz", "has_sig": false, "md5_digest": "08b8025ffbdf52e701bdc95e70eb1439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12710, "upload_time": "2017-06-01T15:12:10", "url": "https://files.pythonhosted.org/packages/11/13/8dfa79b130d0b42e1c8a207071bfc8db69cee2e835ddca919873adbcb8a3/aiopeewee-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "3435df692a1cb030c098fbee33f5b3ab", "sha256": "17a22ecc4a4547298892c51b84ae2e50155c9d42f546b512eeebe687498f4d13" }, "downloads": -1, "filename": "aiopeewee-0.3.6.tar.gz", "has_sig": false, "md5_digest": "3435df692a1cb030c098fbee33f5b3ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12681, "upload_time": "2017-07-06T07:28:20", "url": "https://files.pythonhosted.org/packages/9e/9d/839f69c90d43b8427847c1e84cf9bb7f9540f06eddd6b52717c1106b23f0/aiopeewee-0.3.6.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7a11a86ae15f1288b11df92ad24cda07", "sha256": "934fe4692d6a885b7318ef0e1764d3ee523800d135f10d119c7e7c7ea6faa24a" }, "downloads": -1, "filename": "aiopeewee-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7a11a86ae15f1288b11df92ad24cda07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13322, "upload_time": "2017-07-11T08:30:27", "url": "https://files.pythonhosted.org/packages/0e/9b/dd347eb588d61e5e71dc116b833e4f0003f3f4a308629e6e108d729c6be8/aiopeewee-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "3e9be7ea319a51978806b940fe6b0ca4", "sha256": "03578a1ce28879f5e575c82fce8ead74a0e5ae0f7e2d2ac592f86207bf0be85e" }, "downloads": -1, "filename": "aiopeewee-0.4.1.tar.gz", "has_sig": false, "md5_digest": "3e9be7ea319a51978806b940fe6b0ca4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30105, "upload_time": "2017-10-20T08:10:22", "url": "https://files.pythonhosted.org/packages/c8/6a/afe35e17832be0f037ad62df56ff79959002c3ae29649546e1bedb0b37ea/aiopeewee-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "e842e2ff6e4c2bb7ba703fa52c4a2297", "sha256": "be9c5f574dd353b1869fa61982840c753c50ffc0538b6a9f3625bb4990e46fa8" }, "downloads": -1, "filename": "aiopeewee-0.4.2.tar.gz", "has_sig": false, "md5_digest": "e842e2ff6e4c2bb7ba703fa52c4a2297", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68898, "upload_time": "2017-10-21T09:41:27", "url": "https://files.pythonhosted.org/packages/fe/bd/520c1ea7399e34c0d3e64984d1520ce3a3558fb5387ca2dd3439d9919950/aiopeewee-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e842e2ff6e4c2bb7ba703fa52c4a2297", "sha256": "be9c5f574dd353b1869fa61982840c753c50ffc0538b6a9f3625bb4990e46fa8" }, "downloads": -1, "filename": "aiopeewee-0.4.2.tar.gz", "has_sig": false, "md5_digest": "e842e2ff6e4c2bb7ba703fa52c4a2297", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68898, "upload_time": "2017-10-21T09:41:27", "url": "https://files.pythonhosted.org/packages/fe/bd/520c1ea7399e34c0d3e64984d1520ce3a3558fb5387ca2dd3439d9919950/aiopeewee-0.4.2.tar.gz" } ] }