Settings

Theme

Automatic code conversion from async to sync

psycopg.org

5 points by dvarrazzo a year ago · 2 comments

Reader

dvarrazzoOP a year ago

Psycopg 3 supports both sync and async code. Starting from release 3.2, the sync side is automatically generated from the async counterpart. This article explains how it's done, and the workflow used for the initial conversion to autogenerated code and for the regular maintenance.

  • PaulHoule a year ago

    You can accomplish a lot like this without parsing at the AST level as a lot of api calls are something like

      async def make_call(arguments):
         url = "..."
         body = process_arguments(arguments)
         response = await post(body)
         return process_response(response)
    
    so you can ultimately write

      that_call = [url, process_arguments, process_response]
    
    and then generate a bunch of sync and async closures that capture that_call and then call the right things. In the typical API that you might want to compose sync/async I find at least 90% can be generated that way but working at the AST level you can get the last bit.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection