��T� � @ s9 d d l Z d d l m Z Gd d � d e j � Z d S)� N)�contextmanagerc @ s: e Z d Z d d � Z e d d � � Z d d � Z d S)�TextWrapperc C s} t | | d � } | j r` | d } | d | � } | | d � } | j | � | | d <n | sy | j | j � � d S)N� ���r )�maxZbreak_long_words�append�pop) �selfZreversed_chunksZcur_lineZcur_len�widthZ space_leftZlastZcut�res� r � /_textwrap.py�_handle_long_word s zTextWrapper._handle_long_wordc c sS | j } | j } | j | 7_ | j | 7_ z d VWd | | _ | | _ Xd S)N)�initial_indent�subsequent_indent)r �indentZold_initial_indentZold_subsequent_indentr r r �extra_indent s zTextWrapper.extra_indentc C se g } xO t | j � � D]; \ } } | j } | d k rC | j } | j | | � q Wd j | � S)Nr � )� enumerate� splitlinesr r r �join)r �text�rv�idx�liner r r r �indent_only s zTextWrapper.indent_onlyN)�__name__� __module__�__qualname__r r r r r r r r r s r )�textwrap� contextlibr r r r r r �<module> s