
    k7i	                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SS	KJr  SS
KJr  SSKJr  SSKJr   " S S5      r " S S5      r " S S\5      rg)z%JSONSchema spec handlers file module.    )dumps)loads)Any)ContextManager)Optional)Tuple)urlparse)load)SupportsRead)uri_to_path)JsonschemaSafeLoaderc                   P    \ rS rSrSr\4S\4S jjrS\S\4S jr	S\S\4S jr
S	rg
)FileHandler   zFile-like object handler.loaderc                     Xl         g Nr   )selfr   s     W/home/james-whalen/.local/lib/python3.13/site-packages/jsonschema_path/handlers/file.py__init__FileHandler.__init__   s        streamreturnc                 L    U R                  U5      n[        [        U5      5      $ r   )_loadr   r   )r   r   datas      r   __call__FileHandler.__call__   s    zz&!U4[!!r   c                 ,    [        XR                  5      $ r   )r
   r   )r   r   s     r   r   FileHandler._load   s    FKK((r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   __static_attributes__ r   r   r   r      s:    #%9 s "| " ")L )S )r   r   c                   |    \ rS rSr% Sr\r\\S4   \	S'   SS.S\S\
\   4S jjrS	\S
\4S jrS	\S
\\   4S jrSrg)BaseFilePathHandler    zBase file path handler..allowed_schemesN)file_handlerr.   c                h    U=(       d    U R                   U l         U=(       d
    [        5       U l        g r   )r-   r   r.   )r   r.   r-   s      r   r   BaseFilePathHandler.__init__%   s&      /F$2F2F(9KMr   urir   c                     [        U5      nUR                  U R                  ;  a  [        SUR                   S35      eU R	                  U5       nU R                  U5      sS S S 5        $ ! , (       d  f       g = f)NzScheme z not allowed)r	   schemer-   
ValueError_openr.   )r   r1   
parsed_urlr   s       r   r   BaseFilePathHandler.__call__+   s_    c]
D$8$88wz'8'8&9FGGZZ_$$V, __s   A++
A9c                     [         er   )NotImplementedError)r   r1   s     r   r5   BaseFilePathHandler._open3   s    !!r   )r-   r.   )r#   r$   r%   r&   r'   NotImplementedr-   r   str__annotations__r   r   r   r   r   r   r   r5   r(   r)   r   r   r+   r+       sc    !'5OU38_5 LP: #:3;K3H:-C -C -" "!= "r   r+   c                   h   ^  \ rS rSrSrSrSSS.S\S\\   S	\4U 4S
 jjjr	S\S\
\   4S jrSrU =r$ )FilePathHandler7   zFile path handler.)fileNzutf-8)r.   encodingr-   r.   rB   c                2   > [         TU ]  " USU06  X l        g )Nr.   )superr   rB   )r   r.   rB   r-   	__class__s       r   r   FilePathHandler.__init__<   s     	/EE r   r1   r   c                 >    [        U5      n[        X R                  S9$ )NrB   )r   openrB   )r   r1   filepaths      r   r5   FilePathHandler._openE   s    s#H}}55r   rH   )r#   r$   r%   r&   r'   r-   r<   r   r   r   r   r   r5   r(   __classcell__)rE   s   @r   r?   r?   7   s[    O
 /3	!! {+! 	! !6 6!= 6 6r   r?   N)r'   jsonr   r   typingr   r   r   r   urllib.parser	   yamlr
   "jsonschema_path.handlers.protocolsr   jsonschema_path.handlers.utilsr   jsonschema_path.loadersr   r   r+   r?   r)   r   r   <module>rT      sJ    +    !   !  ; 6 8) )" ".6) 6r   