{ "info": { "author": "Jos\u00e9 Antonio Perdiguero L\u00f3pez", "author_email": "perdy.hh@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "API Star SQLAlchemy\n===================\n|build-status| |coverage| |version|\n\n:Version: 0.3.2\n:Status: Production/Stable\n:Author: Jos\u00e9 Antonio Perdiguero L\u00f3pez\n\nSQLAlchemy integration for API Star.\n\nFeatures\n--------\nThis library provides **components** for injecting SQLAlchemy ORM sessions into your views and **event_hooks** to\nhandle commit/rollback behavior based on exceptions in your views.\n\nQuick start\n-----------\nInstall API Star SQLAlchemy:\n\n.. code:: bash\n\n pip install apistar-sqlalchemy\n\nCreate an API Star application adding components and event hooks:\n\n.. code:: python\n\n from apistar_sqlalchemy.components import SQLAlchemySessionComponent\n from apistar_sqlalchemy.event_hooks import SQLAlchemyTransactionHook\n\n routes = []\n\n components = [\n SQLAlchemySessionComponent(url='sqlite://'),\n ]\n\n event_hooks = [\n SQLAlchemyTransactionHook(),\n ]\n\n app = App(routes=routes, components=components, event_hooks=event_hooks)\n\nNow you can inject SQLAlchemy Session into your views:\n\n.. code:: python\n\n from sqlalchemy.orm import Session\n\n def sqlalchemy_view(session: Session):\n # do something\n return {'message': 'something done'}\n\nForget about **commit** and **rollback** because there is an event hook that will handle it for you.\n\nFull example\n------------\n\n.. code:: python\n\n from typing import List\n\n from apistar import App, Route, http, types, validators\n from sqlalchemy import Column, Integer, String\n from sqlalchemy.orm import Session\n\n from apistar_sqlalchemy.components import SQLAlchemySessionComponent\n from apistar_sqlalchemy.event_hooks import SQLAlchemyTransactionHook\n from apistar_sqlalchemy import database\n\n\n class PuppyModel(database.Base):\n __tablename__ = \"Puppy\"\n id = Column(Integer, primary_key=True, autoincrement=True)\n name = Column(String)\n\n\n class PuppyType(types.Type):\n id = validators.Integer(allow_null=True, default=None)\n name = validators.String()\n\n\n def list_puppies(session: Session) -> List[PuppyType]:\n return [PuppyType(puppy) for puppy in session.query(PuppyModel).all()]\n\n\n def create_puppy(session: Session, puppy: PuppyType) -> http.JSONResponse:\n model = PuppyModel(**puppy)\n session.add(model)\n session.flush()\n return http.JSONResponse(PuppyType(model), status_code=201)\n\n\n routes = [\n Route('/puppy/', 'POST', create_puppy),\n Route('/puppy/', 'GET', list_puppies),\n ]\n\n components = [\n SQLAlchemySessionComponent(url='sqlite://'),\n ]\n\n event_hooks = [\n SQLAlchemyTransactionHook(),\n ]\n\n app = App(routes=routes, components=components, event_hooks=event_hooks)\n\n\n.. |build-status| image:: https://travis-ci.org/PeRDy/apistar-sqlalchemy.svg?branch=master\n :alt: build status\n :scale: 100%\n :target: https://travis-ci.org/PeRDy/apistar-sqlalchemy\n.. |coverage| image:: https://codecov.io/gh/PeRDy/apistar-sqlalchemy/branch/master/graph/badge.svg\n :alt: coverage\n :scale: 100%\n :target: https://codecov.io/gh/PeRDy/apistar-sqlalchemy/branch/master/graph/badge.svg\n.. |version| image:: https://badge.fury.io/py/apistar-sqlalchemy.svg\n :alt: version\n :scale: 100%\n :target: https://badge.fury.io/py/apistar-sqlalchemy\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/PeRDy/apistar-sqlalchemy", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PeRDy/apistar-sqlalchemy", "keywords": "python apistar api resource async database sqlalchemy", "license": "GPLv3", "maintainer": "Jos\u00e9 Antonio Perdiguero L\u00f3pez", "maintainer_email": "perdy.hh@gmail.com", "name": "apistar-sqlalchemy", "package_url": "https://pypi.org/project/apistar-sqlalchemy/", "platform": "", "project_url": "https://pypi.org/project/apistar-sqlalchemy/", "project_urls": { "Download": "https://github.com/PeRDy/apistar-sqlalchemy", "Homepage": "https://github.com/PeRDy/apistar-sqlalchemy" }, "release_url": "https://pypi.org/project/apistar-sqlalchemy/0.3.2/", "requires_dist": [ "apistar", "SQLAlchemy" ], "requires_python": "", "summary": "SQLAlchemy integration for API Star.", "version": "0.3.2" }, "last_serial": 4100562, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1c7570c007faf805cc871fcdf74fc644", "sha256": "5c064622e47220884f7af7368511f51157497378b0168e4e258dafb6d9888205" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1c7570c007faf805cc871fcdf74fc644", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16757, "upload_time": "2018-04-13T12:22:14", "url": "https://files.pythonhosted.org/packages/69/f4/7bdd0463a4cf5295efbf1052ca242fa26f1f0139b38962f7b96f7bd6735e/apistar_sqlalchemy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66d930f12ffd19fab4d80879afa11a0f", "sha256": "9097c48ddf8bc10930176b9f57460052e42da609bd6c72d4c4c203d0efe32030" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "66d930f12ffd19fab4d80879afa11a0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17136, "upload_time": "2018-04-13T12:22:06", "url": "https://files.pythonhosted.org/packages/08/fd/167f698deb6fd96e61b180c106e316fd85d599bf1a08ebe244f47e23919f/apistar-sqlalchemy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "59004aaf22e320328fb5fbe3c7b26418", "sha256": "7cc706eda566c9fafdd54bd5db1f2fe6fdca7ce39f1d0be0cb1dd5558b466b99" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "59004aaf22e320328fb5fbe3c7b26418", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22650, "upload_time": "2018-04-18T13:39:15", "url": "https://files.pythonhosted.org/packages/20/3b/3f6060dfeef569a0b3f1f1572ac235402cf41ead2792d9ec74c0373af2fc/apistar_sqlalchemy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de60cb05f80f03f85a791326ed7e81bd", "sha256": "dbee6e45f50e3dab4f05b978a387f7d6acc5d9d64b5c5f41872e2133ea1dd826" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "de60cb05f80f03f85a791326ed7e81bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16627, "upload_time": "2018-04-18T13:39:16", "url": "https://files.pythonhosted.org/packages/9c/a3/4be4a32a5cc52b9b76d9cffc20542ecb602f656f728ee5ed6f1f45ee6fcd/apistar-sqlalchemy-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "25a090a59103988d1992e2c21b34da9b", "sha256": "82e433692c19a0aef5fe642c9c1252c47f716a2bf81b54928a46108829822b66" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "25a090a59103988d1992e2c21b34da9b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21563, "upload_time": "2018-04-18T16:18:51", "url": "https://files.pythonhosted.org/packages/f3/b0/ff98348fa7c357eaaab7acd2e05833951ebbfaba9a765d43c74a38965334/apistar_sqlalchemy-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "399f620f13430f6ff7b34a1fc259c36b", "sha256": "a8f77a2b8e7014603bcd9a0b132ae02363c3ddcf58c5601080a639f3d9799643" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "399f620f13430f6ff7b34a1fc259c36b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16339, "upload_time": "2018-04-18T16:18:52", "url": "https://files.pythonhosted.org/packages/96/9a/89aae7ef74844c50daad9c6f4f616ccc1feb8eeee83e62f97cc0ad442595/apistar-sqlalchemy-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "268d2f4ed0495b3cb4639d6595de714f", "sha256": "1d42d5e9fdf498dbada594078ba2054d41839e2fb424d61c425f032eff68e570" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "268d2f4ed0495b3cb4639d6595de714f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22061, "upload_time": "2018-04-18T18:07:40", "url": "https://files.pythonhosted.org/packages/93/fe/f19928af7dca244099764f3d903402b4c85abef0c10756e4188657d39df9/apistar_sqlalchemy-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "508d882a0cb4d8b3f2937249adf8ab32", "sha256": "8edee9266f04e3831a186ccdcd777c831c5cefabba15f411ca6f4cd2b00f540b" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "508d882a0cb4d8b3f2937249adf8ab32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16545, "upload_time": "2018-04-18T18:07:42", "url": "https://files.pythonhosted.org/packages/ce/fa/078c0e915c790c49a0adbccead6fce902b4c09f3950bfc9aeeb192537340/apistar-sqlalchemy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "732127490bd0c6ea6f43aac2ba88c03e", "sha256": "d220a76363526aa89766ee2de196d95d84946db71ccf23e87186934800107f18" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "732127490bd0c6ea6f43aac2ba88c03e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16532, "upload_time": "2018-04-26T08:28:17", "url": "https://files.pythonhosted.org/packages/68/49/68cfa9e999afc5778af1ef3e03ff5465c14f4932d5797469553d7bb7abb8/apistar_sqlalchemy-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34db561fd89dc5ed1f735e449522e6d2", "sha256": "df2af9e58a9a2960e0f90506466fd04c60cedff13bf68c625002399302488288" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "34db561fd89dc5ed1f735e449522e6d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16702, "upload_time": "2018-04-26T08:28:18", "url": "https://files.pythonhosted.org/packages/79/c9/c24840c5d1f8eba16452d3307c410554c431c224bf515bef0cb73ebf85b9/apistar-sqlalchemy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0ed7914db4e8342afb7d327ac3908aae", "sha256": "861d3a44ad355640881c375ec476c676fa5e5f5539f3d731c32b0bf99ffd105c" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0ed7914db4e8342afb7d327ac3908aae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16536, "upload_time": "2018-07-25T13:18:28", "url": "https://files.pythonhosted.org/packages/26/e0/4b107b976fd9d1b6066ba7115f4dde8ab459660b2e11f8488cfa9bba9bef/apistar_sqlalchemy-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fffb80f38996b4b3e29cce31f8452c24", "sha256": "9ae07aa0e63b23590ec25797e74d98b878f634b49ac4ca2690fd370477169f21" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "fffb80f38996b4b3e29cce31f8452c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16707, "upload_time": "2018-07-25T13:18:29", "url": "https://files.pythonhosted.org/packages/e1/5a/bfe2319f837de7352856f04e06afeae99f941006db4377431afd20023d3b/apistar-sqlalchemy-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0ed7914db4e8342afb7d327ac3908aae", "sha256": "861d3a44ad355640881c375ec476c676fa5e5f5539f3d731c32b0bf99ffd105c" }, "downloads": -1, "filename": "apistar_sqlalchemy-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0ed7914db4e8342afb7d327ac3908aae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16536, "upload_time": "2018-07-25T13:18:28", "url": "https://files.pythonhosted.org/packages/26/e0/4b107b976fd9d1b6066ba7115f4dde8ab459660b2e11f8488cfa9bba9bef/apistar_sqlalchemy-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fffb80f38996b4b3e29cce31f8452c24", "sha256": "9ae07aa0e63b23590ec25797e74d98b878f634b49ac4ca2690fd370477169f21" }, "downloads": -1, "filename": "apistar-sqlalchemy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "fffb80f38996b4b3e29cce31f8452c24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16707, "upload_time": "2018-07-25T13:18:29", "url": "https://files.pythonhosted.org/packages/e1/5a/bfe2319f837de7352856f04e06afeae99f941006db4377431afd20023d3b/apistar-sqlalchemy-0.3.2.tar.gz" } ] }