o
    ðT·jø  ã                   @   s0   d dl mZ G dd„ deƒZG dd„ deƒZdS )é    )ÚModelDescriptorc                   @   s&   e Zd Zddd„Zdd„ Zdd„ ZdS )	Úhybrid_methodNc                 C   s   || _ |p|| _d S ©N)ÚfuncÚexpr)Úselfr   r   © r   úS/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/playhouse/hybrid.pyÚ__init__   s   zhybrid_method.__init__c                 C   s&   |d u r| j  ||j¡S | j ||¡S r   )r   Ú__get__Ú	__class__r   ©r   ÚinstanceÚinstance_typer   r   r	   r      s   zhybrid_method.__get__c                 C   ó
   || _ | S r   ©r   ©r   r   r   r   r	   Ú
expression   ó   zhybrid_method.expressionr   )Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r	   r      s    
r   c                   @   sF   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )Úhybrid_propertyNc                 C   s    || _ || _|| _|p|| _d S r   )ÚfgetÚfsetÚfdelr   )r   r   r   r   r   r   r   r	   r
      s   zhybrid_property.__init__c                 C   s   |d u r	|   |¡S |  |¡S r   )r   r   r   r   r   r	   r      s   

zhybrid_property.__get__c                 C   s"   | j d u r	tdƒ‚|   ||¡ d S )NzCannot set attribute.)r   ÚAttributeError)r   r   Úvaluer   r   r	   Ú__set__!   s   
zhybrid_property.__set__c                 C   s    | j d u r	tdƒ‚|   |¡ d S )NzCannot delete attribute.)r   r   )r   r   r   r   r	   Ú
__delete__&   s   
zhybrid_property.__delete__c                 C   r   r   )r   )r   r   r   r   r	   Úsetter+   r   zhybrid_property.setterc                 C   r   r   )r   )r   r   r   r   r	   Údeleter/   r   zhybrid_property.deleterc                 C   r   r   r   r   r   r   r	   r   3   r   zhybrid_property.expression)NNN)
r   r   r   r
   r   r   r   r    r!   r   r   r   r   r	   r      s    
r   N)Úpeeweer   r   r   r   r   r   r	   Ú<module>   s    