
    `j.                        d dl mZ d dlZd dlZd dlmZ d dlmZ dZdZ	h dZ
ddZdd	Zdd
ZddZdd	 	 	 	 	 ddZddZddZddZy)    )annotationsN)Mapping)Anynot_specifiedzNot Specified>   not specifiednot-specifiednon specificator   c                L    | yt        | t              r| j                          S y)NTF
isinstancestrstripvalues    !/backend/guests/guest_defaults.pyis_missing_istat_valuer      s&    }%;;=      c                N    t        | t              r| j                         xs d S | S Nr   r   s    r   _clean_valuer      s"    %{{}$$Lr   c                J   t        | t              r| j                         S t        | t              rL| j	                         }|si S 	 t        j                  |      }t        |t              r|j                         S i S i S # t        t        t
        j                  f$ r i cY S w xY wr   )
r   dictcopyr   r   jsonloads	TypeError
ValueErrorJSONDecodeError)r   rawparseds      r   _coerce_extra_datar!   "   s    %zz|%kkmI	ZZ_F !+64 8v{{}@b@I :t';';< 	I	s   A? ? B"!B"c                 F    | D ]  }t        |      }t        |      r|c S  y r   )r   r   )valuesr   cleaneds      r   _first_presentr%   1   s(    u%%g.N  r   
extra_datac                  t        | xs i       }t        |xs i       }dD ]  }||v st        ||         ||<    t        |j                  d      |j                  d            }t        |j                  d      |j                  d            }t	        |j                  d            rt        ||      }|r||d<   t	        |j                  d            r#t        |j                  d      ||      }|r||d<   t	        |j                  d            r"t        |j                  d      t
              |d<   t	        |j                  d            r"t        |j                  d      t
              |d<   |S )Ncountry_of_birthnationalitycountrytourism_typetransport_typer*   r+   r,   r-   r.   )r   r   r%   getr   ISTAT_NOT_SPECIFIED)r#   r'   
normalizedextrafieldr*   r+   residence_countrys           r   normalize_istat_guest_defaultsr5   9   sk   
 fl#J!r"E J ,Z-> ?Ju &)*		$% !}%		- K
 jnn];<$[2BC(3J}%jnnY78*IIi 

 $5Jy!jnn^<=%3IIn%&

>"
 jnn-=>?'5II&'(

#$
 r   c           	        t        t        | dd             }t        | dd       t        | dd       t        | dd       t        | dd       t        | dd       d}t        ||      }|j                         D ]  \  }}t	        | ||        | S )	Nr'   r*   r+   r,   r-   r.   r)   r&   )r!   getattrr5   itemssetattr)guestr'   r#   r1   r3   r   s         r   apply_istat_guest_defaultsr;   q   s    #GE<$FGJ#E+=tDumT:5)T2~t<!%)94@F 0:NJ"((*uue$ +Lr   c                B    t        j                   |       }t        |      S r   )r   r;   )r:   normalized_guests     r   normalize_guest_for_istatr>      s    yy'%&677r   c                ~    t        | t              s| S | j                         j                         t        v rt
        S | S r   )r   r   r   lowerISTAT_NOT_SPECIFIED_ALIASESISTAT_NOT_SPECIFIED_DISPLAYr   s    r    istat_not_specified_export_valuerC      s4    eS!{{} ;;**Lr   )r   r   returnbool)r   r   rD   r   )r   r   rD   r   )r#   r   rD   r   )r#   Mapping[str, Any] | Noner'   rF   rD   zdict[str, Any])r:   r   rD   r   )
__future__r   r   r   collections.abcr   typingr   r0   rB   rA   r   r   r!   r%   r5   r;   r>   rC    r   r   <module>rK      st    "   #  & -   ,05$5 )5 	5p8
r   