├── .gitignore ├── README.md ├── _extensions └── quarto-ext │ └── shinylive │ ├── _extension.yml │ ├── resources │ └── css │ │ └── shinylive-quarto.css │ └── shinylive.lua ├── _quarto.yml ├── _quarto_demo ├── .gitignore ├── .jupyter_cache │ ├── __version__.txt │ ├── executed │ │ ├── 9672b08ff1ddea2951e5ae728051ef7c │ │ │ └── base.ipynb │ │ ├── b50cfc38d21a52788890accc928b92ad │ │ │ └── base.ipynb │ │ └── da58f06eb7d9f3d3818e1ed9cec24628 │ │ │ └── base.ipynb │ └── global.db ├── _quarto.yml ├── annotation.qmd ├── basics.ipynb ├── cell-options.qmd ├── msword.ipynb ├── palmer-penguins.csv ├── pdf.ipynb ├── presentation.ipynb └── references.bib ├── about.qmd ├── gha.qmd ├── icon.png ├── index.qmd ├── nbdev.png ├── photos ├── hamel.jpeg ├── jj.png └── wasim.jpeg ├── quarto_demo └── styles.css /.gitignore: -------------------------------------------------------------------------------- 1 | /.quarto/ 2 | _site/ 3 | .ipynb_checkpoints 4 | /.luarc.json 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JupyterCon 2023 nbdev Tutorial 2 | 3 | Materials for [Write, Document, Test and Distribute Python Packages With Jupyter & Quarto](https://cfp.jupytercon.com/2023/talk/ZRS7CW/), JupyterCon 2023. 4 | 5 | ## Course Website 6 | 7 | [https://fastai.github.io/jupytercon-2023/](https://fastai.github.io/jupytercon-2023/) 8 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/shinylive/_extension.yml: -------------------------------------------------------------------------------- 1 | name: shinylive 2 | title: Embedded Shinylive applications 3 | author: Winston Chang 4 | version: 0.0.3 5 | quarto-required: ">=1.2.198" 6 | contributes: 7 | filters: 8 | - shinylive.lua 9 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/shinylive/resources/css/shinylive-quarto.css: -------------------------------------------------------------------------------- 1 | div.output-content, 2 | div.shinylive-wrapper { 3 | background-color: rgba(250, 250, 250, 0.65); 4 | border: 1px solid rgba(233, 236, 239, 0.65); 5 | border-radius: 0.5rem; 6 | box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.04), 0px 3px 7px rgba(0, 0, 0, 0.04), 7 | 0px 12px 30px rgba(0, 0, 0, 0.07); 8 | margin-top: 32px; 9 | margin-bottom: 32px; 10 | } 11 | 12 | div.shinylive-wrapper { 13 | margin: 1em 0; 14 | border-radius: 8px; 15 | } 16 | 17 | .shinylive-container { 18 | background-color: #eeeff2; 19 | min-height: auto; 20 | } 21 | 22 | .shinylive-container > div { 23 | box-shadow: none; 24 | } 25 | 26 | .editor-container .cm-editor .cm-scroller { 27 | font-size: 13px; 28 | line-height: 1.5; 29 | } 30 | 31 | iframe.app-frame { 32 | /* Override the default margin from Bootstrap */ 33 | margin-bottom: 0; 34 | } 35 | -------------------------------------------------------------------------------- /_extensions/quarto-ext/shinylive/shinylive.lua: -------------------------------------------------------------------------------- 1 | local hasDoneShinyliveSetup = false 2 | local codeblockScript = nil 3 | 4 | -- Try calling `pandoc.pipe('shinylive', ...)` and if it fails, print a message 5 | -- about installing shinylive package. 6 | function callShinylive(args, input) 7 | local res 8 | local status, err = pcall( 9 | function() 10 | res = pandoc.pipe("shinylive", args, input) 11 | end 12 | ) 13 | 14 | if not status then 15 | print(err) 16 | error("Error running 'shinylive' command. Perhaps you need to install the 'shinylive' Python package?") 17 | end 18 | 19 | return res 20 | end 21 | 22 | 23 | -- Do one-time setup when a Shinylive codeblock is encountered. 24 | function ensureShinyliveSetup() 25 | if hasDoneShinyliveSetup then 26 | return 27 | end 28 | hasDoneShinyliveSetup = true 29 | 30 | -- Find the path to codeblock-to-json.ts and save it for later use. 31 | codeblockScript = callShinylive({ "codeblock-to-json-path" }, "") 32 | -- Remove trailing whitespace 33 | codeblockScript = codeblockScript:gsub("%s+$", "") 34 | 35 | local baseDeps = getShinyliveBaseDeps() 36 | for idx, dep in ipairs(baseDeps) do 37 | quarto.doc.add_html_dependency(dep) 38 | end 39 | 40 | quarto.doc.add_html_dependency( 41 | { 42 | name = "shinylive-quarto-css", 43 | stylesheets = {"resources/css/shinylive-quarto.css"} 44 | } 45 | ) 46 | end 47 | 48 | 49 | function getShinyliveBaseDeps() 50 | -- Relative path from the current page to the root of the site. This is needed 51 | -- to find out where shinylive-sw.js is, relative to the current page. 52 | if quarto.project.offset == nil then 53 | error("The shinylive extension must be used in a Quarto project directory (with a _quarto.yml file).") 54 | end 55 | local depJson = callShinylive( 56 | { "base-deps", "--sw-dir", quarto.project.offset }, 57 | "" 58 | ) 59 | 60 | local deps = quarto.json.decode(depJson) 61 | return deps 62 | end 63 | 64 | 65 | return { 66 | { 67 | CodeBlock = function(el) 68 | if el.attr and el.attr.classes:includes("{shinylive-python}") then 69 | ensureShinyliveSetup() 70 | 71 | -- Convert code block to JSON string in the same format as app.json. 72 | local parsedCodeblockJson = pandoc.pipe( 73 | "quarto", 74 | { "run", codeblockScript }, 75 | el.text 76 | ) 77 | 78 | -- This contains "files" and "quartoArgs" keys. 79 | local parsedCodeblock = quarto.json.decode(parsedCodeblockJson) 80 | 81 | -- Find Python package dependencies for the current app. 82 | local appDepsJson = callShinylive( 83 | { "package-deps" }, 84 | quarto.json.encode(parsedCodeblock["files"]) 85 | ) 86 | 87 | local appDeps = quarto.json.decode(appDepsJson) 88 | 89 | for idx, dep in ipairs(appDeps) do 90 | quarto.doc.attach_to_dependency("shinylive", dep) 91 | end 92 | 93 | el.attr.classes = pandoc.List() 94 | el.attr.classes:insert("shinylive-python") 95 | return el 96 | end 97 | end 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /_quarto.yml: -------------------------------------------------------------------------------- 1 | project: 2 | type: website 3 | resources: ["nbdev.png"] 4 | 5 | website: 6 | title: "nbdev Tutorial: JupyterCon 2023" 7 | favicon: icon.png 8 | description: "A nbdev + Quarto tutorial for JupyterCon 2023." 9 | image: nbdev.png 10 | open-graph: true 11 | repo-url: https://github.com/fastai/jupytercon-2023 12 | repo-actions: [edit] 13 | repo-branch: main 14 | site-url: "https://fastai.github.io/jupytercon-2023/" 15 | navbar: 16 | left: 17 | - about.qmd 18 | 19 | format: 20 | html: 21 | theme: flatly 22 | css: styles.css 23 | toc: true 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /_quarto_demo/.gitignore: -------------------------------------------------------------------------------- 1 | /.quarto/ 2 | -------------------------------------------------------------------------------- /_quarto_demo/.jupyter_cache/__version__.txt: -------------------------------------------------------------------------------- 1 | 0.6.1 -------------------------------------------------------------------------------- /_quarto_demo/.jupyter_cache/global.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/_quarto_demo/.jupyter_cache/global.db -------------------------------------------------------------------------------- /_quarto_demo/_quarto.yml: -------------------------------------------------------------------------------- 1 | project: 2 | type: website 3 | 4 | execute: 5 | enabled: true 6 | 7 | filters: 8 | - shinylive -------------------------------------------------------------------------------- /_quarto_demo/annotation.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Code Annotation" 3 | format: html 4 | jupyter: python3 5 | --- 6 | 7 | ```{python} 8 | word_index = imdb.get_word_index() # <1> 9 | reverse_word_index = dict( 10 | [(value, key) for (key, value) in word_index.items()]) # <2> 11 | decoded_review = ' '.join( 12 | [reverse_word_index.get(i - 3, '?') for i in train_data[0]]) # <3> 13 | ``` 14 | 15 | 1. `word_index` is a dictionary mapping words to an integer index 16 | 17 | 2. Reverses it, mapping integer indices to words 18 | 19 | 3. Decodes the review. Note that the indices are offset by 3 because 0, 1, and 2 are reserved indices for "padding", "start of sequence" and "unknown". -------------------------------------------------------------------------------- /_quarto_demo/basics.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "7ee42dc7-c6a5-44fa-8190-b620caabb32b", 6 | "metadata": {}, 7 | "source": [ 8 | "# Palmer Penguins" 9 | ] 10 | }, 11 | { 12 | "cell_type": "raw", 13 | "id": "be5165b9-6b3e-4868-9234-d10f7d04a6bc", 14 | "metadata": {}, 15 | "source": [ 16 | "---\n", 17 | "author: Norah Jones\n", 18 | "date: March 22, 2023\n", 19 | "---" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 1, 25 | "id": "6308a322-b23c-443a-888e-ce91b205555b", 26 | "metadata": { 27 | "tags": [] 28 | }, 29 | "outputs": [ 30 | { 31 | "data": { 32 | "text/html": [ 33 | "
\n", 34 | "\n", 47 | "\n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | "
speciesislandyearsexbill_length_mmbill_depth_mm
0AdelieTorgersen2007male39.118.7
1AdelieTorgersen2007female39.517.4
2AdelieTorgersen2007female40.318.0
3AdelieTorgersen2007NaNNaNNaN
4AdelieTorgersen2007female36.719.3
\n", 107 | "
" 108 | ], 109 | "text/plain": [ 110 | " species island year sex bill_length_mm bill_depth_mm\n", 111 | "0 Adelie Torgersen 2007 male 39.1 18.7\n", 112 | "1 Adelie Torgersen 2007 female 39.5 17.4\n", 113 | "2 Adelie Torgersen 2007 female 40.3 18.0\n", 114 | "3 Adelie Torgersen 2007 NaN NaN NaN\n", 115 | "4 Adelie Torgersen 2007 female 36.7 19.3" 116 | ] 117 | }, 118 | "execution_count": 3, 119 | "metadata": {}, 120 | "output_type": "execute_result" 121 | } 122 | ], 123 | "source": [ 124 | "import pandas as pd\n", 125 | "df = pd.read_csv(\"palmer-penguins.csv\") \n", 126 | "df = df[[\"species\", \"island\", \"year\", \"sex\", \"bill_length_mm\", \"bill_depth_mm\"]]\n", 127 | "df.head()" 128 | ] 129 | }, 130 | { 131 | "cell_type": "code", 132 | "execution_count": 2, 133 | "id": "8db0a702-07d3-4c2c-abe9-78dfb72b5204", 134 | "metadata": { 135 | "tags": [] 136 | }, 137 | "outputs": [ 138 | { 139 | "data": { 140 | "text/plain": [ 141 | "" 142 | ] 143 | }, 144 | "execution_count": 4, 145 | "metadata": {}, 146 | "output_type": "execute_result" 147 | }, 148 | { 149 | "data": { 150 | "image/png": "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", 151 | "text/plain": [ 152 | "
" 153 | ] 154 | }, 155 | "metadata": { 156 | "image/png": { 157 | "height": 276, 158 | "width": 599 159 | }, 160 | "needs_background": "light" 161 | }, 162 | "output_type": "display_data" 163 | } 164 | ], 165 | "source": [ 166 | "import matplotlib.pyplot as plt\n", 167 | "import seaborn as sns\n", 168 | "g = sns.FacetGrid(df, hue=\"species\", height=3, aspect=3.5/2)\n", 169 | "g.map(plt.scatter, \"bill_length_mm\", \"bill_depth_mm\").add_legend()" 170 | ] 171 | } 172 | ], 173 | "metadata": { 174 | "kernelspec": { 175 | "display_name": "Python 3 (ipykernel)", 176 | "language": "python", 177 | "name": "python3" 178 | }, 179 | "language_info": { 180 | "codemirror_mode": { 181 | "name": "ipython", 182 | "version": 3 183 | }, 184 | "file_extension": ".py", 185 | "mimetype": "text/x-python", 186 | "name": "python", 187 | "nbconvert_exporter": "python", 188 | "pygments_lexer": "ipython3", 189 | "version": "3.9.12" 190 | } 191 | }, 192 | "nbformat": 4, 193 | "nbformat_minor": 5 194 | } 195 | -------------------------------------------------------------------------------- /_quarto_demo/cell-options.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Palmer Penguins" 3 | author: Norah Jones 4 | date: 'March 12, 2023' 5 | format: 6 | html: 7 | code-tools: true 8 | code-fold: true 9 | execute: 10 | cache: true 11 | jupyter: python3 12 | --- 13 | 14 | # Palmer Penguins 15 | 16 | ```{python} 17 | #| echo: false 18 | import pandas as pd 19 | df = pd.read_csv("palmer-penguins.csv") 20 | df = df[["species", "island", "year", "bill_length_mm", "bill_depth_mm"]] 21 | 22 | import time 23 | time.sleep(3) 24 | ``` 25 | 26 | ## Exploring the Data 27 | 28 | See @fig-bill-sizes for an exploration of bill sizes by species. 29 | 30 | ```{python} 31 | #| label: fig-bill-sizes 32 | #| fig-cap: Bill Sizes by Species 33 | import matplotlib.pyplot as plt 34 | import seaborn as sns 35 | g = sns.FacetGrid(df, hue="species", height=5, aspect=3.5/2) 36 | g.map(plt.scatter, "bill_length_mm", "bill_depth_mm").add_legend() 37 | ``` -------------------------------------------------------------------------------- /_quarto_demo/palmer-penguins.csv: -------------------------------------------------------------------------------- 1 | species,island,bill_length_mm,bill_depth_mm,flipper_length_mm,body_mass_g,sex,year 2 | Adelie,Torgersen,39.1,18.7,181,3750,male,2007 3 | Adelie,Torgersen,39.5,17.4,186,3800,female,2007 4 | Adelie,Torgersen,40.3,18,195,3250,female,2007 5 | Adelie,Torgersen,NA,NA,NA,NA,NA,2007 6 | Adelie,Torgersen,36.7,19.3,193,3450,female,2007 7 | Adelie,Torgersen,39.3,20.6,190,3650,male,2007 8 | Adelie,Torgersen,38.9,17.8,181,3625,female,2007 9 | Adelie,Torgersen,39.2,19.6,195,4675,male,2007 10 | Adelie,Torgersen,34.1,18.1,193,3475,NA,2007 11 | Adelie,Torgersen,42,20.2,190,4250,NA,2007 12 | Adelie,Torgersen,37.8,17.1,186,3300,NA,2007 13 | Adelie,Torgersen,37.8,17.3,180,3700,NA,2007 14 | Adelie,Torgersen,41.1,17.6,182,3200,female,2007 15 | Adelie,Torgersen,38.6,21.2,191,3800,male,2007 16 | Adelie,Torgersen,34.6,21.1,198,4400,male,2007 17 | Adelie,Torgersen,36.6,17.8,185,3700,female,2007 18 | Adelie,Torgersen,38.7,19,195,3450,female,2007 19 | Adelie,Torgersen,42.5,20.7,197,4500,male,2007 20 | Adelie,Torgersen,34.4,18.4,184,3325,female,2007 21 | Adelie,Torgersen,46,21.5,194,4200,male,2007 22 | Adelie,Biscoe,37.8,18.3,174,3400,female,2007 23 | Adelie,Biscoe,37.7,18.7,180,3600,male,2007 24 | Adelie,Biscoe,35.9,19.2,189,3800,female,2007 25 | Adelie,Biscoe,38.2,18.1,185,3950,male,2007 26 | Adelie,Biscoe,38.8,17.2,180,3800,male,2007 27 | Adelie,Biscoe,35.3,18.9,187,3800,female,2007 28 | Adelie,Biscoe,40.6,18.6,183,3550,male,2007 29 | Adelie,Biscoe,40.5,17.9,187,3200,female,2007 30 | Adelie,Biscoe,37.9,18.6,172,3150,female,2007 31 | Adelie,Biscoe,40.5,18.9,180,3950,male,2007 32 | Adelie,Dream,39.5,16.7,178,3250,female,2007 33 | Adelie,Dream,37.2,18.1,178,3900,male,2007 34 | Adelie,Dream,39.5,17.8,188,3300,female,2007 35 | Adelie,Dream,40.9,18.9,184,3900,male,2007 36 | Adelie,Dream,36.4,17,195,3325,female,2007 37 | Adelie,Dream,39.2,21.1,196,4150,male,2007 38 | Adelie,Dream,38.8,20,190,3950,male,2007 39 | Adelie,Dream,42.2,18.5,180,3550,female,2007 40 | Adelie,Dream,37.6,19.3,181,3300,female,2007 41 | Adelie,Dream,39.8,19.1,184,4650,male,2007 42 | Adelie,Dream,36.5,18,182,3150,female,2007 43 | Adelie,Dream,40.8,18.4,195,3900,male,2007 44 | Adelie,Dream,36,18.5,186,3100,female,2007 45 | Adelie,Dream,44.1,19.7,196,4400,male,2007 46 | Adelie,Dream,37,16.9,185,3000,female,2007 47 | Adelie,Dream,39.6,18.8,190,4600,male,2007 48 | Adelie,Dream,41.1,19,182,3425,male,2007 49 | Adelie,Dream,37.5,18.9,179,2975,NA,2007 50 | Adelie,Dream,36,17.9,190,3450,female,2007 51 | Adelie,Dream,42.3,21.2,191,4150,male,2007 52 | Adelie,Biscoe,39.6,17.7,186,3500,female,2008 53 | Adelie,Biscoe,40.1,18.9,188,4300,male,2008 54 | Adelie,Biscoe,35,17.9,190,3450,female,2008 55 | Adelie,Biscoe,42,19.5,200,4050,male,2008 56 | Adelie,Biscoe,34.5,18.1,187,2900,female,2008 57 | Adelie,Biscoe,41.4,18.6,191,3700,male,2008 58 | Adelie,Biscoe,39,17.5,186,3550,female,2008 59 | Adelie,Biscoe,40.6,18.8,193,3800,male,2008 60 | Adelie,Biscoe,36.5,16.6,181,2850,female,2008 61 | Adelie,Biscoe,37.6,19.1,194,3750,male,2008 62 | Adelie,Biscoe,35.7,16.9,185,3150,female,2008 63 | Adelie,Biscoe,41.3,21.1,195,4400,male,2008 64 | Adelie,Biscoe,37.6,17,185,3600,female,2008 65 | Adelie,Biscoe,41.1,18.2,192,4050,male,2008 66 | Adelie,Biscoe,36.4,17.1,184,2850,female,2008 67 | Adelie,Biscoe,41.6,18,192,3950,male,2008 68 | Adelie,Biscoe,35.5,16.2,195,3350,female,2008 69 | Adelie,Biscoe,41.1,19.1,188,4100,male,2008 70 | Adelie,Torgersen,35.9,16.6,190,3050,female,2008 71 | Adelie,Torgersen,41.8,19.4,198,4450,male,2008 72 | Adelie,Torgersen,33.5,19,190,3600,female,2008 73 | Adelie,Torgersen,39.7,18.4,190,3900,male,2008 74 | Adelie,Torgersen,39.6,17.2,196,3550,female,2008 75 | Adelie,Torgersen,45.8,18.9,197,4150,male,2008 76 | Adelie,Torgersen,35.5,17.5,190,3700,female,2008 77 | Adelie,Torgersen,42.8,18.5,195,4250,male,2008 78 | Adelie,Torgersen,40.9,16.8,191,3700,female,2008 79 | Adelie,Torgersen,37.2,19.4,184,3900,male,2008 80 | Adelie,Torgersen,36.2,16.1,187,3550,female,2008 81 | Adelie,Torgersen,42.1,19.1,195,4000,male,2008 82 | Adelie,Torgersen,34.6,17.2,189,3200,female,2008 83 | Adelie,Torgersen,42.9,17.6,196,4700,male,2008 84 | Adelie,Torgersen,36.7,18.8,187,3800,female,2008 85 | Adelie,Torgersen,35.1,19.4,193,4200,male,2008 86 | Adelie,Dream,37.3,17.8,191,3350,female,2008 87 | Adelie,Dream,41.3,20.3,194,3550,male,2008 88 | Adelie,Dream,36.3,19.5,190,3800,male,2008 89 | Adelie,Dream,36.9,18.6,189,3500,female,2008 90 | Adelie,Dream,38.3,19.2,189,3950,male,2008 91 | Adelie,Dream,38.9,18.8,190,3600,female,2008 92 | Adelie,Dream,35.7,18,202,3550,female,2008 93 | Adelie,Dream,41.1,18.1,205,4300,male,2008 94 | Adelie,Dream,34,17.1,185,3400,female,2008 95 | Adelie,Dream,39.6,18.1,186,4450,male,2008 96 | Adelie,Dream,36.2,17.3,187,3300,female,2008 97 | Adelie,Dream,40.8,18.9,208,4300,male,2008 98 | Adelie,Dream,38.1,18.6,190,3700,female,2008 99 | Adelie,Dream,40.3,18.5,196,4350,male,2008 100 | Adelie,Dream,33.1,16.1,178,2900,female,2008 101 | Adelie,Dream,43.2,18.5,192,4100,male,2008 102 | Adelie,Biscoe,35,17.9,192,3725,female,2009 103 | Adelie,Biscoe,41,20,203,4725,male,2009 104 | Adelie,Biscoe,37.7,16,183,3075,female,2009 105 | Adelie,Biscoe,37.8,20,190,4250,male,2009 106 | Adelie,Biscoe,37.9,18.6,193,2925,female,2009 107 | Adelie,Biscoe,39.7,18.9,184,3550,male,2009 108 | Adelie,Biscoe,38.6,17.2,199,3750,female,2009 109 | Adelie,Biscoe,38.2,20,190,3900,male,2009 110 | Adelie,Biscoe,38.1,17,181,3175,female,2009 111 | Adelie,Biscoe,43.2,19,197,4775,male,2009 112 | Adelie,Biscoe,38.1,16.5,198,3825,female,2009 113 | Adelie,Biscoe,45.6,20.3,191,4600,male,2009 114 | Adelie,Biscoe,39.7,17.7,193,3200,female,2009 115 | Adelie,Biscoe,42.2,19.5,197,4275,male,2009 116 | Adelie,Biscoe,39.6,20.7,191,3900,female,2009 117 | Adelie,Biscoe,42.7,18.3,196,4075,male,2009 118 | Adelie,Torgersen,38.6,17,188,2900,female,2009 119 | Adelie,Torgersen,37.3,20.5,199,3775,male,2009 120 | Adelie,Torgersen,35.7,17,189,3350,female,2009 121 | Adelie,Torgersen,41.1,18.6,189,3325,male,2009 122 | Adelie,Torgersen,36.2,17.2,187,3150,female,2009 123 | Adelie,Torgersen,37.7,19.8,198,3500,male,2009 124 | Adelie,Torgersen,40.2,17,176,3450,female,2009 125 | Adelie,Torgersen,41.4,18.5,202,3875,male,2009 126 | Adelie,Torgersen,35.2,15.9,186,3050,female,2009 127 | Adelie,Torgersen,40.6,19,199,4000,male,2009 128 | Adelie,Torgersen,38.8,17.6,191,3275,female,2009 129 | Adelie,Torgersen,41.5,18.3,195,4300,male,2009 130 | Adelie,Torgersen,39,17.1,191,3050,female,2009 131 | Adelie,Torgersen,44.1,18,210,4000,male,2009 132 | Adelie,Torgersen,38.5,17.9,190,3325,female,2009 133 | Adelie,Torgersen,43.1,19.2,197,3500,male,2009 134 | Adelie,Dream,36.8,18.5,193,3500,female,2009 135 | Adelie,Dream,37.5,18.5,199,4475,male,2009 136 | Adelie,Dream,38.1,17.6,187,3425,female,2009 137 | Adelie,Dream,41.1,17.5,190,3900,male,2009 138 | Adelie,Dream,35.6,17.5,191,3175,female,2009 139 | Adelie,Dream,40.2,20.1,200,3975,male,2009 140 | Adelie,Dream,37,16.5,185,3400,female,2009 141 | Adelie,Dream,39.7,17.9,193,4250,male,2009 142 | Adelie,Dream,40.2,17.1,193,3400,female,2009 143 | Adelie,Dream,40.6,17.2,187,3475,male,2009 144 | Adelie,Dream,32.1,15.5,188,3050,female,2009 145 | Adelie,Dream,40.7,17,190,3725,male,2009 146 | Adelie,Dream,37.3,16.8,192,3000,female,2009 147 | Adelie,Dream,39,18.7,185,3650,male,2009 148 | Adelie,Dream,39.2,18.6,190,4250,male,2009 149 | Adelie,Dream,36.6,18.4,184,3475,female,2009 150 | Adelie,Dream,36,17.8,195,3450,female,2009 151 | Adelie,Dream,37.8,18.1,193,3750,male,2009 152 | Adelie,Dream,36,17.1,187,3700,female,2009 153 | Adelie,Dream,41.5,18.5,201,4000,male,2009 154 | Gentoo,Biscoe,46.1,13.2,211,4500,female,2007 155 | Gentoo,Biscoe,50,16.3,230,5700,male,2007 156 | Gentoo,Biscoe,48.7,14.1,210,4450,female,2007 157 | Gentoo,Biscoe,50,15.2,218,5700,male,2007 158 | Gentoo,Biscoe,47.6,14.5,215,5400,male,2007 159 | Gentoo,Biscoe,46.5,13.5,210,4550,female,2007 160 | Gentoo,Biscoe,45.4,14.6,211,4800,female,2007 161 | Gentoo,Biscoe,46.7,15.3,219,5200,male,2007 162 | Gentoo,Biscoe,43.3,13.4,209,4400,female,2007 163 | Gentoo,Biscoe,46.8,15.4,215,5150,male,2007 164 | Gentoo,Biscoe,40.9,13.7,214,4650,female,2007 165 | Gentoo,Biscoe,49,16.1,216,5550,male,2007 166 | Gentoo,Biscoe,45.5,13.7,214,4650,female,2007 167 | Gentoo,Biscoe,48.4,14.6,213,5850,male,2007 168 | Gentoo,Biscoe,45.8,14.6,210,4200,female,2007 169 | Gentoo,Biscoe,49.3,15.7,217,5850,male,2007 170 | Gentoo,Biscoe,42,13.5,210,4150,female,2007 171 | Gentoo,Biscoe,49.2,15.2,221,6300,male,2007 172 | Gentoo,Biscoe,46.2,14.5,209,4800,female,2007 173 | Gentoo,Biscoe,48.7,15.1,222,5350,male,2007 174 | Gentoo,Biscoe,50.2,14.3,218,5700,male,2007 175 | Gentoo,Biscoe,45.1,14.5,215,5000,female,2007 176 | Gentoo,Biscoe,46.5,14.5,213,4400,female,2007 177 | Gentoo,Biscoe,46.3,15.8,215,5050,male,2007 178 | Gentoo,Biscoe,42.9,13.1,215,5000,female,2007 179 | Gentoo,Biscoe,46.1,15.1,215,5100,male,2007 180 | Gentoo,Biscoe,44.5,14.3,216,4100,NA,2007 181 | Gentoo,Biscoe,47.8,15,215,5650,male,2007 182 | Gentoo,Biscoe,48.2,14.3,210,4600,female,2007 183 | Gentoo,Biscoe,50,15.3,220,5550,male,2007 184 | Gentoo,Biscoe,47.3,15.3,222,5250,male,2007 185 | Gentoo,Biscoe,42.8,14.2,209,4700,female,2007 186 | Gentoo,Biscoe,45.1,14.5,207,5050,female,2007 187 | Gentoo,Biscoe,59.6,17,230,6050,male,2007 188 | Gentoo,Biscoe,49.1,14.8,220,5150,female,2008 189 | Gentoo,Biscoe,48.4,16.3,220,5400,male,2008 190 | Gentoo,Biscoe,42.6,13.7,213,4950,female,2008 191 | Gentoo,Biscoe,44.4,17.3,219,5250,male,2008 192 | Gentoo,Biscoe,44,13.6,208,4350,female,2008 193 | Gentoo,Biscoe,48.7,15.7,208,5350,male,2008 194 | Gentoo,Biscoe,42.7,13.7,208,3950,female,2008 195 | Gentoo,Biscoe,49.6,16,225,5700,male,2008 196 | Gentoo,Biscoe,45.3,13.7,210,4300,female,2008 197 | Gentoo,Biscoe,49.6,15,216,4750,male,2008 198 | Gentoo,Biscoe,50.5,15.9,222,5550,male,2008 199 | Gentoo,Biscoe,43.6,13.9,217,4900,female,2008 200 | Gentoo,Biscoe,45.5,13.9,210,4200,female,2008 201 | Gentoo,Biscoe,50.5,15.9,225,5400,male,2008 202 | Gentoo,Biscoe,44.9,13.3,213,5100,female,2008 203 | Gentoo,Biscoe,45.2,15.8,215,5300,male,2008 204 | Gentoo,Biscoe,46.6,14.2,210,4850,female,2008 205 | Gentoo,Biscoe,48.5,14.1,220,5300,male,2008 206 | Gentoo,Biscoe,45.1,14.4,210,4400,female,2008 207 | Gentoo,Biscoe,50.1,15,225,5000,male,2008 208 | Gentoo,Biscoe,46.5,14.4,217,4900,female,2008 209 | Gentoo,Biscoe,45,15.4,220,5050,male,2008 210 | Gentoo,Biscoe,43.8,13.9,208,4300,female,2008 211 | Gentoo,Biscoe,45.5,15,220,5000,male,2008 212 | Gentoo,Biscoe,43.2,14.5,208,4450,female,2008 213 | Gentoo,Biscoe,50.4,15.3,224,5550,male,2008 214 | Gentoo,Biscoe,45.3,13.8,208,4200,female,2008 215 | Gentoo,Biscoe,46.2,14.9,221,5300,male,2008 216 | Gentoo,Biscoe,45.7,13.9,214,4400,female,2008 217 | Gentoo,Biscoe,54.3,15.7,231,5650,male,2008 218 | Gentoo,Biscoe,45.8,14.2,219,4700,female,2008 219 | Gentoo,Biscoe,49.8,16.8,230,5700,male,2008 220 | Gentoo,Biscoe,46.2,14.4,214,4650,NA,2008 221 | Gentoo,Biscoe,49.5,16.2,229,5800,male,2008 222 | Gentoo,Biscoe,43.5,14.2,220,4700,female,2008 223 | Gentoo,Biscoe,50.7,15,223,5550,male,2008 224 | Gentoo,Biscoe,47.7,15,216,4750,female,2008 225 | Gentoo,Biscoe,46.4,15.6,221,5000,male,2008 226 | Gentoo,Biscoe,48.2,15.6,221,5100,male,2008 227 | Gentoo,Biscoe,46.5,14.8,217,5200,female,2008 228 | Gentoo,Biscoe,46.4,15,216,4700,female,2008 229 | Gentoo,Biscoe,48.6,16,230,5800,male,2008 230 | Gentoo,Biscoe,47.5,14.2,209,4600,female,2008 231 | Gentoo,Biscoe,51.1,16.3,220,6000,male,2008 232 | Gentoo,Biscoe,45.2,13.8,215,4750,female,2008 233 | Gentoo,Biscoe,45.2,16.4,223,5950,male,2008 234 | Gentoo,Biscoe,49.1,14.5,212,4625,female,2009 235 | Gentoo,Biscoe,52.5,15.6,221,5450,male,2009 236 | Gentoo,Biscoe,47.4,14.6,212,4725,female,2009 237 | Gentoo,Biscoe,50,15.9,224,5350,male,2009 238 | Gentoo,Biscoe,44.9,13.8,212,4750,female,2009 239 | Gentoo,Biscoe,50.8,17.3,228,5600,male,2009 240 | Gentoo,Biscoe,43.4,14.4,218,4600,female,2009 241 | Gentoo,Biscoe,51.3,14.2,218,5300,male,2009 242 | Gentoo,Biscoe,47.5,14,212,4875,female,2009 243 | Gentoo,Biscoe,52.1,17,230,5550,male,2009 244 | Gentoo,Biscoe,47.5,15,218,4950,female,2009 245 | Gentoo,Biscoe,52.2,17.1,228,5400,male,2009 246 | Gentoo,Biscoe,45.5,14.5,212,4750,female,2009 247 | Gentoo,Biscoe,49.5,16.1,224,5650,male,2009 248 | Gentoo,Biscoe,44.5,14.7,214,4850,female,2009 249 | Gentoo,Biscoe,50.8,15.7,226,5200,male,2009 250 | Gentoo,Biscoe,49.4,15.8,216,4925,male,2009 251 | Gentoo,Biscoe,46.9,14.6,222,4875,female,2009 252 | Gentoo,Biscoe,48.4,14.4,203,4625,female,2009 253 | Gentoo,Biscoe,51.1,16.5,225,5250,male,2009 254 | Gentoo,Biscoe,48.5,15,219,4850,female,2009 255 | Gentoo,Biscoe,55.9,17,228,5600,male,2009 256 | Gentoo,Biscoe,47.2,15.5,215,4975,female,2009 257 | Gentoo,Biscoe,49.1,15,228,5500,male,2009 258 | Gentoo,Biscoe,47.3,13.8,216,4725,NA,2009 259 | Gentoo,Biscoe,46.8,16.1,215,5500,male,2009 260 | Gentoo,Biscoe,41.7,14.7,210,4700,female,2009 261 | Gentoo,Biscoe,53.4,15.8,219,5500,male,2009 262 | Gentoo,Biscoe,43.3,14,208,4575,female,2009 263 | Gentoo,Biscoe,48.1,15.1,209,5500,male,2009 264 | Gentoo,Biscoe,50.5,15.2,216,5000,female,2009 265 | Gentoo,Biscoe,49.8,15.9,229,5950,male,2009 266 | Gentoo,Biscoe,43.5,15.2,213,4650,female,2009 267 | Gentoo,Biscoe,51.5,16.3,230,5500,male,2009 268 | Gentoo,Biscoe,46.2,14.1,217,4375,female,2009 269 | Gentoo,Biscoe,55.1,16,230,5850,male,2009 270 | Gentoo,Biscoe,44.5,15.7,217,4875,NA,2009 271 | Gentoo,Biscoe,48.8,16.2,222,6000,male,2009 272 | Gentoo,Biscoe,47.2,13.7,214,4925,female,2009 273 | Gentoo,Biscoe,NA,NA,NA,NA,NA,2009 274 | Gentoo,Biscoe,46.8,14.3,215,4850,female,2009 275 | Gentoo,Biscoe,50.4,15.7,222,5750,male,2009 276 | Gentoo,Biscoe,45.2,14.8,212,5200,female,2009 277 | Gentoo,Biscoe,49.9,16.1,213,5400,male,2009 278 | Chinstrap,Dream,46.5,17.9,192,3500,female,2007 279 | Chinstrap,Dream,50,19.5,196,3900,male,2007 280 | Chinstrap,Dream,51.3,19.2,193,3650,male,2007 281 | Chinstrap,Dream,45.4,18.7,188,3525,female,2007 282 | Chinstrap,Dream,52.7,19.8,197,3725,male,2007 283 | Chinstrap,Dream,45.2,17.8,198,3950,female,2007 284 | Chinstrap,Dream,46.1,18.2,178,3250,female,2007 285 | Chinstrap,Dream,51.3,18.2,197,3750,male,2007 286 | Chinstrap,Dream,46,18.9,195,4150,female,2007 287 | Chinstrap,Dream,51.3,19.9,198,3700,male,2007 288 | Chinstrap,Dream,46.6,17.8,193,3800,female,2007 289 | Chinstrap,Dream,51.7,20.3,194,3775,male,2007 290 | Chinstrap,Dream,47,17.3,185,3700,female,2007 291 | Chinstrap,Dream,52,18.1,201,4050,male,2007 292 | Chinstrap,Dream,45.9,17.1,190,3575,female,2007 293 | Chinstrap,Dream,50.5,19.6,201,4050,male,2007 294 | Chinstrap,Dream,50.3,20,197,3300,male,2007 295 | Chinstrap,Dream,58,17.8,181,3700,female,2007 296 | Chinstrap,Dream,46.4,18.6,190,3450,female,2007 297 | Chinstrap,Dream,49.2,18.2,195,4400,male,2007 298 | Chinstrap,Dream,42.4,17.3,181,3600,female,2007 299 | Chinstrap,Dream,48.5,17.5,191,3400,male,2007 300 | Chinstrap,Dream,43.2,16.6,187,2900,female,2007 301 | Chinstrap,Dream,50.6,19.4,193,3800,male,2007 302 | Chinstrap,Dream,46.7,17.9,195,3300,female,2007 303 | Chinstrap,Dream,52,19,197,4150,male,2007 304 | Chinstrap,Dream,50.5,18.4,200,3400,female,2008 305 | Chinstrap,Dream,49.5,19,200,3800,male,2008 306 | Chinstrap,Dream,46.4,17.8,191,3700,female,2008 307 | Chinstrap,Dream,52.8,20,205,4550,male,2008 308 | Chinstrap,Dream,40.9,16.6,187,3200,female,2008 309 | Chinstrap,Dream,54.2,20.8,201,4300,male,2008 310 | Chinstrap,Dream,42.5,16.7,187,3350,female,2008 311 | Chinstrap,Dream,51,18.8,203,4100,male,2008 312 | Chinstrap,Dream,49.7,18.6,195,3600,male,2008 313 | Chinstrap,Dream,47.5,16.8,199,3900,female,2008 314 | Chinstrap,Dream,47.6,18.3,195,3850,female,2008 315 | Chinstrap,Dream,52,20.7,210,4800,male,2008 316 | Chinstrap,Dream,46.9,16.6,192,2700,female,2008 317 | Chinstrap,Dream,53.5,19.9,205,4500,male,2008 318 | Chinstrap,Dream,49,19.5,210,3950,male,2008 319 | Chinstrap,Dream,46.2,17.5,187,3650,female,2008 320 | Chinstrap,Dream,50.9,19.1,196,3550,male,2008 321 | Chinstrap,Dream,45.5,17,196,3500,female,2008 322 | Chinstrap,Dream,50.9,17.9,196,3675,female,2009 323 | Chinstrap,Dream,50.8,18.5,201,4450,male,2009 324 | Chinstrap,Dream,50.1,17.9,190,3400,female,2009 325 | Chinstrap,Dream,49,19.6,212,4300,male,2009 326 | Chinstrap,Dream,51.5,18.7,187,3250,male,2009 327 | Chinstrap,Dream,49.8,17.3,198,3675,female,2009 328 | Chinstrap,Dream,48.1,16.4,199,3325,female,2009 329 | Chinstrap,Dream,51.4,19,201,3950,male,2009 330 | Chinstrap,Dream,45.7,17.3,193,3600,female,2009 331 | Chinstrap,Dream,50.7,19.7,203,4050,male,2009 332 | Chinstrap,Dream,42.5,17.3,187,3350,female,2009 333 | Chinstrap,Dream,52.2,18.8,197,3450,male,2009 334 | Chinstrap,Dream,45.2,16.6,191,3250,female,2009 335 | Chinstrap,Dream,49.3,19.9,203,4050,male,2009 336 | Chinstrap,Dream,50.2,18.8,202,3800,male,2009 337 | Chinstrap,Dream,45.6,19.4,194,3525,female,2009 338 | Chinstrap,Dream,51.9,19.5,206,3950,male,2009 339 | Chinstrap,Dream,46.8,16.5,189,3650,female,2009 340 | Chinstrap,Dream,45.7,17,195,3650,female,2009 341 | Chinstrap,Dream,55.8,19.8,207,4000,male,2009 342 | Chinstrap,Dream,43.5,18.1,202,3400,female,2009 343 | Chinstrap,Dream,49.6,18.2,193,3775,male,2009 344 | Chinstrap,Dream,50.8,19,210,4100,male,2009 345 | Chinstrap,Dream,50.2,18.7,198,3775,female,2009 346 | -------------------------------------------------------------------------------- /_quarto_demo/references.bib: -------------------------------------------------------------------------------- 1 | @Manual{palmerpenguins, 2 | title = {palmerpenguins: Palmer Archipelago (Antarctica) penguin data}, 3 | author = {Allison Marie Horst and Alison Presmanes Hill and Kristen B Gorman}, 4 | year = {2020}, 5 | note = {R package version 0.1.0}, 6 | doi = {10.5281/zenodo.3960218}, 7 | url = {https://allisonhorst.github.io/palmerpenguins/}, 8 | } 9 | @Book{xie2015, 10 | title = {Dynamic Documents with {R} and knitr}, 11 | author = {Yihui Xie}, 12 | publisher = {Chapman and Hall/CRC}, 13 | address = {Boca Raton, Florida}, 14 | year = {2015}, 15 | edition = {2nd}, 16 | note = {ISBN 978-1498716963}, 17 | url = {https://yihui.name/knitr/}, 18 | } 19 | @Book{xie2016, 20 | title = {bookdown: Authoring Books and Technical Documents with {R} Markdown}, 21 | author = {Yihui Xie}, 22 | publisher = {Chapman and Hall/CRC}, 23 | address = {Boca Raton, Florida}, 24 | year = {2016}, 25 | note = {ISBN 978-1138700109}, 26 | url = {https://github.com/rstudio/bookdown}, 27 | } 28 | @Book{xie2017, 29 | title = {blogdown: Creating Websites with {R} Markdown}, 30 | author = {Yihui Xie and Alison Presmanes Hill and Amber Thomas}, 31 | publisher = {Chapman and Hall/CRC}, 32 | address = {Boca Raton, Florida}, 33 | year = {2017}, 34 | note = {ISBN 978-0815363729}, 35 | url = {https://github.com/rstudio/blogdown}, 36 | } 37 | @Book{xie2018, 38 | title = {R Markdown: The Definitive Guide}, 39 | author = {Yihui Xie and J.J. Allaire and Garrett Grolemund}, 40 | publisher = {Chapman and Hall/CRC}, 41 | address = {Boca Raton, Florida}, 42 | year = {2018}, 43 | note = {ISBN 9781138359338}, 44 | url = {https://bookdown.org/yihui/rmarkdown}, 45 | } 46 | @Book{wickham2015, 47 | author = {Wickham, Hadley}, 48 | title = {R Packages}, 49 | year = {2015}, 50 | isbn = {1491910593, 9781491910597}, 51 | edition = {1st}, 52 | publisher = {O'Reilly Media, Inc.}, 53 | } 54 | @article{bion2018, 55 | author = {Ricardo Bion and Robert Chang and Jason Goodman}, 56 | title = {How R Helps Airbnb Make the Most of its Data}, 57 | journal = {The American Statistician}, 58 | volume = {72}, 59 | number = {1}, 60 | pages = {46-52}, 61 | year = {2018}, 62 | publisher = {Taylor \& Francis}, 63 | doi = {10.1080/00031305.2017.1392362}, 64 | URL = {https://doi.org/10.1080/00031305.2017.1392362}, 65 | eprint = {https://doi.org/10.1080/00031305.2017.1392362} 66 | } 67 | @article{knuth1984, 68 | title={Literate programming}, 69 | author={Knuth, Donald E.}, 70 | journal={The Computer Journal}, 71 | volume={27}, 72 | number={2}, 73 | pages={97--111}, 74 | year={1984}, 75 | publisher={British Computer Society} 76 | } 77 | @article{hartgerink2017, 78 | title={Too good to be false: Nonsignificant results revisited}, 79 | author={Hartgerink, Chris HJ and Wicherts, Jelte M and van Assen, Marcel ALM}, 80 | journal={Collabra: Psychology}, 81 | volume={3}, 82 | number={1}, 83 | year={2017}, 84 | publisher={The Regents of the University of California} 85 | } 86 | @article{lowndes2017, 87 | title={Our path to better science in less time using open data science tools}, 88 | author={Lowndes, Julia S Stewart and Best, Benjamin D and Scarborough, Courtney and Afflerbach, Jamie C and Frazier, Melanie R and O’Hara, Casey C and Jiang, Ning and Halpern, Benjamin S}, 89 | journal={Nature ecology \& evolution}, 90 | volume={1}, 91 | number={6}, 92 | year={2017}, 93 | publisher={Nature Publishing Group} 94 | } 95 | 96 | -------------------------------------------------------------------------------- /about.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Instructors" 3 | description: "Information on your instructors for the course." 4 | --- 5 | 6 | ## J.J. Allaire 7 | 8 | [![](photos/jj.png){width="150" fig-align="center"}](https://www.linkedin.com/in/jjallaire/) 9 | 10 | [J.J.](https://www.linkedin.com/in/jjallaire/) is the founder of [Posit](https://posit.co/) and the creator of the RStudio IDE. J.J. is an author of several packages in the R Markdown publishing ecosystem including rmarkdown, flexdashboard, learnr, and distill, and also worked extensively on the R interfaces to Python and TensorFlow. J.J. is now leading the Quarto project, which is a new Jupyter-based scientific and technical publishing system. 11 | 12 | J.J. is also appearing in another JupyterCon 2023 talk: [Jupyter Notebooks + Quarto for customizable and reproducible documents, websites and books](https://cfp.jupytercon.com/2023/talk/CZDZSB/). 13 | 14 | 15 | ## Wasim Lorgat 16 | 17 | [![](photos/wasim.jpeg){width="150" fig-align="center"}](https://wasimlorgat.com/) 18 | 19 | [Wasim](https://wasimlorgat.com/) is a software engineer, data scientist, and core developer of [nbdev](https://nbdev.fast.ai/). Wasimkhas held technical leadership positions in South African startups. At DataProphet, he led the development of machine learning techniques for reducing defects in manufacturing plants. And at Aerobotics, he led the team that built aerial drone computer vision systems to provide farmers with high-resolution crop data. 20 | 21 | You can find out more about Wasim on [his website](https://wasimlorgat.com/). 22 | 23 | ## Hamel Husain 24 | 25 | [![](photos/hamel.jpeg){width="150" fig-align="center"}](https://hamel.dev) 26 | 27 | [Hamel](https://hamel.dev) is a core developer of [nbdev](https://nbdev.fast.ai/) and key community member of [fast.ai](https://fast.ai/). Hamel has built ML infrastructure and deployed data products at Airbnb, GitHub, and DataRobot. Hamel also contributes to many open-source projects related to machine learning infrastructure and developer tools. 28 | 29 | You can find more about Hamel on [his website](https://hamel.dev/). 30 | -------------------------------------------------------------------------------- /gha.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: Example GitHub Action 3 | description: Example GitHub Action that deploys Quarto 4 | --- 5 | 6 | ```{.yaml filename=".gitub/workflows/publish.yml"} 7 | on: 8 | workflow_dispatch: # <1> 9 | pull_request: # <1> 10 | push: # <1> 11 | branches: release-prod # <1> 12 | 13 | name: Quarto Publish 14 | 15 | jobs: 16 | build-deploy: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/setup-python@v4 # <2> 20 | with: # <2> 21 | python-version: '3.10' # <2> 22 | 23 | - name: install nbformat for ipynb filter # <2> 24 | run: pip install nbformat==5.7.3 # <2> 25 | 26 | - name: Check out repository # <3> 27 | uses: actions/checkout@v3 # <3> 28 | 29 | - name: Set up Quarto 30 | uses: quarto-dev/quarto-actions/setup@v2 31 | with: 32 | version: "1.2.475" # <4> 33 | 34 | - name: Render # <5> 35 | uses: quarto-dev/quarto-actions/render@v2 # <5> 36 | with: # <5> 37 | to: html # <5> 38 | 39 | - name: Deploy to GitHub Pages # <6> 40 | if: github.event_name != 'pull_request' # <6> 41 | uses: peaceiris/actions-gh-pages@v3 # <6> 42 | with: # <6> 43 | github_token: ${{ secrets.GITHUB_TOKEN }} # <6> 44 | publish_dir: ./_site # <6> 45 | cname: yoursite.com # <6> 46 | ``` 47 | 1. Trigger the action on push, pull request, or manually 48 | 2. Set up Python and install nbformat 49 | 3. Check out the repository 50 | 4. Pin the version of Quarto to use 51 | 5. Render the site 52 | 6. Publish the site to GitHub Pages -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/icon.png -------------------------------------------------------------------------------- /index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Nbdev Tutorial" 3 | description: "Resources for the [nbdev + Quarto tutorial](https://cfp.jupytercon.com/2023/talk/ZRS7CW/) at JupyterCon, 2023." 4 | image: nbdev.png 5 | --- 6 | 7 | [Nbdev](https://nbdev.fast.ai/) is an exciting literate and exploratory programming framework. With nbdev, you write your tests, documentation and software in one context: a Jupyter Notebook. Nbdev leverages [Quarto](https://quarto.org/) to render documentation sites giving you additional power to customize your documentation. 8 | 9 | In this tutorial, we will walk you through how to use nbdev from the ground up, and provide an overview of some of the underlying technologies such as Quarto and [execnb](https://fastai.github.io/execnb/). 10 | 11 | ## Resources For This Tutorial 12 | 13 | - The [slides](https://docs.google.com/presentation/d/1Ri4m4KxXaR5rH-zMM_EGZNhupj0SlpiSac2jAhpFpyI/edit?usp=sharing) for this talk. 14 | - The [GitHub repo](https://github.com/fastai/jupytercon-2023) with all of the examples and the source code for this site. 15 | 16 | ## Optional Pre-requisites 17 | 18 | *Optional because it's best to watch and try this yourself at home.* 19 | 20 | 1. Install [Quarto](https://quarto.org/docs/get-started/). 21 | 2. Install [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) with `pip install jupyterlab`. 22 | 3. Install [nbdev](https://nbdev.fast.ai/) with `pip install nbdev`. 23 | 4. Install VSCode by following [the official docs](https://code.visualstudio.com/download). 24 | 5. Install the [nbdev VSCode extension](https://marketplace.visualstudio.com/items?itemName=hamelhusain.nbdev) [^1]. 25 | 6. Install the [Quarto JupyterLab extension](https://github.com/quarto-dev/quarto/tree/main/apps/jupyterlab). 26 | 7. Optionally, install the [github cli](https://cli.github.com/). 27 | 28 | [^1]: This will automatically install the [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) and [Quarto](https://marketplace.visualstudio.com/items?itemName=quarto.quarto) extensions as well. 29 | 30 | ## 1. Intro (20 minutes) 31 | 32 | Motivation for nbdev -- literate & exploratory programming ([slides](https://docs.google.com/presentation/d/1Ri4m4KxXaR5rH-zMM_EGZNhupj0SlpiSac2jAhpFpyI/edit?usp=sharing)). 33 | 34 | ## 2. Quarto Walkthrough (40 minutes) 35 | 36 | - Create a new project using `quarto project create`, see the [\_quarto.yml](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/_quarto.yml) file. 37 | - [basics.ipynb](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/basics.ipynb) 38 | - No execution by default 39 | - [cell-options.qmd](https://github.com/fastai/jupytercon-2023/blob/main/_quarto_demo/cell-options.qmd) 40 | - The qmd format is interesting and mirrors the experience of RStudio to a large extent 41 | - Running cells: 42 | - `CMD + SHIFT + Enter` 43 | - Jupyter cache (pip install Jupyter Cache) 44 | - Change value in cell (execution by default vs. notebooks not executing by default) 45 | - Quarto: Assist Panel, show how it works (only in `.qmd` now) 46 | - Customizing output 47 | - Code cell options: 48 | - `echo: true|false|fenced` 49 | - `include: false` 50 | - `output: true|false|asis` 51 | - Front matter 52 | - `code-fold: true` 53 | - `code-tools: true` 54 | - Other [important cell options](https://quarto.org/docs/reference/cells/cells-jupyter.html#overview) 55 | - General [HTML options](https://quarto.org/docs/output-formats/html-basics.html) 56 | - Hotkeys: 57 | - `CMD + SHIFT + O`; outline navigator 58 | - `CMD + T`; see tags (project wide) 59 | - Other VSCode extension features 60 | - [Options](https://quarto.org/docs/tools/vscode.html) 61 | - [Visual mode](https://quarto.org/docs/visual-editor/vscode/) 62 | - Editor Toolbar: makes **authoring tables** so much nicer than plain markdown! 63 | - Remapping keys and toggling back and forth. [superkey](https://superkey.app/) is a great tool for this. 64 | - Different formats 65 | - [msword.ipynb](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/msword.ipynb) 66 | - [presentation.ipynb](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/presentation.ipynb) 67 | - [pdf.ipynb](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/pdf.ipynb) 68 | - Some of my favorite features 69 | - [annotation.qmd](https://github.com/fastai/jupytercon-2023/tree/main/_quarto_demo/annotation.qmd) 70 | - You can make multi-line by commenting twice 71 | - Conditional formatting 72 | - Show locally in VSCode: [nbdev/nbs/getting_started.ipynb](https://github.com/fastai/nbdev/blob/master/nbs/getting_started.ipynb). 73 | - Notice special cell tags that let you know when something is visible 74 | - Testing your docs by executing code: 75 | - Set `execute: enabled: true` in \_quarto.yml or pass the`—execute` flag to quarto 76 | - Use the `execution: freeze: true` if you need to opt a notebook out of execution. [reference](https://quarto.org/docs/computations/caching.html#disabling-execution). 77 | - The Jupyter cache can be helpful while developing: [reference](https://quarto.org/docs/computations/caching.html#jupyter-cache). 78 | - External listings [example](https://github.com/hamelsmu/hamel/blob/master/index.qmd#L16) \| [docs](https://quarto.org/docs/websites/website-listings-custom.html#metadata-file-listings). 79 | - Notes/TILs: 80 | - [Hamel's notes](https://hamel.dev/notes/) \| [Wasim's TILs](https://wasimlorgat.com/tils/) 81 | - Notebook filters: 82 | - [example](https://github.com/hamelsmu/hamel/blob/master/quarto_filter.py) \| [docs](https://quarto.org/docs/extensions/nbfilter.html) 83 | - Publishing & Previewing 84 | - `quarto publish` 85 | - `quarto render` followed by `netlify` 86 | - Official [Quarto GitHub Actions](https://github.com/quarto-dev/quarto-actions). 87 | - [example](./gha.qmd) 88 | - Configuration: `_quarto.yml`, front matter etc 89 | - Global options: `_quarto.yml`: [docs](https://quarto.org/docs/websites/index.html#config-file) 90 | - Page front matter: [docs](https://quarto.org/docs/output-formats/html-basics.html) 91 | - Overriding global options per directory: [docs](https://quarto.org/docs/projects/quarto-projects.html#directory-metadata) 92 | - Repeatable options: [listing_meta](https://github.com/hamelsmu/hamel/blob/master/notes/_listing_meta.yml) and merging that with `metadata-files` [front matter](https://github.com/hamelsmu/hamel/blob/master/notes/quarto/index.qmd) 93 | - Where to get help: 94 | - The quarto website [repo](https://github.com/quarto-dev/quarto-web). 95 | - Example [gallery](https://quarto.org/docs/gallery/). 96 | 97 | ## 3. nbdev Walkthrough (60 minutes) 98 | 99 | This walkthrough is largely based on the official [end-to-end walkthrough](https://nbdev.fast.ai/tutorials/tutorial.html) and [notebook best practices guide](https://nbdev.fast.ai/tutorials/best_practices.html). 100 | 101 | - [Installation](https://nbdev.fast.ai/tutorials/tutorial.html#installation): `pip install jupyterlab jupyterlab-quarto nbdev`. 102 | - Install [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) with `pip install jupyterlab`. 103 | - Install [nbdev](https://nbdev.fast.ai/) with `pip install nbdev`. 104 | - Install [Quarto](https://quarto.org/docs/get-started/). 105 | - Install the [Quarto JupyterLab extension](https://github.com/quarto-dev/quarto/tree/main/apps/jupyterlab). 106 | - [Setup your nbdev project](https://nbdev.fast.ai/tutorials/tutorial.html#first-steps) 107 | - Create an empty GitHub repo 108 | - Enable GitHub Pages 109 | - Initialise your repo with [`nbdev_new`](https://nbdev.fast.ai/api/cli.html#nbdev_new) 110 | - Check out your workflows 111 | - **CI** -- The CI (continuous integration) workflow streamlines your developer workflow, particularly with multiple collaborators 112 | - **Deploy to GitHub Pages** -- Builds your docs with Quarto and deploys it to GitHub Pages 113 | - Check out your docs 114 | - [Make your first edit](https://nbdev.fast.ai/tutorials/tutorial.html#make-your-first-edit) 115 | - Install [hooks](https://nbdev.fast.ai/tutorials/git_friendly_jupyter.html) for git-friendly notebooks 116 | - Build your library 117 | - Install your package 118 | - Preview your docs 119 | - Edit `00_core.ipynb` -- adding your own package's code 120 | - `#| default_exp` directive ([docs](https://nbdev.fast.ai/explanations/directives.html#default_exp-name)) 121 | - Add your own frontmatter (nbdev vs Quarto frontmatter formats) ([docs](https://nbdev.fast.ai/api/frontmatter.html)) 122 | - Add your own function using the `#| export` directive ([docs](https://nbdev.fast.ai/explanations/directives.html#export)) 123 | - Add your own examples, tests, and docs using `assert` and `fastcore.test` ([docs](https://fastcore.fast.ai/test.html)) 124 | - Prepare your changes with `nbdev_prepare`, a shortcut for: 125 | - `nbdev_export`: Export `.py` modules from `.ipynb` notebooks 126 | - `nbdev_test`: Test notebooks 127 | - `nbdev_clean`: Clean notebooks 128 | - `nbdev_readme`: Update `README.md` 129 | - Edit `index.ipynb` -- your home page 130 | - Push to GitHub 131 | - Check the updated repo and docs 132 | - Advanced functionality 133 | - Doclinks: referencing related symbols ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#reference-related-symbols-with-doclinks)) 134 | - Docments: documenting callable parameters ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#document-parameters-with-docments)) 135 | - Documenting error-cases as tests ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#document-error-cases-as-tests)) 136 | - `@patch`: Define classes across multiple cells ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#document-class-methods-with-show_doc-or-fastcore.basics.patch)) 137 | - `show_doc`: Document external objects ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#document-class-methods-with-show_doc-or-fastcore.basics.patch)) 138 | - Putting it all together: nbdev vs classical Python development ([docs](https://nbdev.fast.ai/tutorials/best_practices.html#putting-it-all-together-an-annotated-example)) 139 | 140 | ```python 141 | suits = ["♣️","♦️","❤️","♠️"] 142 | ranks = [None, "A"] + [str(x) for x in range(2,11)] + ["J", "Q", "K"] 143 | ``` 144 | 145 | ### Awesome nbdev projects 146 | 147 | #### By fast.ai 148 | 149 | - [nbdev](https://github.com/fastai/nbdev): The nbdev software development framework is itself an nbdev project 150 | - [execnb](https://fastai.github.io/execnb/): Fast and lightweight Jupyter notebook execution engine 151 | - [fastai](http://docs.fast.ai/): Simplify training fast and accurate neural nets using modern best practices 152 | - [fastcore](https://fastcore.fast.ai/): Python goodies to make your coding faster, easier, and more maintainable 153 | - [ghapi](https://ghapi.fast.ai/): A delightful and complete interface to GitHub's amazing API 154 | - [ghtop](https://fastai.github.io/ghtop-demo/): A real-time terminal user interface (TUI) for GitHub 155 | 156 | #### By the community 157 | 158 | - [AlphaPept](https://mannlabs.github.io/alphapept/): A modular Python-based framework for mass spectrometry 159 | - [FastKafka](https://fastkafka.airt.ai/): Build asynchronous web services that interact with Kafka topics 160 | - [InstructGOOSE](https://xrsrke.github.io/instructGOOSE/): Implementation of Reinforcement Learning from Human Feedback (RLHF) from the InstructGPT paper 161 | - [nbdev-mkdocs](https://nbdev-mkdocs.airt.ai/): Extend nbdev to generate docs using Material for Mkdocs 162 | - [nbdev-extensions](https://github.com/muellerzr/nbdev-extensions): A collection of nbdev extensions 163 | - [nbstata](https://hugetim.github.io/nbstata/): A Jupyter kernel for Stata built on pystata 164 | - [Poniard](https://rxavier.github.io/poniard): A scikit-learn companion that streamlines the process of fitting and comparing machine learning models. 165 | - [streamlit-jupyter](https://ddobrinskiy.github.io/streamlit-jupyter/readme.html): Preview and develop streamlit applications in Jupyter notebooks 166 | - [sveltish](https://fredguth.github.io/sveltish/): Svelte Stores in Python 167 | - [UPIT](https://www.tanishq.ai/UPIT/): Unpaired image-to-image translation using fastai/PyTorch 168 | 169 | ## Additional Reading 170 | 171 | - [nbdev docs](https://nbdev.fast.ai/) 172 | - [Quarto docs](https://quarto.org/docs/) 173 | - [About](./about.qmd) the instructors. 174 | -------------------------------------------------------------------------------- /nbdev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/nbdev.png -------------------------------------------------------------------------------- /photos/hamel.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/photos/hamel.jpeg -------------------------------------------------------------------------------- /photos/jj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/photos/jj.png -------------------------------------------------------------------------------- /photos/wasim.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fastai/jupytercon-2023/5089ea28b991d5577542973669524306f42b75b1/photos/wasim.jpeg -------------------------------------------------------------------------------- /quarto_demo: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Palmer Penguins" 3 | author: Norah Jones 4 | date: 'March 12, 2023' 5 | format: 6 | html: 7 | code-tools: true 8 | code-fold: true 9 | execute: 10 | cache: true 11 | jupyter: python3 12 | --- 13 | 14 | # Palmer Penguins 15 | 16 | ## Here is a table 17 | 18 | | Col1 | Col2 | Col3 | 19 | |------|------|------| 20 | | | | | 21 | | | | | 22 | | | | | 23 | 24 | ```{python} 25 | #| echo: false 26 | import pandas as pd 27 | df = pd.read_csv("palmer-penguins.csv") 28 | df = df[["species", "island", "year", "bill_length_mm", "bill_depth_mm"]] 29 | 30 | import time 31 | time.sleep(3) 32 | ``` 33 | 34 | ## Exploring the Data 35 | 36 | See @fig-bill-sizes for an exploration of bill sizes by species. 37 | 38 | ```{python} 39 | #| label: fig-bill-sizes 40 | #| fig-cap: Bill Sizes by Species 41 | import matplotlib.pyplot as plt 42 | import seaborn as sns 43 | g = sns.FacetGrid(df, hue="species", height=5, aspect=3.5/2) 44 | g.map(plt.scatter, "bill_length_mm", "bill_depth_mm").add_legend() 45 | ``` -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /* css styles */ 2 | figcaption{ 3 | text-align: center; 4 | } --------------------------------------------------------------------------------