ó
E®Uc           @   sJ   d  d l  Z  d  d l Z e e d „ Z d „  Z d e f d „  ƒ  YZ d S(   iÿÿÿÿNc         C   s³   | r d |  GHt  Si t  d 6t  d 6t d 6t d 6t d 6} d } | re d | d <d	 | d	 <d
 } n  xG t  r® t |  d | ƒ } | j ƒ  } | | k r¢ | | Sd | GHqh Wd S(   s|   confirm an action with the user

    :param msg: A string to print to the user
    :param forced: Are the answer forced
    s   %s [YES]t   Yt   YESt    t   Nt   NOs   [y/N]t   ALLt   NONEs   [y/N/all/none]s    %s s   Unknown response '%s'N(   t   Truet   Falset	   raw_inputt   upper(   t   msgt   forcedt	   allow_allt   mappingt   promptt   v(    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   confirm   s(    	


		c         C   s@   t  |  ƒ d @r6 t  |  ƒ d k r6 t t  |  ƒ d ƒ St |  ƒ S(   s)   normalise a ldap integer to signed 32 bitl        i    l        (   t   intt   str(   t   ivalue(    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   normalise_int329   s    "t   dsdb_Dnc           B   s,   e  Z d  Z d d „ Z d „  Z d „  Z RS(   s   a class for binary DNc         C   s4  | d k rN | j d ƒ r' t j } qN | j d ƒ rB t j } qN t j } n  | t j t j g k rý | j d ƒ } t | ƒ d k  rš t d | ƒ ‚ n  d t | d ƒ t	 | d ƒ } | d | !|  _
 |  j
 d t | d ƒ d	 !|  _ | | |  _ n | |  _ d
 |  _
 d
 |  _ t j | |  j ƒ |  _ d S(   s   create a dsdb_Dns   B:s   S:t   :i   s   Invalid DN %si   i    i   iÿÿÿÿR   N(   t   Nonet
   startswitht   dsdbt   DSDB_SYNTAX_BINARY_DNt   DSDB_SYNTAX_STRING_DNt   DSDB_SYNTAX_OR_NAMEt   splitt   lent   RuntimeErrorR   t   prefixt   binaryt   dnstringt   ldbt   Dnt   dn(   t   selft   samdbR#   t
   syntax_oidt   colonst
   prefix_len(    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   __init__C   s$    "!			c         C   s    |  j  t |  j j d d ƒ ƒ S(   Nt   modei   (   R!   R   R&   t   extended_str(   R'   (    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   __str__\   s    c         C   s#   |  j  d k r d St |  j d ƒ S(   s6   return binary part of a dsdb_Dn as an integer, or NoneR   i   N(   R!   R   R   R"   (   R'   (    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   get_binary_integer_   s    N(   t   __name__t
   __module__t   __doc__R   R,   R/   R0   (    (    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyR   @   s   	(   R$   R   R   R   R   t   objectR   (    (    (    s0   /usr/lib/python2.7/dist-packages/samba/common.pyt   <module>   s   !	