rendu


Namerendu JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA library to programmatically create presentation slide decks
upload_time2025-08-22 07:33:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7.4
licenseNone
keywords presentation report slide powerpoint keynote
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Rendu
A programmatic presentation generator library for Python

## Introduction

Rendu allows programmatic construction of professional-looking HTML slide decks similar in concept to documents that can be created with presentation software like Microsoft Powerpoint, Apple's Keynote or LibreOffice Impress.

Rendu reports are composed of multiple slides and feature easy navigation via push buttons whose behavior is regulated by javascript code that is automatically generated by the library.

Rendu is particularly useful to create and assemble a slide deck as a final pipeline step in any type of data analysis.

## Main Features

  * Create slide decks programmatically from within Python code
  * Single HTML file, can be rendered by any web browser that supports Javascript
  * Easy slide navigation through push-button HTML widgets
  * Text: supports paragraphs, unordered and ordered lists
  * Images: Embed and display png and jpg
  * Raw Data: embed files within the document, download via push button widget
  * Optimized slide layout divided in main and side area

## Screenshots

![First slide of example in next section](/doc/img/penguins_screenshot_01.png)
![Second slide of example in next section](/doc/img/penguins_screenshot_02.png)
![Third slide of example in next section](/doc/img/penguins_screenshot_03.png)

## Quick Start-Up Reference

The following example uses Pandas and Seaborn to download a dataset, compute some statistics on it and plot a histogram and save data into a CSV file. The dataset analysis is just an example that is used to showcase how to create a Rendu slide deck and add text, plots and even embed the raw CSV file into the final document.

