a
    dŠÝg  ã                   @   sd   d dl mZmZ d dlmZmZmZ d dlmZ d dl	m
Z
 e
ZG dd„ deƒZG dd„ deƒZd	S )
é    )ÚABCÚabstractmethod)ÚCallableÚListÚOptional)ÚMappingDataType)Úexact_matching_strategyc                   @   sX   e Zd ZdZdeee eee  edœdd„Zed	eee eee  edœdd„ƒZ	dS )
ÚAnonymizerBasezœBase abstract class for anonymizers.

    It is public and non-virtual because it allows
        wrapping the behavior for all methods in a base class.
    N)ÚtextÚlanguageÚ
allow_listÚreturnc                 C   s   |   |||¡S )zAnonymize text.)Ú
_anonymize©Úselfr
   r   r   © r   úy/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_experimental/data_anonymizer/base.pyÚ	anonymize   s    zAnonymizerBase.anonymizec                 C   s   dS )z!Abstract method to anonymize textNr   r   r   r   r   r      s    zAnonymizerBase._anonymize)NN)N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   r   r   r   r   r   r	      s   	  ü
û
 ÿþr	   c                   @   sf   e Zd ZdZefeeeegef edœdd„Ze	eeeegef edœdd„ƒZ
e	ddœd	d
„ƒZdS )ÚReversibleAnonymizerBasez9
    Base abstract class for reversible anonymizers.
    )Útext_to_deanonymizeÚdeanonymizer_matching_strategyr   c                 C   s   |   ||¡S )zDeanonymize text)Ú_deanonymize©r   r   r   r   r   r   Údeanonymize)   s    z$ReversibleAnonymizerBase.deanonymizec                 C   s   dS )z#Abstract method to deanonymize textNr   r   r   r   r   r   3   s    z%ReversibleAnonymizerBase._deanonymizeN)r   c                 C   s   dS )z-Abstract method to reset deanonymizer mappingNr   )r   r   r   r   Úreset_deanonymizer_mapping;   s    z3ReversibleAnonymizerBase.reset_deanonymizer_mapping)r   r   r   r   Ú&DEFAULT_DEANONYMIZER_MATCHING_STRATEGYr   r   r   r   r   r   r   r   r   r   r   r   $   s    	û
ÿú
ür   N)Úabcr   r   Útypingr   r   r   Z;langchain_experimental.data_anonymizer.deanonymizer_mappingr   ZGlangchain_experimental.data_anonymizer.deanonymizer_matching_strategiesr   r    r	   r   r   r   r   r   Ú<module>   s   