o
    QD©iþ  ã                   @  s|   d dl mZ d dlZd dlmZmZmZ d dlmZ ddl	m
Z
 ddlmZ dd	lmZ er4dd
lmZ G dd„ de
ƒZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚOptional)Úurlparseé   )ÚPluginé   )ÚCkanAdapter©ÚCkanControl)ÚControlc                   @  s0   e Zd ZdZddddœddd„Zdddd„ZdS )Ú
CkanPluginzPlugin for CkanNF)ÚcontrolÚbasepathÚ	packagifyÚsourcer   r   úOptional[Control]r   úOptional[str]r   Úboolc                C  s¬   t |tƒrEt|ƒ}|rt |tƒrEt d|j¡r7|ptƒ }|js*| d¡\}}||_n| d¡d }|r6||_	n|r<||_	t |tƒrEt
|ƒS |d u rRt |tƒrTt
|ƒS d S d S )Nz^/dataset/[^/]+$z	/dataset/r	   )Ú
isinstanceÚstrr   r   ÚreÚsearchÚpathÚbaseurlÚsplitÚdatasetr
   )Úselfr   r   r   r   Úparsedr   r   © r    úY/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/portals/ckan/plugin.pyÚcreate_adapter   s&   

€
ÿzCkanPlugin.create_adapterÚtypec                 C  s   |dkrt S d S )NÚckanr   )r   r#   r    r    r!   Úselect_control_class0   s   ÿzCkanPlugin.select_control_class)r   r   r   r   r   r   r   r   )N)r#   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r%   r    r    r    r!   r      s    úr   )Ú
__future__r   r   Útypingr   r   r   Úurllib.parser   Úsystemr   Úadapterr
   r   r   Údialectr   r   r    r    r    r!   Ú<module>   s    