Skip to content

Commit 392b454

Browse files
committed
ENH: Add first pass at a registries
This commit includes the first pass at a speaker and talk registries. It manages each as a ``.toml`` file which contains the required data about the speaker or talk respectively. Further it includes checks that the ``.toml`` files are correctly formatted, which can also be run in CI.
1 parent 9d591b5 commit 392b454

File tree

5 files changed

+93
-1
lines changed

5 files changed

+93
-1
lines changed

.github/workflows/pre-commit.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: pre-commit
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
jobs:
9+
pre-commit:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
- uses: actions/setup-python@v3
14+
- uses: pre-commit/action@v3.0.1

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
repos:
2+
- repo: https://github.com/pre-commit/pre-commit-hooks
3+
rev: v2.3.0
4+
hooks:
5+
- id: check-toml
6+
- id: trailing-whitespace

README.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,49 @@
1-
[holding repo for list of Australia Python speakers]
1+
# Speaker and Talk registry for Python Australia
2+
3+
This repository contains a registry of people, and their talks, that have been presented at Python community events in
4+
Australia alongside several scripts to retrieve information about speakers and their speeches.
5+
6+
## Data Model
7+
8+
There are two registries that should be edited, ``Speaker`` and ``Talk``. The registries follow the below data
9+
models, however additional, arbitrary, data may be added as appropriate. The ``name`` field in the Speaker registry
10+
should correspond to the ``speaker`` field in the Talk registry. More explicitly these two fields will be used to
11+
"join" the two registries.
12+
13+
### Speaker Registry
14+
15+
Each speaker is represented as a table in the ``data/speaker_registry.toml`` file. The data model for the speaker
16+
registry is as follows (using Kai as an example):
17+
18+
```toml
19+
[KaiStriega] # This is an arbitrary, but unique, identifier
20+
name = "Kai Striega"
21+
pronouns = "he/him"
22+
about = "Kai is a motivated, conscientious senior software developer and FOSS advocate with an educational background in mathematics. Whilst being very appreciate the beauty of Mathematics Kai prides himself on his ability to focus on pragmatic outcomes, prioritising his work effectively. This combined with his strong technical grounding have seen him succeed in his roles as a software developer and data engineer at BHP, and now as a senior software engineer at Cartesian Software. In addition to his professional work, Kai is active in the Free and Open Source community as a long-term maintainer of SciPy."
23+
city = "Sydney"
24+
socials = { "LinkedIn" = "https://www.linkedin.com/in/kai-striega/", "GitHub" = "https://github.com/Kai-Striega" }
25+
```
26+
27+
### Talk Registry
28+
29+
Each talk is represented as a table in the ``data/talk_registry.toml`` file. The data model for the talk registry is as
30+
follows:
31+
32+
```toml
33+
[KaiMcDonalds] # This is an arbitrary, but unique, identifier
34+
speaker = "Kai Striega"
35+
title = "Optimising Your McDonald's Order: An Introduction to Linear and Mixed Integer Programming with Pyomo"
36+
length_in_mintues = 30
37+
abstract = """
38+
Ever wondered if you could hack your McDonald's order to be as low-calorie as possible while still meeting all your
39+
essential dietary needs? In this talk, we’ll dive into Linear Programming (LP) and Mixed Integer Programming (MIP)
40+
using Pyomo, a powerful Python library for optimisation. We’ll start with the basics—what LP and MIP are, why they’re
41+
useful, and how they help solve real-world problems. We’ll then put theory into practice by setting up an optimisation
42+
problem: finding the lowest-calorie McDonald’s meal that still meets all your nutritional requirements. Using Pyomo,
43+
we’ll model the problem, define constraints, and let an optimisation solver do the heavy lifting.
44+
By the end of the session, you’ll have a solid understanding of how LP/MIP works, see how to apply it in Python, and
45+
walk away with a fun (and possibly surprising) take on fast-food decision-making!
46+
"""
47+
presented_at = "PythonWA"
48+
presentation_date = 2025-04-03
49+
```

data/speaker_registry.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[KaiStriega]
2+
name = "Kai Striega"
3+
about = "Kai is a motivated, conscientious senior software developer and FOSS advocate with an educational background in mathematics. Whilst being very appreciate the beauty of Mathematics Kai prides himself on his ability to focus on pragmatic outcomes, prioritising his work effectively. This combined with his strong technical grounding have seen him succeed in his roles as a software developer and data engineer at BHP, and now as a senior software engineer at Cartesian Software. In addition to his professional work, Kai is active in the Free and Open Source community as a long-term maintainer of SciPy."
4+
city = "Sydney"
5+
socials = { "LinkedIn" = "https://www.linkedin.com/in/kai-striega/", "GitHub" = "https://github.com/Kai-Striega" }

data/talk_registry.toml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[KaiMcDonalds]
2+
speaker = "Kai Striega"
3+
title = "Optimising Your McDonald's Order: An Introduction to Linear and Mixed Integer Programming with Pyomo"
4+
length_in_mintues = 30
5+
abstract = """
6+
Ever wondered if you could hack your McDonald's order to be as low-calorie as possible while still meeting all your essential dietary needs?
7+
In this talk, we’ll dive into Linear Programming (LP) and Mixed Integer Programming (MIP) using Pyomo, a powerful Python library for optimisation.
8+
We’ll start with the basics—what LP and MIP are, why they’re useful, and how they help solve real-world problems. We’ll then put theory into practice by setting up an optimisation problem: finding the lowest-calorie McDonald’s meal that still meets all your nutritional requirements. Using Pyomo, we’ll model the problem, define constraints, and let an optimisation solver do the heavy lifting.
9+
By the end of the session, you’ll have a solid understanding of how LP/MIP works, see how to apply it in Python, and walk away with a fun (and possibly surprising) take on fast-food decision-making!
10+
"""
11+
presented_at = "PythonWA"
12+
presentation_date = 2025-04-03
13+
14+
[KaiBigOh]
15+
speaker = "Kai Striega"
16+
length_in_mintues = 30
17+
abstract = "Big O notation is a fundamental concept in programming that allows us to analyze and compare the efficiency of algorithms. By understanding how algorithms scale with input size, we can make informed decisions to write more efficient code. This beginner level talk will cover the basics of Big O notation: the underlying theory and a practical example."
18+
presented_at = "PythonWA"
19+
presentation_date = 2023-07-06

0 commit comments

Comments
 (0)