PyCyphal v2 is coming

Almost a year ago I announced the plan to release an updated PyCyphal v2 that will offer a radically new API and a much simpler design, building on the experience with v1. The pull request is now here:

It has both UDP and CAN already, but the CAN transport only supports the SocketCAN backend at the moment. Porting the other backends from the old v1 is a no-brainer and I will task an agent to do that sometime soon, maybe even this weekend if time permits. The other missing bits are the updated docs and a new CD pipeline.

PyCyphal v2 will be published on PyPI under a different name pycyphal2 because I anticipate that many will want to keep both versions installed in the same Python environment concurrently.

Usage:

from pycyphal2 import Node
from pycyphal2.udp import UDPTransport

async def main():
    transport = UDPTransport.new()
    node = Node.new(transport, "my_node")
    
    sub = node.subscribe("my/topic")
    async for arrival in sub:
        print(
            f"Received message at {arrival.timestamp.s:.3f} published by node {arrival.breadcrumb.remote_id:016x} "
            f"on topic {arrival.breadcrumb.topic.name} with contents:",
            arrival.message.hex(),
            sep="\n"
        )