
    qZh                     0    d Z ddlmZ ddlZddZ	 ddZdS )z[
ldap.modlist - create add/modify modlist's

See https://www.python-ldap.org/ for details.
    )__version__Nc                     d |pg D             }g }|                                  D ]A\  }}|                                |v rd |D             }|r|                    ||f           B|S )z5Build modify list for call of method LDAPObject.add()c                 6    h | ]}|                                 S  lower.0vs     X/var/www/lab.imftr.de/alumni/alumnizer_venv/lib/python3.11/site-packages/ldap/modlist.py	<setcomp>zaddModlist.<locals>.<setcomp>        BBBQqwwyyBBB    c                     g | ]}||S Nr   r
   items     r   
<listcomp>zaddModlist.<locals>.<listcomp>   s    @@@dt/?T/?/?/?r   )itemsr   append)entryignore_attr_typesmodlistattrtypevalueattrvaluelists         r   
addModlistr      s    BB*;*ArBBB' ( (oh~~,,,@@e@@@M (nnh&'''	.r   c                    d |pg D             }d |pg D             }g }i }| D ]}|||                                 <   |                                D ]Y\  }}	|                                 }
|
|v rd |	D             }|
|v r,|                     ||
         g           }d |D             }||
= ng }|s%|r#|                    t          j        ||f           |r|rt          |          t          |          k    }|sA|
|v rd |D             }d |D             }nt          |          }t          |          }||k    }|rD|                    t          j        |df           |                    t          j        ||f           3|r$|s"|                    t          j        |df           [|sC|                                D ].\  }}||v r
|}|                    t          j        |df           /|S )a  
  Build differential modify list for calling LDAPObject.modify()/modify_s()

  old_entry
      Dictionary holding the old entry
  new_entry
      Dictionary holding what the new entry should be
  ignore_attr_types
      List of attribute type names to be ignored completely
  ignore_oldexistent
      If non-zero attribute type names which are in old_entry
      but are not found in new_entry at all are not deleted.
      This is handy for situations where your application
      sets attribute value to '' for deleting an attribute.
      In most cases leave zero.
  case_ignore_attr_types
      List of attribute type names for which comparison will be made
      case-insensitive
  c                 6    h | ]}|                                 S r   r   r	   s     r   r   z modifyModlist.<locals>.<setcomp>1   r   r   c                 6    h | ]}|                                 S r   r   r	   s     r   r   z modifyModlist.<locals>.<setcomp>2   s     LLL!AGGIILLLr   c                     g | ]}||S r   r   r   s     r   r   z!modifyModlist.<locals>.<listcomp>=   s    <<<$4+;+;+;+;r   c                     g | ]}||S r   r   r   s     r   r   z!modifyModlist.<locals>.<listcomp>@   s    BBBD1A41A1A1Ar   c                 6    h | ]}|                                 S r   r   r	   s     r   r   z modifyModlist.<locals>.<setcomp>L        88817799888r   c                 6    h | ]}|                                 S r   r   r	   s     r   r   z modifyModlist.<locals>.<setcomp>M   r$   r   N)	r   r   getr   ldapMOD_ADDlenset
MOD_DELETE)	old_entry	new_entryr   ignore_oldexistentcase_ignore_attr_typesr   attrtype_lower_mapar   r   attrtype_lower	new_value	old_valuereplace_attr_valueold_value_setnew_value_setvals                    r   modifyModlistr9      sy   , CB*;*ArBBBLL/E/KLLL' $ $a"#qwwyy!!"**  6  6oh^^%%N***<<%<<<I+++-- 2> B2FFiBBIBBBi
^
,
,i 6 6nndl8I67777	 6y 6y>>3y>>9 <33388i888-88i888--i..-i..-*m;	 :6777Xi8999	 69 6nndoht4555	 6 %**,, 6 63	
		hnndoht45555	.r   r   )Nr   N)__doc__r'   r   r   r9   r   r   r   <module>r;      sk                Z^F F F F F Fr   