{ "info": { "author": "johnlinp", "author_email": "johnlinp@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# duosql\n\nAn easy way to demonstrate database transactions.\n\n\n\n\n## Prerequisite\n\n- Python 3.5+\n- tmux\n\n\n## Install\n\n```\npip3 install duosql\n```\n\n\n## Usage\n\n1. Create a .duo script file. For example:\n\n```yaml\n# connect command\nconnect: mysql -ujohnlinp -psecret somedb\n\n# create table and populate data\nleft: DROP TABLE IF EXISTS person;\nleft: CREATE TABLE person (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id));\nleft: INSERT INTO person (name, age) VALUES ('John Lin', 29);\n\n# start left transaction\nleft: SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;\nleft: BEGIN;\nleft: SELECT age FROM person WHERE id = 1;\n\n# start right transaction\nright: BEGIN;\nright: UPDATE person SET age = 30 WHERE id = 1;\n\n# continue left transaction\nleft: SELECT age FROM person WHERE id = 1;\n\n# continue right transaction\nright: ROLLBACK;\n```\n\n2. Run `duosql `.\n\n3. Watch.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/johnlinp/duosql", "keywords": "", "license": "New BSD License", "maintainer": "", "maintainer_email": "", "name": "duosql", "package_url": "https://pypi.org/project/duosql/", "platform": "", "project_url": "https://pypi.org/project/duosql/", "project_urls": { "Homepage": "https://github.com/johnlinp/duosql" }, "release_url": "https://pypi.org/project/duosql/0.1.8/", "requires_dist": null, "requires_python": ">=3.5", "summary": "An easy way to demo database transactions.", "version": "0.1.8" }, "last_serial": 5171632, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c6faee8a1f3a0f993ec463dd7f9e409b", "sha256": "813623cefb5280c7cab0bb260b9c946f25f852826c9452203fe0bd046535b448" }, "downloads": -1, "filename": "duosql-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6faee8a1f3a0f993ec463dd7f9e409b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3611, "upload_time": "2019-03-19T04:56:54", "url": "https://files.pythonhosted.org/packages/63/c7/ef8b5b9b6b7d42c8fb866c1dd849d9cc75afce7cfde72441ebd796053576/duosql-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0290a9593383fa141e1cb79188774892", "sha256": "f0798cff33108c6e825763b6ca648de7c70bc092652219021d249e684a994ab8" }, "downloads": -1, "filename": "duosql-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0290a9593383fa141e1cb79188774892", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2337, "upload_time": "2019-03-19T04:56:57", "url": "https://files.pythonhosted.org/packages/c6/05/1fb09321866ce8f1f0fd4365be41e15ed30c52df7e47d5fb714daeb872b4/duosql-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "790ec8c910b2aa704f3c6304eb707dcd", "sha256": "631c2ecaec05b6b07f86eab188f2db3a4f5cc51aa4929283e37a68b39b88ca2e" }, "downloads": -1, "filename": "duosql-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "790ec8c910b2aa704f3c6304eb707dcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4018, "upload_time": "2019-03-19T08:21:22", "url": "https://files.pythonhosted.org/packages/ef/fb/0293d938138e7ee3601785c763442a6fc6a9b5fd280df1dbfbde02130dbd/duosql-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ac4a19b991fb9eb42fd6b76679cef95", "sha256": "532d60e872d0ec5d0ca7eaab1ae18d35e358cfa40b62c3f5cb9f4c6c82650959" }, "downloads": -1, "filename": "duosql-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4ac4a19b991fb9eb42fd6b76679cef95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2843, "upload_time": "2019-03-19T08:21:24", "url": "https://files.pythonhosted.org/packages/8c/aa/bcddc9060d0a660ad23c7a8a42d86bdc9d45640023ee95349035870c55d0/duosql-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d970946f91bebb430dcc22bbc340c58a", "sha256": "ec98663111413d176bf5876ef76926d6303341b951db883a04c093bae7ecc6f0" }, "downloads": -1, "filename": "duosql-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d970946f91bebb430dcc22bbc340c58a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4027, "upload_time": "2019-03-19T08:52:33", "url": "https://files.pythonhosted.org/packages/6e/b6/9a41958ab60c87c52fdba1440b8f98c5cb1ccb518043cb08b7d8e5b867f7/duosql-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9f8ae5c6113d580e0665a4b269a457b", "sha256": "f32f04a537c5c1afd7249406dbf74eace2acccab79e0ca174f5d779c0919bc1b" }, "downloads": -1, "filename": "duosql-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c9f8ae5c6113d580e0665a4b269a457b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2853, "upload_time": "2019-03-19T08:52:36", "url": "https://files.pythonhosted.org/packages/53/fb/1aa9e893a6e7ff9d331e52802fec5cddbf1fadee461d0b774dc58800d828/duosql-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c6579768b8f1b140b1657c3ae0e4671e", "sha256": "1ec2bbd2f3061ba76587cbaff8266f9420323015ec10a4632e46c95d41347916" }, "downloads": -1, "filename": "duosql-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c6579768b8f1b140b1657c3ae0e4671e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4034, "upload_time": "2019-03-21T00:43:43", "url": "https://files.pythonhosted.org/packages/04/11/a96d2fbe4928b77c2a88064c470b4fe4dec6dcdc3aaca4042dd0b9cde048/duosql-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51705f3a8207e5651b7ef6d3943dc957", "sha256": "621b2ec4b251d68d403ec4a71cbbcef6ba0970c3cddc9242acb628375b3854fb" }, "downloads": -1, "filename": "duosql-0.1.3.tar.gz", "has_sig": false, "md5_digest": "51705f3a8207e5651b7ef6d3943dc957", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2864, "upload_time": "2019-03-21T00:43:44", "url": "https://files.pythonhosted.org/packages/08/86/111b9560de2af9acb291e73962b039eb2d74bef94a54a68b90267ef63af9/duosql-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "7a704277ce1ff00d2a053f9df9f026f1", "sha256": "e8502143ebfa13c3968e62d8f3d41f3632e6b62087a25343d2deb611e443e5cc" }, "downloads": -1, "filename": "duosql-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7a704277ce1ff00d2a053f9df9f026f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4041, "upload_time": "2019-04-16T02:50:41", "url": "https://files.pythonhosted.org/packages/4b/7e/76ad52c3a8149d3f4507408be10db1d6deb2aa11394d75fd08708486cd85/duosql-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76104fb39f14f196cf06fa337d064ee4", "sha256": "1238781e4979b68536f9a1fbbc46cb1f21a832d76fb5817d3ecb2e505c071067" }, "downloads": -1, "filename": "duosql-0.1.4.tar.gz", "has_sig": false, "md5_digest": "76104fb39f14f196cf06fa337d064ee4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2867, "upload_time": "2019-04-16T02:50:43", "url": "https://files.pythonhosted.org/packages/5a/ff/c005dd441d8aebf20b37ae8742b5b7968e21a1dba909caa207e53ff71431/duosql-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d9f43229c225dc07eec786c8bb74b7b8", "sha256": "f137abd60590bd4d60059156d130b3781982f9fadcbf09c9ad04a5612b8fea7c" }, "downloads": -1, "filename": "duosql-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d9f43229c225dc07eec786c8bb74b7b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4304, "upload_time": "2019-04-17T15:14:06", "url": "https://files.pythonhosted.org/packages/99/48/2b95508c8f687c56a0ac9d83c2145914423b61ecd13da37d0bf2256cbf8b/duosql-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfbc0665cb6f41c01b87026bac413f27", "sha256": "e6ef0e8dc948f1b40c022feafb7e1bccc31418b93222b42ad5093756f491d411" }, "downloads": -1, "filename": "duosql-0.1.5.tar.gz", "has_sig": false, "md5_digest": "dfbc0665cb6f41c01b87026bac413f27", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3092, "upload_time": "2019-04-17T15:14:07", "url": "https://files.pythonhosted.org/packages/4a/5d/91bb92ca5f631dd56653f80ae83c75ed9407c02d6d8cd36fcce7d23e0d62/duosql-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "a58c8f4be77fc99c4e5d2a89bbd99f2a", "sha256": "5da29ceab69e8535a7306f0705ab6cbeb399c11ab2f14fb562baa863651f9f0a" }, "downloads": -1, "filename": "duosql-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a58c8f4be77fc99c4e5d2a89bbd99f2a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4368, "upload_time": "2019-04-18T00:03:35", "url": "https://files.pythonhosted.org/packages/c6/20/5645c906db7d994c1268bc60047ad4a2682d624a3d36959de1b11b90bf16/duosql-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26f8778f3fa50cd19f0758d2e654b7a6", "sha256": "eb180632e1aa80e90df8ef9aab7965875d71f7d444db271c904b193c594c565e" }, "downloads": -1, "filename": "duosql-0.1.6.tar.gz", "has_sig": false, "md5_digest": "26f8778f3fa50cd19f0758d2e654b7a6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3155, "upload_time": "2019-04-18T00:03:37", "url": "https://files.pythonhosted.org/packages/ae/5b/62b1b21e1e7e0acf029df4039e369179fc9c9f964575a898244d7317c3ac/duosql-0.1.6.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "7e54bf19710ae5e5c1491d83213e9182", "sha256": "c6a7d351b0ac4b5158f95b399380a62cbf68bcd5ab4fc1c6d63bbb46f119d4d6" }, "downloads": -1, "filename": "duosql-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "7e54bf19710ae5e5c1491d83213e9182", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4608, "upload_time": "2019-04-22T05:55:03", "url": "https://files.pythonhosted.org/packages/c2/f4/64e116a3dfabb84eab0a333a818ddf03bf6ecd27d04a0f2d98efd856ff66/duosql-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c0f58bf1192988021f5cd3b38ce38b6", "sha256": "9c1dcc159a41a614b03c7ea7f031e6608ecfdb8e3bbdf9cca8f47da2b15b9e85" }, "downloads": -1, "filename": "duosql-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7c0f58bf1192988021f5cd3b38ce38b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3469, "upload_time": "2019-04-22T05:55:05", "url": "https://files.pythonhosted.org/packages/38/2e/a2da119cfadf2c3b3960137c69d58b80b989c7826a1b3f06aace0f74ca8a/duosql-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e54bf19710ae5e5c1491d83213e9182", "sha256": "c6a7d351b0ac4b5158f95b399380a62cbf68bcd5ab4fc1c6d63bbb46f119d4d6" }, "downloads": -1, "filename": "duosql-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "7e54bf19710ae5e5c1491d83213e9182", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4608, "upload_time": "2019-04-22T05:55:03", "url": "https://files.pythonhosted.org/packages/c2/f4/64e116a3dfabb84eab0a333a818ddf03bf6ecd27d04a0f2d98efd856ff66/duosql-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c0f58bf1192988021f5cd3b38ce38b6", "sha256": "9c1dcc159a41a614b03c7ea7f031e6608ecfdb8e3bbdf9cca8f47da2b15b9e85" }, "downloads": -1, "filename": "duosql-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7c0f58bf1192988021f5cd3b38ce38b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3469, "upload_time": "2019-04-22T05:55:05", "url": "https://files.pythonhosted.org/packages/38/2e/a2da119cfadf2c3b3960137c69d58b80b989c7826a1b3f06aace0f74ca8a/duosql-0.1.8.tar.gz" } ] }