Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
198c717
conda -> pixi
hmgaudecker Mar 5, 2025
e19ed98
Run hooks on all files.
hmgaudecker Mar 5, 2025
ecaeb9a
Remove some conda traces.
hmgaudecker Mar 5, 2025
f0ba9ec
Remove pip from dependencies
timmens Mar 5, 2025
04e27ad
Add background slides on Python package management
timmens Mar 5, 2025
f921bf1
Add pixi sub-chapter
timmens Mar 5, 2025
9cbed49
Split pixi screencast into two
timmens Mar 6, 2025
89dea0f
Move screencasts on python packaging and conda-forge
timmens Mar 6, 2025
5de66cd
Move conda lectures to separate chapter, clean up.
hmgaudecker Mar 6, 2025
75088d8
Fix links.
hmgaudecker Mar 6, 2025
9dc8da1
Book compiles after renamings.
hmgaudecker Mar 7, 2025
69dc6c9
Ready to record.
hmgaudecker Mar 7, 2025
411c3de
Do not include advanced packaging for now.
hmgaudecker Mar 7, 2025
b44190c
Final changes before starting to record.
hmgaudecker Mar 7, 2025
757a3d7
Recorded the first batch, no links yet.
hmgaudecker Mar 7, 2025
27fca50
Add links and a few quizzes / objectives.
hmgaudecker Mar 7, 2025
1855dc2
Add note for MacOS about Xcode in Git and Python installation pages
apitarch29 Oct 3, 2025
7635eda
Pre-commit autoupdate.
hmgaudecker Oct 4, 2025
f257ccf
Update environment.
hmgaudecker Oct 4, 2025
fbb4e0e
Run updated hooks.
hmgaudecker Oct 4, 2025
1769916
First shot at updating kaleido instructions.
hmgaudecker Oct 4, 2025
ef52906
Modify XCode message
apitarch29 Oct 8, 2025
93a8b03
Remove first XCode message
apitarch29 Oct 8, 2025
bca959a
Use new command for getting chrome.
hmgaudecker Oct 15, 2025
137e99e
Merge branch 'pixi' of github.com:OpenSourceEconomics/epp_topics into…
hmgaudecker Oct 15, 2025
961dadb
Further improve section.
hmgaudecker Oct 16, 2025
520f17a
Remove a now-repeated sentence.
hmgaudecker Oct 16, 2025
b5f1c13
Update instructions with experience from class (untested).
hmgaudecker Oct 16, 2025
f33194c
Fix links, improve text.
hmgaudecker Oct 16, 2025
815c26d
Wording change suggested by Annalena.
hmgaudecker Oct 29, 2025
0d69ac6
Plotly get crhome.
hmgaudecker Oct 29, 2025
0b554ad
Troubleshooting for Windows Execution Policies also in Pixi.
hmgaudecker Oct 30, 2025
9f1da58
Update pyproject.toml with new convention.
hmgaudecker Nov 4, 2025
e658d03
Expand plotly_get_chrome explanation.
hmgaudecker Nov 4, 2025
2ba05c6
Start restructuring data management lecture. Example and imperative d…
hmgaudecker Nov 5, 2025
3cad92c
Improve display of titles.
hmgaudecker Nov 5, 2025
eb63309
More fixes to titles, moved on with functional.
hmgaudecker Nov 5, 2025
1b31cd4
Inject chapter slugs into titles.
hmgaudecker Nov 5, 2025
5467573
Backup.
hmgaudecker Nov 5, 2025
ab63189
Move on with examples.
hmgaudecker Nov 5, 2025
3778d65
Backup, switching machines.
hmgaudecker Nov 6, 2025
78fa2fe
Remove ref to notebook that does not exist any more.
hmgaudecker Nov 7, 2025
2b50107
Ready for recording the first set.
hmgaudecker Nov 7, 2025
a03d3b0
Update first set of data management lectures.
hmgaudecker Nov 7, 2025
b6e9be6
Update lockfile, fix link to video.
hmgaudecker Nov 7, 2025
81c8a41
Remaining recordings (also plotly), links to videos still missing.
hmgaudecker Nov 10, 2025
6a494b8
Add remove-input tags.
hmgaudecker Nov 12, 2025
6a94775
Videos with previews.
hmgaudecker Nov 12, 2025
4ddc1aa
Fix typo noted by Tim.
hmgaudecker Nov 13, 2025
f5de30e
Fix errors on the broadcasting slides noted by Matthias.
hmgaudecker Nov 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,7 @@ site_*
gapminder.arrow

.ipynb_checkpoints/

