home.social

Timothée Mazzucotelli :python:

View on fosstodon.org
  1. Anybody knows who submitted the "From Script to PyPI: Automating the Python Package Lifecycle" talk to EuroPython 2026? I'm curious to know if they'll mention my Griffe package regarding "breaking changes" 🙂

  2. Anybody knows who submitted the "How to llms.txt on Python projects" to EuroPython 2026? I'm curious to know if they'll mention my mkdocs-llmstxt plugin 🙂

  3. When installing dependencies, formatting code, linting it, type-checking it, and building docs with or , , , and would previously take from 2min to several more, it now takes less than 15 seconds for the whole thing, thanks to , , and .

    This is for 5 versions (3.10 to 3.15).

    The DX got much better 🥰

  4. Griffe is now able to compute source links for objects, pointing to GitHub or other Git services online. See the changelog for v1.14: mkdocstrings.github.io/griffe/.

  5. My three templates reaching the same number of stars:

  6. Kinda crazy to see mentioned as inspiration for the design of 's Agents SDK 🤯 Cool to see the SDK's API reference being documented with , too 🥰

  7. Also, use 😛 Cappa leaves your functions/dataclasses (commands) intact.

    cappa.readthedocs.io/en/latest/

  8. How do you generate JSON schemas of your dataclasses' **inputs**? Any third-party library (something else than stdlib's dataclasses) allowing one to do that?

    For example, input type is `int | str`, but final/output type is always `int` (coerced). I want to document the input type, not the output type.

  9. Hey @blakeNaccarato, do you happen to have an example of GitHub workflow that creates a copier update PR in the current project periodically?

  10. Rewriting an argparse-based CLI with . It's much cleaner:

    - less verbose
    - better contained (single module instead of using submodules for subcommands)
    - better typed (dataclasses!)
    - as reusable, or more reusable in other CLIs (classes instead of functions that modify an argparse parser)
    - much easier to use programmatically (no need to call `main` or build an `argparse.Namespace` manually)
    - better documented
    - better output (rich!)

    github.com/DanCardin/cappa

  11. Should new warnings (logs or actual warnings) emitted given the same previous contents (user code/docs didn't change) be considered a breaking change?

    github.com/mkdocs/mkdocs/discu

  12. We're starting to have a number of extensions 🤩 They're all listed here: mkdocstrings.github.io/griffe/

  13. I added a few pages to 's docs: alternative projects, downstream projects, and built-in/official/third-party extensions.

    Very cool projects mentioned in there! , , , , etc. And I discovered a few Griffe extensions in the process, it's awesome 🤩

    - mkdocstrings.github.io/griffe/
    - mkdocstrings.github.io/griffe/
    - mkdocstrings.github.io/griffe/

  14. I'm completely rewriting 's docs. Griffe is all about public APIs, so its API docs should be exemplary.

    These will be the best docs I've written until now. I've taken inspiration from projects with great documentation: , and notably 🙂

  15. Hmmm, how come manages to install ==1.16.0 in GitHub Actions on ubuntu-latest and 3.13.0b1 while it fails locally on (Arch)Linux and Python 3.13.0b1 🤔

    There is no wheel of 1.16.0 for CPython 3.13 🤔 And sources fail to compile (not compatible with 3.13). I'm confused 🤔 🤔 🤔

    github.com/pawamoy/duty/action

  16. I just switched to my template. It now uses uv instead of .

    Since dependency resolution and installation is much faster, I don't even bother grouping dependencies by use (docs, tests, etc.), and install everything in each CI job.

    Since it's faster, I've also removed the limit on the maximum number of parallel jobs (previously it was set to 4).

    Result: CI runs 4x faster (around 2min instead of 8min). Neat 🙂

    github.com/mkdocstrings/mkdocs

  17. Our plugin, , just gained a new feature in v1.0: Markdown anchors and aliases.

    Add anchors anywhere in a document, and cross-reference it with the usual syntax:

    ```
    [](){-id}

    [Cross-ref to the anchor][anchor-id]
    ```

    Right above a heading, such an anchor serves as an alias to the heading!

    ```
    [](){-alias}
    ## Some heading

    [Cross-ref to heading][heading-alias]
    ```

    See the docs: mkdocstrings.github.io/autoref

  18. Damn, my GitHub issue is on the orange front-page :rofl: Maybe one day I'll make it with one of my own projects instead 😂

    news.ycombinator.com/item?id=3

  19. is awesome. @dancardin does a fantastic job on this project.

    Command descriptions can be written in Markdown and are rendered with , so code blocks are syntax highlighted, and you can even add links. Amazing CLI experience.

    Look at this beauty:

  20. What a rabbit hole. Even though uses internally, forcing colors with `FORCE_COLOR=1` did not work.

    After a super painful investigation, turns out my code imports a module from which uses `colorama.init()`.

    Changing that to `colorama.just_fix_windows_console()` fixed it, but the output still had an extra reset sequence at the end.

    Turns out Copier imports colors module, which registers a function to reset styles at exit.

    Don't run things at import time!

  21. I started sponsoring @dancardin (@[email protected]?) for their great work on , a super elegant declarative CLI argument parser for Python: github.com/DanCardin/cappa. It makes all the right choices, allowing users to build good, reusable CLIs for their libraries, with support!

  22. @benfulton @leahawasser I think most Python tools that measure cyclomatic complexity are based on or use McCabe, from @nedbat (pypi.org/project/mccabe/). has it built-in, has plugins (McCabe is one), probably has it built-in too.

  23. puts the finger on what I dislike about : cappa.readthedocs.io/en/latest. I'll try Cappa right now in a new project.

    I was also strongly tempted by (github.com/treykeown/arguably), but Cappa's use of `Annotated` instead of docstrings makes it super attractive given my recent work on supporting PEP 727 (from @tiangolo) with a extension.

  24. I created a small extension that parses `pycon` syntax code blocks *without indentation and without fences*, and renders them using 's Highlight extension 🙂

    It will be useful in Python docstrings, to add examples anywhere just how expects them!

    It's immediately available to my sponsors and has been added to the GraviFridge goal (pawamoy.github.io/insiders/#10) 😊

  25. Cross-posting from Twitter 😅

    I'm working on adding a backend to my mkdocs-spellcheck plugin: