MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / async_main

Function async_main

examples/asyncio/async_orm_writeonly.py:50–103  ·  view source on GitHub ↗

Main program function.

()

Source from the content-addressed store, hash-verified

48
49
50async def async_main():
51 """Main program function."""
52
53 engine = create_async_engine(
54 "postgresql+asyncpg://scott:tiger@localhost/test",
55 echo=True,
56 )
57
58 async with engine.begin() as conn:
59 await conn.run_sync(Base.metadata.drop_all)
60 async with engine.begin() as conn:
61 await conn.run_sync(Base.metadata.create_all)
62
63 async_session = async_sessionmaker(engine, expire_on_commit=False)
64
65 async with async_session() as session:
66 async with session.begin():
67 # WriteOnlyMapped may be populated using any iterable,
68 # e.g. lists, sets, etc.
69 session.add_all(
70 [
71 A(bs=[B(), B()], data="a1"),
72 A(bs=[B()], data="a2"),
73 A(bs=[B(), B()], data="a3"),
74 ]
75 )
76
77 stmt = select(A)
78
79 result = await session.scalars(stmt)
80
81 for a1 in result:
82 print(a1)
83 print(f"created at: {a1.create_date}")
84
85 # to iterate a collection, emit a SELECT statement
86 for b1 in await session.scalars(a1.bs.select()):
87 print(b1)
88
89 result = await session.stream(stmt)
90
91 async for a1 in result.scalars():
92 print(a1)
93
94 # similar using "streaming" (server side cursors)
95 async for b1 in (await session.stream(a1.bs.select())).scalars():
96 print(b1)
97
98 await session.commit()
99 result = await session.scalars(select(A).order_by(A.id))
100
101 a1 = result.first()
102
103 a1.data = "new data"
104
105
106asyncio.run(async_main())

Callers 1

Calls 15

create_async_engineFunction · 0.90
async_sessionmakerClass · 0.90
async_sessionFunction · 0.85
selectFunction · 0.85
AClass · 0.70
BClass · 0.70
beginMethod · 0.45
run_syncMethod · 0.45
add_allMethod · 0.45
scalarsMethod · 0.45
selectMethod · 0.45
streamMethod · 0.45

Tested by

no test coverage detected