# pixi environments
.pixi
*.egg-info
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ repos:
# - id: check-hooks-apply # Leave nbqa in here.
# - id: identity # Prints all files passed to pre-commits. Debugging.
- repo: https://github.com/lyz-code/yamlfix
rev: 1.17.0
rev: 1.18.0
hooks:
- id: yamlfix
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: check-added-large-files
args: [--maxkb=50000]
Expand All @@ -33,11 +33,11 @@ repos:
- id: check-ast
- id: check-docstring-first
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.35.1
rev: v1.37.1
hooks:
- id: yamllint
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.9
rev: v0.13.3
hooks:
# Run the linter.
- id: ruff
Expand All @@ -48,14 +48,14 @@ repos:
- id: ruff-format
types_or: [python, pyi, jupyter]
- repo: https://github.com/kynan/nbstripout
rev: 0.7.1
rev: 0.8.1
hooks:
- id: nbstripout
args:
- --extra-keys
- metadata.kernelspec metadata.language_info.version metadata.vscode
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.17
rev: 0.7.22
hooks:
- id: mdformat
additional_dependencies: [mdformat-myst, mdformat-ruff]
Expand Down
50 changes: 0 additions & 50 deletions environment.yml

This file was deleted.

5,759 changes: 5,759 additions & 0 deletions pixi.lock

Large diffs are not rendered by default.

81 changes: 53 additions & 28 deletions plan.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,84 @@
1. Background

1. Tools

- Editors, comparison IDEs _(short)_
- VS Code
- Stata / Matlab / RStudio
- In the end, VS Code encompasses most features of IDE + same for all languages
- Using LLMs effectively _\[long run\]_
- Using copilot effectively _\[long run\]_
- Using LLMs effectively _[long run]_
- Using copilot effectively _[long run]_
- Communicating effectively (emails vs zoom vs in-person vs zulip) _(Video)_
- Licenses _(Look up stuff)_

1. Git and GitHub

1. Python: Installation and Execution

- Change to Pixi.

1. Python basics

- More on f-strings (could also do as an exercise)
- Reading object-oriented code _\[long run\]_
- Reading object-oriented code _[long run]_

1. Intermediate Python

- Decorators _(record anew, further material: Harrison)_
- Custom data containers
- Annotations

1. Software engineering

