{ "info": { "author": "C.W.", "author_email": "wangc_2011@hotmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "================================================================================\nyehua - Let you focus on code, instead of setup scaffolding\n================================================================================\n\n.. image:: https://api.travis-ci.org/moremoban/yehua.svg\n :target: http://travis-ci.org/moremoban/yehua\n\n.. image:: https://codecov.io/github/moremoban/yehua/coverage.png\n :target: https://codecov.io/github/moremoban/yehua\n\n\n.. image:: https://readthedocs.org/projects/yehua/badge/?version=latest\n :target: http://yehua.readthedocs.org/en/latest/\n\n.. image:: https://badges.gitter.im/chfw_yehua/Lobby.svg\n :alt: Join the chat at https://gitter.im/chfw_yehua/Lobby\n :target: https://gitter.im/chfw_yehua/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\nIntroduction\n================================================================================\n\n\n* Are you tired of writing up setup.py files by hand? Have you ever wondered why\n pypi displays raw rst file for your README?\n* When you add a new library to the collection of your organization, how would\n you make sure the static information are the same as others?\n* How would you update static information across all packages of your\n organisation? For example, one line change in your company's profile.\n Copy and paste? If yes, you still live in 20th century.\n\n**yehua** is an interactive command line tool to provide a default scaffolding for a python package. The name is the pinyin of the Chinese word\n\u201c\u591c\u534e\u201d, /'j\u025bhwa/. It create a blank python package that is usable and ready to push to github. And future\nupdates on your organisation's specific static information can be instantly applies the\nupdate accurately using `moban`_. Here is a list of features:\n\n#. core python package\n#. test configuration setup\n#. ready to commit github repository\n#. automated upload to pypi through twine\n#. version management through jinja2\n#. automated github release through gease\n#. permanent parent-child bond: keep your packages in synchronization with your template forever\n\nWhat's more, you can provide your own python package templates and your own\nyehua file to customize **yehua** to meet your own needs. Here are a list of\nexamples:\n\n* `pypkg-mobans in pyecharts project `_\n* `echarts-js-mobans in echarts-map project `_\n\n\nFeature comparision\n--------------------------------------------------------------------------------\n\nThe following table is a personal feature comparision. If you have a different\nopinion, especially you are the author of the following repository, please\nraise an issue and we can talk. This table is not a commerical sales pitch.\n\n#. Y: have such a feature\n#. M: manual operation\n#. A: automatic operation\n\n.. table:: Detailed feature comparision\n\n ============== ========================== ======================= ===================== ========== =====\n Group Feature cookiecutter-pypackage cookiecutter-vanguard PyScaffold yehua\n ============== ========================== ======================= ===================== ========== =====\n essential setup.py Y Y Y Y\n . setup.cfg Y Y Y Y\n . source code stub Y Y Y Y\n test setup requirements.txt Y Y Y\n . requirements_dev.txt Y Y Y\n . Makefile Y Y\n . tests code Y Y Y\n . tox Y Y\n . travis Y Y Y\n . test coverage Y Y\n . flake8 Y\n documentation README.rst Y Y Y\n . labels Y\n . gitignore Y Y Y\n . AUTHORS.rst Y Y Y\n . CONTRIBUTING.rst Y Y\n . HISTORY.rst/CHANGELOG .rst Y Y Y Y\n . LICENCE Y Y Y Y\n . MANIFEST.in Y Y Y\n . sphinx docs Y Y Y Y\n usability interactive shell Y Y Y\n . one liner Y\n . initialize github repo Y\n maintenance publish on pypi A M M\n . dependency management M M A\n . template customization Y\n . version management M M A\n . automated github release Y\n . continous templating Y\n ============== ========================== ======================= ===================== ========== =====\n\n\nComparing with cookiecutter, the difference comes in the later phase\nof the created project. **moremoban** organisation assumes\nthe life time responsibility: keep its template always\nup-to-date with its originating template, for the created project.\nWhereas, the templates of cookiecutter are disconnected once\nthe project has been created successfully. In my personal experience\n(maintaining pyexcel), I am finding that the documentation\nchanges as well. For example, someone helped to correct my spellings\nin one of my project's documentation. Via moremoban's toolset, I can\nupstream the spelling updates to pyexcel-mobans and propagate all\nthe spellings to the rest of the projects.\n\nComparing with PyScaffold, the first difference is the difference in\ncommand line interface. Yehua prefers interactivity whereas PyScaffold\nuses one liner. Why? I am influenced by yeoman, the scaffolding tool\nfor front end developers. I am convinced that conversational style\ndoes lower the entry barrier for new comers, because the question on\nthe left hand side is a self-explantory sentence so the user does\nnot need to read up the user manual. The second difference is that\nYehua has an interface layer(YEHUA_FILE) which cuts its ties with its own\nbuilt-in templates, which means you instruct yehua to make a npm package\nif your custom YEHUA_FILE instructs. That's an extreme. The third difference\nis that its own templates(I called it mobans) can be overriden/customized\nby another set of templates/mobans. For example, pyexcel project has\npyexcel-mobans, which overlays on top of pypi-mobans. pyexcel-mobans\nis more concerned of pyexcel project's documentation.\n\n\nInstallation\n================================================================================\n\n\nYou can install yehua via pip:\n\n.. code-block:: bash\n\n $ pip install yehua\n\n\nor clone it and install it:\n\n.. code-block:: bash\n\n $ git clone https://github.com/moremoban/yehua.git\n $ cd yehua\n $ python setup.py install\n\nUsage\n================================================================================\n\n\n\n.. image:: https://github.com/chfw/yehua/raw/master/yehua-usage.gif\n :width: 600px\n\nPlease note, since version 0.0.2, the command line is shortened. Due to\ntime constaints, the demo video uses `yehua` still.\n\nSimply type in and you are taken care of::\n\n $ yh\n\nIt will do these for you:\n\n#. Consult you on your project static information which can update as\n many as you want to.\n#. Create the Python package folder structure\n#. Initialize the package as git project\n\nYou will simply need to commit it after you will have reviewed the\ngenerated files.\n\nTutorial\n-----------------\n\nLet's make a python command line utility using `yehua`. The command\nwill be `hello` and it prints `world`. You will need to issue::\n\n $ pip install yehua\n\nbefore proceeding.\n\nStep 1 Let's launch yehua\n******************************\n|slide1|\n\nStep 2 Fill-in the meta data for your project\n***********************************************\n|slide2|\n\nAt the end, yehua generates a folder named 'hello', which contains all necessary\nfiles for\n\n#. installing it as a package\n#. testing via nose\n#. sharing it on github\n#. configuring travis via github\n\nStep 3 Inflates the meta data\n**********************************\nLet's change to 'hello' directory\n\n|slide3|\n\nAll meta data is inflated via **`moban`_ automatically**\nThe templates come from `setupmobans`_\nRun moban. It inflates the all meta data.\n\n|slide4|\n\nWhy is moban involved here? It helps reduce duplicated meta data when\nyour project grows. For example, yehua had this tutorial in README and in sphinx\ndocumentation. I wrote it in one file and moban copies it to both\nplaces. What's more, it helps further when the number of your\nproject grows. For example, `pyexcel`_ project has dozens of\nsub projects. I wrote most of the generic documentation in\n`pyexcel commons`_ and moban copies them across all sub projects.\n\nStep 4 Start coding\n*************************\nLet's write up the actual code in hello/main.py\n\n|slide5|\n\nPut in just a main() function and save it.\n\n|slide6|\n\nWhy is it enough? yehua generates a command utility python and\nit has pre-wired to invoke hello.main.main() function. You\ncan find it out in setup.py.\n\nStep 5 Install it\n*********************\nNow all is done. Let's install it\n\n|slide7|\n\nStep 6 Run it\n********************\n\nLet's run it\n\n|slide8|\n\nAll done.\n\nStep 7 push to github\n***************************\n\nSuppose you are happy with everything. Please do the following to\npush it to your github::\n\n $ git init\n $ git add *\n $ git add .gitignore .moban.d/ .moban.yml .travis.yml\n $ git commit -am \":sparkle: initial commit\"\n\nThen create your project repository in github and do these to push it out::\n\n $ git remote add origin https://github.com/chfw/hello.git\n $ git push origin master\n\n\nYou can find the `hello project`_ on github.\n\nStep 8 enable travis\n***************************\n\nThe generated project already has `.travis.yml` file. What you\nwill need to do is to register with travis.org if you have not\ndone so. And then go to travis and activate your project. \n\n\n.. |slide1| image:: docs/source/_static/yehua-0.png\n :scale: 100%\n.. |slide2| image:: docs/source/_static/yehua-1.png\n :scale: 100%\n.. |slide3| image:: docs/source/_static/yehua-2.png\n :scale: 100%\n.. |slide4| image:: docs/source/_static/yehua-3.png\n :scale: 100%\n.. |slide5| image:: docs/source/_static/yehua-4.png\n :scale: 100%\n.. |slide6| image:: docs/source/_static/yehua-5.png\n :scale: 100%\n.. |slide7| image:: docs/source/_static/yehua-6.png\n :scale: 100%\n.. |slide8| image:: docs/source/_static/yehua-7.png\n :scale: 100%\n.. |slide9| image:: docs/source/_static/github.png\n :scale: 60%\n.. |slide10| image:: docs/source/_static/push2github.png\n :scale: 60%\n\n.. _hello project: https://github.com/chfw/hello\n.. _pyexcel commons: https://github.com/pyexcel/pyexcel-commons\n.. _pyexcel: https://github.com/pyexcel\n.. _moban: https://github.com/moremoban/moban\n.. _setupmobans: https://github.com/moremoban/setupmobans\n\n\nBackground\n================================================================================\n\n\nThe original problem I was trying to solve is: I would like to place\ncommon paragraphs in the documentation of my projects in a central\nplace (pyexcel-mobans), and all projects could reference it dynamically\nso that when those common paragraphs get updated, the updates can be\neasily propagated to all relevant projects. The derived problem is:\nwhat could I do to a new project? I found myself doing a lot of\ncopy-and-paste a lot, which lead to the creation of \"yehua\". Later,\nJohn Vandenberg, an active member of coala, suggested extracting the\ngeneric sets of pyexcel-mobans to form pypi-mobans, so that\na vanilla python package can be created.\n\n\nWhy to choose \"yehua\"? Here is `the little story `_ behind the choice of name. And this `music video `_ would help bridge the cultural gap between you and me.\n\n\n\n\nLicense\n================================================================================\n\nNEW BSD License\n\nChange log\n================================================================================\n\n0.0.7 - 6/10/2019\n--------------------------------------------------------------------------------\n\n**Updated**\n\n#. upgrade yehua to use pypi-mobans-pkg version 0.0.7\n#. generated project will have azure build pipeline, moban command stage in\n travis and local flake8 check\n\n0.0.6 - 04/15/2019\n--------------------------------------------------------------------------------\n\n**Updated**\n\n#. upgrade yehua to use pypi-mobans-pkg version 0.0.5\n#. generated project will have four new files: pipfile, lint.sh, changelog.yml\n and Makefile \n\n0.0.5 - 08/11/2018\n--------------------------------------------------------------------------------\n\n**added**\n\n#. `#6 `_: provide Pipfile for\n pipenv\n\n0.0.4 - 06/07/2018\n--------------------------------------------------------------------------------\n\n**Updated**\n\n\n#. `#11 `_: keep up-to-date with\n pypi-mobans\n\n0.0.3 - 24/02/2018\n--------------------------------------------------------------------------------\n\n**Added**\n\n#. To add all files to a git repo is being made optional. The action is\n specified in `git-repo-files` under `post-moban` section. This particular\n need arises when it is used to scaffold other type of projects such as npm.\n\n0.0.2 - 15/10/2017\n--------------------------------------------------------------------------------\n\n**Added**\n\n#. Automatically inflate project meta data. One yehua command and typing a few\n questions are required before a complete project scaffolding\n#. Automatically obtain setupmobans repo for previous task.\n#. Automatically initialize package as git project and add all project files for\n the user to commit\n\n**Removed**\n\n#. Built-in template files are off-loaded to setupmobans, which are more\n frequently updated.\n\n0.0.1 - 02/07/2017\n--------------------------------------------------------------------------------\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/moremoban/yehua/archive/0.0.7.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/moremoban/yehua", "keywords": "python", "license": "New BSD", "maintainer": "", "maintainer_email": "", "name": "yehua", "package_url": "https://pypi.org/project/yehua/", "platform": "", "project_url": "https://pypi.org/project/yehua/", "project_urls": { "Download": "https://github.com/moremoban/yehua/archive/0.0.7.tar.gz", "Homepage": "https://github.com/moremoban/yehua" }, "release_url": "https://pypi.org/project/yehua/0.0.7/", "requires_dist": null, "requires_python": "", "summary": "An interactive command line tool to provide a default scaffolding fora python package.", "version": "0.0.7" }, "last_serial": 5936079, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e657a59b3f99c547ddfe0f18c24ab03b", "sha256": "43949b95ebcb2ac22cad5c252ffd1276ec44f89e523c41419754b5e19fb76435" }, "downloads": -1, "filename": "yehua-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e657a59b3f99c547ddfe0f18c24ab03b", "packagetype": "bdist_wheel", "python_version": "any", "requires_python": null, "size": 18050, "upload_time": "2017-07-02T19:52:50", "url": "https://files.pythonhosted.org/packages/d8/7b/4a9e8c8e5b2bce1c0cfee066ccd2aed575ddb2e0c81a20aa08d5c12492b2/yehua-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c63dbfa2ccd7e4d10cec36fac2c81414", "sha256": "9c42a9ba92a94b4351776fb66c1aa37d335e175720ec8cacf68d530887b041a7" }, "downloads": -1, "filename": "yehua-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c63dbfa2ccd7e4d10cec36fac2c81414", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10976, "upload_time": "2017-07-02T19:52:35", "url": "https://files.pythonhosted.org/packages/22/e3/d147c87dcb014fdb52d12c5d79e70a2baff460ecd28acb811011f0408ae9/yehua-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0da129e387ee961db83b5839fa8e3ce5", "sha256": "7cd113838ec99fb680491c42792e52bd464f7985fccd88d59fe8f279ae5358cb" }, "downloads": -1, "filename": "yehua-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0da129e387ee961db83b5839fa8e3ce5", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 20948, "upload_time": "2017-10-16T20:24:49", "url": "https://files.pythonhosted.org/packages/4f/a1/ebeb8641d9415c126db10132878fc764211b5c3619f0a4a2c61adfbc4449/yehua-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d2740ac613a7cdf0e0169e39960e5d2", "sha256": "ba0d3e78818b70bd9ce9e0d6e652ca8d7fe549676d0e4a6de5f0fdc01f3e5223" }, "downloads": -1, "filename": "yehua-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1d2740ac613a7cdf0e0169e39960e5d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12426, "upload_time": "2017-10-16T20:24:47", "url": "https://files.pythonhosted.org/packages/84/ff/e57ac05990013ed73750a19d70aeefd9adbcf6e4441468be8dabb8c77f2e/yehua-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "07cbaa72d0621ee12a33458431f21a65", "sha256": "94830b3bd963c6e20b2f3ef6b3c5e9b59c59820b0326fd80215a5be66dd6f67d" }, "downloads": -1, "filename": "yehua-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "07cbaa72d0621ee12a33458431f21a65", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15668, "upload_time": "2018-02-24T20:13:03", "url": "https://files.pythonhosted.org/packages/ce/fd/f6bc85ddffdd260c0676e31c45f6e3f4503808556427d40cc695cc23b89f/yehua-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54678f47a5d1a79254dd719a4e551925", "sha256": "792fbb56f539dcf1c82bafaac61889e14abedf4edce81317c96c2bace40cbb09" }, "downloads": -1, "filename": "yehua-0.0.3.tar.gz", "has_sig": false, "md5_digest": "54678f47a5d1a79254dd719a4e551925", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12522, "upload_time": "2018-02-24T20:12:57", "url": "https://files.pythonhosted.org/packages/86/86/f30de954bb7c0836db87ab9ad621882d8aa7a10ec5d63f8f529146d9b92c/yehua-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e965446f35e0942471d90f14e4fab4aa", "sha256": "6ea8e947a5571559150f3943350eaf2a3ca7fdc90761d644a647a5ae5de6a372" }, "downloads": -1, "filename": "yehua-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e965446f35e0942471d90f14e4fab4aa", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15783, "upload_time": "2018-07-06T17:31:49", "url": "https://files.pythonhosted.org/packages/64/17/f48194701aea9a4c2b87ac851332e91496e414a4f031b54409714090b57e/yehua-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f3dc2fd3be1706a51fa001cdc72b92e", "sha256": "16fbcd2d35352e43129aefd15eb8a99794d01927569c2f123c7f58dafcc70a46" }, "downloads": -1, "filename": "yehua-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1f3dc2fd3be1706a51fa001cdc72b92e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12656, "upload_time": "2018-07-06T17:31:48", "url": "https://files.pythonhosted.org/packages/98/43/8ae61209921e98979c8b41e059a9a2b72c0565064de0cc3c365e40972a35/yehua-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "571872f5a52b92bb399e13abfff87159", "sha256": "8c492fa76e66b102423377f592c7ccb83bfb71e7ff5ce999c01423faf50f37cf" }, "downloads": -1, "filename": "yehua-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "571872f5a52b92bb399e13abfff87159", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15092, "upload_time": "2018-11-08T18:57:36", "url": "https://files.pythonhosted.org/packages/b3/cc/55439deb8221b908dac61db028e200ce12d2d0a2c1caf2a140b5ad7311eb/yehua-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f53096c157574f4be3f97c9134cde0bd", "sha256": "0c909ca65e908e4d10287e614c01a5bec8014c9e9afcb06b2f83d1dcef24907e" }, "downloads": -1, "filename": "yehua-0.0.5.tar.gz", "has_sig": false, "md5_digest": "f53096c157574f4be3f97c9134cde0bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16748, "upload_time": "2018-11-08T18:57:32", "url": "https://files.pythonhosted.org/packages/d6/10/5f1fc585fa25c573d3d4c1e293876cbcb24793143c3c1cc3d474f63b9e69/yehua-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "d62f81c0b1e0ca4d596482d092c4e0a2", "sha256": "5b4fef21a3b3ea5579d6b8fe91ed4ca1f0c7257b1fa371f0075b039e8992ccdd" }, "downloads": -1, "filename": "yehua-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d62f81c0b1e0ca4d596482d092c4e0a2", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 15114, "upload_time": "2019-05-04T21:46:15", "url": "https://files.pythonhosted.org/packages/1b/18/da53910c2440bc5da217d3646a7ff7bb513f1d472cc1282cb9dc45333ff1/yehua-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75f6c17cb3ee82bb14ad79813de40e15", "sha256": "eabc4b0ac0aa1e7cb29009a08367999ab7afa8f822e2e39de9607e2d89031658" }, "downloads": -1, "filename": "yehua-0.0.6.tar.gz", "has_sig": false, "md5_digest": "75f6c17cb3ee82bb14ad79813de40e15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18145, "upload_time": "2019-05-04T21:46:13", "url": "https://files.pythonhosted.org/packages/fc/6e/5af4d2db062e3dae081bc4214d6e04ce098f2d5acd3fc3096356bc13000d/yehua-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "428ff70f6a5eecc147c5635d7a315c60", "sha256": "54959acfd9212254ed0a1346a1e5796fabb531e2ef4fe822339b4ca8725567b5" }, "downloads": -1, "filename": "yehua-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "428ff70f6a5eecc147c5635d7a315c60", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 16703, "upload_time": "2019-10-06T21:37:09", "url": "https://files.pythonhosted.org/packages/0e/f9/5f00bf21e4f8e7c70c8f5548b03b568a99b57783a6075ebfa8f7b9c20346/yehua-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9eeed51a66d0af9fe67975e960aa4a4", "sha256": "391fe547d7b97133f6495f6e976071b2c514e98c49445ed8c2026ba65f934f0e" }, "downloads": -1, "filename": "yehua-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c9eeed51a66d0af9fe67975e960aa4a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18809, "upload_time": "2019-10-06T21:37:06", "url": "https://files.pythonhosted.org/packages/59/eb/d0717db45f04ed2e185e0cb59d354b5a2e568db3f4c148ec1592b02f1ba8/yehua-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "428ff70f6a5eecc147c5635d7a315c60", "sha256": "54959acfd9212254ed0a1346a1e5796fabb531e2ef4fe822339b4ca8725567b5" }, "downloads": -1, "filename": "yehua-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "428ff70f6a5eecc147c5635d7a315c60", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 16703, "upload_time": "2019-10-06T21:37:09", "url": "https://files.pythonhosted.org/packages/0e/f9/5f00bf21e4f8e7c70c8f5548b03b568a99b57783a6075ebfa8f7b9c20346/yehua-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9eeed51a66d0af9fe67975e960aa4a4", "sha256": "391fe547d7b97133f6495f6e976071b2c514e98c49445ed8c2026ba65f934f0e" }, "downloads": -1, "filename": "yehua-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c9eeed51a66d0af9fe67975e960aa4a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18809, "upload_time": "2019-10-06T21:37:06", "url": "https://files.pythonhosted.org/packages/59/eb/d0717db45f04ed2e185e0cb59d354b5a2e568db3f4c148ec1592b02f1ba8/yehua-0.0.7.tar.gz" } ] }