
    -h              	       r    S SK Jr  SSKJr  SSKJr  SSKJr  \" \SS/ SQ/ S	Q/ S
QS9 " S S\5      5       rg)   )AsyncSession   )ScopedSessionMixin)create_proxy_methods)ScopedRegistryz:class:`_asyncio.AsyncSession`z.:class:`_asyncio.scoping.async_scoped_session`)	close_allobject_sessionidentity_key)__contains____iter__addadd_allbeginbegin_nestedclosecommit
connectiondeleteexecuteexpire
expire_allexpungeexpunge_allflushgetget_bindis_modified
invalidatemergerefreshrollbackscalarscalarsstreamstream_scalars)	binddirtydeletednewidentity_map	is_active	autoflushno_autoflushinfo)classmethodsmethods
attributesc                   8    \ rS rSrSrSrS r\S 5       rS r	Sr
g)	async_scoped_session   zProvides scoped management of :class:`.AsyncSession` objects.

See the section :ref:`asyncio_scoped_session` for usage details.

.. versionadded:: 1.4.19


Tc                 0    Xl         [        X5      U l        g)a  Construct a new :class:`_asyncio.async_scoped_session`.

:param session_factory: a factory to create new :class:`_asyncio.AsyncSession`
 instances. This is usually, but not necessarily, an instance
 of :class:`_orm.sessionmaker` which itself was passed the
 :class:`_asyncio.AsyncSession` to its :paramref:`_orm.sessionmaker.class_`
 parameter::

    async_session_factory = sessionmaker(some_async_engine, class_= AsyncSession)
    AsyncSession = async_scoped_session(async_session_factory, scopefunc=current_task)

:param scopefunc: function which defines
 the current scope.   A function such as ``asyncio.current_task``
 may be useful here.

N)session_factoryr   registry)selfr6   	scopefuncs      sC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\sqlalchemy/ext/asyncio/scoping.py__init__async_scoped_session.__init__H   s    $  /&B    c                 "    U R                  5       $ )N)r7   r8   s    r:   _proxiedasync_scoped_session._proxied]   s    }}r=   c                    #    U R                   R                  5       (       a&  U R                  5       R                  5       I Sh  vN   U R                   R                  5         g N7f)zDispose of the current :class:`.AsyncSession`, if present.

Different from scoped_session's remove method, this method would use
await to wait for the close method of AsyncSession.

N)r7   hasr   clearr?   s    r:   removeasync_scoped_session.removea   sG      ==--/''))) *s   AA%A# A%)r7   r6   N)__name__
__module____qualname____firstlineno____doc___support_asyncr;   propertyr@   rE   __static_attributes__ r=   r:   r3   r3      s.    ^ NC*  
r=   r3   N)sessionr   orm.scopingr   utilr   r   r3   rO   r=   r:   <module>rS      sN    " - ( " $4@:
E-\/- /]-\/r=   