a
    “I_\  ã                   @   sd   d dl mZ d dl mZ zd dlZdd„ ZW n" eyN   d dlZdd„ ZY n0 dd„ Zd	d
„ Z	dS )é    )Úlist_gp_extensions)Úgp_extNc                 C   s*   t j | |¡}t j |¡}|j |¡ |S ©N)Ú	importlibÚutilÚspec_from_file_locationÚmodule_from_specÚloaderÚexec_module)ÚnameÚlocationÚspecÚmodule© r   ú5/usr/lib/python3/dist-packages/samba/gp_ext_loader.pyÚimport_file   s    r   c                 C   s   t  | |¡S r   )ÚimpZload_source)r   r   r   r   r   r      s    c                 C   s8   |r4t |ƒ ¡ D ]"\}}|| krt|tƒr|  S qd S r   )ÚvarsÚitemsÚ
issubclassr   )r   ÚmodÚkÚvr   r   r   Úget_gp_ext_from_module#   s
    
r   c                 C   s¢   g }g }t |ƒ}| ¡ D ]€}t|d |d ƒ}t|d |ƒ}|rj|d rj| |¡ |  d|d |jf ¡ |r|d r| |¡ |  d|d |jf ¡ q||fS )NZProcessGroupPolicyZDllNameZMachinePolicyz$Loaded machine extension from %s: %sZ
UserPolicyz!Loaded user extension from %s: %s)r   Úvaluesr   r   ÚappendÚinfoÚ__name__)ZloggerZsmb_confZ	user_extsZmachine_extsZgp_extsr   r   Zextr   r   r   Úget_gp_client_side_extensions+   s"    
ÿ
ÿr   )
Zsamba.gpclassr   r   Úimportlib.utilr   r   ÚImportErrorr   r   r   r   r   r   r   Ú<module>   s   