
    #)di                         d dl Z d dlmZ d dlmZ 	 d dlmZ n# e$ r Y nw xY wi dfdZe	dk    r) e
d           d	d
ddZ e
 eed                     dS dS )    N)chain)deque)reprFc                 2   d }t           t          t          t          t          t          t          |t
          t          t          t          i                    |           t                      t          j	        d          fd |           S )a   Returns the approximate memory footprint an object and all of its contents.

    Automatically finds the contents of the following builtin containers and
    their subclasses:  tuple, list, deque, dict, set and frozenset.
    To search other containers, add handlers to iterate over their contents:

        handlers = {SomeContainerClass: iter,
                    OtherContainerClass: OtherContainerClass.get_elements}

    c                 N    t          j        |                                           S )N)r   from_iterableitems)ds    Y/var/www/menimich/repos/protonApp/venv/lib/python3.11/site-packages/intelhex/getsizeof.py<lambda>ztotal_size.<locals>.<lambda>   s    U0;;     r   c           
         t          |           v rdS                     t          |                      t          j        |           }r+t	          |t          |           t          |                                                      D ]@\  }}t          | |          r+|t          t           ||                               z  } nA|S )Nr   )idaddsys	getsizeofprinttyper   r	   
isinstancesummap)	ostyphandlerall_handlersdefault_sizeseensizeofverboses	       r   r   ztotal_size.<locals>.sizeof$   s    a55D==1AM!\** 	'!T!WWd1gg&&&(..00 	 	LC!S!! SVWWQZZ00111 r   )
tupleiterlistr   dictset	frozensetupdater   r   )r   handlersr    dict_handlerr   r   r   r   s     ` @@@@r   
total_sizer*      s     <;L4$4,tL !!!55D=##L         6!99r   __main__zdict 3 elements         )r         T)r    )r   	itertoolsr   collectionsr   reprlibr   ImportErrorr*   __name__r   r
    r   r   <module>r7      s   
 


            	 	 	 	D	 u & & & &V z	E
44  A	E**Q
%
%
%&&&&&	 s    !!