{ "info": { "author": "thuhak", "author_email": "thuhak.zhou@nio.com", "bugtrack_url": null, "classifiers": [], "description": "# \u4f2a\u4e8b\u52a1\u5904\u7406\n\n## \u529f\u80fd\n\n\u5bf9\u4e8e\u4e00\u7ec4\u51fd\u6570\uff0c\u5982\u679c\u6267\u884c\u8fc7\u7a0b\u4e2d\u53d1\u751f\u5f02\u5e38, \u6309\u7167\u53cd\u5411\u7684\u8c03\u7528\u987a\u5e8f\u4f9d\u6b21\u8c03\u7528\u5bf9\u5e94\u7684\u9006\u8fc7\u7a0b\n\n\n## \u6817\u5b50\n\n```python\nfrom pytransaction import Transaction\n\n\ndef test1(*args, **kwargs):\n print('test1 running..', args, kwargs)\n\n\ndef test2(*args, **kwargs):\n print('test2 running...', args, kwargs)\n raise ValueError('oops, exception occurs')\n\n\ndef rollback(*args, **kwargs):\n print('rolling back...', args, kwargs)\n\n\ntry:\n with Transaction() as t:\n t.run(test1, rollback, args=(1,2), kwargs={'arg3':3}, rargs=('a', 'b'), rkwargs={'t':'tt'})\n t.run(test1, rollback, kwargs={'arg3':3})\n t.run(test1, rollback, args=(4,), kwargs={'a':'aa'}, rargs=(5,6), rkwargs='same')\n t.run(test2, rollback, args=('stop here',), rargs='same')\n t.run(test1, rollback, args=('will not run'))\nexcept Exception as e:\n print('handle exceptions here')\n raise e\n\n```\n\n\n## \u6ce8\u610f\n\n\u56e0\u4e3a\u9006\u5411\u64cd\u4f5c\u4e5f\u53ef\u80fd\u4f1a\u5931\u8d25\uff0c\u56e0\u6b64\u4e0d\u80fd\u5b8c\u5168\u4fdd\u8bc1\u4e8b\u52a1\u4e00\u5b9a\u5f97\u5230\u5904\u7406", "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/thuhak/pytransaction.git", "keywords": "transaction", "license": "", "maintainer": "", "maintainer_email": "", "name": "pytransaction", "package_url": "https://pypi.org/project/pytransaction/", "platform": "", "project_url": "https://pypi.org/project/pytransaction/", "project_urls": { "Homepage": "https://github.com/thuhak/pytransaction.git" }, "release_url": "https://pypi.org/project/pytransaction/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "run revert functions when exception occurs in context", "version": "1.0.0" }, "last_serial": 4928996, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "5eb9dc268e823e7385f167b0adfb8097", "sha256": "65fb2f8a9374c9d7a5cf054d18f19e71ae01d3bc0ec2b4cdc9405053d5a4feb0" }, "downloads": -1, "filename": "pytransaction-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5eb9dc268e823e7385f167b0adfb8097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1886, "upload_time": "2019-03-12T08:23:44", "url": "https://files.pythonhosted.org/packages/15/1b/113afb1f5cd0a2f140ea59906fb485fffd4d927da3c683f08065b6533d58/pytransaction-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5eb9dc268e823e7385f167b0adfb8097", "sha256": "65fb2f8a9374c9d7a5cf054d18f19e71ae01d3bc0ec2b4cdc9405053d5a4feb0" }, "downloads": -1, "filename": "pytransaction-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5eb9dc268e823e7385f167b0adfb8097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1886, "upload_time": "2019-03-12T08:23:44", "url": "https://files.pythonhosted.org/packages/15/1b/113afb1f5cd0a2f140ea59906fb485fffd4d927da3c683f08065b6533d58/pytransaction-1.0.0.tar.gz" } ] }