```python
import os
import seaborn as sns
import matplotlib as mpl
from datetime import date
from rendu.htmldeck import HtmlSlideDeck

# ----------------------------------------------- #
# Use pandas/seaborn to perform some data analysis
# ----------------------------------------------- #
os.makedirs('./tmp', exist_ok=True)
mpl.use('AGG')
penguins = sns.load_dataset('penguins')
fig = sns.displot(penguins, x='flipper_length_mm')
fig.savefig('./tmp/penguins_histogram.png')
flen_ave = penguins.flipper_length_mm.mean().round(2)
flen_med = penguins.flipper_length_mm.median().round(2)
flen_std = penguins.flipper_length_mm.std().round(2)
penguins.to_csv('./tmp/penguins.csv')

# ------------------------------------------------------ #
# Now use rendu to quickly assemble an HTML presentation
# ------------------------------------------------------ #

# Create HTML report
rep = HtmlSlideDeck(f'Analysis Of Penguin Population [{date.today()}]',
                    footer='University Of Penguinia, dept. of Marine Science')

# Add intro slide
s = rep.add_slide(0, "Penguin Study Report", "Intro")
s.main.add_h2('Data Sources')
s.main.add_ul(['Raw data available at seaborn-data repository',
               'https://github.com/mwaskom/seaborn-data'])
s.main.add_h2('Disclaimer')
s.main.add_p('NO PENGUINS WERE HARMED FOR THIS STUDY')
s.side.add_h2('Authors')
s.side.add_ul(['John Doe, PhD', 'Jane Doe, PhD'])

# Add slide with histogram with stats
s = rep.add_slide(1, "Flipper Length Distribution", "Flipper Length")

# Add figure to main layout
s.main.add_figure('./penguins_histogram.png')

# Add more info to side layout
s.side.add_h2('Main Stats')
s.side.add_ul([f'Average: {flen_ave}',
               f'Median: {flen_med}',
               f'Std: {flen_std}'])

# Add slide that embeds raw data
s = rep.add_raw_data_slide(2, "Raw Data", "Raw Data", './tmp/penguins.csv')

# Save report
rep.save('./tmp/penguin_report.html')
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rendu",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7.4",
    "maintainer_email": null,
    "keywords": "presentation, report, slide, powerpoint, keynote",
    "author": null,
    "author_email": "Mattia Borsalino <mattia.borsalino@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/9a/81/00fcfe4c23bc6245161f3818eb7c585e56991fe64600276a5dc87d9e0dcd/rendu-0.1.0.tar.gz",
    "platform": null,
    "description": "# Rendu\nA programmatic presentation generator library for Python\n\n## Introduction\n\nRendu allows programmatic construction of professional-looking HTML slide decks similar in concept to documents that can be created with presentation software like Microsoft Powerpoint, Apple's Keynote or LibreOffice Impress.\n\nRendu reports are composed of multiple slides and feature easy navigation via push buttons whose behavior is regulated by javascript code that is automatically generated by the library.\n\nRendu is particularly useful to create and assemble a slide deck as a final pipeline step in any type of data analysis.\n\n## Main Features\n\n  * Create slide decks programmatically from within Python code\n  * Single HTML file, can be rendered by any web browser that supports Javascript\n  * Easy slide navigation through push-button HTML widgets\n  * Text: supports paragraphs, unordered and ordered lists\n  * Images: Embed and display png and jpg\n  * Raw Data: embed files within the document, download via push button widget\n  * Optimized slide layout divided in main and side area\n\n## Screenshots\n\n![First slide of example in next section](/doc/img/penguins_screenshot_01.png)\n![Second slide of example in next section](/doc/img/penguins_screenshot_02.png)\n![Third slide of example in next section](/doc/img/penguins_screenshot_03.png)\n\n## Quick Start-Up Reference\n\nThe following example uses Pandas and Seaborn to download a dataset, compute some statistics on it and plot a histogram and save data into a CSV file. The dataset analysis is just an example that is used to showcase how to create a Rendu slide deck and add text, plots and even embed the raw CSV file into the final document.\n\n```python\nimport os\nimport seaborn as sns\nimport matplotlib as mpl\nfrom datetime import date\nfrom rendu.htmldeck import HtmlSlideDeck\n\n# ----------------------------------------------- #\n# Use pandas/seaborn to perform some data analysis\n# ----------------------------------------------- #\nos.makedirs('./tmp', exist_ok=True)\nmpl.use('AGG')\npenguins = sns.load_dataset('penguins')\nfig = sns.displot(penguins, x='flipper_length_mm')\nfig.savefig('./tmp/penguins_histogram.png')\nflen_ave = penguins.flipper_length_mm.mean().round(2)\nflen_med = penguins.flipper_length_mm.median().round(2)\nflen_std = penguins.flipper_length_mm.std().round(2)\npenguins.to_csv('./tmp/penguins.csv')\n\n# ------------------------------------------------------ #\n# Now use rendu to quickly assemble an HTML presentation\n# ------------------------------------------------------ #\n\n# Create HTML report\nrep = HtmlSlideDeck(f'Analysis Of Penguin Population [{date.today()}]',\n                    footer='University Of Penguinia, dept. of Marine Science')\n\n# Add intro slide\ns = rep.add_slide(0, \"Penguin Study Report\", \"Intro\")\ns.main.add_h2('Data Sources')\ns.main.add_ul(['Raw data available at seaborn-data repository',\n               'https://github.com/mwaskom/seaborn-data'])\ns.main.add_h2('Disclaimer')\ns.main.add_p('NO PENGUINS WERE HARMED FOR THIS STUDY')\ns.side.add_h2('Authors')\ns.side.add_ul(['John Doe, PhD', 'Jane Doe, PhD'])\n\n# Add slide with histogram with stats\ns = rep.add_slide(1, \"Flipper Length Distribution\", \"Flipper Length\")\n\n# Add figure to main layout\ns.main.add_figure('./penguins_histogram.png')\n\n# Add more info to side layout\ns.side.add_h2('Main Stats')\ns.side.add_ul([f'Average: {flen_ave}',\n               f'Median: {flen_med}',\n               f'Std: {flen_std}'])\n\n# Add slide that embeds raw data\ns = rep.add_raw_data_slide(2, \"Raw Data\", \"Raw Data\", './tmp/penguins.csv')\n\n# Save report\nrep.save('./tmp/penguin_report.html')\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A library to programmatically create presentation slide decks",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [
        "presentation",
        " report",
        " slide",
        " powerpoint",
        " keynote"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e33a8f7635ae58fc3072776e33adde29e97573b9ad5cc4215e68bc6784a7d907",
                "md5": "af523863b263aba00f017580bca0bd2d",
                "sha256": "243248d9741acd096f28c61f6617651148225566d50bc3ecadd0463535f5f45b"
            },
            "downloads": -1,
            "filename": "rendu-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "af523863b263aba00f017580bca0bd2d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7.4",
            "size": 8175,
            "upload_time": "2025-08-22T07:33:16",
            "upload_time_iso_8601": "2025-08-22T07:33:16.058785Z",
            "url": "https://files.pythonhosted.org/packages/e3/3a/8f7635ae58fc3072776e33adde29e97573b9ad5cc4215e68bc6784a7d907/rendu-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a8100fcfe4c23bc6245161f3818eb7c585e56991fe64600276a5dc87d9e0dcd",
                "md5": "3c9a044fa24b5027731082c8b82b14bd",
                "sha256": "542a6af260fb84e1f698082b5269ed0390187df54cf8f60e39569bcfdc88cdd2"
            },
            "downloads": -1,
            "filename": "rendu-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3c9a044fa24b5027731082c8b82b14bd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7.4",
            "size": 7230,
            "upload_time": "2025-08-22T07:33:17",
            "upload_time_iso_8601": "2025-08-22T07:33:17.254653Z",
            "url": "https://files.pythonhosted.org/packages/9a/81/00fcfe4c23bc6245161f3818eb7c585e56991fe64600276a5dc87d9e0dcd/rendu-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-22 07:33:17",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rendu"
}
        
Elapsed time: 0.69500s