{
"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"
}
]
}