{ "info": { "author": "Tim Martin", "author_email": "tim.martin@vertical-knowledge.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ripozo-sqlalchemy\n=================\n\n.. image:: https://travis-ci.org/vertical-knowledge/ripozo-sqlalchemy.svg?branch=master&style=flat\n :target: https://travis-ci.org/vertical-knowledge/ripozo-sqlalchemy\n :alt: test status\n\n.. image:: https://coveralls.io/repos/vertical-knowledge/ripozo-sqlalchemy/badge.svg?branch=master&style=flat\n :target: https://coveralls.io/r/vertical-knowledge/ripozo-sqlalchemy?branch=master\n :alt: test coverage\n\n.. image:: https://readthedocs.org/projects/ripozo-sqlalchemy/badge/?version=latest&style=flat\n :target: https://ripozo-sqlalchemy.readthedocs.org/\n :alt: Documentation Status\n\n..\n .. image:: https://pypip.in/version/ripozo-sqlalchemy/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/ripozo-sqlalchemy/\n :alt: current version\n \n .. image:: https://pypip.in/d/ripozo-sqlalchemy/badge.png?style=flat\n :target: https://crate.io/packages/ripozo-sqlalchemy/\n :alt: Number of PyPI downloads\n\n .. image:: https://pypip.in/py_versions/ripozo-sqlalchemy/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/ripozo-sqlalchemy/\n :alt: python versions\n \nThis package is a ripozo extension that provides a Manager that integrate\nSQLAlchemy with ripozo. It provides convience functions for generating resources.\nIn particular, it focuses on creating shortcuts for CRUD type operations. It fully\nimplements the BaseManager_ class that is provided in the\nripozo_ package.\n\n`Full Documentation `_\n\nExample\n=======\n\nThis is a minimal example of creating ripozo managers\nwith ripozo-sqlalchemy and integrating them with a \nresource.\n\nFirst we need to setup our SQLAlchemy model.\n\n.. code-block:: python\n\n from ripozo import apimethod, ResourceBase\n\n from sqlalchemy import Column, Integer, String, create_engine\n from sqlalchemy.ext.declarative import declarative_base\n \n # Setup the database with sqlalchemy\n engine = create_engine('sqlite:///:memory:', echo=True)\n Base = declarative_base()\n \n # Declare your ORM model\n class Person(Base):\n __tablename__ = 'person'\n id = Column(Integer, primary_key=True)\n first_name = Column(String)\n last_name = Column(String)\n \n # Sync the models wiht the database\n Base.metadata.create_all()\n\nNow we can get to the ripozo-sqlalchemy part.\n\n.. code-block:: python\n\n from ripozo_sqlalchemy import AlchemyManager, ScopedSessionHandler\n\n # A session handler if responsible for getting\n # And handling a session after either a successful or unsuccessful request\n session_handler = ScopedSessionHandler(engine)\n \n # This is the code that is specific to ripozo-sqlalchemy\n # You give it the session, a SQLAlchemy Model, and the fields\n # You wish to serialize at a minimum.\n class PersonManager(AlchemyManager):\n model = Person\n fields = ('id', 'first_name', 'last_name')\n \n \n # This is the ripozo specific part.\n # This creates a resource class that can be given\n # to a dispatcher (e.g. the flask-ripozo package's FlaskDispatcher)\n class PersonResource(ResourceBase):\n manager = PersonManager(session_handler)\n pks = ['id']\n namespace = '/api'\n \n # A retrieval method that will operate on the '/api/person/' route\n # It retrieves the id, first_name, and last_name properties for the\n # resource as identified by the url parameter id.\n @apimethod(methods=['GET'])\n def get_person(cls, request):\n properties = cls.manager.retrieve(request.url_params)\n return cls(properties=properties)\n \nEasy Resources\n^^^^^^^^^^^^^^\n \nAlternatively, we could use the create_resource method which\nwill automatically create a manager and resource that corresponds\nto the manager.\n\n.. code-block:: python\n\n from ripozo import restmixins\n from ripozo_sqlalchemy import ScopedSessionHandler, create_resource\n\n session_handler = ScopedSessionHandler(engine)\n PersonResource = create_resource(Person, session_handler)\n\nBy default create_resource will give you full CRUD+L (Create, Retrieve, Update, Delete, List).\nAlthough there are many options that you can pass to create_resource to modify exactly how\nthe resource class is constructed.\n\nAfter you create your resource class, you will need to load it into a dispatcher\ncorresponding to your framework. For example, in flask-ripozo\n\n.. code-block:: python\n\n from flask import Flask\n from flask_ripozo import FlaskDispatcher\n from ripozo.adapters import SirenAdapter, HalAdapter # These are the potential formats to return\n\n app = Flask(__name__)\n dispatcher = FlaskDispatcher(app)\n dispatcher.register_adapters(SirenAdapter, HalAdapter)\n dispatcher.register_resources(PersonResource)\n\n app.run()\n \n\n.. _BaseManager: https://ripozo.readthedocs.org/en/latest/API/ripozo.managers.html#ripozo.managers.base.BaseManager\n\n.. _ripozo: https://ripozo.readthedocs.org/\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/vertical-knowledge/ripozo-sqlalchemy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "ripozo-sqlalchemy", "package_url": "https://pypi.org/project/ripozo-sqlalchemy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ripozo-sqlalchemy/", "project_urls": { "Homepage": "https://github.com/vertical-knowledge/ripozo-sqlalchemy" }, "release_url": "https://pypi.org/project/ripozo-sqlalchemy/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Integrates SQLAlchemy with ripozo to easily create sqlalchemy backed Hypermedia/HATEOAS/REST apis", "version": "1.0.2" }, "last_serial": 2035050, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5e577907b319f8fef2299e2541cf9d01", "sha256": "91d35224a60c13d1c0e2ff4fa18df4004ec8430d9babed210771f0f84e4c3587" }, "downloads": -1, "filename": "ripozo-sqlalchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5e577907b319f8fef2299e2541cf9d01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4376, "upload_time": "2015-03-06T20:22:16", "url": "https://files.pythonhosted.org/packages/d7/d8/0f5caf9447a3526c7f6aa5efec00ecff3b69f88503d08197cdd7458cdb63/ripozo-sqlalchemy-0.1.0.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "87132911112ebf7bcda78278cb9f40c5", "sha256": "8f791cf805f0fb0d0e9485abc2828e619b0739561d3f452db05627f7cadab983" }, "downloads": -1, "filename": "ripozo-sqlalchemy-0.1.5.zip", "has_sig": false, "md5_digest": "87132911112ebf7bcda78278cb9f40c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15980, "upload_time": "2015-04-28T21:23:58", "url": "https://files.pythonhosted.org/packages/21/c5/53539a103941463ae70f60ffe6d39ad6515ecb0055240b5641425be9e783/ripozo-sqlalchemy-0.1.5.zip" } ], "0.1.6b1": [ { "comment_text": "", "digests": { "md5": "bc7f0fd61306f7ff4b7a6fdd01a626ed", "sha256": "56866a079c39b28eaa0f7465d0eb292015f8d847d4ad225de3431663211ff36a" }, "downloads": -1, "filename": "ripozo-sqlalchemy-0.1.6b1.zip", "has_sig": false, "md5_digest": "bc7f0fd61306f7ff4b7a6fdd01a626ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16096, "upload_time": "2015-06-04T14:47:43", "url": "https://files.pythonhosted.org/packages/5a/89/5173d40c9f4574213fa259cdfeea0aeabc6a1cb3c707022ee73962a6854c/ripozo-sqlalchemy-0.1.6b1.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "224c87618734f9902d3715c7f89e8f7b", "sha256": "9cc893f109663f4f7f918dade809a4f55384c06e054d0e9560cef78391d3509b" }, "downloads": -1, "filename": "ripozo-sqlalchemy-0.2.0.zip", "has_sig": false, "md5_digest": "224c87618734f9902d3715c7f89e8f7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17319, "upload_time": "2015-06-08T21:32:45", "url": "https://files.pythonhosted.org/packages/d6/f7/2b578e92736e1b98c692fcc4b82a078b86b1868e80a53441da20c3ab42dd/ripozo-sqlalchemy-0.2.0.zip" } ], "0.2.0b1": [ { "comment_text": "", "digests": { "md5": "0bb9333d9b31717db75895423637fe0c", "sha256": "f60111a59c1e4a44406b23801997958cdbe605e28a9cff62e050d1f1e1968a4b" }, "downloads": -1, "filename": "ripozo-sqlalchemy-0.2.0b1.zip", "has_sig": false, "md5_digest": "0bb9333d9b31717db75895423637fe0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17394, "upload_time": "2015-06-05T19:42:30", "url": "https://files.pythonhosted.org/packages/02/e5/0295b49f71b7f0ff0f50af82691702307f3cf8a7f12b4692cc9237203518/ripozo-sqlalchemy-0.2.0b1.zip" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "ba7c5550e7eb267f26185b61ef10c12d", "sha256": "6b75e01f60c472c1e13ac8a80ccd3bdc7eaf9be0a96a672e9ecec77dde1c4f7b" }, "downloads": -1, "filename": "ripozo-sqlalchemy-1.0.0.zip", "has_sig": false, "md5_digest": "ba7c5550e7eb267f26185b61ef10c12d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26369, "upload_time": "2015-06-30T17:30:39", "url": "https://files.pythonhosted.org/packages/84/a1/fedad2a713613faa6c3f9d3f60fcea4aeb4c3bdaab0b71cc720b46d4b5c1/ripozo-sqlalchemy-1.0.0.zip" } ], "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "416d16c48ea9ae7e13673cc6676285bb", "sha256": "c6abe9c64311681283c39937838a6c106ed51008a1bee97fbd8e94a72ffb2a1e" }, "downloads": -1, "filename": "ripozo-sqlalchemy-1.0.0b1.zip", "has_sig": false, "md5_digest": "416d16c48ea9ae7e13673cc6676285bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26414, "upload_time": "2015-06-30T02:51:55", "url": "https://files.pythonhosted.org/packages/53/85/7ec1b7f7f166d94738468dffe4c3bb7b6e0476f80c8e9637c3442b88a6d5/ripozo-sqlalchemy-1.0.0b1.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "240bc527c94e114587f66f0a35acea1c", "sha256": "056156f14072a539b6bc599c5c6c9c13825b514966a6571d6e3a4904331367d6" }, "downloads": -1, "filename": "ripozo-sqlalchemy-1.0.1.zip", "has_sig": false, "md5_digest": "240bc527c94e114587f66f0a35acea1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26734, "upload_time": "2015-12-02T01:24:30", "url": "https://files.pythonhosted.org/packages/fb/7d/7f915ae98c928fdd6409dd26d9f97561958543cde9348aa839c1d4ae7627/ripozo-sqlalchemy-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b803e5856e7035d41ba987375b93f8ef", "sha256": "a72288f6faf90808978d256c3b657cc973b813060eafbfdd51c64d86c18727cc" }, "downloads": -1, "filename": "ripozo-sqlalchemy-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b803e5856e7035d41ba987375b93f8ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9323, "upload_time": "2016-03-30T00:29:17", "url": "https://files.pythonhosted.org/packages/e4/87/00c2f0e2a3589e035c06bd53227077ebba673b3b1f7cf033a75730b066d8/ripozo-sqlalchemy-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b803e5856e7035d41ba987375b93f8ef", "sha256": "a72288f6faf90808978d256c3b657cc973b813060eafbfdd51c64d86c18727cc" }, "downloads": -1, "filename": "ripozo-sqlalchemy-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b803e5856e7035d41ba987375b93f8ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9323, "upload_time": "2016-03-30T00:29:17", "url": "https://files.pythonhosted.org/packages/e4/87/00c2f0e2a3589e035c06bd53227077ebba673b3b1f7cf033a75730b066d8/ripozo-sqlalchemy-1.0.2.tar.gz" } ] }