-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2025-07-15-fdris-workshop.qmd
More file actions
194 lines (163 loc) · 8.14 KB
/
2025-07-15-fdris-workshop.qmd
File metadata and controls
194 lines (163 loc) · 8.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
---
title: Festival of Digital Research, Innovation and Scholarship
date: 2025-07-15
date-format: long
institute: UCL Centre for Advanced Research Computing
title-image: https://raw.githubusercontent.com/UCL-ARC/python-tooling/main/images/banner.svg
title-image-width: 70%
background-image: images/arc-banner.svg
title-slide-attributes:
data-notes: |
Hi, welcome to the python-tooling workshop. I'm {name} a {profession} at the UCL Advanced Research Computing Centre or ARC for short.
We are going to start the workshop today by giving a brief overview and demo of the python-tooling project,
which we've been working on in ARC to develop resources to assist researchers in choosing and setting up tooling to use in Python research software projects.
After the demo is complete we will be running an interactive session
where you will have a chance to try using the tools yourself.
Myself and other ARC colleagues will be on hand to answer any questions you have
and also to give advice using the tools in any existing Python research software projects you have.
---
## 👥 Contributors {.smaller}
:::{.column width="90%"}
:::::: {.columns}
::: {.column width="12.5%"}
[](https://paddyroddy.github.io/)
:::
::: {.column width="12.5%"}
[](http://scnlf.me)
:::
::: {.column width="12.5%"}
[](https://www.davidstansby.com/)
:::
::: {.column width="12.5%"}
[](http://matt-graham.github.io)
:::
::: {.column width="12.5%"}
[](https://sfmig.github.io/)
:::
::: {.column width="12.5%"}
[](https://github.com/p-j-smith/)
:::
::: {.column width="12.5%"}
[](https://github.com/ruaridhg)
:::
::: {.column width="12.5%"}
[](https://github.com/mxochicale)
:::
:::
:::::: {.columns}
::: {.column width="12.5%"}
[](https://github.com/yidilozdemir)
:::
::: {.column width="12.5%"}
[](https://giordano.github.io/)
:::
::: {.column width="12.5%"}
[](http://t-young31.github.io/)
:::
::: {.column width="12.5%"}
[](https://github.com/alessandrofelder)
:::
::: {.column width="12.5%"}
[](http://adamltyson.com/)
:::
::: {.column width="12.5%"}
[](https://willgraham01.github.io/)
:::
::: {.column width="12.5%"}
[](https://github.com/nikk-nikaznan)
:::
::: {.column width="12.5%"}
[](https://github.com/katiebuntic)
:::
:::
:::::: {.columns}
::: {.column width="12.5%"}
[](https://github.com/robertvi)
:::
::: {.column width="12.5%"}
[](http://dpshelio.github.io)
:::
::: {.column width="12.5%"}
[](http://luke.lapira.eu/)
:::
::: {.column width="12.5%"}
[](https://saransh-cpp.github.io/)
:::
::: {.column width="12.5%"}
[](http://drandrewmitchell.com/)
:::
::: {.column width="12.5%"}
[](https://profiles.ucl.ac.uk/96751-kimberly-meechan)
:::
::: {.column width="12.5%"}
[](https://github.com/jamesprime)
:::
::: {.column width="12.5%"}
[](https://github.com/cuteshaun)
:::
:::
:::
:::notes
This project is the result of the contributions of a large number of people from across ARC and also other departments in UCL such as the Department of Mechanical Engineering and Sainsburys Wellcome Centre. Of particular note are David Stansby, who had the initial idea and organized the original doc-a-thon sessions which got the ball rolling on the project, and Paddy Roddy and Sam Cunliffe, who both have made significant contributions and done a lot of the on-going event organization and project management.
:::
## 💡 Introduction
:::::: {.columns}
::: {.column .fragment width="25%"}
{height="300px"}
:::
::: {.column .fragment width="25%"}
{height="300px"}
:::
::: {.column .fragment width="25%"}
{height="300px"}
:::
::: {.column .fragment width="25%"}
{height="300px"}
:::
:::
:::notes
To give a bit of initial context:
The Python programming language is widely used in research software, due to its ease of use, wide ecosystem of existing libraries and open-source licencing.
Python packages are a way to organize Python code into reusable components, and so are a vital part of building sustainable research software in Python.
A common dilemma faced by researchers using Python is the paralysis of choice that comes from the incredibly wide range of tools available for developing, testing, documenting and benchmarking Python packages, with it often unclear what constitutes good choices of tools to use.
The `python-tooling` project is a set of resources developed by UCL ARC to help researchers in choosing and setting up tooling to use in Python research software projects.
:::
## 🔎 Overview
:::{.no-bullet}
- 🚦 Tool recommendations website <br /> <https://github-pages.arc.ucl.ac.uk/python-tooling>
- 🍪 Package cookiecutter template <br /> <https://github.com/UCL-ARC/python-tooling>
:::
:::notes
The project consists of
- a website which uses a traffic light system to give recommendations on tools and services that are useful when building a Python package,
- and a cookiecutter template that can be used to quickly set up a Python package with our tooling recommendations to ensure that a new project adheres with good research software development practice.
:::
## 🚦 Tool recommendations website
:::notes
The website has pages giving recommendations on a range of different categories of tools and services, such as utilities for benchmarking and profiling code to improve performance, generating documentation and writing and running tests.
On each page a table listing relevant tools and packages with a link to the package or service, a short summary and a traffic light recommendation for each.
The traffic lights are meant to give a quick opinionated suggestion of the tools we most recommend for a particular task.
:::
```{=html}
<iframe src="https://github-pages.arc.ucl.ac.uk/python-tooling" title="UCL ARC Python tooling website" width="1000" height="500" style="border:none;" ></iframe>
```
## 🍪 Template demo
<div id="python-tooling-demo"></div>
<script src="/js/asciinema-player.min.js"></script>
<script>
AsciinemaPlayer.create('images/python-tooling.cast', document.getElementById('python-tooling-demo'), {
speed: 0.75,
cols: 115,
height: 16,
autoPlay: false,
preload: true
});
</script>
:::notes
```
uvx cookiecutter gh:ucl-arc/python-tooling --checkout-latest
```
:::
## 🧑🏫 Tutorial

<https://tinyurl.com/py-tool-tutorial>