dnadler 8 hours ago

I haven’t kept up with python too much over the past year or two and learned a couple new things from this code. Namely, match/case and generic class typing. Makes me wonder what else is new, off to the python docs!

  • svilen_dobrev 4 hours ago

    thanks for pointing that out. Seems a thorough scan as features of whatsnew is due - since maybe 3.7?

    For the record, ~language~ additions i found interesting (excluding type-hints):

      3.11:
       (Base)ExceptionGroups ; (Base)Exception.add_note() + __notes__
       modules: tomllib
      3.10:
       Parenthesized context managers 
       Structural Pattern Matching - match..:case.. 
       builtins: aiter(), anext() 
      3.9:
       dict | dict ; dict |= dict
       for a in *x,*y: ...    #no need of (*x,*y)
       str.removeprefix , str.removesuffix
       Any valid expression can now be used as a decorator
       modules: zoneinfo , graphlib
      3.8:
       Assignment expressions
       Positional-only parameters
       f'{expr=}'
       Dict comprehensions and literals compute First the key and Second value
      3.7:
       builtins: breakpoint()
       __getattr__ and __dir__ of modules
       modules: contextvars , dataclasses
    • d0mine 3 hours ago

      Misc:

      3.10 zip(strict=True) 3.11 asyncio.TaskGroup (structured concurrency) enabled by ExceptionGroup

      3.12 itertools.batched(L, n) — it replaces zip([iter(L)]n)

    • hyperbrainer 3 hours ago

      There was also the walrus operator

      • svilen_dobrev 37 minutes ago

        that's the Assignment expressions, i.e. :=

vram22 14 hours ago

It's 736 LOC now.

Last 2 lines, 735 and 736:

    # Start the event loop with the main coroutine
    event_loop(main())
  • Gys 13 hours ago

    That is counting all comments and empty lines, which are many.

  • tarruda 12 hours ago

    If you count only the library code, it is less than 250 LOC.

    I then asked for Claude to write the docstrings and examples which increased by 500

    • d0mine 3 hours ago

      It reminded me of pycon talk by David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015 https://www.youtube.com/watch?v=MCs5OvhV9S4

      What is the purpose of @dataclass on Task class?

      • tarruda 3 hours ago

        > What is the purpose of @dataclass on Task class?

        No purpose. I think I added in the initial implementation and ended up not being required, but I forgot to remove