- Avoid nested if conditions _(record anew)_
- formatting via pre-commit hooks _(record anew)_
- dags _\[long run\]_ - pytrees _\[long run\]_ - Don't be too smart
- dags _[long run]_ - pytrees _[long run]_ - Don't be too smart
([link](https://hackernoon.com/why-senior-devs-write-dumb-code-and-how-to-spot-a-junior-from-a-mile-away-27fa263b101a))
_(set up examples, make scorecards / notebooks out of those, record short video)_
- When to code up something yourself and when to use a library _\[long run\], (record
- When to code up something yourself and when to use a library _[long run], (record
screencast with recipes)_

1. Reproducible research

- Definition of "reproducible" - Pytask overview
- Tiny Pytask example
- Generating many tasks at once
- Templates

1. Data management with pandas

1. Data Science

- Machine learning with Scikit-learn
- Econometrics with linearmodels
- Econometrics with statsmodels

12. Scientific computing

- Numpy/scipy
- Optimisation
- Optimagic
- Speedup

13. Plotting
01. Text data and texts

- Encodings
- Regexes _\[long run\]_
- Simple Markdown
- MystMD
- Slidev
- LaTeX
- Detour: How to read a paper
- Detour: How to structure a paper
- Tables
- Machine learning with Scikit-learn
- Econometrics with linearmodels
- Econometrics with statsmodels

1. Scientific computing

- Numpy/scipy
- Optimisation
- Optimagic
- Speedup

1. Plotting

1. Text data and texts

- Encodings
- Regexes _[long run]_
- Simple Markdown
- MystMD
- Slidev
- LaTeX
- Detour: How to read a paper
- Detour: How to structure a paper
- Tables

1. Metrics / ML

- Overview
- Statsmodels: Intro
- Statsmodels: Results
- ML Intro
- scikit-learn: Intro
- scikit-learn: Hyperparameter tuning
60 changes: 56 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
name = "epp_topics"
description = "Effective Programming Practices for Economists: Topics"
requires-python = ">=3.11"
requires-python = ">=3.13"
dependencies = [
"pytask"
]
Expand Down Expand Up @@ -51,6 +51,57 @@ source = "vcs"
[tool.hatch.metadata]
allow-direct-references = true


[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["linux-64"]

[tool.pixi.dependencies]
deepdiff = "*"
gitpython = "*"
ipykernel = "*"
ipywidgets = "*"
jupyter-book = "<2.0"
jupyterlab = "*"
line_profiler = "*"
nlopt = "*"
nodejs = "*"
numba = "*"
openpyxl = "*"
optimagic = "*"
pandas = ">=2.2"
plotly = "*"
pre-commit = "*"
pyarrow = ">=19.0"
pybaum = "*"
pydata-sphinx-theme = ">=0.13.3"
pygraphviz = "*"
pytask = ">=0.5"
pytest = "*"
pytest-cov = "*"
pytest-xdist = "*"
python = "<3.14"
pyyaml = "*"
scikit-learn = "*"
snakeviz = "*"
sphinx = "*"
sphinx-automodapi = "*"
sphinx-copybutton = "*"
sphinxcontrib-mermaid = "*"
statsmodels = "*"
toml = "*"
xlrd = ">=1.0"


[tool.pixi.pypi-dependencies]
epp_topics = { path = ".", editable = true }
fides = ">=0.7.4"
jupytercards = "*"
jupyterquiz = "*"
kaleido = "*"
pdbp = "*"
pyperclip = "*"

[tool.pytask.ini_options]
paths = ["./src/epp_topics"]
ignore = [
Expand All @@ -59,7 +110,7 @@ ignore = [
]

[tool.ruff]
target-version = "py311"
target-version = "py313"
fix = true
line-length = 88

Expand All @@ -81,7 +132,6 @@ extend-ignore = [
"N999", # Capitalized module name.
"PD010",
"PD015",
"PD901", # `df` used a lot as example variable name.
"PERF401", # use a list comprehension.
"PLR0913",
"PLR2004", # Magic value used in comparison.
Expand All @@ -95,10 +145,12 @@ extend-ignore = [
]

[tool.ruff.lint.per-file-ignores]
"src/epp_topics/python_basics/executing_pytest/screencast/example/test_cobb_douglas.py" = ["PLR2004"]
"**/*.ipynb" = ["B018", "T201", "E402", "PLR2004"]
"**/config.py" = ["N811"]
"src/epp_topics/metrics_ml/**/objectives_materials.ipynb" = ["ERA001", "E501"]
"src/epp_topics/python_basics/executing_pytest/screencast/example/test_cobb_douglas.py" = ["PLR2004"]
"src/epp_topics/python_basics/pathlib/__init__.py" = ["A005"]
"src/epp_topics/python_installation_execution_via_conda/config.py" = ["E501"]

[tool.ruff.lint.pydocstyle]
convention = "google"
Expand Down
5 changes: 3 additions & 2 deletions src/epp_topics/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ description: >-
Background on topics covering Python and reproducible research workflows
# HTML-specific settings
html:
google_analytics_id: G-JNV9WF0QCS
analytics:
google_analytics_id: G-JNV9WF0QCS
home_page_in_navbar: false
# Add GitHub buttons to your book
# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository
Expand All @@ -34,11 +35,11 @@ notebook_interface: notebook
parse:
myst_enable_extensions:
- amsmath
- html_image
- colon_fence
- deflist
- dollarmath
- html_admonition
- html_image
- linkify
- smartquotes
# Information about where the book exists on the web
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@
" `user_1`. On MacOS, `home` is called `Users` (with capital U).\n",
"- `user_1` has personal documents and download directories.\n",
"- `mambaforge` is a directory under `user_1` that contains the mamba package manager for\n",
" creating Python environments (unless you choose to install the entire Anaconda Python\n",
" distribution).\n",
" creating Python environments.\n",
"\n",
"\n",
"### Windows File System\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ info: |
drawings:
persist: false
transition: fade
title: EPP — Background — File Systems
defaults:
layout: center
---
Expand Down
1 change: 1 addition & 0 deletions src/epp_topics/background/floats/screencast/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ info: |
drawings:
persist: false
transition: fade
title: EPP — Background — Floating Point Numbers
defaults:
layout: center
---
Expand Down
1 change: 1 addition & 0 deletions src/epp_topics/background/graphs/screencast/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ info: |
drawings:
persist: false
transition: fade
title: EPP — Background — A Primer on Graphs
defaults:
layout: center
---
Expand Down
1 change: 1 addition & 0 deletions src/epp_topics/background/os_history/screencast/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ info: |
drawings:
persist: false
transition: fade
title: EPP — Background — A Brief History of Operating Systems
defaults:
layout: center
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ info: |
drawings:
persist: false
transition: fade
title: EPP — Template — Subchapter Title
defaults:
layout: center
---
Expand Down
1 change: 1 addition & 0 deletions src/epp_topics/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"tools",
"git",
"python_installation_execution",
"python_installation_execution_via_conda",
"python_basics",
"debugging",
"software_engineering",
Expand Down
Loading