
    0gj                    d    d dl mZ d dlZd dlmZ d dlmZ d dlmZ h dZ	h dZ
	 	 dddZddZdS )    )annotationsN)
ip_address)Mapping)Request>   PUTPOSTPATCHDELETE>   testdisabled
local_only
write_mode
str | NoneenvironMapping[str, str] | Nonereturnstrc                    |pt           j        }| p|                    dd                                                                          }|t
          v r|ndS )NJARVIS_FINANCE_WRITE_MODEr   )osr   getstriplowerWRITE_MODES)r   r   env	candidates       r/home/agent/.hermes/worktrees/FinanceManager-sprint13-postfinance-ledger-import/src/jarvis_finance/api/security.pyresolve_write_moder      sU     
RZCOsww'BJOOVVXX^^``I![0099j@    requestr   boolc                    | j         r| j         j        nd}|dk    r|dk    S |dk    rdS 	 t          |          j        S # t          $ r Y dS w xY w)N r   
testclientr   F)clienthostr   is_loopback
ValueError)r    r   client_hosts      r   is_write_request_allowedr*      sv    )0?'.%%RKVl**\!!u+&&22   uus   ? 
AA)NN)r   r   r   r   r   r   )r    r   r   r   r   r!   )
__future__r   r   	ipaddressr   collections.abcr   fastapir   WRITE_METHODSr   r   r*    r   r   <module>r1      s    " " " " " " 				             # # # # # #      222000 "(,A A A A A	 	 	 	 	 	r   