
    h                     T   S r SSKrSSKrSSKr\R
                  " \5      rSr\\R                  0r
0 rSrS rS r\" \R                  5        \" S5        \" S5        \" S	5        \" S
5        \" S5        \" S5        \" S5        \" S5        \" \" \
R#                  5       5      5      rg)z~Maintains a registry of transport mechanisms.

The main entrypoint is :func:`get_transport`.  See also :file:`extending.md`.

    N zYou are trying to use the %(module)s functionality of smart_open
but you do not have the correct %(module)s dependencies installed. Try:

    pip install smart_open[%(module)s]

c                    U n[        U [        5      (       a   [        R                  " U 5      n OU R
                  nUR                  S5      S   n[        U S5      (       a  U R                  /nO,[        U S5      (       a  U R                  nO[        SU -  5      eS H!  n[        X5      (       a  M   U < SU< 35       e   U H5  nU[        ;  d   e[        U S	S
5      (       a  U[        U'   M,  U [        U'   M7     g! [         a     gf = f)aM  Register a submodule as a transport mechanism for ``smart_open``.

This module **must** have:

    - `SCHEME` attribute (or `SCHEMES`, if the submodule supports multiple schemes)
    - `open` function
    - `open_uri` function
    - `parse_uri' function

Once registered, you can get the submodule by calling :func:`get_transport`.

N.SCHEMESCHEMESz0%r does not have a .SCHEME or .SCHEMES attribute)openopen_uri	parse_uriz is missing MISSING_DEPSF)
isinstancestr	importlibimport_moduleImportError__name__rsplithasattrr   r   
ValueError	_REGISTRYgetattr_ERRORS)	submodulemodule_nameschemesfschemes        N/home/james-whalen/.local/lib/python3.13/site-packages/smart_open/transport.pyregister_transportr       s    K)S!!	!//	:I  (($$S)"-Ky(####$	I	&	&##KiWXX.y$$IIq&II$ / Y&&&9ne44)GFO )If #  		s   C> >
D
Dc                     [         nSnS[        5       -  nU [        ;   a   [        [        [        [        U    S9-  5      eU [        ;   a	  [        U    $ [        U5      e)zGet the submodule that handles transport for the specified scheme.

This submodule must have been previously registered via :func:`register_transport`.

z>https://github.com/piskvorky/smart_open/blob/master/README.rstzUnable to handle scheme %(scheme)r, expected one of %(expected)r. Extra dependencies required by %(scheme)r may be missing. See <%(readme_url)s> for details.)module)SUPPORTED_SCHEMESlocalsr   r   _MISSING_DEPS_ERRORdictr   NotImplementedError)r   expected
readme_urlmessages       r   get_transportr*   J   sg     !HH 	,.4h	7 
 -GFO0LLMM  
g
&&    zsmart_open.azurezsmart_open.ftpzsmart_open.gcszsmart_open.hdfszsmart_open.httpzsmart_open.s3zsmart_open.sshzsmart_open.webhdfs)__doc__r   loggingsmart_open.local_file
smart_open	getLoggerr   logger	NO_SCHEME
local_filer   r   r$   r   r*   tuplesortedkeysr"    r+   r   <module>r8      s   
   			8	$	
--.	
 '*T', :(( ) % & # $ # $ $ % $ % ? # # $ ' (&!123  Sr+   