{ "info": { "author": "Moriyoshi Koizumi", "author_email": "mozo@mozo.jp", "bugtrack_url": null, "classifiers": [ "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing", "Topic :: Utilities" ], "description": "Tableau\n=======\n\nTableau is a collection of helper classes for building test fixtures and seed data.\n\n- Model composition without any predefined schemas. The model object relationships are automatically deduced through the value annotations::\n\n from tableau import Datum\n\n foo = Datum(\n 'Foo', ('id'), # schema name / identifiers\n id=1,\n field_a=1,\n field_b=2,\n collection=one_to_many([\n Datum(\n 'Bar', auto('id'), # id will be automagically generated by the walker\n field_c=1\n ),\n Datum(\n 'Bar', auto('id'),\n field_c=1\n ),\n ],\n referring_fields='foo_id'\n )\n )\n\n- Export the model object graph to plain ANSI SQL statements, in the ORM-agnostic manner::\n\n import sys\n from tableau import Datum, DataSuite, DataWalker\n from tableau.sql import SQLGenerator\n\n # ...\n\n suite = DataSuite()\n DataWalker(suite)(foo)\n SQLGenerator(sys.stdout, encoding='utf-8')(suite)\n\n The above yields the following SQL statements::\n\n INSERT INTO `Foo` (`id`, `field_a`, `field_b`) VALUES\n (1, 1, 2);\n INSERT INTO `Bar` (`id`, `field_c`, `foo_id`) VALUES\n (1, 1, 1),\n (2, 1, 1);\n\n- Automatically mapping the existing SQLAlchemy tables / declarative classes\n to the `Data`::\n\n from tableau.sqla import newSADatum\n\n # metadata = ...\n # Base = ...\n # session = ...\n\n class Foo(Base):\n __tablename__ = 'foos'\n id = Column(Integer, primary_key=True)\n field = Column(String)\n\n def some_model_specific_method(self):\n return self.field\n\n Datum = newSADatum(metadata, Base)\n datum = Datum(\n 'foos', ('id'),\n field='test'\n )\n print datum.some_model_specific_method() # 'test'\n session.add(datum) # it can even be added to the session!\n\n\nChange history\n--------------\n\n0.0.0\n Unreleased.\n\n0.0.1\n First release. No docs!\n\n0.0.2\n Support mapping to SQLAlchemy tables and declarative classses.\n Still no docs!\n\n0.0.3\n Fix critical bugs in 0.0.2.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/moriyoshi/tableau", "keywords": "test testing fixture seed", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "tableau", "package_url": "https://pypi.org/project/tableau/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tableau/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/moriyoshi/tableau" }, "release_url": "https://pypi.org/project/tableau/0.0.3/", "requires_dist": null, "requires_python": null, "summary": "Tableau is a collection of helper classes for building test fixtures and seed data", "version": "0.0.3" }, "last_serial": 800326, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "3e8a0f3fc4bc82a3dfd7fa21e64cff76", "sha256": "e279f4074e1931d9fbb9197663e9fa85a5cd4a4d52ea280e7abd31128a95a5a6" }, "downloads": -1, "filename": "tableau-0.0.1.tar.gz", "has_sig": false, "md5_digest": "3e8a0f3fc4bc82a3dfd7fa21e64cff76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7399, "upload_time": "2012-07-06T15:08:56", "url": "https://files.pythonhosted.org/packages/b4/5f/f810d58fbd39030bfacbf835063107a2342b9375ac79fa266d2a6486ec69/tableau-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0f433d366f58c5f2f977db12e5a01c2f", "sha256": "00422276315d51404e77fb15d7e16740ce10ff5f5e284889e5995d9a9e7b4e0c" }, "downloads": -1, "filename": "tableau-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0f433d366f58c5f2f977db12e5a01c2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10953, "upload_time": "2012-07-08T19:57:13", "url": "https://files.pythonhosted.org/packages/14/b9/8b6c4acc1217d12de2147566a242f33a6f5b00c30ac7caa1b239dd34f4c3/tableau-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b8e21f0067e44b31311c03dbe966e959", "sha256": "2c9a95c67477149a25cefd5d52b96048f79f797e5c533882826878ddeecd7b78" }, "downloads": -1, "filename": "tableau-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b8e21f0067e44b31311c03dbe966e959", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11202, "upload_time": "2012-07-08T20:44:42", "url": "https://files.pythonhosted.org/packages/0a/81/8996109f1fab671f7867a8df878888bd85209d78e40aa2b795c96fb257a2/tableau-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b8e21f0067e44b31311c03dbe966e959", "sha256": "2c9a95c67477149a25cefd5d52b96048f79f797e5c533882826878ddeecd7b78" }, "downloads": -1, "filename": "tableau-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b8e21f0067e44b31311c03dbe966e959", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11202, "upload_time": "2012-07-08T20:44:42", "url": "https://files.pythonhosted.org/packages/0a/81/8996109f1fab671f7867a8df878888bd85209d78e40aa2b795c96fb257a2/tableau-0.0.3.tar.gz" } ] }