<p dir="auto">Is there currently a way to use reflection with an <code class="notranslate">AsyncEngine</code>?</p>
<p dir="auto">e.g. something like</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import asyncio
from sqlalchemy import text, select, MetaData
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engine
from sqlalchemy.ext.automap import automap_base

async def main():

    eng = create_async_engine(
        &quot;postgresql+asyncpg://...&quot;
    )

    meta = MetaData()
    base = automap_base(metadata=meta)

    await base.prepare(
        eng,
        reflect=True,
        schema=&quot;public&quot;,
    )
    # sqlalchemy.exc.NoInspectionAvailable: 
    #   No inspection system is available for
    #   object of type &lt;class 'sqlalchemy.ext.asyncio.engine.AsyncEngine'&gt;


(
    asyncio
    .get_event_loop()
    .run_until_complete(main())
)"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">asyncio</span>
<span class="pl-k">from</span> <span class="pl-s1">sqlalchemy</span> <span class="pl-k">import</span> <span class="pl-s1">text</span>, <span class="pl-s1">select</span>, <span class="pl-v">MetaData</span>
<span class="pl-k">from</span> <span class="pl-s1">sqlalchemy</span>.<span class="pl-s1">ext</span>.<span class="pl-s1">asyncio</span> <span class="pl-k">import</span> <span class="pl-v">AsyncEngine</span>, <span class="pl-v">AsyncSession</span>, <span class="pl-s1">create_async_engine</span>
<span class="pl-k">from</span> <span class="pl-s1">sqlalchemy</span>.<span class="pl-s1">ext</span>.<span class="pl-s1">automap</span> <span class="pl-k">import</span> <span class="pl-s1">automap_base</span>

<span class="pl-k">async</span> <span class="pl-k">def</span> <span class="pl-en">main</span>():

    <span class="pl-s1">eng</span> <span class="pl-c1">=</span> <span class="pl-en">create_async_engine</span>(
        <span class="pl-s">"postgresql+asyncpg://..."</span>
    )

    <span class="pl-s1">meta</span> <span class="pl-c1">=</span> <span class="pl-v">MetaData</span>()
    <span class="pl-s1">base</span> <span class="pl-c1">=</span> <span class="pl-en">automap_base</span>(<span class="pl-s1">metadata</span><span class="pl-c1">=</span><span class="pl-s1">meta</span>)

    <span class="pl-k">await</span> <span class="pl-s1">base</span>.<span class="pl-en">prepare</span>(
        <span class="pl-s1">eng</span>,
        <span class="pl-s1">reflect</span><span class="pl-c1">=</span><span class="pl-c1">True</span>,
        <span class="pl-s1">schema</span><span class="pl-c1">=</span><span class="pl-s">"public"</span>,
    )
    <span class="pl-c"># sqlalchemy.exc.NoInspectionAvailable: </span>
    <span class="pl-c">#   No inspection system is available for</span>
    <span class="pl-c">#   object of type &lt;class 'sqlalchemy.ext.asyncio.engine.AsyncEngine'&gt;</span>


(
    <span class="pl-s1">asyncio</span>
    .<span class="pl-en">get_event_loop</span>()
    .<span class="pl-en">run_until_complete</span>(<span class="pl-en">main</span>())
)</pre></div>
<p dir="auto">The title pretty much describes this feature request.  I would greatly appreciate if SQLAlchemy would support the Runtime Inspection API with a <code class="notranslate">AsyncEngine</code> much in the same way that it does with normal <code class="notranslate">Engine</code> objects.  I know that the SQLAlchemy devs are very busy atm, so please don't feel any pressure to implement this soon.  Just wanted to let you guys know about this.</p>
<p dir="auto"><strong>Have a nice day!</strong></p>