{ "info": { "author": "WangTingZheng", "author_email": "wangtingzheng@outlook.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://travis-ci.com/ptrtonull-workshop/PianYuan.svg?branch=master)](https://travis-ci.com/ptrtonull-workshop/PianYuan)\n\n[English](./README-EN.md)\n\n## \u5b89\u88c5\n```\npip3 install pianyuan\n```\n\u6216\u8005\n```\ngit clone https://github.com/ptrtonull-workshop/pianyuan\ncd pianyuan/\npython setup.py install\n```\n## \u722c\u53d6\n\u4f60\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff0c\u628a[\u6b64\u5904](http://pianyuan.la/mv?order=score)\u7684\u7535\u5f71\u5230\u6570\u636e\u5e93\u91cc\n```python\npianyuan -G start end host username password\n```\n\u5176\u4e2d\uff1a\n- `-G`\uff1a\u4ee3\u8868`get`\uff0c\u83b7\u53d6\u4fe1\u606f\n- start\uff1a\u722c\u53d6\u7684\u5f00\u59cb\u9875\uff0c\u6bd4\u5982start\u7b49\u4e8e3\u7684\u65f6\u5019\u5bf9\u5e94\u7684\u7f51\u7ad9\u662f[\u6b64\u5904](http://pianyuan.la/mv?order=score&p=3)\n- end\uff1a\u722c\u53d6\u7684\u7ed3\u675f\u9875\uff0c\u6bd4\u5982end\u7b49\u4e8e3\u7684\u65f6\u5019\u5bf9\u5e94\u7684\u7f51\u7ad9\u662f[\u6b64\u5904](http://pianyuan.la/mv?order=score&p=3)\n- host\uff1a\u6570\u636e\u5e93\u7684\u5730\u5740\n- username\uff1a\u6570\u636e\u5e93\u7528\u6237\u7684\u7528\u6237\u540d\n- password\uff1a\u6570\u636e\u5e93\u7528\u6237\u7684\u5bc6\u7801\n\n\u5982\u679c\u4f60\u7684\u6570\u636e\u5e93\u8d26\u53f7\u6ca1\u6709\u5bc6\u7801\uff0c\u5373\u5bc6\u7801\u4e3a\u7a7a\uff0c\u90a3\u4f60\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u7684\u547d\u4ee4\u6765\u8fbe\u5230\u76f8\u540c\u7684\u6548\u679c\n```python\npianyuan -g start end host username\n```\n\u6b64\u5916\uff0c\u4f60\u8fd8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u67e5\u770b\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u6761\u6570\n```\npianyuan -M number localhost root root\n```\n> \u5f53\u7136\uff0c\u5982\u679c\u4f60\u8981\u770b\u66f4\u8be6\u7ec6\u7684\u6761\u76ee\uff0c\u8bf7\u76f4\u63a5\u767b\u5f55\u6570\u636e\u5e93\u67e5\u770b\n## \u5f00\u53d1\n\u5728\u4f60\u5f00\u53d1\u65f6\uff0c\u6211\u4eec\u4e3a\u4f60\u51c6\u5907\u4e86\u534f\u52a9\u6027\u7684\u547d\u4ee4\u811a\u672c\uff0c\u683c\u5f0f\u4e3a\uff1a\n\n```python\npianyuan -S action\n```\n\u5176\u4e2d\uff1a\n- `-S`\uff1a\u4ee3\u8868`shell`\uff0c\u6807\u8bb0\u6b64\u6761\u8bed\u53e5\u6267\u884c\u7684\u662f\u4e00\u4e9b\u534f\u52a9\u6027\u7684\u547d\u4ee4\u811a\u672c\n- action\uff1a\u4ee3\u8868\u8981\u6267\u884c\u7684\u52a8\u4f5c\uff0c\u76ee\u524d\u652f\u6301\u7684\u52a8\u4f5c\u6709\uff1a\n - init\n - beautify\n - test\n\n\u5f53\u4f60\u5f97\u5230\u672c\u9879\u76ee\u7684\u6e90\u7801\u65f6\uff0c\u4f60\u7b2c\u4e00\u6b65\u8981\u505a\u7684\u5c31\u662f\u5b89\u88c5\u9879\u76ee\u6240\u9700\u8981\u7684\u521d\u59cb\u5316\u6587\u4ef6\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\n```python\npianyuan -S init\n```\n\n\u5f53\u4f60\u5b8c\u6210\u4f60\u7684\u4ee3\u7801\u5e76\u4e14\u9a8c\u8bc1\u4e86\u8981\u8fbe\u5230\u7684\u529f\u80fd\u540e\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u6765\u4f18\u5316\u683c\u5f0f\n```\npianyuan -S beautify\n```\n\u5f53\u4f60\u8981\u5f80\u4ed3\u5e93\u4e0a\u4f20\u4ee3\u7801\u65f6\uff0c\u4e3a\u4e86\u8ba9\u4f60\u7684CI\u80fd\u901a\u8fc7\u4f60\u7684\u4ee3\u7801\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u67e5\u770b\u4ee3\u7801\u4e2d\u7684\u683c\u5f0f\u9519\u8bef\uff0c\u4ee5\u786e\u4fdd\u4f60\u7684\u4ee3\u7801\u7b26\u5408\u89c4\u8303\u3002\u7b26\u5408\u89c4\u8303\u7684\u60c5\u51b5\u4e3a\u6b64\u547d\u4ee4\u7ed3\u675f\u540e\u6ca1\u6709\u8fd4\u56de\u4fe1\u606f\u3002\n```python\npianyuan -S test\n```\n\n## \u5176\u5b83\n\n
\n\u5982\u4f55\u53c2\u4e0e\u672c\u9879\u76ee\n\n## \u95ee\u9898\u7684\u5f00\u7aef\n- \u76f4\u63a5\u5728\u672c\u4ed3\u5e93\u521b\u5efa\u6682\u65f6\u5206\u652f\uff0c\u901a\u8fc7pull request \u6765\u5408\u5e76\u4ee3\u7801\n- fork \u672c\u9879\u76ee\uff0c\u901a\u8fc7pull request\u6765\u5408\u5e76\u4ee3\u7801\n- \u63d0issue\uff0c\u7531\u4ed3\u5e93\u7ba1\u7406\u5458\u6765\u6539\u8fdb\n### \u521b\u5efa\u5206\u652f\n\u5982\u679c\u4f60\u662f\u4ed3\u5e93\u7ba1\u7406\u5458\uff0c\u62e5\u6709\u76f4\u63a5\u8bfb\u5199\u4ed3\u5e93\u7684\u6743\u9650\uff0c\u90a3\u4e48\u5f53\u4f60\u6709\u4e00\u4e2a\u6539\u8fdb\u65f6\uff0c\u8bf7\u5728[issue](https://github.com/ptrtonull-workshop/PianYuan/issues)\u63d0\u4f9b\u4e00\u4e2a\u8be6\u7ec6\u7684\u8bb0\u5f55\uff0c\u4f60\u53ef\u4ee5\u6807\u8bb0\u8fd9\u662f\u4e00\u4e2a`bug`\u6216\u8005`feature`\uff0c\u5e76\u5199\u4e0b\u5177\u4f53\u7684\u63cf\u8ff0\u3002\n#### \u514b\u9686\u6216\u66f4\u65b0\u4ed3\u5e93\u4ee3\u7801\n\u6267\u884c\n```git\ngit clone https://github.com/ptrtonull-workshop/PianYuan.git\ncd ./pianyuan\n```\n\u6765\u514b\u9686\u672c\u4ed3\u5e93\u7684`dev`\u5206\u652f\u4ee3\u7801\uff0c\u901a\u5e38\u60c5\u51b5\u4e0b\uff0c\u8fd9\u4e2a\u5206\u652f\u7684\u4ee3\u7801\u662f\u6700\u65b0\u7684\uff0c\u5f53\u7136\uff0c\u5982\u679c\u4f60\u4ee5\u524d\u5df2\u7ecf\u514b\u9686\u8fc7\u4e86\uff0c\u90a3\u5c31\u8bf7\u60a8\u66f4\u65b0\u4e00\u6b21\u60a8\u7684\u4ee3\u7801\uff0c\u4f7f\u60a8\u7684\u4ee3\u7801\u4fdd\u6301\u6700\u65b0\u3002\n\n\u5982\u679c\u60a8\u7b2c\u4e00\u6b21\u4e0b\u8f7d\u4ee3\u7801\uff0c\u5219\u610f\u5473\u7740\u60a8\u5f88\u53ef\u80fd\u6ca1\u6709\u672c\u9879\u76ee\u9700\u8981\u7684\u76f8\u5173\u5305\uff0c\u8bf7\u6267\u884c\n```\npianyuan -S init\n```\n\u6765\u521d\u59cb\u5316\u9879\u76ee\u6765\u83b7\u5f97\u672c\u9879\u76ee\u9700\u8981\u7684\u5305\n#### \u65b0\u5efabug\u5206\u652f\n\u5728GitHub [issue](https://github.com/ptrtonull-workshop/PianYuan/issues)\u4e0a\u63d0\u4ea4\u4e00\u4e2a`issue`, \u8bb0\u5f55\u4e0bbug\u7684\u60c5\u51b5\uff0c\u8bb0\u4e0b`issue`\u7684\u53f7\u7801\uff0c\u4f8b\u5982\u60a8\u65b0\u5efa\u4e86\u4e00\u4e2a\u7f16\u53f7\u4e3a#1\u7684`issue`:\n\u4f7f\u7528\n```git\ngit branch bug#1\ngit checkout bug#1\n```\n\u4ece`dev`\u5206\u652f\u521b\u7acb\u5e76\u5207\u6362\u5230\u4e00\u4e2abug\u5206\u652f\u6765\u4fee\u590d\u8fd9\u4e2abug\uff0c#\u540e\u7684\u53f7\u7801\u4e3a`issue`\u7684\u53f7\u7801\uff0c\u5728\u8fd9\u4e2a\u5206\u652f\u4e2d\u8fdb\u884cbug\u7684\u4fee\u590d\u3002\n#### \u68c0\u67e5\u4ee3\u7801\n\u5728\u672c\u5730\u6587\u4ef6\u5939\u4e2d\u6267\u884c\n```python\npianyuan -G 1 1 hostname username password\n```\n\u540e\uff0c\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u5199\u5165\u6570\u636e\u5230\u6570\u636e\u5e93\uff0c\u6765\u6d4b\u8bd5\u4f60\u7684\u4ee3\u7801\u7684\u529f\u80fd\u662f\u5426\u6b63\u5e38\n\n\u5176\u4e2d\n- hostname:\u6570\u636e\u5e93\u5730\u5740\n- username:\u7528\u6237\u540d\n- password:\u7528\u6237\u540d\u5bc6\u7801\uff0c\u4e3a\u7a7a\u7684\u65f6\u5019\u53ef\u4ee5\u4e0d\u586b\n\n\u5728\u672c\u5730\u9879\u76ee\u6587\u4ef6\u5939\u4e2d\u6267\u884c\n```pip\npianyuan -S beautify\npianyuan -S test\n```\n\u6765\u89c4\u8303\u4f60\u7684python\u4ee3\u7801\uff0c\u4ee5\u7b26\u5408flake8\u7684\u89c4\u8303\u3002\u518d\u4f7f\u7528flake8\u786e\u8ba4`main.py`\u4e2d\u7684\u8bed\u6cd5\u9519\u8bef\u548c\u4e66\u5199\u89c4\u8303\uff0c\u5982\u6709\u4e0d\u7b26\u5408`flake`\u89c4\u8303\uff0c\u63d0\u4ea4\u7684\u4ee3\u7801\u5c06\u65e0\u6cd5\u901a\u8fc7`CI`\u7684\u68c0\u67e5\n\u5728\u8fd9\u6761\u8bed\u53e5\u4e2d\uff0c`E501`\u7684\u610f\u601d\u662f\uff1a\u4f60\u6700\u591a\u53ea\u80fd\u5728\u4e00\u884c\u4e2d\u519979\u4e2a\u5b57\u7b26\uff0c\u8fd9\u4e2a\u89c4\u5b9a\u8fc7\u4e8e\u82db\u523b\uff0c\u6545\u6211\u4eec\u5c06\u5b83\u5220\u9664\u4e86\n```\nE501: E501 line too long (81 > 79 characters)\n```\n#### \u63d0\u4ea4\n\u4fee\u590d\u5b8c\u6bd5\u540e\uff0ccommit\u6b64\u6b21\u4fee\u6539\n\u5b8c\u6bd5\u540e\uff0c\u6267\u884c\n```git\ngit push origin bug#1\n```\n\u6765\u63a8\u9001\u8be5\u5206\u652f\u5230Github\u3002\u5207\u6362\u5230Github\uff0c\u6211\u4eec\u518d\u5c06`bug#1` \u901a\u8fc7`pull request`\u4e0e`dev`\u5206\u652f\u5408\u5e76\uff0c\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u7684CI\u4f1a\u68c0\u67e5\u4ee3\u7801\u3002\n\n\u7b49\u5f85\u5408\u5e76\u5b8c\u6210\u4e4b\u540e\uff0c\u6211\u4eec\u5728\u672c\u5730\u6267\u884c\n```git\ngit push origin :bug#1\n```\n\u6765\u8fdc\u7a0b\u5220\u9664\u5728Github\u4e0a\u7684\u591a\u4f59\u7684\u5206\u652f\n## Q&A\n> \u54ea\u4e9b\u64cd\u4f5c\u9700\u8981\u76f4\u63a5\u5728Github\u4e0a\u63d0\u4ea4\uff1f\n- README\u6587\u6863\u9700\u8981\u66f4\u65b0\n- CI\u914d\u7f6e\u6587\u4ef6\u9700\u8981\u66f4\u65b0\n>\u54ea\u4e9b\u60c5\u51b5\u9700\u8981\u76f4\u63a5\u540c\u6b65\u5230`master`\u5206\u652f\uff1f\n- \u6709\u91cd\u5927\u66f4\u65b0\uff0c\u53ef\u80fd\u662f\u4e00\u5929\u79ef\u7d2f\u7684\uff1b\n- \u6d89\u53ca\u5230CI\u7684\u914d\u7f6e\u6587\u4ef6\u7684\uff1b\n- \u7d27\u6025\u7684BUG\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/ptrtonull-workshop/pianyuan", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pianyuan", "package_url": "https://pypi.org/project/pianyuan/", "platform": "", "project_url": "https://pypi.org/project/pianyuan/", "project_urls": { "Homepage": "https://github.com/ptrtonull-workshop/pianyuan" }, "release_url": "https://pypi.org/project/pianyuan/1.4.0/", "requires_dist": null, "requires_python": "", "summary": "a spider from pianyuan.la", "version": "1.4.0", "yanked": false, "yanked_reason": null }, "last_serial": 6047017, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "294febe5c9cd116b44a7677fc07107f2", "sha256": "f5e6ad7e51c9ab4b8f3b2a0b19d10de94cae72a8f6e5da41ccdf7e6795ba6f3d" }, "downloads": -1, "filename": "pianyuan-0.0.1.tar.gz", "has_sig": false, "md5_digest": "294febe5c9cd116b44a7677fc07107f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7265, "upload_time": "2019-10-12T10:50:54", "upload_time_iso_8601": "2019-10-12T10:50:54.938301Z", "url": "https://files.pythonhosted.org/packages/6f/e7/f8ede5fe6ba22a5e10b5aeaa408e1fe207e13394d9335e60ed17e59b4277/pianyuan-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6f3a11c11a12645f65f4755723f70a67", "sha256": "6280cae29faabe36c2c808caef88fc9bbde6e33ce8777371ed637cdd133c08c5" }, "downloads": -1, "filename": "pianyuan-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6f3a11c11a12645f65f4755723f70a67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3523, "upload_time": "2019-09-26T16:17:02", "upload_time_iso_8601": "2019-09-26T16:17:02.088215Z", "url": "https://files.pythonhosted.org/packages/e0/27/a5ba72c65b6f3ab404b9102ab523c103281d261de97f53ae67f305182b96/pianyuan-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d29376ea9e7dcc99c0f97a33ea31f66a", "sha256": "319adbda60e6a2f5ff6d3794d820e207da2755c99e9b32a2aba658aef7f04a9e" }, "downloads": -1, "filename": "pianyuan-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d29376ea9e7dcc99c0f97a33ea31f66a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7266, "upload_time": "2019-10-12T10:51:52", "upload_time_iso_8601": "2019-10-12T10:51:52.499438Z", "url": "https://files.pythonhosted.org/packages/eb/84/7ea9e5223d87298f6c6f02255272b536c116a31bbfa1f3a038b3f7d9789f/pianyuan-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ea9a22acc5b9b95b91d9fcc542c1ce94", "sha256": "1e35d86adf21a86bcdf930cb403712f402253a784541d294f103800c4b198df3" }, "downloads": -1, "filename": "pianyuan-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ea9a22acc5b9b95b91d9fcc542c1ce94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7292, "upload_time": "2019-10-12T11:29:15", "upload_time_iso_8601": "2019-10-12T11:29:15.486780Z", "url": "https://files.pythonhosted.org/packages/e2/a0/dcbc38a34377f7d6121fd98592df60475617cc2f97e6f4443ce06e725fe0/pianyuan-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "e89b904f2dce9617cd1c2e9791bd4d62", "sha256": "3586ba295403ceecf200af50c95739588700312697f96529cebd8110b40a4cc8" }, "downloads": -1, "filename": "pianyuan-1.0.3.tar.gz", "has_sig": false, "md5_digest": "e89b904f2dce9617cd1c2e9791bd4d62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8566, "upload_time": "2019-10-13T06:48:28", "upload_time_iso_8601": "2019-10-13T06:48:28.510001Z", "url": "https://files.pythonhosted.org/packages/5a/ba/d23e8a2628989b6f49b93177c91db74ad33f7f7f46339eab9de39b0cad09/pianyuan-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "83a9af51cc690a9078de1132682b608b", "sha256": "c7739d021d31571ea36f73390760b35c55f8d37f8fe5a53d7e38a27083a497b1" }, "downloads": -1, "filename": "pianyuan-1.0.4.tar.gz", "has_sig": false, "md5_digest": "83a9af51cc690a9078de1132682b608b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8660, "upload_time": "2019-10-13T06:59:05", "upload_time_iso_8601": "2019-10-13T06:59:05.073814Z", "url": "https://files.pythonhosted.org/packages/68/3b/6d0b0f581ec5efe950d3be595b4299bfffa3482995c32fc2bf3407fce204/pianyuan-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "f248c3603bec3efa15e6a6bb3e8672c0", "sha256": "f9e7beb3a96b7b2734904388fd0801e3cae97ea6650099441473543e1bfe6d4a" }, "downloads": -1, "filename": "pianyuan-1.0.5.tar.gz", "has_sig": false, "md5_digest": "f248c3603bec3efa15e6a6bb3e8672c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8682, "upload_time": "2019-10-13T07:11:17", "upload_time_iso_8601": "2019-10-13T07:11:17.270229Z", "url": "https://files.pythonhosted.org/packages/59/2e/a28fb74a45c33a5de54506197b4ddab6df4758eb66a39095987e26fac66e/pianyuan-1.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "5a06bc9189045c662dd20cb060253a64", "sha256": "e9d4c1eabe4b5ff193727e8afb90213043cf152bad61ba9fef11d20528e94d65" }, "downloads": -1, "filename": "pianyuan-1.0.6.tar.gz", "has_sig": false, "md5_digest": "5a06bc9189045c662dd20cb060253a64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8717, "upload_time": "2019-10-13T07:16:14", "upload_time_iso_8601": "2019-10-13T07:16:14.315996Z", "url": "https://files.pythonhosted.org/packages/ee/10/32d40a032c124605fa5a0f68048a08417a8ceaed8ef2991476715bd102e2/pianyuan-1.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "5991fd8db8084dfb2fe98d8fc7b60168", "sha256": "18328265b5f4182a8d3500b171982380c1635d755e8d12166d8cb8b32cef3d35" }, "downloads": -1, "filename": "pianyuan-1.0.7.tar.gz", "has_sig": false, "md5_digest": "5991fd8db8084dfb2fe98d8fc7b60168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8711, "upload_time": "2019-10-13T07:20:52", "upload_time_iso_8601": "2019-10-13T07:20:52.828151Z", "url": "https://files.pythonhosted.org/packages/9d/35/edb370490b5b32d49e0420546d533621c61520386064f40664b2815bab22/pianyuan-1.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "338878264710702fdbafc5cf87e823c1", "sha256": "63d5772369259d08a1c84c25499006fa0378f040f1d466ad061e5cb804f40cb3" }, "downloads": -1, "filename": "pianyuan-1.0.8.tar.gz", "has_sig": false, "md5_digest": "338878264710702fdbafc5cf87e823c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8716, "upload_time": "2019-10-13T07:24:09", "upload_time_iso_8601": "2019-10-13T07:24:09.993928Z", "url": "https://files.pythonhosted.org/packages/05/cb/6746e3f4041dd5a53283eb3982325853cbede480a260cdccecfb8ec2c848/pianyuan-1.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "146bec23437e80f2727092497020535f", "sha256": "32e378ea7763803739d5627cc0a73add567f3e2658a8690bb8fe48f4c2b44d2a" }, "downloads": -1, "filename": "pianyuan-1.0.9.tar.gz", "has_sig": false, "md5_digest": "146bec23437e80f2727092497020535f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8902, "upload_time": "2019-10-13T08:03:19", "upload_time_iso_8601": "2019-10-13T08:03:19.907624Z", "url": "https://files.pythonhosted.org/packages/59/52/82400dedb1b7a22f2d84da19da10f8b89b235928ace948711e6891825a21/pianyuan-1.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "d10b638d80e14cbb20b4b09a470e3272", "sha256": "56b12e42465d281dde799c60e28d11d359cfa7f694c38b2ed25836cd7662122f" }, "downloads": -1, "filename": "pianyuan-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d10b638d80e14cbb20b4b09a470e3272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8895, "upload_time": "2019-10-13T08:10:08", "upload_time_iso_8601": "2019-10-13T08:10:08.560628Z", "url": "https://files.pythonhosted.org/packages/48/9c/06f9e1e738b3de527a89a0a86c6d60589b03336e72675d36e28a544bee44/pianyuan-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a4e8551ab8d02b20d5e02e420a2eba12", "sha256": "4db84ede2984c38238e716d93bf7d9eb182882eedff1fc3a4d7e09301a738a40" }, "downloads": -1, "filename": "pianyuan-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a4e8551ab8d02b20d5e02e420a2eba12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8896, "upload_time": "2019-10-13T08:20:16", "upload_time_iso_8601": "2019-10-13T08:20:16.054451Z", "url": "https://files.pythonhosted.org/packages/50/f1/70afd1770739c8257bd7be7de80513b58e77a016e40cca02a7316eb3cbd8/pianyuan-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "763ac00d3f149c9602e0531f07b5523a", "sha256": "e8ebdacb36fb380a130ccb0510a16b61195f6da066ce19f308004f7b45fce4ff" }, "downloads": -1, "filename": "pianyuan-1.1.2.tar.gz", "has_sig": false, "md5_digest": "763ac00d3f149c9602e0531f07b5523a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8902, "upload_time": "2019-10-13T08:28:02", "upload_time_iso_8601": "2019-10-13T08:28:02.058167Z", "url": "https://files.pythonhosted.org/packages/ca/81/80f697546f169423bd5d01928162e60b8ec5a674c8ce6a9b86de57fa0c38/pianyuan-1.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "12617c1505124b1389286cb86bba4ce2", "sha256": "9c041ce85b542a36b7d0381c3c337bc01081ffa6f5eb7b18225f7879b5f86229" }, "downloads": -1, "filename": "pianyuan-1.1.3.tar.gz", "has_sig": false, "md5_digest": "12617c1505124b1389286cb86bba4ce2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8890, "upload_time": "2019-10-13T08:32:31", "upload_time_iso_8601": "2019-10-13T08:32:31.878776Z", "url": "https://files.pythonhosted.org/packages/0a/2d/954378c72f9eeaf8c883809a80b6432dc75a9bc30caa1719685ecd0cb0b2/pianyuan-1.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "bbbd3657ca3e51d67c755c1d82a52fbd", "sha256": "9f7ec50977034a26f9a173169fbf72aa0d0160c61908e7303ee1c76b4cc1d75f" }, "downloads": -1, "filename": "pianyuan-1.1.4.tar.gz", "has_sig": false, "md5_digest": "bbbd3657ca3e51d67c755c1d82a52fbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8894, "upload_time": "2019-10-13T08:33:46", "upload_time_iso_8601": "2019-10-13T08:33:46.995242Z", "url": "https://files.pythonhosted.org/packages/c5/4c/f9a383f06d63abfb7d826d0e3e934cba02c00f50404ea6ffec82e1ecd6d8/pianyuan-1.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "78ea24217d472428e31bcdaa29391ee2", "sha256": "cd9853eef93d5fe2f1012e190bbf1b227eec6d8e7692c36962138ba33e83d844" }, "downloads": -1, "filename": "pianyuan-1.1.5.tar.gz", "has_sig": false, "md5_digest": "78ea24217d472428e31bcdaa29391ee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8889, "upload_time": "2019-10-13T08:34:41", "upload_time_iso_8601": "2019-10-13T08:34:41.328456Z", "url": "https://files.pythonhosted.org/packages/3c/ff/5d2af9b5fe283f40541c8c786d9c52ae3cb151d157c85a63c5d7084ded1f/pianyuan-1.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "f2271fdf504a8e98f0318cc0200cc02a", "sha256": "ca88e9d0aa949641aaa696a83155697042cb79ff826734ac0b8f279b0192e583" }, "downloads": -1, "filename": "pianyuan-1.1.6.tar.gz", "has_sig": false, "md5_digest": "f2271fdf504a8e98f0318cc0200cc02a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8888, "upload_time": "2019-10-13T08:35:54", "upload_time_iso_8601": "2019-10-13T08:35:54.358512Z", "url": "https://files.pythonhosted.org/packages/7c/c7/75bb2b4600eb204941319fdb145205d0f63ec671c1fe92f76ad17ecca56d/pianyuan-1.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "8cbe452a7dd24c1ec9cdb7b90aa54caa", "sha256": "2d8eb36a245d0fcf016173f0307249028ef764e37e2980cb267fdfd7d834006a" }, "downloads": -1, "filename": "pianyuan-1.1.7.tar.gz", "has_sig": false, "md5_digest": "8cbe452a7dd24c1ec9cdb7b90aa54caa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8897, "upload_time": "2019-10-13T08:36:20", "upload_time_iso_8601": "2019-10-13T08:36:20.986884Z", "url": "https://files.pythonhosted.org/packages/1d/f2/bd7560aa2961742605dc70fc591fe338b30196cf67a9e513ea15fe059f36/pianyuan-1.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "94304306f566372ec5b3c073f1faaf9b", "sha256": "1449b75f08982f53eef21fca812a3f928aaa3ddfe4038798843b3ff8de13bbbc" }, "downloads": -1, "filename": "pianyuan-1.1.8.tar.gz", "has_sig": false, "md5_digest": "94304306f566372ec5b3c073f1faaf9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8888, "upload_time": "2019-10-13T08:36:43", "upload_time_iso_8601": "2019-10-13T08:36:43.798781Z", "url": "https://files.pythonhosted.org/packages/78/4c/6c13cf167ad17b37df5aec77a947590ee1b68f7d86dfb75e14a82c5a4a18/pianyuan-1.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "080c9110535307ba76739b9694c93aa5", "sha256": "cea1973980becccc5530611cf5ee1232bcd372da453ca53f9afec028d1d55ec4" }, "downloads": -1, "filename": "pianyuan-1.1.9.tar.gz", "has_sig": false, "md5_digest": "080c9110535307ba76739b9694c93aa5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8892, "upload_time": "2019-10-13T08:41:00", "upload_time_iso_8601": "2019-10-13T08:41:00.323293Z", "url": "https://files.pythonhosted.org/packages/39/02/b09e158f14111be22bdeffe39f9f8d041dd63b4801f36ea9769fd64771c5/pianyuan-1.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "8b8a445d5d26baf3551ab860b9d33a3c", "sha256": "78745e4663fce64c12d3f4042a3ddad8d78ecb9c332efabc41629acc6f20d793" }, "downloads": -1, "filename": "pianyuan-1.2.1.tar.gz", "has_sig": false, "md5_digest": "8b8a445d5d26baf3551ab860b9d33a3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8903, "upload_time": "2019-10-13T08:42:51", "upload_time_iso_8601": "2019-10-13T08:42:51.092949Z", "url": "https://files.pythonhosted.org/packages/4d/43/e09c4ca4926ece06a3937302fab8acc8b58eace377e6ca5ad6accbb2be3b/pianyuan-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "2a40c23a7c42b3e09449abfed0fbe9d4", "sha256": "30b174e78f8efbfca5d9845d3af12a4f21fbfb1905c41960ef8870fb8f033660" }, "downloads": -1, "filename": "pianyuan-1.2.2.tar.gz", "has_sig": false, "md5_digest": "2a40c23a7c42b3e09449abfed0fbe9d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8902, "upload_time": "2019-10-13T08:44:25", "upload_time_iso_8601": "2019-10-13T08:44:25.571396Z", "url": "https://files.pythonhosted.org/packages/63/5d/bb3a9530581e20530c7fee6eb576ead6434e06c6fc84210fc2251a4d1567/pianyuan-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "cfb852236d16e8eab6be1717913c4912", "sha256": "9bc75c5751765759a6298d0949bbc64337eb39d0e20c940c947197025bf4c0a7" }, "downloads": -1, "filename": "pianyuan-1.2.3.tar.gz", "has_sig": false, "md5_digest": "cfb852236d16e8eab6be1717913c4912", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8860, "upload_time": "2019-10-13T08:46:31", "upload_time_iso_8601": "2019-10-13T08:46:31.142784Z", "url": "https://files.pythonhosted.org/packages/67/17/0778e9472ac20fd1e2952dff54746ddac5e61ac4057c98ef7f16af9dcc88/pianyuan-1.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "1451c16f323611ce6737cf9edc822ecc", "sha256": "e657d146eb0b6d648b2807a27d59ed420a5bbbf62cef324d2b8d7c484eb99003" }, "downloads": -1, "filename": "pianyuan-1.2.4.tar.gz", "has_sig": false, "md5_digest": "1451c16f323611ce6737cf9edc822ecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8721, "upload_time": "2019-10-15T13:50:30", "upload_time_iso_8601": "2019-10-15T13:50:30.805356Z", "url": "https://files.pythonhosted.org/packages/fc/ce/2937a68c2f1f1e05c1593ef1087b3b76267cd7c38d78389731080ea422a9/pianyuan-1.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "5704a5abc9423ce5dd8eeba3d1a33096", "sha256": "794b2c00ee1f1ec9a1c8151f0e9a41426bda69f00ffffcfbe0c5ffc7ebe2d57f" }, "downloads": -1, "filename": "pianyuan-1.3.0.tar.gz", "has_sig": false, "md5_digest": "5704a5abc9423ce5dd8eeba3d1a33096", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12717, "upload_time": "2019-10-16T14:03:47", "upload_time_iso_8601": "2019-10-16T14:03:47.926783Z", "url": "https://files.pythonhosted.org/packages/63/7b/7730db560d34666e75352c3c8b0e314e84336f7966db4c1b2e2c33604d1a/pianyuan-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "b722631fca45ac64860320e1ddc716b3", "sha256": "63da6d009ca76287c45ee3eaa54fadce5c1b103bbf0926ed1f990409866cb29a" }, "downloads": -1, "filename": "pianyuan-1.3.1.tar.gz", "has_sig": false, "md5_digest": "b722631fca45ac64860320e1ddc716b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12710, "upload_time": "2019-10-16T14:05:03", "upload_time_iso_8601": "2019-10-16T14:05:03.231568Z", "url": "https://files.pythonhosted.org/packages/0d/f2/9b340575a7adacf2cec88b8cce903e194eaf85f7e25f60c8fa4f24d76f63/pianyuan-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "77bbf41b21ce69c151fbc21fd5702883", "sha256": "f49bb81576d546d1075a50c9842cca350d8fb9c91239647c11b11cb88199782f" }, "downloads": -1, "filename": "pianyuan-1.3.2.tar.gz", "has_sig": false, "md5_digest": "77bbf41b21ce69c151fbc21fd5702883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12741, "upload_time": "2019-10-16T14:14:48", "upload_time_iso_8601": "2019-10-16T14:14:48.032397Z", "url": "https://files.pythonhosted.org/packages/83/cd/9235ce4b2fe504f3c3c0ff60de69501aa8dbb628b6213c2fde6ef6858995/pianyuan-1.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "a32762fa50ec05ffc2aca4953a7d57f4", "sha256": "e85615712d29e24cb20b8559f95fc8a796d534b39b57a88862babe36403c9218" }, "downloads": -1, "filename": "pianyuan-1.3.3.tar.gz", "has_sig": false, "md5_digest": "a32762fa50ec05ffc2aca4953a7d57f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12891, "upload_time": "2019-10-16T14:32:07", "upload_time_iso_8601": "2019-10-16T14:32:07.657928Z", "url": "https://files.pythonhosted.org/packages/00/50/395df581656f8417e0150af136f82b660b5a1bd4d2028a433fd5f3a0b94e/pianyuan-1.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "bae806035dbf6dce5ef3f9987fcac8f0", "sha256": "cb48621d57a03ba45f18fbd96b60fd2fd855de17a82ad8b5dd69dd6896a263ea" }, "downloads": -1, "filename": "pianyuan-1.3.4.tar.gz", "has_sig": false, "md5_digest": "bae806035dbf6dce5ef3f9987fcac8f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12898, "upload_time": "2019-10-16T14:55:30", "upload_time_iso_8601": "2019-10-16T14:55:30.134783Z", "url": "https://files.pythonhosted.org/packages/37/49/bdc93c97534c9e3ce4c7c1c118cdb928078252e8c37f9d323e8939d10dff/pianyuan-1.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "d1f3bcb3899832640b4e2f66616f2db0", "sha256": "517a73a22f5ec07ace91fcda364c9cd9c728c0449e788c29e899e3e76223135b" }, "downloads": -1, "filename": "pianyuan-1.3.5.tar.gz", "has_sig": false, "md5_digest": "d1f3bcb3899832640b4e2f66616f2db0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12918, "upload_time": "2019-10-17T02:02:34", "upload_time_iso_8601": "2019-10-17T02:02:34.143515Z", "url": "https://files.pythonhosted.org/packages/b2/3a/7ea6d85ef84c8c1446c32976457c917d86a99320e562b9ddfd08fcd80cb0/pianyuan-1.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "273db08f77a19515e6b86683efa7a9f2", "sha256": "1b25aeab86bff55ee38d0126c2f0e78f12538251d8914621e2ae3e92f6785fc2" }, "downloads": -1, "filename": "pianyuan-1.3.6.tar.gz", "has_sig": false, "md5_digest": "273db08f77a19515e6b86683efa7a9f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12920, "upload_time": "2019-10-17T02:05:31", "upload_time_iso_8601": "2019-10-17T02:05:31.274082Z", "url": "https://files.pythonhosted.org/packages/e1/a7/76b8dc2f1349dc70037dc0b85341ef2dea71cece7a304fb8dfa740bae92b/pianyuan-1.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "a4810bf8b81efb835ce6ca03b76e4165", "sha256": "13e9384f6d68b1972e47856f99a2a0ae5999f141720fbfae4fc8180f58d9387b" }, "downloads": -1, "filename": "pianyuan-1.4.0.tar.gz", "has_sig": false, "md5_digest": "a4810bf8b81efb835ce6ca03b76e4165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15258, "upload_time": "2019-10-29T13:04:32", "upload_time_iso_8601": "2019-10-29T13:04:32.308227Z", "url": "https://files.pythonhosted.org/packages/32/bd/79d56f9823311c98f3c0b150fe4fdfa60b68d52d6d804349c79db8c81f2e/pianyuan-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a4810bf8b81efb835ce6ca03b76e4165", "sha256": "13e9384f6d68b1972e47856f99a2a0ae5999f141720fbfae4fc8180f58d9387b" }, "downloads": -1, "filename": "pianyuan-1.4.0.tar.gz", "has_sig": false, "md5_digest": "a4810bf8b81efb835ce6ca03b76e4165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15258, "upload_time": "2019-10-29T13:04:32", "upload_time_iso_8601": "2019-10-29T13:04:32.308227Z", "url": "https://files.pythonhosted.org/packages/32/bd/79d56f9823311c98f3c0b150fe4fdfa60b68d52d6d804349c79db8c81f2e/pianyuan-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }