{ "info": { "author": "nhat.nv", "author_email": "nhat.nv@teko.vn", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# reportlib\nFlexible and powerful report library for Python or Python Notebooks with [Pandas](https://pandas.pydata.org/) and [Jinja2](https://pypi.org/project/Jinja2/) support\n\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n
Latest Release\n \n \"latest\n \n
License\n \n \"license\"\n \n
Python Version\n \n \"python\n \n
Wheel\n \n \"wheel\"\n \n
\n\n## What is it?\n**reportlib** is a Python package providing fast and flexible utilities to decorate and render a report. Because it based on pandas's Styler, it is friendly with pandas DataFrame, so if you got your data, you can easily display and export it.\n\n## Main Features\nHere are just a few of the things that reportlib does well:\n- Powerful and flexible Styler based on [pandas's Styler](https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html), friendly with pandas DataFrame, with more styling methods\n- Friendly with Email: The HTML output use inline-css, you can send via email and that email also can be forwarded\n- Friendly with Python Notebooks, so you can display Styler or Report in html\n- Config parser: from string to other data types, for quickly get config from environment or other config files\n- Customize everything with [Jinja2](https://pypi.org/project/Jinja2/) support: table head & foot (Styler), Report template, css\n\n## Where to get it\n\nThe source code is currently hosted on Teko's Gitlab at: https://git.teko.vn/data/libs/reportlib\n\nBinary installers for the latest released version are available at the [Python package index](https://pypi.org/project/reportlib)\n\n```\npip install reportlib\n```\n\n## Dependencies:\n- [css-html-js-minify](https://pypi.org/project/css-html-js-minify/): 2.5 or higher\n- [htmlmin](https://pypi.org/project/htmlmin/): 0.1 or higher\n- [Jinja2](https://pypi.org/project/Jinja2/): 2.10 or higher\n- [pandas](https://pypi.org/project/pandas/): 0.24 or higher\n- [python-dateutil](https://pypi.org/project/python-dateutil/): 2.8 or higher\n- [PyYAML](https://pypi.org/project/PyYAML/): 5.1 or higher\n- [premailer](https://pypi.org/project/premailer/): 3.5 or higher\n\n## Installation from sources:\nClone the repository then execute following command in the `reportlib` directory (same one where you found this file after cloning the git repo)\n```\npython setup.py install\n```\n\nAlternatively, you can use pip if you want all the dependencies pulled in automatically (the -e option is for installing it in development mode):\n```\npip install -e .\n```\n\n## Basic usage\n\n### Project structure\n```\nroot/ (or root/src/)\n |-+-templates/\n | |-styles.css\n |-report.py\n |-metadata.yml\n ...\n```\n\n### Config report\n```bash\nexport REPORT_DATE='2019-06-30'\n```\n\n### Render report\n```python\n\"\"\"report.py\"\"\"\n\nimport os\nimport pandas as pd\nimport numpy as np\nfrom datetime import datetime\nfrom dateutil.relativedelta import relativedelta\nimport reportlib\nfrom reportlib import Report, ConfigParser, Styler\n\n# Parse config from env\nconfig = ConfigParser(config=os.environ)\nreport_date = config.date('REPORT_DATE', default='yesterday')\n\n# Prepare data\ndf = pd.DataFrame(np.random.randn(8, 4), columns=['a', 'b', 'c', 'd'])\n\n# Config report\nreportlib.add_template_dir('templates')\nStyler.set_option('precision', 2)\nStyler.set_option('fillna', '-')\nStyler.set_option('fillinf', '-')\nStyler.set_option('fillzero', '-')\n\n# Initial generator\nreport = Report(\n styles='styles.css',\n title='Report Demo',\n context={\n 'report_date': report_date\n },\n)\n\n# Styling data\nstyle = (\n Styler(df)\n .add_class('bold highlight', subset=pd.IndexSlice[0:1, df.columns]) # Bold and Highlight some row by using class `highlight`\n .add_class('text-right', columns=df.columns) # Align right columns\n)\n\n# Add tables\nreport.add_table(style)\n\n# Run report\nhtml_string = report.render()\n\n# Or display it if you use a Python Notebook Interface like Jupyter\nreport.show()\n```\n\n## Full Documentation\nYou can found full documentation in [Wiki](https://git.teko.vn/data/libs/reportlib/wikis/Home)\n\n## Getting Help\nFor usage questions, the best place to go to is [Full Documentation](#full-documentation). Further, for general questions and discussions, you can [create an issue](https://git.teko.vn/data/libs/reportlib/issues) or contact me via email at nhat.nv@teko.vn or via [Teko's workplace](https://teko.facebook.com/profile.php?id=100015364246331)\n\n## Contributing to reportlib\nAll contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.teko.vn/data/libs/reportlib", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "reportlib", "package_url": "https://pypi.org/project/reportlib/", "platform": "", "project_url": "https://pypi.org/project/reportlib/", "project_urls": { "Homepage": "https://git.teko.vn/data/libs/reportlib" }, "release_url": "https://pypi.org/project/reportlib/3.3.0/", "requires_dist": [ "css-html-js-minify (>=2.5)", "htmlmin (>=0.1)", "Jinja2 (>=2.10)", "pandas (==0.24)", "python-dateutil (>=2.8)", "PyYAML (>=5.1)", "premailer (>=3.5)" ], "requires_python": "", "summary": "Generator HTML from pandas via Jinja2", "version": "3.3.0" }, "last_serial": 5877122, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "22bc7a1d55a9979b8d33be52c6a3e72d", "sha256": "888a659b9ff2326b341b9584a9574e2bf1806e6ec18c7dac6b25f6b7edc9fbef" }, "downloads": -1, "filename": "reportlib-1.0.0.tar.gz", "has_sig": false, "md5_digest": "22bc7a1d55a9979b8d33be52c6a3e72d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7550, "upload_time": "2019-07-04T07:07:32", "url": "https://files.pythonhosted.org/packages/2a/6b/98d284924ea97bf110cb19ca550d51e89b7af825babd56ecde777bed1934/reportlib-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "06680e31f78461ff39e3950fa88300e5", "sha256": "a2e470d76d5b05137e723cbe43000b02f51b6373768ba18f5d731ac65d1407fa" }, "downloads": -1, "filename": "reportlib-1.0.1.tar.gz", "has_sig": false, "md5_digest": "06680e31f78461ff39e3950fa88300e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7564, "upload_time": "2019-07-04T07:20:00", "url": "https://files.pythonhosted.org/packages/a6/41/e8df0a1d1ee3a3165d593193d6d97aa189e881da5db43f1df2c9b5685fc7/reportlib-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "2ac246d362a385df965db7482b437452", "sha256": "6fc9562c4d5ee52a55b891dfcf52694a474543bbf496e67048dab5551cacfa4c" }, "downloads": -1, "filename": "reportlib-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2ac246d362a385df965db7482b437452", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2019-07-04T07:28:53", "url": "https://files.pythonhosted.org/packages/0e/48/d3763459700a74c1283ab8b43787cb74f8f5180adfd8634a57f75524a62e/reportlib-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "3d8058ed24de9f7568a4f4ea53c6d0db", "sha256": "1b9f2156215a3cbb5eb6d38987b3ce53747cedd1cbff56140f35bf4837f2a984" }, "downloads": -1, "filename": "reportlib-1.0.3.tar.gz", "has_sig": false, "md5_digest": "3d8058ed24de9f7568a4f4ea53c6d0db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7466, "upload_time": "2019-07-04T08:43:17", "url": "https://files.pythonhosted.org/packages/da/d0/c760c1105c13bcea1a5242d2d693f0e204568b9ccb82203403a3e75103cd/reportlib-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "fd046901095ebb4a290b37736bf8b5c1", "sha256": "65e9f9be4cd8c8d377e172586bc7e23ba794a49fa84f3764a256d196f07eaf9d" }, "downloads": -1, "filename": "reportlib-1.0.4.tar.gz", "has_sig": false, "md5_digest": "fd046901095ebb4a290b37736bf8b5c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9060, "upload_time": "2019-07-04T08:53:37", "url": "https://files.pythonhosted.org/packages/7d/6d/9ba375993bc243badb1df5ede315648604fac6fa0f5c4baef6da59cf0a84/reportlib-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "973399bb107e06e58bd0a39143222f15", "sha256": "1b24357d8169a7f26708d8f0ecb442181c35e168f810e1d91550ae392b5308c6" }, "downloads": -1, "filename": "reportlib-1.0.5.tar.gz", "has_sig": false, "md5_digest": "973399bb107e06e58bd0a39143222f15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9447, "upload_time": "2019-07-04T09:15:07", "url": "https://files.pythonhosted.org/packages/a6/c7/9d0272f907a7d7df5798618a587b0febdd3e2862733600966e8b691905f0/reportlib-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "25d3fd0cf028f0995e8f8f861c8d55f9", "sha256": "79dc859ff697e25b6d61df20a25ddc6bad52e81d62b8e797a84ba42dc01d673d" }, "downloads": -1, "filename": "reportlib-1.0.6.tar.gz", "has_sig": false, "md5_digest": "25d3fd0cf028f0995e8f8f861c8d55f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11665, "upload_time": "2019-07-04T09:27:48", "url": "https://files.pythonhosted.org/packages/34/63/fddc5c1f531068f96b8a08f75d6713435c68317a62ace556505f278930cb/reportlib-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "37ec1097884cd05dae49fb6a00376815", "sha256": "50ab05b6bde28c9b79053b49310b4dbdb35e2b20ca1ddeb518e881e9dbc4b93f" }, "downloads": -1, "filename": "reportlib-1.0.7.tar.gz", "has_sig": false, "md5_digest": "37ec1097884cd05dae49fb6a00376815", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11697, "upload_time": "2019-07-04T17:15:25", "url": "https://files.pythonhosted.org/packages/62/49/120d4ee2d54b22145f4897c426ffdd97ae88023452b8565b3b83c9c0c9c8/reportlib-1.0.7.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e407bb509c53bce70d8e45cad3134b83", "sha256": "a98279e703ea15edf5661798e7fcb9fdb20715a3d79f324c3ef49703198e3bfd" }, "downloads": -1, "filename": "reportlib-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e407bb509c53bce70d8e45cad3134b83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12752, "upload_time": "2019-07-09T03:54:54", "url": "https://files.pythonhosted.org/packages/7c/ad/da9ebe073a7f3c660d6deb78afed5ae8524bbfbba3f42284044782c79354/reportlib-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "c813ac6112a32e0ba1b5845df78acbe7", "sha256": "b323905b9a598127d5952d875001d64bf216a2ef68c5371c3023d10e4bc711e4" }, "downloads": -1, "filename": "reportlib-1.1.1.tar.gz", "has_sig": false, "md5_digest": "c813ac6112a32e0ba1b5845df78acbe7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13047, "upload_time": "2019-07-15T03:52:11", "url": "https://files.pythonhosted.org/packages/f2/9e/4c1fbcaac62babaec7d438d5320a668733f9c324e472fd71ed424496362b/reportlib-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "00e98726b87a3d4fd7fa48e03514c95b", "sha256": "3e3d06aa1dfc39bfbc6fca672400791f9dc1bfc45f3dd39f785b54477b9891cb" }, "downloads": -1, "filename": "reportlib-1.1.2.tar.gz", "has_sig": false, "md5_digest": "00e98726b87a3d4fd7fa48e03514c95b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12988, "upload_time": "2019-07-15T10:26:19", "url": "https://files.pythonhosted.org/packages/1e/6e/622f7fedf919edd2e9c273ef1527d9c70fe180812ffc762e1cfa6aed7f55/reportlib-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "7fa8614024d7b7ca2408537c1c7f3ff6", "sha256": "fa2e8702c81eec661ca72c0ee9bfc7548edc52c44ce05a83064b5f08ee8f51ac" }, "downloads": -1, "filename": "reportlib-2.0.0.tar.gz", "has_sig": false, "md5_digest": "7fa8614024d7b7ca2408537c1c7f3ff6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13349, "upload_time": "2019-07-18T09:27:27", "url": "https://files.pythonhosted.org/packages/a8/fa/2ed4cef88ba9f7a84603b2879515c459d913374aa4b633e7d290d15a34dd/reportlib-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "ed8f2f4c6fa67b9c2078e4a1c0b4e39c", "sha256": "94b3b012dfb5db52713adcf1eec9553d22eb08a345b8c47d6175fbca91ba086e" }, "downloads": -1, "filename": "reportlib-2.0.1.tar.gz", "has_sig": false, "md5_digest": "ed8f2f4c6fa67b9c2078e4a1c0b4e39c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13524, "upload_time": "2019-07-18T09:45:33", "url": "https://files.pythonhosted.org/packages/33/4a/ce7277b5b7f0d0fa0af9228aa17869d7501cb6c75440c8fb1ecac89aa96a/reportlib-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "6290326a2ac9033f6bc1ecabf17d409e", "sha256": "a68fad1a43c2946ad76ef82322e6c202af41417fda9bcd77e63607161a7131e4" }, "downloads": -1, "filename": "reportlib-2.0.2.tar.gz", "has_sig": false, "md5_digest": "6290326a2ac9033f6bc1ecabf17d409e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13522, "upload_time": "2019-07-18T10:42:39", "url": "https://files.pythonhosted.org/packages/bd/ed/341f8c8b42461cd82787b0cbea8814b10404ba8eed5f2ac00bb8dfb55658/reportlib-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "18535b884c51d8ea33fd0c3d75cc3d3c", "sha256": "f153480681215ef89093244d5dbb16501fe12f0c213536114cb80cc3fa5dfd51" }, "downloads": -1, "filename": "reportlib-2.0.3.tar.gz", "has_sig": false, "md5_digest": "18535b884c51d8ea33fd0c3d75cc3d3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13546, "upload_time": "2019-07-18T12:35:42", "url": "https://files.pythonhosted.org/packages/db/4c/f47e2543dfa9c80a3c8b29720a088e6afc41a0e771170d8bc2e6f521cfd8/reportlib-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "58c8b46bb7d5d5cee8d09cf4936ef38f", "sha256": "d12a22e5dc4c6e93ae6aee25293b6f2e8b779b5a3fbebb67010827b907ef9fa5" }, "downloads": -1, "filename": "reportlib-2.0.4.tar.gz", "has_sig": false, "md5_digest": "58c8b46bb7d5d5cee8d09cf4936ef38f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13526, "upload_time": "2019-07-19T05:56:13", "url": "https://files.pythonhosted.org/packages/de/59/749b27246e3d0d84cc2b82e9eb385408f220378ccf8667d0e6509540a69a/reportlib-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "e62787c03fc5a28443e12a6cdfc969d1", "sha256": "194f18787ad4222f12e8545414cdff431ccb6cbec70b90a5d88058963376b54c" }, "downloads": -1, "filename": "reportlib-2.0.5.tar.gz", "has_sig": false, "md5_digest": "e62787c03fc5a28443e12a6cdfc969d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13537, "upload_time": "2019-07-22T03:24:40", "url": "https://files.pythonhosted.org/packages/c4/d7/46716faad36a213aa22d1639d7bf6623bab97c33acd3aa1ca3b284308009/reportlib-2.0.5.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "5939c4b9d370c4602b52fd66a2cebbe5", "sha256": "5a6965cfc26f743d1ee9b8b64e6731892a4ee4ff9f1e8a29972dffd4e811f8ac" }, "downloads": -1, "filename": "reportlib-2.1.0.tar.gz", "has_sig": false, "md5_digest": "5939c4b9d370c4602b52fd66a2cebbe5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13654, "upload_time": "2019-07-23T08:54:23", "url": "https://files.pythonhosted.org/packages/8d/19/3e2a9bbc4f8edab3ea01a2fb0c86f1b695fc19c7ce39289538fea75aa176/reportlib-2.1.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "14347793baba0964d31c4a1150686205", "sha256": "d0dd7a8198740f678468edccf1a67d888d6d8220bce74e139fc1b0fd2aa0c1e3" }, "downloads": -1, "filename": "reportlib-3.0.0.tar.gz", "has_sig": false, "md5_digest": "14347793baba0964d31c4a1150686205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14195, "upload_time": "2019-07-25T08:29:08", "url": "https://files.pythonhosted.org/packages/f9/d7/633dc36f309fda26a1f75c5eabb1dfc8d6a9e603c6fe51d14fafbf629153/reportlib-3.0.0.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "19bd02adef48a6803cf0b68627f044c4", "sha256": "744256930f87e78cec991e32487fbe6c3cbb2c5a688d8c127ef5dd64053a7286" }, "downloads": -1, "filename": "reportlib-3.1.0.tar.gz", "has_sig": false, "md5_digest": "19bd02adef48a6803cf0b68627f044c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14068, "upload_time": "2019-07-29T09:28:20", "url": "https://files.pythonhosted.org/packages/8b/9e/0e4b476e77ef5b334b3c677ff3cef7c6328e77d786e33933d222a1f90c8a/reportlib-3.1.0.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "43f8c7305ab1696d4f7886cffc4350c2", "sha256": "e33c21557f4839669e9ae7d5c3691b848e1bea9334017284b58dd8c955c281c7" }, "downloads": -1, "filename": "reportlib-3.1.1.tar.gz", "has_sig": false, "md5_digest": "43f8c7305ab1696d4f7886cffc4350c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14063, "upload_time": "2019-07-30T02:37:11", "url": "https://files.pythonhosted.org/packages/6b/7a/a3dc173f17f55964478f5119271e9f46c370679161cfe51f18b966888262/reportlib-3.1.1.tar.gz" } ], "3.1.2": [ { "comment_text": "", "digests": { "md5": "4603b5d572d2704199a3b5e1501854fe", "sha256": "78f8d53543c99beeeadd89bca16eea4ed5f67c6cb5945880e0c0c8a95c2cc752" }, "downloads": -1, "filename": "reportlib-3.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4603b5d572d2704199a3b5e1501854fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14558, "upload_time": "2019-07-30T07:58:48", "url": "https://files.pythonhosted.org/packages/89/d9/5251ff1852e3e686185adee4d66b50c287568c6480548872a6fcb26d6c13/reportlib-3.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17de342c047fe3eab566fb8eec21ac24", "sha256": "6123f00dc435d33c3961a45bdf9e9953123f5f1fdaab65c0bdcca34d52f13d8d" }, "downloads": -1, "filename": "reportlib-3.1.2.tar.gz", "has_sig": false, "md5_digest": "17de342c047fe3eab566fb8eec21ac24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14143, "upload_time": "2019-07-30T03:30:34", "url": "https://files.pythonhosted.org/packages/5c/38/37c7ee2753e661f2e363d683c37ae7fd9644dc8ca038a98ab6080b5d2b5a/reportlib-3.1.2.tar.gz" } ], "3.1.3": [ { "comment_text": "", "digests": { "md5": "a360a8081f821442f35e894f179d3c50", "sha256": "1253c3741e293b6aafcaf270f0864c38bb1670cd898217ecf51709d9dafa52b3" }, "downloads": -1, "filename": "reportlib-3.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a360a8081f821442f35e894f179d3c50", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15513, "upload_time": "2019-07-31T07:09:34", "url": "https://files.pythonhosted.org/packages/43/13/4d531773cafd6f29588aef7aa343536071ee5ce9f41feffbda3f452b97b8/reportlib-3.1.3-py3-none-any.whl" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "91ad4092f0b9c1e8b0e0b432f1e2e433", "sha256": "c9bdf35bd8a7e73c70a814fead6a6455fa9ef1fd0aa79856e245421b60d6abb4" }, "downloads": -1, "filename": "reportlib-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "91ad4092f0b9c1e8b0e0b432f1e2e433", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16334, "upload_time": "2019-08-03T14:14:03", "url": "https://files.pythonhosted.org/packages/2b/0d/d39a5a08cd8359c2528c83172b13cfc767582de5111a67ad1d00825b29b8/reportlib-3.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5b65c536f8ab96f31863e6be65d295e", "sha256": "089710cea9c957c07fc8e79a8cf18366d6b8045867f1b81c9ffcd0eb5cc7cc9d" }, "downloads": -1, "filename": "reportlib-3.2.0.tar.gz", "has_sig": false, "md5_digest": "a5b65c536f8ab96f31863e6be65d295e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16587, "upload_time": "2019-08-03T14:14:05", "url": "https://files.pythonhosted.org/packages/2a/d5/1a39eba724f32e47d95309146e8e958eb6296892cdf1e03100a3b4faefdf/reportlib-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "07bce4e7da71fe4bc2c57b8f04e97f92", "sha256": "abf689018b8d8e2348519ad0c02864c248f278d6d88322a153db21aa2e1dbe39" }, "downloads": -1, "filename": "reportlib-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "07bce4e7da71fe4bc2c57b8f04e97f92", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16324, "upload_time": "2019-08-06T04:28:21", "url": "https://files.pythonhosted.org/packages/e1/56/ef5144df074d7bb929491e95bfe6b8f50f1bd41d03483d296efadab07369/reportlib-3.2.1-py3-none-any.whl" } ], "3.2.2": [ { "comment_text": "", "digests": { "md5": "d02719828503847888bad2157540fada", "sha256": "1a968fb03ebf0d3cf3d898edc315d74492e722502833551cecdeba1b9d2cbb0b" }, "downloads": -1, "filename": "reportlib-3.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d02719828503847888bad2157540fada", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16360, "upload_time": "2019-08-14T03:19:47", "url": "https://files.pythonhosted.org/packages/6f/8f/619d14904a608e05abb71a2b89ce97b58ad6a5d3d22c5d097bd9ef54b7c9/reportlib-3.2.2-py3-none-any.whl" } ], "3.2.3": [ { "comment_text": "", "digests": { "md5": "4c76cd18126b6af7397e940b3f7f931d", "sha256": "ceed0bae1d6517440cddf38fc7b76441f4c53af18532d5157cb3a8eb133f3bb3" }, "downloads": -1, "filename": "reportlib-3.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4c76cd18126b6af7397e940b3f7f931d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16384, "upload_time": "2019-09-07T03:47:02", "url": "https://files.pythonhosted.org/packages/a7/cc/88df02ab54cdb6507f3774241a9e45ce96dce962b452fd76f7726452a641/reportlib-3.2.3-py3-none-any.whl" } ], "3.2.4": [ { "comment_text": "", "digests": { "md5": "16d883d6acca7bd9f6b90fb4ab75ca97", "sha256": "5c60ba2630d3ce2b5335e7385aadb64d481bda29f2dddc3ab391e1da40cdc92f" }, "downloads": -1, "filename": "reportlib-3.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "16d883d6acca7bd9f6b90fb4ab75ca97", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16383, "upload_time": "2019-09-24T02:30:59", "url": "https://files.pythonhosted.org/packages/d9/48/681eb0177f199fba149214926c9676fe096a0757b9c30b9a840835910e2b/reportlib-3.2.4-py3-none-any.whl" } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "95c5bce4def25fe1a44792d86efadb0d", "sha256": "eb29a2fc03c3ef9c035dbf715d570e7dbf9cbd8e55dc5feb5d1996e22acc0a00" }, "downloads": -1, "filename": "reportlib-3.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95c5bce4def25fe1a44792d86efadb0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15626, "upload_time": "2019-09-24T02:24:31", "url": "https://files.pythonhosted.org/packages/84/18/7ce670d2c363b550dbfddbea321e05554d0a67055417edc1527ee1db6468/reportlib-3.3.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "95c5bce4def25fe1a44792d86efadb0d", "sha256": "eb29a2fc03c3ef9c035dbf715d570e7dbf9cbd8e55dc5feb5d1996e22acc0a00" }, "downloads": -1, "filename": "reportlib-3.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95c5bce4def25fe1a44792d86efadb0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15626, "upload_time": "2019-09-24T02:24:31", "url": "https://files.pythonhosted.org/packages/84/18/7ce670d2c363b550dbfddbea321e05554d0a67055417edc1527ee1db6468/reportlib-3.3.0-py3-none-any.whl" } ] }