
    ܖi>                         d dl mZmZ d dlmZ d dlmZ  G d de      Z G d de      Z	 G d d	e      Z
 G d
 de      Z G d d      Zy)    )ABCabstractmethod)compile)Typec                       e Zd Zeededefd              Zeededefd              Zededefd       Zededefd       Z	ededefd       Z
y	)
BaseNameFormatterproperty_namereturnc                      y N clsr	   s     ^/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/py_serializable/formatters.pyencodezBaseNameFormatter.encode        	    c                      y r   r   r   s     r   decodezBaseNameFormatter.decode   r   r   namec                 ~    t         j                  | j                  |            }|d d j                         |dd  z   S )N)r	      )CamelCasePropertyNameFormatterr   r   upperr   r   s     r   decode_as_class_namez&BaseNameFormatter.decode_as_class_name#   s;    -44SZZdZ5STBQx~~$qr(**r   c                     |S r   r   r   s     r   *decode_handle_python_builtins_and_keywordsz<BaseNameFormatter.decode_handle_python_builtins_and_keywords(       r   c                     |S r   r   r   s     r   *encode_handle_python_builtins_and_keywordsz<BaseNameFormatter.encode_handle_python_builtins_and_keywords,   r   r   N)__name__
__module____qualname__classmethodr   strr   r   r   r   r!   r   r   r   r   r      s    3 3    3 3    + + + + c c   c c  r   r   c                   `    e Zd Z ed      Z ed      Zededefd       Zededefd       Z	y)r   z_([a-z])z(?<!^)(?=[A-Z])r	   r
   c                     |d d j                         |dd  z   }| j                  t        j                  j	                  d |            S )Nr   c                 @    | j                  d      j                         S Nr   groupr   xs    r   <lambda>z7CamelCasePropertyNameFormatter.encode.<locals>.<lambda>9       QRIYIYI[ r   )lowerr!   r   _ENCODE_PATTERNsubr   s     r   r   z%CamelCasePropertyNameFormatter.encode5   N    %bq)//1M!"4EE==*::>>?[]jk
 	
r   c                 |    | j                  t        j                  j                  d|      j	                               S )N_)r   r   _DECODE_PATTERNr3   r1   r   s     r   r   z%CamelCasePropertyNameFormatter.decode<   s4    ==*::>>sMRXXZ
 	
r   N)
r"   r#   r$   
re_compiler2   r7   r%   r&   r   r   r   r   r   r   r   1   sY     -O !34O
3 
3 
 
 
3 
3 
 
r   r   c                   P    e Zd Z ed      Zededefd       Zededefd       Zy)KebabCasePropertyNameFormatterz(_)r	   r
   c                     | j                  |      }|d d j                         |dd  z   }t        j                  j	                  d |      S )N)r   r   c                      y)N-r   r-   s    r   r/   z7KebabCasePropertyNameFormatter.encode.<locals>.<lambda>J   s    r   )r!   r1   r:   r2   r3   r   s     r   r   z%KebabCasePropertyNameFormatter.encodeF   sP    FFMFZ%bq)//1M!"4EE-==AA-Q^__r   c                 D    | j                  |j                  dd            S )Nr=   r6   )r   replacer   s     r   r   z%KebabCasePropertyNameFormatter.decodeL   s"    ==m>S>STWY\>]^^r   N	r"   r#   r$   r8   r2   r%   r&   r   r   r   r   r   r:   r:   C   sV     (O`3 `3 ` `
 _3 _3 _ _r   r:   c                   P    e Zd Z ed      Zededefd       Zededefd       Zy)SnakeCasePropertyNameFormatterz(.)([A-Z][a-z]+)r	   r
   c                     |d d j                         |dd  z   }| j                  t        j                  j	                  d |            S )Nr   c                 @    | j                  d      j                         S r*   r+   r-   s    r   r/   z7SnakeCasePropertyNameFormatter.encode.<locals>.<lambda>X   r0   r   )r1   r!   rB   r2   r3   r   s     r   r   z%SnakeCasePropertyNameFormatter.encodeT   r4   r   c                 $    | j                  |      S r   )r   r   s     r   r   z%SnakeCasePropertyNameFormatter.decode[   s    ==mLLr   Nr@   r   r   r   rB   rB   Q   sS     !45O
3 
3 
 
 M3 M3 M Mr   rB   c                   "    e Zd ZU eZed   ed<   y)CurrentFormatterr   	formatterN)r"   r#   r$   r   rH   r   __annotations__r   r   r   rG   rG   `   s    +IIt'(Ir   rG   N)abcr   r   rer   r8   typingr   r   r   r:   rB   rG   r   r   r   <module>rM      sS   $ $ $  4
%6 
$_%6 _M%6 MJ Jr   