ó
ç™xTc           @   s#   d  d l  m Z d d d „ Z d S(   iÿÿÿÿ(   t   divisiont    i'  c         C   sr  d d l  m } t |  d ƒ r+ |  j } n |  j j ƒ  } x1| D])} t |  | d ƒ } | d k	 rA | | ƒ } t | ƒ } | | k rj| | G| GHt	 | t
 ƒ rÎ t | d ƒ rÎ t | | d d | ƒqgt	 | t ƒ rgx„ | D]y }	 t | |	 ƒ ƒ }
 |
 | k rä | d t |	 ƒ j G|
 GHt	 |	 t
 ƒ r]t |	 d ƒ r]t |	 | d d | ƒq]qä qä WqgqjqA qA Wd S(	   s%  
  Function for debugging issues with pickle file size, e.g. detecting which
  objects are contributing to bloat.  This is very approximate, and somewhat
  misleading since child objects may appear to be larger than their parents,
  probably for some reason involving duplicated references.
  iÿÿÿÿ(   t   dumpst	   __slots__t   __dict__s     t   display_if_size_greater_thans       N(   t   cPickleR   t   hasattrR   R   t   keyst   getattrt   Nonet   lent
   isinstancet   objectt   show_pickle_sizest   listt   typet   __name__(   t   objt   indentR   R   t
   attr_namest   attrt	   child_objt   pklt   n_bytest   itemt   n_bytes_item(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/development/__init__.pyR      s,    
N(   t
   __future__R    R   (    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/libtbx/development/__init__.pyt   <module>   s   