I write Python tools for the jobs I would otherwise keep doing by hand: spreadsheets, PDF layout, LaTeX sources, class material. Most of them grew out of teaching; four became packages published on PyPI. Each package is typed, tested in CI across the Python versions it supports, and used in my own work before it is released.
| Package | PyPI | What it does |
|---|---|---|
| odsslicer | Reads and writes .ods files (LibreOffice Calc) with numpy-style indexing, sheet["A1:B3"], and keeps formats, formulas and styles on the way back. |
|
| latexdetok | A tolerant LaTeX tokeniser: a tree of groups and commands that rewrites the source byte for byte, and a latexdetok check command that says what is wrong better than TeX does. |
|
| reportlab_layout | A cursor-driven layout layer on top of reportlab: the flow of a document, with the canvas always within reach. | |
| trombinoscope | A printable photo directory from a folder of raw photos and a list: every face framed the same way, colours evened out across the batch. Documentation in French. |
- tpllg: data acquisition and analysis for physics lab sessions, in French.
- icalsync: events with a stable key, kept up to date in macOS Calendar or in an iCalendar file, in French.
- liveboxapi: a synchronous Python client for Orange Livebox routers.
- synologygofilehosting and synodl-firefox: two small add-ons for Synology Download Station.
Bug reports and questions are welcome in the issues of each repository.


