
    e0j-                        d dl mZ d dlZd dlZd dlZd dlmZmZ d dlmZ  ed          Z	e	dz  dz  Z
dd
ZddZddZedk    r e e                      dS )    )annotationsN)datetimetimezone)Pathz7/home/agent/.local/state/CryptoTradingBot/copy_researchreportsobservation_runsreturntuple[Path | None, dict]c                     t          t                              d          d d          } | sd i fS | d         }	 |t          j        |                    d                    fS # t          $ r}|dt          |          d	fcY d }~S d }~ww xY w)
Nz*_7d_status.jsonc                4    |                                  j        S )N)statst_mtime)ps    :/home/agent/.hermes/scripts/ctb_copy_observation_status.py<lambda>z$load_latest_status.<locals>.<lambda>   s    16688CT     T)keyreverser   zutf-8)encoding
unreadable)
run_statuserror)sortedRUN_DIRglobjsonloads	read_text	Exceptionstr)filespathexcs      r   load_latest_statusr$      s    7<< 2339T9T^bcccE Rx8DETZ @ @AAAA E E EL3s88DDDDDDDDDEs   )A% %
B/BBBboolc                     	 t          j        g dd          } n# t           j        $ r Y dS w xY wd |                                 D             }t	          |          S )N)pgrepz-afctb_copy_observation_7d.shT)textFc                "    g | ]}d |vd|v 
|S )z	pgrep -afr(    ).0lns     r   
<listcomp>z#process_running.<locals>.<listcomp>   s.    kkkBk.C.CHdhjHjHjRHjHjHjr   )
subprocesscheck_outputCalledProcessError
splitlinesr%   )outliness     r   process_runningr5      st    %&T&T&T[_```(   uukk#..**kkkE;;s    ..intc                    t                      \  } }t          j        t          j                  }| st          d           dS |                    dd          }t          |                    d          pd          }t          |                    d          pd          }|                    d          }d }|ra	 t          j        t          |          
                    d	d
                    }||z
                                  dz  }n# t          $ r Y nw xY wt                      }	|                    ddg          }
|                    dd          }|                    d          pg }g }|dvr|                    d|            |dk    r|	s|                    d           |&|dk    r |dk    r|                    d|dd           |dk    r|                    d|            |
dgk    r|                    d|
            |r |                    d|d d                     |sdnd}t          | d           t          d| d |	rd!nd"            t          d#| d$| d%|                    d&d           d'           t          d(|pd            t          d)|                    d*d+                      t          d,|                    d-d                      t          d.|                    d/d           d0|                    d1d           d2|                    d3d           d4|                    d5d                      t          d6|                    d7d                      |r&t          d8d9                    |          z              nt          d:           t          d;|                    d<d                      dS )=NuK   ⚠️ Copy Observation 7d: kein Statusfile gefunden. Bitte Runner prüfen.r   r   unknowncycles_completedexpected_cycles_totalT   last_cycle_atZz+00:00i  data_quality_latestcollector_status_latestpartial_errors_latest>   running	completedzStatus rA   zRunner-Prozess nicht gefundeng      @zletzter Zyklus vor z.1fhokz
Collector u   Datenqualität zPartial errors:    u   ✅u   ⚠️z Copy Observation 7d Statusz- Lauf: z; Prozess: u   läuftznicht gefundenz- Fortschritt: /z	 Zyklen (progress_pctz%)z- Letzter Zyklus UTC: z- Wallets: enabled_wallets_count?z- Snapshots seit Starttag: +wallet_snapshot_count_total_since_start_dayz- Shadow-Decisions: &shadow_decisions_count_since_start_dayz
; allowed allowed_count_since_start_dayz
, blocked blocked_count_since_start_dayz
, ignored ignored_count_since_start_dayz
- Safety: safety_statusz- Off-plan: z; u   - Plancheck: läuft nach Planz- Summary: summary_file)r$   r   nowr   utcprintgetr6   fromisoformatr    replacetotal_secondsr   r5   appendjoin)r"   statusrQ   r   cyclesexpectedlast_cycle_rawstale_hourslastrA   quality	collectorerrorsoff_planprefixs                  r   mainre   "   s   %''LD&
,x|
$
$C [\\\qL)44J.//4155F6::566<"==HZZ00NK 	)#n*=*=*E*Ec8*T*TUUD:4466=KK 	 	 	D	Gjj.<<G

4i@@IZZ/006BFH111.*..///Yw7888:#:#:{S?P?P@k@@@@AAAD0Y001114&3'33444 976"1":77888"0UUF	V
0
0
0111	
WZ
W
W,UHHEU
W
WXXX	
YF
Y
YX
Y
Y

>ST8U8U
Y
Y
YZZZ	
@>#>Y
@
@AAA	
B

#:C@@
B
BCCC	
f

3`bc(d(d
f
fggg	  I,TVW!X!X  I  Idjdndn  pO  QR  eS  eS  I  I  _e  _i  _i  jI  KL  _M  _M  I  I  Y_  Yc  Yc  dC  EF  YG  YG  I  I  J  J  J	
?vzz/9==
?
?@@@ /ntyy2223333-...	
?

>9==
?
?@@@1s   ;AD 
DD__main__)r	   r
   )r	   r%   )r	   r6   )
__future__r   r   osr/   r   r   pathlibr   RUNTIMEr   r$   r5   re   __name__
SystemExitr+   r   r   <module>rm      s    " " " " " "  				     ' ' ' ' ' ' ' '      
$H
I
I
I
 2
2E E E E   3 3 3 3j z
*TTVV

 r   