{ "info": { "author": "pwwang", "author_email": "pwwang@pwwang.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "# pyppl_report\n\n[![Pypi][3]][4] [![Github][5]][6] [![PyPPL][7]][1] [![PythonVers][8]][4] [![Travis building][10]][11] [![Codacy][12]][13] [![Codacy coverage][14]][13]\n\nA report generating system for [PyPPL][1]\n\n## Installation\nRequires pandoc 2.7+ (and wkhtmltopdf 0.12.4+ when creating PDF reports)\n\n`pyppl_report` requires `pandoc/wkhtmltopdf` to be installed in `$PATH`\n\n```shell\npip install pyppl_report\n```\n\n## Usage\n### Specifiation of template\n\n````python\npPyClone.config.report_template = \"\"\"\n# {{report.title}}\n\nPyClone[1] is a tool using Probabilistic model for inferring clonal population\nstructure from deep NGS sequencing.\n\n![Similarity matrix]({{path.join(job.o.outdir, \"plots/loci/similarity_matrix.svg\")}})\n\n```table\ncaption: Clusters\nfile: \"{{path.join(job.o.outdir, \"tables/cluster.tsv\")}}\"\nrows: 10\n```\n\n[1]: Roth, Andrew, et al. \"PyClone: statistical inference of clonal population structure in cancer.\"\nNature methods 11.4 (2014): 396.\n\"\"\"\n\n# or use a template file\n\npPyClone.config.report_template = \"file:/path/to/template.md\"\n````\n\n### Generating report\n```python\nPyPPL().start(pPyClone).run().report(\n\t'/path/to/report',\n\ttitle='Clonality analysis using PyClone',\n\ttemplate='bootstrap'\n)\n\n# or save report in a directory\nPyPPL(name='Awesome-pipeline').start(pPyClone).run().report('/path/to/')\n# report generated at ./Awesome-pipeline.report.html\n```\n\nCommand line tool:\n```shell\n> pyppl report\nDescription:\n Convert a Markdown file to report.\n\nUsage:\n pyppl report --in [OPTIONS]\n\nRequired options:\n -i, --in - The input file.\n\nOptional options:\n -o, --out - The output file. Default: .html\n -n, --nonstand [BOOL] - Non-standalone mode. Save static files in .files separately. \\\n Default: False\n --filter - The filters for pandoc Default: []\n --toc - The depth of heading levels to put in TOC. 0 to disable. Default: 3\n --title - The title of the document.\n If the first element of the document is H1 (#), this will be ignored \\\n and the text of H1 will be used as title.\n If the title is specified as \"# Title\", then a title will be added \\\n anyway. Default: Untitled document\n --template - The template to use. Either standard template name or full path to \\\n template file. Default: bootstrap\n -h, -H, --help - Show help message and exit.\n```\n\n\n### Extra data for rendering\nYou can generate a `toml` file named `job.report.data.toml` under `` with extra data to render the report template. Beyond that, `proc` attributes and `args` can also be used.\n\nFor example:\n`job.report.data.toml`:\n```toml\ndescription = 'A awesome report for job 1'\n```\nThen in your template, you can use it:\n```markdown\n## {{jobs[0].description}}\n```\n\n## Built-in templates\n\nCheck them to see features those templates support:\n\n- [Layui](https://pwwang.github.io/pyppl_report/layui.html)\n- [Bootstrip](https://pwwang.github.io/pyppl_report/bootstrap.html)\n- [Semantic](https://pwwang.github.io/pyppl_report/semantic.html)\n\n\n## How does it work?\n\nFollowing figure demonstrates how the plugin works:\n\n![How it works](./docs/howitworks.png)\n\nEach process that you want to report, will need to have a template assigned with `pXXX.config.report_template`. Like scripts, you may prefice it with `file:`, and then followed by an absolute path to the template or a relative one to where it's assigned. You may even assign a template using a direct string. A process with no template assign will be hidden from the report.\n\nYou can use the data from the jobs or the process to render the template.\n\nThe report for each process will then be assembled by the plugin, and converted using pandoc with a default template and some built-in filters. Finally, your report will be a standalone html file.\n\nFor larget reports, `non-standaone` reports are recommended: `.report(standalone=False, ...)`\n\n## Environments\n\nYou may pass values to process envs to control report content:\n```python\npXXX.config.report_envs.foo = \"bar\"\n```\nThen in you can use it in the report template:\n```python\npXXX.config.report_template = \"\"\"\nThe value of foo is \"{{foo}}\".\n\"\"\"\n```\n\n### Preserved envs variables\n\nWe have 4 preserved variables under `pXXX.envs`:\n```python\n# Control the level of headings in the\npXXX.config.report_envs.level = 1\n# Content to add before the template\npXXX.config.report_envs.pre = ''\n# Content to add after the template\npXXX.config.report_envs.post = ''\n# The title of the process report\npXXX.config.report_envs.title = None\n```\n\n#### Process report levels\n\nNo matter at which level you want to put this process report in the entire report, you need to each heading from level 1, then according to `pXXX.config.report_envs.level`, the headings will be shifted to corresponding level. For example, with `pXXX.config.report_envs.level = 2`, following template\n\n```markdown\n# Section\n## Subsection\ncontent\n```\n\nwill be rendered into:\n```markdown\n## Section\n### Subsection\ncontent\n```\n\nIt will not affect comments in code blocks such as:\n````\n```\n## some comments\n```\n````\n\n#### Adding extra contents to process report\n\nYou may add extra contents to the process report. For example, if you put the process report at level 2, then you probably need a level-1 heading. For previous example, if you have `pXXX.config.report_envs.level = 2`, without a level-2 heading, the entire report will look like:\n\n```markdown\n## Section\n### Subsection\ncontent\n```\n\nThen you missed a level-1 heading, which will make your report look wired. Here you can specify a level-1 heading with `pXXX.config.report_envs.pre = '# I am H1'`:\n\n```markdown\n# I am H2\n## Section\n### Subsection\ncontent\n```\n\nYou may also append something to the process report with `pXXX.config.report_envs.post`\n\nHeadings added by `pre` and `post` will **NOT** be adjusted by `pXXX.config.report_envs.level`\n\n#### Title of the process report\n\nBy default, if not assigned or assigned with `None`, the process description will be used as the title of the process report. Of course you can overwrite it with `pXXX.config.report_envs.title`.\n\n```python\n# by default\npXXX = Proc(desc = 'Some analysis')\n# ... other necessary settings\npXXX.report = '# {{report.title}}'\n```\n\nwill be rendered as:\n```markdown\n# Some analysis\n```\n\nwith `pXXX.config.report_envs.title = 'An amazing analysis'`, we will have:\n\n```markdown\n# An amazing analysis\n```\n\n### Making your report flexiable\n\nYou can interpolate some variables in the templates to make your report flexiable. For example, you may want to hide an image in some cases:\n\n```markdown\n# {{report title}}\n\nI have enough details.\n\n{% if report.get('showimage') %}\n![Image](./path/to/image)\n{% endif %}\n```\n\nThen you can show that image in the report only when you have `pXXX.config.report_envs.showimage = True`.\n\n## Change log\n\n[Change log](./docs/CHANGELOG.md)\n\n[1]: https://github.com/pwwang/PyPPL\n[2]: https://pyppl_report.readthedocs.io/en/latest/\n[3]: https://img.shields.io/pypi/v/pyppl_report?style=flat-square\n[4]: https://pypi.org/project/pyppl_report/\n[5]: https://img.shields.io/github/tag/pwwang/pyppl_report?style=flat-square\n[6]: https://github.com/pwwang/pyppl_report\n[7]: https://img.shields.io/github/tag/pwwang/pyppl?label=PyPPL&style=flat-square\n[8]: https://img.shields.io/pypi/pyversions/pyppl_report?style=flat-square\n[9]: https://img.shields.io/readthedocs/pyppl_report.svg?style=flat-square\n[10]: https://img.shields.io/travis/pwwang/pyppl_report?style=flat-square\n[11]: https://travis-ci.org/pwwang/pyppl_report\n[12]: https://img.shields.io/codacy/grade/2b7914a18f794248a62d7b36eb2408a3?style=flat-square\n[13]: https://app.codacy.com/manual/pwwang/pyppl_report/dashboard\n[14]: https://img.shields.io/codacy/coverage/2b7914a18f794248a62d7b36eb2408a3?style=flat-square\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/pwwang/pyppl_report", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyppl-report", "package_url": "https://pypi.org/project/pyppl-report/", "platform": "", "project_url": "https://pypi.org/project/pyppl-report/", "project_urls": { "Homepage": "https://github.com/pwwang/pyppl_report", "Repository": "https://github.com/pwwang/pyppl_report" }, "release_url": "https://pypi.org/project/pyppl-report/0.6.2/", "requires_dist": [ "toml (>=0.10,<0.11)", "cmdy", "pyppl", "liquidpy", "panflute (>=1.11.0,<1.12.0)" ], "requires_python": ">=3.6,<4.0", "summary": "A report generating system for PyPPL", "version": "0.6.2", "yanked": false, "yanked_reason": null }, "last_serial": 7409227, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0a2a9a7c78fa3ab6d3b4376bea33dd77", "sha256": "4a2be6fd93e95139d83ae61f1dc703fdbdce4ac2f690ebcc2fe86701bb9dff45" }, "downloads": -1, "filename": "pyppl_report-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0a2a9a7c78fa3ab6d3b4376bea33dd77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 84629, "upload_time": "2019-07-12T23:49:21", "upload_time_iso_8601": "2019-07-12T23:49:21.941496Z", "url": "https://files.pythonhosted.org/packages/06/fd/228118f878cffbc0427167ef8ce190c814e4c417ccee24e81fb5e5613cb9/pyppl_report-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dadb158e14d8bd207b08ee1e78f99855", "sha256": "58c664404e11c3577ba223a98a0dddab27b39ef38d36e6bee4f071c4ea4aa6f0" }, "downloads": -1, "filename": "pyppl-report-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dadb158e14d8bd207b08ee1e78f99855", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 82203, "upload_time": "2019-07-12T23:49:19", "upload_time_iso_8601": "2019-07-12T23:49:19.296952Z", "url": "https://files.pythonhosted.org/packages/03/ba/4d2eea104a163ea824584d821e7b81a176db4bf6bbcd1206600694ce203b/pyppl-report-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "210ceff1101226a0373e5a62756e740b", "sha256": "35cb0ec3132b3a9c61e93dc5c6d875d001ab8106468e3aaf747393f2c32940d8" }, "downloads": -1, "filename": "pyppl_report-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "210ceff1101226a0373e5a62756e740b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 87369, "upload_time": "2019-08-05T23:55:34", "upload_time_iso_8601": "2019-08-05T23:55:34.602735Z", "url": "https://files.pythonhosted.org/packages/80/0a/13448fcbc7be57a922b54b1884ebfd0131074aaec8bf998587af635483b4/pyppl_report-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "53e5332b02c8882c2839d73aee825592", "sha256": "4627a81c5d2f7a5b542ed87d3a209dda32f98bdb82b3964c4dc44e5f4eac4bae" }, "downloads": -1, "filename": "pyppl-report-0.1.0.tar.gz", "has_sig": false, "md5_digest": "53e5332b02c8882c2839d73aee825592", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 84544, "upload_time": "2019-08-05T23:55:32", "upload_time_iso_8601": "2019-08-05T23:55:32.670137Z", "url": "https://files.pythonhosted.org/packages/41/c9/6f45ac049ef95b78a5a9236326d60486d84ea08da4c5aa9175919e23e347/pyppl-report-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7441e8fbac0a200391fce70bac36e42a", "sha256": "960d0a4ebf6e70e5cd6e7c97d75583ac21b655bd5b5b9a9557f8893075c2277a" }, "downloads": -1, "filename": "pyppl_report-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7441e8fbac0a200391fce70bac36e42a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 170351, "upload_time": "2019-08-07T22:40:36", "upload_time_iso_8601": "2019-08-07T22:40:36.817830Z", "url": "https://files.pythonhosted.org/packages/15/4f/743e3822b29a0e4d33348c3fb0db7dcacb2ce1ab6ab7e9a0c7cbec812752/pyppl_report-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "14062203fc8626e0b1a24bb91da6cb11", "sha256": "d063d853ccbc7e593691633c32e7875f9acc8feb72cbc64132964dfbabbda229" }, "downloads": -1, "filename": "pyppl-report-0.1.1.tar.gz", "has_sig": false, "md5_digest": "14062203fc8626e0b1a24bb91da6cb11", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 166865, "upload_time": "2019-08-07T22:40:35", "upload_time_iso_8601": "2019-08-07T22:40:35.375459Z", "url": "https://files.pythonhosted.org/packages/64/4f/8a90c698a6e8c270a9097d021aeb3da66a85f99733a698a5c287c9123b19/pyppl-report-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5e6f6fd2b2b1c92d6f32b26ec557a3ea", "sha256": "3b5e55a8c2a869abe25a66360071c50d3db39e788861211e10aeb2f425210491" }, "downloads": -1, "filename": "pyppl_report-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5e6f6fd2b2b1c92d6f32b26ec557a3ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 170350, "upload_time": "2019-08-08T23:14:59", "upload_time_iso_8601": "2019-08-08T23:14:59.731928Z", "url": "https://files.pythonhosted.org/packages/79/22/557a826546b3c873d8a8b72e3a1eb7ce4ca7d55e2dce0152a9acbe02f789/pyppl_report-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "139f887fc8a633b2a257f9b2dece2b5c", "sha256": "5a21ae5afb9b5685bb8c421eac5876e1691de936bf82a408139e81af585e8a5d" }, "downloads": -1, "filename": "pyppl-report-0.1.2.tar.gz", "has_sig": false, "md5_digest": "139f887fc8a633b2a257f9b2dece2b5c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167035, "upload_time": "2019-08-08T23:14:57", "upload_time_iso_8601": "2019-08-08T23:14:57.866101Z", "url": "https://files.pythonhosted.org/packages/62/3b/1138bb052933783cfb4ab854b62348d47ef3f97b7e9345ae5f74442f5721/pyppl-report-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "63494918b067b2eeced19f5baa6b886b", "sha256": "bb3cce278e06d0252be4d9f537902a8a6598b6045e493b3a1a839d083248107d" }, "downloads": -1, "filename": "pyppl_report-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "63494918b067b2eeced19f5baa6b886b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 170383, "upload_time": "2019-08-15T03:40:24", "upload_time_iso_8601": "2019-08-15T03:40:24.256334Z", "url": "https://files.pythonhosted.org/packages/41/b7/2a69d57f98f0292e01049b6a7c6462852f7532c8134b72099ddf3d09755c/pyppl_report-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "24b42aa865fdc988bee741813d94c1b4", "sha256": "fbf20851a964a35eeb986c1dac516eca88e9516a047121f68327873bdc3eb6d7" }, "downloads": -1, "filename": "pyppl-report-0.1.3.tar.gz", "has_sig": false, "md5_digest": "24b42aa865fdc988bee741813d94c1b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 166888, "upload_time": "2019-08-15T03:40:22", "upload_time_iso_8601": "2019-08-15T03:40:22.734503Z", "url": "https://files.pythonhosted.org/packages/2e/e6/1caf3cf261ed2cfe7f1c2976a08c9c5b587a80e24ab0ef119c7d091ff4f5/pyppl-report-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "89c475f75b0e0f0dc43a43a130f073e1", "sha256": "211702670a7e4de1c102558ce7929bbb4cf5decb5037b04e89bcc71e83dca317" }, "downloads": -1, "filename": "pyppl_report-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "89c475f75b0e0f0dc43a43a130f073e1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 171352, "upload_time": "2019-08-18T22:12:09", "upload_time_iso_8601": "2019-08-18T22:12:09.401621Z", "url": "https://files.pythonhosted.org/packages/77/2c/4c011f8a1a52e2b06881baeefcfdcf0a5d2d8b54e6db9a3508fa5ab624d3/pyppl_report-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b78dcdaf4db966317eaae3b4453f22e1", "sha256": "ad6db1872196268ee236af3659faaec9cd85700181cd633a7120718b3f94498c" }, "downloads": -1, "filename": "pyppl-report-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b78dcdaf4db966317eaae3b4453f22e1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167805, "upload_time": "2019-08-18T22:12:07", "upload_time_iso_8601": "2019-08-18T22:12:07.580761Z", "url": "https://files.pythonhosted.org/packages/0f/f5/4a3a8522be4a74eeb03764f4aa72dfc86a0d328cd8f46af4f70e4ac528e1/pyppl-report-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "12cf0a0278d5f6ce9da7ad30f2c51551", "sha256": "cc3fd351fb0bbbb4f88ffa7dd880e40efff1060eac4ba8245c333eb011387273" }, "downloads": -1, "filename": "pyppl_report-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "12cf0a0278d5f6ce9da7ad30f2c51551", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 172606, "upload_time": "2019-08-21T02:21:34", "upload_time_iso_8601": "2019-08-21T02:21:34.869683Z", "url": "https://files.pythonhosted.org/packages/1b/3b/f57b083ff5f81fd5b3006f941c35ed7c20fe1a4572b26c4141b1b2ab55ff/pyppl_report-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0446990a694872ae8cf688c14619aad3", "sha256": "1f2fa36ed59d67875659fc678647f8837b08d17d2d396fb743995347fc1c2f87" }, "downloads": -1, "filename": "pyppl-report-0.1.5.tar.gz", "has_sig": false, "md5_digest": "0446990a694872ae8cf688c14619aad3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 168607, "upload_time": "2019-08-21T02:21:33", "upload_time_iso_8601": "2019-08-21T02:21:33.143659Z", "url": "https://files.pythonhosted.org/packages/1e/d9/b9f6eb730cf3e488de1c613e65436f5a257e4762f9cd1ab2cd3bf8563a45/pyppl-report-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5.post0": [ { "comment_text": "", "digests": { "md5": "8e3ee4cf9d96040d7832a45791ac3453", "sha256": "7c213affb41fe7f0d6a108459f34027ed2b51109c3bbe5eca98995d02c64ee3e" }, "downloads": -1, "filename": "pyppl_report-0.1.5.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e3ee4cf9d96040d7832a45791ac3453", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 171643, "upload_time": "2019-08-21T21:24:59", "upload_time_iso_8601": "2019-08-21T21:24:59.059684Z", "url": "https://files.pythonhosted.org/packages/9d/3a/a3f38ca58bf325e1c2ded9adb5bf8d45aa4266dcf198d4eff9c8c58a3539/pyppl_report-0.1.5.post0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1df30c38f16c694ec1341bead687882f", "sha256": "ae21f9ec028994d79398a08e7a9f5bd38f95a169344b285894fb95b5386a8a77" }, "downloads": -1, "filename": "pyppl_report-0.1.5.post0.tar.gz", "has_sig": false, "md5_digest": "1df30c38f16c694ec1341bead687882f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167989, "upload_time": "2019-08-21T21:25:00", "upload_time_iso_8601": "2019-08-21T21:25:00.622776Z", "url": "https://files.pythonhosted.org/packages/3d/bf/4406cfa1ccb8652ef343cb511da6b90dad50976d1ac573c0593a0c136a9d/pyppl_report-0.1.5.post0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9af934a462c25f15897725fe62031f51", "sha256": "74cb28c4c4aa00152ffb6d02f21a15e6e6b562bf0d984b6848d76f88abbde57b" }, "downloads": -1, "filename": "pyppl_report-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9af934a462c25f15897725fe62031f51", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 171586, "upload_time": "2019-08-21T21:58:05", "upload_time_iso_8601": "2019-08-21T21:58:05.095742Z", "url": "https://files.pythonhosted.org/packages/9f/5d/559b88a32945ec927280e9fa0f786f7689fb4c6eaaa91c41cc3691f1075d/pyppl_report-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "64cc71b195059e46a44f3994a251228f", "sha256": "3748b0cc41d56eea6e593aff6d49c50b02b588185a1c2632e1b96e4a75673f4f" }, "downloads": -1, "filename": "pyppl_report-0.2.0.tar.gz", "has_sig": false, "md5_digest": "64cc71b195059e46a44f3994a251228f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167755, "upload_time": "2019-08-21T21:58:06", "upload_time_iso_8601": "2019-08-21T21:58:06.925253Z", "url": "https://files.pythonhosted.org/packages/75/a7/9b31ec73d2bf925bbf7ce2edc6e964c3612a48c895922452729ee9061b96/pyppl_report-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0.post0": [ { "comment_text": "", "digests": { "md5": "12f69cb908b6dc62be4ca121a45853ae", "sha256": "174b7fb8e60778c00909bcc8c761389125056831c000f38dba78e940e279da57" }, "downloads": -1, "filename": "pyppl_report-0.2.0.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "12f69cb908b6dc62be4ca121a45853ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 171645, "upload_time": "2019-08-21T22:14:16", "upload_time_iso_8601": "2019-08-21T22:14:16.453219Z", "url": "https://files.pythonhosted.org/packages/80/9f/0b5713237825fa1506d9edaa8e4ce33b8d2cc39f3c5f390f121e18ef2025/pyppl_report-0.2.0.post0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8f9a503b1f6340665b0d752a5065ce9", "sha256": "ee1b41c1f814df990db22cd3e996352671016e3674b2bc8cc024cac33970ff7a" }, "downloads": -1, "filename": "pyppl_report-0.2.0.post0.tar.gz", "has_sig": false, "md5_digest": "a8f9a503b1f6340665b0d752a5065ce9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167995, "upload_time": "2019-08-21T22:14:18", "upload_time_iso_8601": "2019-08-21T22:14:18.493286Z", "url": "https://files.pythonhosted.org/packages/31/53/0bf90bf32b6026cb730920d96dd1c41a4aae719c5b6e303ae50645487548/pyppl_report-0.2.0.post0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "32a7bdedbbcc9af608b1e1b00b16c98e", "sha256": "42e05d4e07fb1306f48086624f807bda128ff8b4287f6f68a437f7e87b4a4457" }, "downloads": -1, "filename": "pyppl_report-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "32a7bdedbbcc9af608b1e1b00b16c98e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 171826, "upload_time": "2019-09-24T23:13:25", "upload_time_iso_8601": "2019-09-24T23:13:25.020256Z", "url": "https://files.pythonhosted.org/packages/b2/a1/4b996536495ad436deee3b21b211a812d917bbdb43568763542590ecd2b5/pyppl_report-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6c278b3af2dac1a8a071e3ad13eae7c7", "sha256": "d1768932e16bf9d50f8426a0105f7870385f5210fc41913933fc84c642eec0a8" }, "downloads": -1, "filename": "pyppl_report-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6c278b3af2dac1a8a071e3ad13eae7c7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 167991, "upload_time": "2019-09-24T23:13:27", "upload_time_iso_8601": "2019-09-24T23:13:27.483620Z", "url": "https://files.pythonhosted.org/packages/4f/52/b56c1d7761ea3033d74b4d4b054726b33254cd6f885820dcab0e5ba38587/pyppl_report-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "730ce2497bee94026239a958ca889fe1", "sha256": "279cb7fa74021d3d0460076c929a62774bec14387ef8e6fd24ebda1bff651afc" }, "downloads": -1, "filename": "pyppl_report-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "730ce2497bee94026239a958ca889fe1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 173529, "upload_time": "2019-10-08T19:07:12", "upload_time_iso_8601": "2019-10-08T19:07:12.261851Z", "url": "https://files.pythonhosted.org/packages/58/11/13192b924e174ebbb6e3402a826c7df800cea63798fc65c8cce08dd316ab/pyppl_report-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eb55b6cdd8128987b21cb618534cecb7", "sha256": "04afeeb5300380b45bee547f25f7e3ad5e0b798b431f744cf198498fee79b612" }, "downloads": -1, "filename": "pyppl_report-0.3.0.tar.gz", "has_sig": false, "md5_digest": "eb55b6cdd8128987b21cb618534cecb7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 169097, "upload_time": "2019-10-08T19:07:14", "upload_time_iso_8601": "2019-10-08T19:07:14.083674Z", "url": "https://files.pythonhosted.org/packages/af/ea/5c7e63aae382efd4ffb486de553ae2b80c52f37010f84b59e4cc2a026613/pyppl_report-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d419dafae774e31ce76451a75fe05c1d", "sha256": "196ca019b81ae12b24dd86b9bd12e5d01471eb0024fa125dc5daba762730d49b" }, "downloads": -1, "filename": "pyppl_report-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d419dafae774e31ce76451a75fe05c1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 173666, "upload_time": "2019-10-23T16:58:47", "upload_time_iso_8601": "2019-10-23T16:58:47.209606Z", "url": "https://files.pythonhosted.org/packages/19/d9/41c9790c6cf31c65f6f2049f34a1d4f02509a986a2f57b5818eb6d2c2429/pyppl_report-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7038978df4220ce8bc1b000736ceb1c4", "sha256": "3d172f24e0c878f2c72aa89e48ab5303714b031fd4ce58c55484edbb9bb4b719" }, "downloads": -1, "filename": "pyppl_report-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7038978df4220ce8bc1b000736ceb1c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 169389, "upload_time": "2019-10-23T16:58:48", "upload_time_iso_8601": "2019-10-23T16:58:48.738509Z", "url": "https://files.pythonhosted.org/packages/ef/20/404316231059403ccbe75cada7300ca709a63d293702e4fe4586e227093e/pyppl_report-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2.post0": [ { "comment_text": "", "digests": { "md5": "258e488bcd30ae9f8c7c39b575cf2cc2", "sha256": "df38500dfa916bbe8822118ac604b527592f9f05782f0ded0753be9898b4b9c5" }, "downloads": -1, "filename": "pyppl_report-0.4.2.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "258e488bcd30ae9f8c7c39b575cf2cc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 173992, "upload_time": "2019-12-05T22:53:29", "upload_time_iso_8601": "2019-12-05T22:53:29.248361Z", "url": "https://files.pythonhosted.org/packages/60/22/fb73c87a68d97e1c909fafb1f058ae30db87b9f8d0e14983d7c86abd51f6/pyppl_report-0.4.2.post0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "86c7b6412babffdddfa6498205f60e68", "sha256": "6f9daaae53ec89442922d1dc74579e43af6c5436abf539bad2bd7a538068aa4d" }, "downloads": -1, "filename": "pyppl_report-0.4.2.post0.tar.gz", "has_sig": false, "md5_digest": "86c7b6412babffdddfa6498205f60e68", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 169867, "upload_time": "2019-12-05T22:53:31", "upload_time_iso_8601": "2019-12-05T22:53:31.029746Z", "url": "https://files.pythonhosted.org/packages/f5/a5/500347aa9b3881481cdba7f36c32a5296f26f66411659e40c1a3d9e1418d/pyppl_report-0.4.2.post0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c44d13d1d3f9a8729ff26bb6b5fa0185", "sha256": "c89bc4956682b31a9a47b985ec4a443d97204c31317c13f26cbc617db46c71f0" }, "downloads": -1, "filename": "pyppl_report-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c44d13d1d3f9a8729ff26bb6b5fa0185", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 173758, "upload_time": "2019-12-28T00:35:12", "upload_time_iso_8601": "2019-12-28T00:35:12.552035Z", "url": "https://files.pythonhosted.org/packages/5d/99/1ed75709817c57eb4c7ea06c34f58d7d024c23f116cad762fe9592bc2366/pyppl_report-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b24cc42d8c726073d48f53c6b4f89069", "sha256": "a265354453a64dc5c0c5f28d9c49fb8357db1c36597ca0ea6f94487235634f35" }, "downloads": -1, "filename": "pyppl_report-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b24cc42d8c726073d48f53c6b4f89069", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 169991, "upload_time": "2019-12-28T00:35:14", "upload_time_iso_8601": "2019-12-28T00:35:14.312947Z", "url": "https://files.pythonhosted.org/packages/d3/f0/face32287d9ff7eea5ce40a1a7aa71de4b065074c1cb4cade55d22244c88/pyppl_report-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0rc0": [ { "comment_text": "", "digests": { "md5": "d004f49f4793ba6151dd6ca64e9198d0", "sha256": "b52ef27c465bd4b216aec43d5caaa78f32a3ffe6447e7bd06e6c4f0f8b8a0dcc" }, "downloads": -1, "filename": "pyppl_report-0.5.0rc0-py3-none-any.whl", "has_sig": false, "md5_digest": "d004f49f4793ba6151dd6ca64e9198d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 174091, "upload_time": "2019-12-25T20:31:28", "upload_time_iso_8601": "2019-12-25T20:31:28.564950Z", "url": "https://files.pythonhosted.org/packages/bb/8b/42d31b869ac57559d5bf7854d681ebb3dae6ae619e3392928776972e4168/pyppl_report-0.5.0rc0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b9713bf0177f5ab38aa56094a80040b9", "sha256": "5223244a923343f7097c0d10680899fadf2122c99021ceb42d74782f75605b8b" }, "downloads": -1, "filename": "pyppl_report-0.5.0rc0.tar.gz", "has_sig": false, "md5_digest": "b9713bf0177f5ab38aa56094a80040b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 169951, "upload_time": "2019-12-25T20:31:30", "upload_time_iso_8601": "2019-12-25T20:31:30.831048Z", "url": "https://files.pythonhosted.org/packages/0a/ed/31b1025f6608f32b3068d74a293e7a280c113f93e459b73ef8063366c497/pyppl_report-0.5.0rc0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0rc1": [ { "comment_text": "", "digests": { "md5": "0c9ae622bef8aa073f46bf4175957018", "sha256": "0ce2a10e2abe7a91494f2dc3971cd579a665471243d253e03ceb953bd59265fe" }, "downloads": -1, "filename": "pyppl_report-0.5.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "0c9ae622bef8aa073f46bf4175957018", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 174224, "upload_time": "2019-12-25T20:52:01", "upload_time_iso_8601": "2019-12-25T20:52:01.905286Z", "url": "https://files.pythonhosted.org/packages/20/d0/e128417be05cbf1c662865e4075d498649e5e83ec951b724b77f8e7fdfd8/pyppl_report-0.5.0rc1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "84cf15692ae6a0c635e07a16462d254b", "sha256": "adaee6c3c84d0f7a8fb5d86ced89f67bffeff1a1350494bcfc2b0a048f76ac9c" }, "downloads": -1, "filename": "pyppl_report-0.5.0rc1.tar.gz", "has_sig": false, "md5_digest": "84cf15692ae6a0c635e07a16462d254b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 170135, "upload_time": "2019-12-25T20:52:03", "upload_time_iso_8601": "2019-12-25T20:52:03.802670Z", "url": "https://files.pythonhosted.org/packages/de/27/7e5276992b278e3be2288d658c20c25b2a5be802788bc48d69a4a823d5a1/pyppl_report-0.5.0rc1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "fc7dfd164c948fc5429293e905ebc2a8", "sha256": "cac617870881ec0d572f4d16775833a4a987e8e7be842fc907a19207a5f44e1f" }, "downloads": -1, "filename": "pyppl_report-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fc7dfd164c948fc5429293e905ebc2a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2156083, "upload_time": "2020-02-14T20:13:04", "upload_time_iso_8601": "2020-02-14T20:13:04.076587Z", "url": "https://files.pythonhosted.org/packages/c1/3d/1fee10950f3f2b8524da156052ab6e6bf30af06118c99b7d5784f54439ba/pyppl_report-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e48fa59e086c8718a8d0fe57c2178d20", "sha256": "4951ea47e567ec41d12f417cd732d6388e29af89a991cd03b8d2f60726808214" }, "downloads": -1, "filename": "pyppl_report-0.6.0.tar.gz", "has_sig": false, "md5_digest": "e48fa59e086c8718a8d0fe57c2178d20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2087470, "upload_time": "2020-02-14T20:13:06", "upload_time_iso_8601": "2020-02-14T20:13:06.424192Z", "url": "https://files.pythonhosted.org/packages/64/b9/3fc1b86b05dc5e2792bb5c8046f0ba1b2b5d0714a0434a437862398a597a/pyppl_report-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "e3e47cb2634cfd9907cfbf97ee6113a0", "sha256": "d305186e92bda016b90f4a88fa30b6d58c23990f4a7c08c0bd70e13fec8c8d56" }, "downloads": -1, "filename": "pyppl_report-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e3e47cb2634cfd9907cfbf97ee6113a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2156109, "upload_time": "2020-05-11T21:44:53", "upload_time_iso_8601": "2020-05-11T21:44:53.264186Z", "url": "https://files.pythonhosted.org/packages/a0/da/e3113c2c17d63bb98fe3a01847724beb63523e7fd13bb1fde3e1d8375caa/pyppl_report-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c7d15746154f35b28a98c807b3f18dcd", "sha256": "617de6c9ec02d7864df93f9d4def9c924a834cf30b9abf1952c9808b142bdb1c" }, "downloads": -1, "filename": "pyppl_report-0.6.1.tar.gz", "has_sig": false, "md5_digest": "c7d15746154f35b28a98c807b3f18dcd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2087504, "upload_time": "2020-05-11T21:44:54", "upload_time_iso_8601": "2020-05-11T21:44:54.602851Z", "url": "https://files.pythonhosted.org/packages/6e/42/c6993725e38b784d0f311276ee81890efca6ffedc2bb7d9d8de8b2de8be8/pyppl_report-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "0e3bd290c6f509aacb04c1218c2aff66", "sha256": "dc1d30db0627edf84ac8f8fac0c0d0bc8239781a231e165d6425dc0086becf70" }, "downloads": -1, "filename": "pyppl_report-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0e3bd290c6f509aacb04c1218c2aff66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2156106, "upload_time": "2020-06-06T04:54:18", "upload_time_iso_8601": "2020-06-06T04:54:18.777875Z", "url": "https://files.pythonhosted.org/packages/65/5b/736f693f9b58e0d85126def6750c02b1f7a7f62447f3055d9d56d46f93bc/pyppl_report-0.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3a6d3420a3f873a1f515d6cfe739c613", "sha256": "dc283bb31c1934df3212c9860a16de38c5c07de7ab119f5388c75bda1637f661" }, "downloads": -1, "filename": "pyppl_report-0.6.2.tar.gz", "has_sig": false, "md5_digest": "3a6d3420a3f873a1f515d6cfe739c613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2087472, "upload_time": "2020-06-06T04:54:20", "upload_time_iso_8601": "2020-06-06T04:54:20.661278Z", "url": "https://files.pythonhosted.org/packages/15/b5/4145f05223c5ed2742aa1a0bbc29d273e00e095d385959d3c7edf973ce1e/pyppl_report-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0e3bd290c6f509aacb04c1218c2aff66", "sha256": "dc1d30db0627edf84ac8f8fac0c0d0bc8239781a231e165d6425dc0086becf70" }, "downloads": -1, "filename": "pyppl_report-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0e3bd290c6f509aacb04c1218c2aff66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 2156106, "upload_time": "2020-06-06T04:54:18", "upload_time_iso_8601": "2020-06-06T04:54:18.777875Z", "url": "https://files.pythonhosted.org/packages/65/5b/736f693f9b58e0d85126def6750c02b1f7a7f62447f3055d9d56d46f93bc/pyppl_report-0.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3a6d3420a3f873a1f515d6cfe739c613", "sha256": "dc283bb31c1934df3212c9860a16de38c5c07de7ab119f5388c75bda1637f661" }, "downloads": -1, "filename": "pyppl_report-0.6.2.tar.gz", "has_sig": false, "md5_digest": "3a6d3420a3f873a1f515d6cfe739c613", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 2087472, "upload_time": "2020-06-06T04:54:20", "upload_time_iso_8601": "2020-06-06T04:54:20.661278Z", "url": "https://files.pythonhosted.org/packages/15/b5/4145f05223c5ed2742aa1a0bbc29d273e00e095d385959d3c7edf973ce1e/pyppl_report-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }