
    'i                         d dl mZmZmZmZ d dlmZmZ ddlm	Z
 d Z G d de      Z G d d	e      Z G d
 de      Z G d de      Zy)    )absolute_importdivisionprint_functionunicode_literals)OrderedDictdefaultdict   )valuesc                       t        t              S N)r   Tree     W/var/www/app/trading-bot/venv/lib/python3.12/site-packages/backtrader/utils/autodict.pyr   r      s    tr   c                       e Zd Zd Zy)AutoDictListc                 $    t               x}| |<   |S r   )listselfkeyvalues      r   __missing__zAutoDictList.__missing__"   s     F"S	r   N)__name__
__module____qualname__r   r   r   r   r   r   !   s    r   r   c                        e Zd Z fdZ xZS )DotDictc                 V    |j                  d      rt        t        |   |      S | |   S )N__)
startswithsuperr   __getattr__)r   r   	__class__s     r   r#   zDotDict.__getattr__)   s+    >>$$3C88Cyr   )r   r   r   r#   __classcell__)r$   s   @r   r   r   '   s     r   r   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)AutoDictFc                     d| _         | j                         D ],  \  }}t        |t        t        f      s|j                          . y NT_closeditems
isinstancer'   AutoOrderedDict_closer   r   vals      r   r/   zAutoDict._close2   :    

 	HC#/:;

	r   c                     d| _         y NFr+   r   s    r   _openzAutoDict._open8   	    r   c                 H    | j                   rt        t               x}| |<   |S r   )r+   KeyErrorr'   r   s      r   r   zAutoDict.__missing__;   s#    <<N$J&S	r   c                     	 | |   S r   r!   AttributeErrorr   r   s     r   r#   zAutoDict.__getattr__B   s     Cyr   c                     	 || |<   y r   r!   __dict__r   s      r   __setattr__zAutoDict.__setattr__H   s     S	r   N)	r   r   r   r+   r/   r7   r   r#   rB   r   r   r   r'   r'   /   s     Gr   r'   c                   R    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)r.   Fc                     d| _         | j                         D ],  \  }}t        |t        t        f      s|j                          . y r)   r*   r0   s      r   r/   zAutoOrderedDict._closeS   r2   r   c                     d| _         y r4   r5   r6   s    r   r7   zAutoOrderedDict._openY   r8   r   c                 H    | j                   rt        t               x}| |<   |S r   )r+   r:   r.   r   s      r   r   zAutoOrderedDict.__missing__\   s&    <<N ,--S	r   c                 :    |j                  d      rt        | |   S N_r<   r>   s     r   r#   zAutoOrderedDict.__getattr__d   s    >>#  Cyr   c                 P    |j                  d      r|| j                  |<   y || |<   y rH   r@   r   s      r   rB   zAutoOrderedDict.__setattr__j   s(    >>#!&DMM#S	r   c                 `    t        |       t        |      k7  r t        |             |z   S | |z   S r   typer   others     r   __iadd__zAutoOrderedDict.__iadd__r   /    :e$4;=5((e|r   c                 `    t        |       t        |      k7  r t        |             |z
  S | |z
  S r   rL   rN   s     r   __isub__zAutoOrderedDict.__isub__x   rQ   r   c                 `    t        |       t        |      k7  r t        |             |z  S | |z   S r   rL   rN   s     r   __imul__zAutoOrderedDict.__imul__~   rQ   r   c                 `    t        |       t        |      k7  r t        |             |z  S | |z   S r   rL   rN   s     r   __idiv__zAutoOrderedDict.__idiv__   s/    :e$4;=E))e|r   c                 `    t        |       t        |      k7  r t        |             |z  S | |z   S r   rL   rN   s     r   __itruediv__zAutoOrderedDict.__itruediv__   rQ   r   c                     t        |       S r   )
py3lvaluesr6   s    r   lvalueszAutoOrderedDict.lvalues   s    $r   N)r   r   r   r+   r/   r7   r   r#   rB   rP   rS   rU   rW   rY   r\   r   r   r   r.   r.   P   s>    G r   r.   N)
__future__r   r   r   r   collectionsr   r   py3r
   r[   r   dictr   r   r'   r.   r   r   r   <module>ra      sO   ** * 1 %4 d t BA k A r   