{ "info": { "author": "aohan237", "author_email": "aohan237@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development", "Topic :: Software Development :: Libraries" ], "description": "# asyncsa\n[![Downloads](https://pepy.tech/badge/asyncsa)](https://pepy.tech/project/asyncsa)\n[![PyPI version](https://badge.fury.io/py/asyncsa.svg)](https://badge.fury.io/py/asyncsa)\n\n## asyncio sqlalchemy support,with async/await\n\nadd asyncio sqlalchemy support\n\n## Install\n\n--------------\n\npip install asyncsa\n\n## Usage examples\n\n--------------\n\n\n```python\nimport asyncio\nfrom sqlalchemy import Integer, Column, String, ForeignKey\nfrom asyncsa.manager.async_pg import PostgresManager\nfrom asyncsa.model.mixin import Mixin\nfrom sqlalchemy.ext.declarative import declarative_base\nfrom sqlalchemy.orm import relationship\nfrom sqlalchemy.sql import select\n\ndsn = \"postgres://postgres:test@localhost:2345/test\"\n\nconf = {'dsn': dsn}\n\nBase = declarative_base()\n\n\nManager = PostgresManager(conf=conf)\n\n\nclass User(Mixin, Base):\n\n _manager = Manager\n\n __tablename__ = 'test'\n id = Column(Integer, autoincrement=True, primary_key=True)\n name = Column(String(50))\n\n def __repr__(self):\n return \"\" % (\n self.name, self.id)\n\n\nclass Parent(Mixin, Base):\n __tablename__ = 'parent'\n _manager = Manager\n id = Column(Integer, primary_key=True)\n child = relationship(\"Child\", lazy='joined')\n\n\nclass Child(Mixin, Base):\n _manager = Manager\n __tablename__ = 'child'\n id = Column(Integer, primary_key=True)\n parent_id = Column(Integer, ForeignKey('parent.id'))\n parent = relationship(\"Parent\", back_populates=\"child\")\n\n\nif __name__ == '__main__':\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(Manager.connect())\n\n result = loop.run_until_complete(Manager.get(\n User.objects([User.id]).join(\n Parent.__table__,\n Parent.id == User.id)))\n print(result)\n\n # result = loop.run_until_complete(Child.create_table())\n # print(result)\n # u = loop.run_until_complete(User.create(name='test'))\n # print('create', u)\n # print('get', loop.run_until_complete(User.get(name='test')))\n # print('all', loop.run_until_complete(User.all()))\n # u.name = 'aaa'\n # print('save', loop.run_until_complete(u.save()))\n\n```\n\nLicense\n-------\n\nThe asyncnsq is offered under APGLV3 license.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aohan237/asyncsa", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "asyncsa", "package_url": "https://pypi.org/project/asyncsa/", "platform": "POSIX", "project_url": "https://pypi.org/project/asyncsa/", "project_urls": { "Homepage": "https://github.com/aohan237/asyncsa" }, "release_url": "https://pypi.org/project/asyncsa/2.0.2/", "requires_dist": [ "sqlalchemy", "asyncpg", "aiomysql" ], "requires_python": "", "summary": "asyncio sqlalchemy support", "version": "2.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 12594581, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9725f3a5e5cda14a4902ce6a7ce829dc", "sha256": "a4ea3d2f418badbc67f3e3e73b997e17474e8d7bf0a4acebff7f6a28f86fe244" }, "downloads": -1, "filename": "asyncsa-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9725f3a5e5cda14a4902ce6a7ce829dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2058, "upload_time": "2019-04-04T10:10:00", "upload_time_iso_8601": "2019-04-04T10:10:00.624162Z", "url": "https://files.pythonhosted.org/packages/79/11/e764be059241ab50ea485b2224e32fc765c437b51813bfc9fd295b291242/asyncsa-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "ac9ec478d01c566dda3d6669ae29c55c", "sha256": "fcde06ba95032652e8a742b9cb8526ddb5c6cbcd619ea27db38c6abca6fc8acd" }, "downloads": -1, "filename": "asyncsa-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ac9ec478d01c566dda3d6669ae29c55c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5703, "upload_time": "2019-04-04T10:21:10", "upload_time_iso_8601": "2019-04-04T10:21:10.874998Z", "url": "https://files.pythonhosted.org/packages/2d/00/9d1c51400e2d4b10f6a03d0ed80971619756380a82acda1330c12b6011e9/asyncsa-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "c179e9dfcdc9f72e9a7335ac648447c9", "sha256": "03f6c87ad1f42ff81c4569d424d20b7a019bd634f621d74717c17b91e4a45abb" }, "downloads": -1, "filename": "asyncsa-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c179e9dfcdc9f72e9a7335ac648447c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5701, "upload_time": "2019-04-04T10:25:10", "upload_time_iso_8601": "2019-04-04T10:25:10.101388Z", "url": "https://files.pythonhosted.org/packages/d2/e1/291dc693d763e91d4529189c98115dfc100a44b3c3cf91efef1cfa06cb02/asyncsa-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "550bc2780584992ecebf9f6b20364ecf", "sha256": "491cce7b694faa2fc95f54b05cbf298ce29249eed18ecae74e52c61b2becf4ba" }, "downloads": -1, "filename": "asyncsa-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "550bc2780584992ecebf9f6b20364ecf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7306, "upload_time": "2019-04-08T09:27:19", "upload_time_iso_8601": "2019-04-08T09:27:19.317664Z", "url": "https://files.pythonhosted.org/packages/9f/46/892de0ca05e16e796527faec0cafec7db7d48202c447ead8e9ccb048781a/asyncsa-1.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "bfdc379b0829dc6f25a05711f2eaa51a", "sha256": "9fbf6acb29709c51522a301f492305987753084928116447f90a76e107e3ee6b" }, "downloads": -1, "filename": "asyncsa-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bfdc379b0829dc6f25a05711f2eaa51a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7939, "upload_time": "2019-05-20T10:10:53", "upload_time_iso_8601": "2019-05-20T10:10:53.489432Z", "url": "https://files.pythonhosted.org/packages/ac/fd/b2d16a541d0831f4a85c06900bbeda41c5a79fe6a30fdf200931eae823da/asyncsa-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "2bbc7c1fa920cd757b843f0c6f48fc1c", "sha256": "63d54ed8f2e3f109ab80173758cbf32c2b7a79c8f4f758ee891b0dda94cc9f27" }, "downloads": -1, "filename": "asyncsa-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2bbc7c1fa920cd757b843f0c6f48fc1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8009, "upload_time": "2019-08-03T09:48:17", "upload_time_iso_8601": "2019-08-03T09:48:17.292725Z", "url": "https://files.pythonhosted.org/packages/89/23/e4f9716613ef03cc675efd953ea45160f5f04adcec90a6b2bdccfdc6d7a1/asyncsa-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "73c5d31fe7bc326b701e6e43ffbbacdc", "sha256": "506045b38cbb5988a2a72226d8caaefd786aa57ef165301dcffb020020e9176f" }, "downloads": -1, "filename": "asyncsa-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "73c5d31fe7bc326b701e6e43ffbbacdc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8081, "upload_time": "2019-08-04T04:46:30", "upload_time_iso_8601": "2019-08-04T04:46:30.609295Z", "url": "https://files.pythonhosted.org/packages/ba/9d/53451b271484b9e8d1f8b48ef5bc6f6f46b8eb98a3c840e0eb63f34b7a10/asyncsa-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "034009ef0068759bec9fa43e0324e5c4", "sha256": "fafe69185306ce5a3178cbd7336d3bb43208f05335bcd0d8e3ae5324f4614e16" }, "downloads": -1, "filename": "asyncsa-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "034009ef0068759bec9fa43e0324e5c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8083, "upload_time": "2019-09-16T15:10:14", "upload_time_iso_8601": "2019-09-16T15:10:14.030784Z", "url": "https://files.pythonhosted.org/packages/bd/61/c84453abfa6540309fd3817f39422f94b7fc6015f144bbc5bcdd1a17435e/asyncsa-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "97f6594b9aa89f16468325d195518fe8", "sha256": "fcb54ff5a433d337967418ec8f1e4e0496f68c10d7b9b68a506eaf5a27beb4ba" }, "downloads": -1, "filename": "asyncsa-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "97f6594b9aa89f16468325d195518fe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8739, "upload_time": "2019-10-27T09:50:47", "upload_time_iso_8601": "2019-10-27T09:50:47.400769Z", "url": "https://files.pythonhosted.org/packages/fa/fc/770b6215d21fc77090ccf494ed8a0f2ce74e06207613ae1a03bc98364c70/asyncsa-1.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "9ec7c39a94c556b5deec6586208db2b4", "sha256": "03fcd4b29fa5d8594929a97de677182f2122222cc13ac8aff5948e5ae11ee4cc" }, "downloads": -1, "filename": "asyncsa-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9ec7c39a94c556b5deec6586208db2b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22076, "upload_time": "2022-01-17T06:31:43", "upload_time_iso_8601": "2022-01-17T06:31:43.932794Z", "url": "https://files.pythonhosted.org/packages/a5/48/0b8f1fe645f5cc68434bb425850380530ab190dbcc0364a8df6b0f1bfae8/asyncsa-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "28f84e9420e86a8b71560aef11e49f79", "sha256": "deda784190be02c249fcd428baa2188e05c3e878b72fe872c96ba6139370b836" }, "downloads": -1, "filename": "asyncsa-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "28f84e9420e86a8b71560aef11e49f79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22110, "upload_time": "2022-01-17T08:34:49", "upload_time_iso_8601": "2022-01-17T08:34:49.280759Z", "url": "https://files.pythonhosted.org/packages/8b/5a/da34a440c93479464ad04f8bb1491826b525a4c42a5d6389053b22e7660a/asyncsa-2.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "28f84e9420e86a8b71560aef11e49f79", "sha256": "deda784190be02c249fcd428baa2188e05c3e878b72fe872c96ba6139370b836" }, "downloads": -1, "filename": "asyncsa-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "28f84e9420e86a8b71560aef11e49f79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22110, "upload_time": "2022-01-17T08:34:49", "upload_time_iso_8601": "2022-01-17T08:34:49.280759Z", "url": "https://files.pythonhosted.org/packages/8b/5a/da34a440c93479464ad04f8bb1491826b525a4c42a5d6389053b22e7660a/asyncsa-2.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }