{ "info": { "author": "Austin Hyde", "author_email": "austin109@gmail.com", "bugtrack_url": null, "classifiers": [ "Topic :: Database" ], "description": "Rowhouse\n##############################################\n\n|version| |build|\n\n*For when you just want to write SQL*\n\nRowhouse is a SQLAlchemy wrapper that attempts to strike a happy medium between using raw database bindings like\npsycopg2 and using the full SQLAlchemy API.\n\nUse it when:\n\n* You don't want to mess with connections, cursors, sessions, etc\n* You don't need or want an ORM or repository\n* You don't want to look up SQLAlchemy's expression language every time you need a non-trivial query\n* You just want to write some SQL, and work with plain old dicts and lists\n* You want some convenient helper functions for common operations\n\nInstall\n=======\n\n.. code-block:: bash\n\n pip install rowhouse\n\n\nBasic Usage\n===========\n\n.. code-block:: python\n\n from rowhouse import Connection\n db = Connnection('postgresql://localhost/mydatabase')\n\n # Run some SQL\n row = db.fetchone('SELECT * FROM users WHERE username = %s', ('mreynolds',))\n print('Name = ' + row['fullname'])\n\n for row in db.fetchiter('SELECT * FROM users'):\n print('User: ' + row['fullname'])\n\n db.begin()\n db.execute('CREATE TABLE groups (...)')\n db.execute('INSERT INTO groups VALUES (%s, %s)', ('firefly', 'mreynolds'))\n db.commit()\n\n # Some convenient helpers\n with db.transaction():\n row = db.findone('users', username='mreynolds')\n db.update('users', {\n 'role': 'captain'\n }, id=row['id'])\n newrow = db.insert('users', {\n 'fullname': 'Zoe Washburne',\n 'username': 'zwashburne',\n 'role': 'first_mate'\n })\n\n\nTo Do\n=====\n\n- [x] Implement find* methods\n- [x] Implement insert/update/delete/upsert methods\n- [x] Add tests and CI\n- [x] Add packaging and publish to pypi\n- [ ] More configurability - constructor, setters, etc\n- [ ] **Simple** model support - little more than classes with a Connection baked in and some convenience methods\n\n\n.. |version| image:: https://img.shields.io/badge/version-1.0.2-blue.svg\n\n.. |build| image:: https://img.shields.io/travis/austinhyde/rowhouse/master.svg\n :target: https://travis-ci.org/austinhyde/rowhouse\n :alt: Build status of master branch\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/austinhyde/rowhouse/archive/1.0.3.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/austinhyde/rowhouse", "keywords": "database,sql", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "rowhouse", "package_url": "https://pypi.org/project/rowhouse/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rowhouse/", "project_urls": { "Download": "https://github.com/austinhyde/rowhouse/archive/1.0.3.tar.gz", "Homepage": "https://github.com/austinhyde/rowhouse" }, "release_url": "https://pypi.org/project/rowhouse/1.0.3/", "requires_dist": null, "requires_python": null, "summary": "A SQLAlchemy wrapper that stays out of your way", "version": "1.0.3" }, "last_serial": 2871995, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "c59f0212bffc246e7c28c421c46b02c0", "sha256": "5e1d27480d14de2fe433e33ab4aef4d2fd8906fdf144d19766b8b549b9a9bc1c" }, "downloads": -1, "filename": "rowhouse-1.0.2.tar.gz", "has_sig": false, "md5_digest": "c59f0212bffc246e7c28c421c46b02c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3123, "upload_time": "2017-05-13T19:40:21", "url": "https://files.pythonhosted.org/packages/6a/88/b0113a307af069fb5de9d0e5390929012dfcb92c13e2180f383eb73d56ae/rowhouse-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "447c6033addf3374281008a4b8364a69", "sha256": "00ff798e0dd4be2607245b100120d72c310666dba14f8aad6437af8f8753766f" }, "downloads": -1, "filename": "rowhouse-1.0.3.tar.gz", "has_sig": false, "md5_digest": "447c6033addf3374281008a4b8364a69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3150, "upload_time": "2017-05-13T20:26:05", "url": "https://files.pythonhosted.org/packages/fd/79/9667d9e1fe5d6536e56df2ff385494636f3b724bfb17b5353cbf882ffb55/rowhouse-1.0.3.tar.gz" } ], "1.0.3-rc1": [ { "comment_text": "", "digests": { "md5": "d9c77bf20a852491954d93b64ac14763", "sha256": "a49f9fe33ad500af9c3f1ee50cd7b8afd832c7ccb136c7060a974e86a0f3c7fe" }, "downloads": -1, "filename": "rowhouse-1.0.3-rc1.tar.gz", "has_sig": false, "md5_digest": "d9c77bf20a852491954d93b64ac14763", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3159, "upload_time": "2017-05-13T20:21:47", "url": "https://files.pythonhosted.org/packages/56/02/eaee8a2f3a3fd90ce2333e138542b109812b607d1dba638b66853865ab6c/rowhouse-1.0.3-rc1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "447c6033addf3374281008a4b8364a69", "sha256": "00ff798e0dd4be2607245b100120d72c310666dba14f8aad6437af8f8753766f" }, "downloads": -1, "filename": "rowhouse-1.0.3.tar.gz", "has_sig": false, "md5_digest": "447c6033addf3374281008a4b8364a69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3150, "upload_time": "2017-05-13T20:26:05", "url": "https://files.pythonhosted.org/packages/fd/79/9667d9e1fe5d6536e56df2ff385494636f3b724bfb17b5353cbf882ffb55/rowhouse-1.0.3.tar.gz" } ] }