
    vKg                    "   S SK Jr  S SKrS SKJrJrJr  S SKrSSKJ	r	  \" S5      r
\(       a  S SKJrJr  SSKJr  S	S\	S
.           SS jjrSS	SS.           SS jjrSS	SS\R$                  S.                 SS jjrg)    )annotationsN)TYPE_CHECKINGNoReturnTypeVar   )DEFAULT_DELAYT)	AwaitableCallable)SocketStreamF)https_compatiblessl_contexthappy_eyeballs_delayc                 #    [         R                  " U UUS9I Sh  vN nUcN  [        R                  " 5       n[	        [        S5      (       a$  U=R
                  [        R                  ) -  sl        [         R                  " UUU US9$  Nl7f)a  Make a TLS-encrypted Connection to the given host and port over TCP.

This is a convenience wrapper that calls :func:`open_tcp_stream` and
wraps the result in an :class:`~trio.SSLStream`.

This function does not perform the TLS handshake; you can do it
manually by calling :meth:`~trio.SSLStream.do_handshake`, or else
it will be performed automatically the first time you send or receive
data.

Args:
  host (bytes or str): The host to connect to. We require the server
      to have a TLS certificate valid for this hostname.
  port (int): The port to connect to.
  https_compatible (bool): Set this to True if you're connecting to a web
      server. See :class:`~trio.SSLStream` for details. Default:
      False.
  ssl_context (:class:`~ssl.SSLContext` or None): The SSL context to
      use. If None (the default), :func:`ssl.create_default_context`
      will be called to create a context.
  happy_eyeballs_delay (float): See :func:`open_tcp_stream`.

Returns:
  trio.SSLStream: the encrypted connection to the server.

)r   NOP_IGNORE_UNEXPECTED_EOF)server_hostnamer   )trioopen_tcp_streamsslcreate_default_contexthasattroptionsr   	SSLStream)hostportr   r   r   
tcp_streams         [/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_highlevel_ssl_helpers.pyopen_ssl_over_tcp_streamr      s     D ++1 J
 0023233C$@$@#@@>>)	 s   BB	A-Br   r   backlogc          	        #    [         R                  " XUS9I Sh  vN nU Vs/ sH  n[         R                  " XaUS9PM     nnU$  N*s  snf 7f)a  Start listening for SSL/TLS-encrypted TCP connections to the given port.

Args:
  port (int): The port to listen on. See :func:`open_tcp_listeners`.
  ssl_context (~ssl.SSLContext): The SSL context to use for all incoming
      connections.
  host (str, bytes, or None): The address to bind to; use ``None`` to bind
      to the wildcard address. See :func:`open_tcp_listeners`.
  https_compatible (bool): See :class:`~trio.SSLStream` for details.
  backlog (int or None): See :func:`open_tcp_listeners` for details.

)r   r    N)r   )r   open_tcp_listenersSSLListener)r   r   r   r   r    tcp_listenerstcp_listenerssl_listenerss           r   open_ssl_over_tcp_listenersr'   P   s_     ( 11$7SSM *)L 	EUV)    Ts    AAAAAA)r   r   r    handler_nurserytask_statusc                  #    [         R                  " UUUUUS9I Sh  vN n[         R                  " U UUUS9I Sh  vN   g N$ N7f)u  Listen for incoming TCP connections, and for each one start a task
running ``handler(stream)``.

This is a thin convenience wrapper around
:func:`open_ssl_over_tcp_listeners` and :func:`serve_listeners` – see them
for full details.

.. warning::

   If ``handler`` raises an exception, then this function doesn't do
   anything special to catch it – so by default the exception will
   propagate out and crash your server. If you don't want this, then catch
   exceptions inside your ``handler``, or use a ``handler_nursery`` object
   that responds to exceptions in some other way.

When used with ``nursery.start`` you get back the newly opened listeners.
See the documentation for :func:`serve_tcp` for an example where this is
useful.

Args:
  handler: The handler to start for each incoming connection. Passed to
      :func:`serve_listeners`.

  port (int): The port to listen on. Use 0 to let the kernel pick
      an open port. Ultimately passed to :func:`open_tcp_listeners`.

  ssl_context (~ssl.SSLContext): The SSL context to use for all incoming
      connections. Passed to :func:`open_ssl_over_tcp_listeners`.

  host (str, bytes, or None): The address to bind to; use ``None`` to bind
      to the wildcard address. Ultimately passed to
      :func:`open_tcp_listeners`.

  https_compatible (bool): Set this to True if you want to use
      "HTTPS-style" TLS. See :class:`~trio.SSLStream` for details.

  backlog (int or None): See :class:`~trio.SSLStream` for details.

  handler_nursery: The nursery to start handlers in, or None to use an
      internal nursery. Passed to :func:`serve_listeners`.

  task_status: This function can be used with ``nursery.start``.

Returns:
  This function only returns when cancelled.

r   N)r(   r)   )r   r'   serve_listeners)	handlerr   r   r   r   r    r(   r)   	listenerss	            r   serve_ssl_over_tcpr.   l   s\     x 66) I 

'	  s   AAAAAA)r   zstr | bytesr   intr   boolr   zssl.SSLContext | Noner   zfloat | Nonereturnztrio.SSLStream[SocketStream])r   r/   r   ssl.SSLContextr   str | bytes | Noner   r0   r    
int | Noner1   z$list[trio.SSLListener[SocketStream]])r,   z;Callable[[trio.SSLStream[SocketStream]], Awaitable[object]]r   r/   r   r2   r   r3   r   r0   r    r4   r(   ztrio.Nursery | Noner)   z5trio.TaskStatus[list[trio.SSLListener[SocketStream]]]r1   r   )
__future__r   r   typingr   r   r   r   _highlevel_open_tcp_streamr   r	   collections.abcr
   r   _highlevel_socketr   r   r'   TASK_STATUS_IGNOREDr.        r   <module>r=      s9   " 
 3 3  5CL3/  #)-)62
2
2 	2
 '2 '2 "2r  $"
 	
   *B  $"+/ 	  HHH
H  H
 H H H )HH Hr<   