
    !Bjc                    f    d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
 dZddZdd	Zdd
ZddZdS )    )annotationsN)Path)attach_price_snapshotclassify_idea_biasparse_ideas_htmlsummarize_community_ideaswrite_ideas_snapshota  
<html><body>
<a href="https://www.tradingview.com/chart/BTCUSDT/abc-BTC-breakout-next/">BTC breakout toward 70000 next?</a>
<a href="https://www.tradingview.com/chart/BTCUSDT/abc-BTC-breakout-next/">Bitcoin holds demand zone and could rally after breakout confirmation.</a>
<a href="https://www.tradingview.com/chart/BTCUSDT/abc-BTC-breakout-next/#chart-view-comment-form">comments</a>
<a href="https://www.tradingview.com/chart/BTCUSDT/def-BTC-dump-risk/">BTC downside risk below support</a>
<a href="https://www.tradingview.com/chart/BTCUSDT/def-BTC-dump-risk/">Breakdown can trigger bearish continuation and short setup.</a>
<a href="https://www.tradingview.com/symbols/BTCUSDT/">BTCUSDT</a>
</body></html>
returnNonec                    t          t          ddd          } t          |           dk    sJ | d         d         dk    sJ | d         d         d	k    sJ | d         d
         du sJ | d         d         du sJ | d         d         du sJ | d         d         dk    sJ d| d         d         v sJ | d         d         dk    sJ | d         d         dk    sJ d S )NBTChttps://example.test
   coin
source_urllimit   r   r   authorunknownresearch_onlyTlive_order_allowedFmainnet_signed_actiontitlezBTC breakout toward 70000 next?zdemand zoneexcerptbiasbullish   bearish)r   HTMLlen)ideass    )tests/test_tradingview_community_ideas.pyAtest_parse_ideas_html_dedupes_chart_links_and_keeps_research_onlyr$      s    T:PXZ[[[Eu::????8Fu$$$$8H****8O$,,,,8()U22228+,55558G AAAAAE!HY/////8Fy((((8Fy((((((    c                     t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ d S )	Nzstrong rally breakout longr   z bearish breakdown short downsider   z"support and resistance range watchneutralzrally but downside riskmixed)r    r%   r#   1test_classify_idea_bias_handles_mixed_and_neutralr*   *   sp    :;;yHHHH@AAYNNNNBCCyPPPP788GCCCCCCr%   c                     t          t          ddd          } t          | ddi          }|d         d         dk    sJ |d         d         d	k    sJ |d         d
         du sJ d S )Nr   r   r   r   z60000.5r   price_at_capture_usdprice_sourcehyperliquid_all_midsr   F)r   r    r   )r"   enricheds     r#   5test_attach_price_snapshot_uses_hyperliquid_coin_midsr0   1   s    T:PXYZZZE$UUI,>??HA;-.);;;;A;~&*@@@@@A;+,555555r%   tmp_pathr   c                   t          t          ddd          }t          ||           }|| dz  dz  k    sJ d |                                                                D             }t          |          d	k    sJ t          d
 |D                       sJ t          |           }|d         d	k    sJ |d         dd	ik    sJ |d         dddk    sJ |d         dk    sJ |d         dk    sJ d S )Nr   r   r   r   )runtime_dirresearchz!tradingview_community_ideas.jsonlc                6    g | ]}t          j        |          S r)   )jsonloads).0lines     r#   
<listcomp>z<test_write_and_summarize_community_ideas.<locals>.<listcomp>?   s"    GGGDJtGGGr%   r   c              3  *   K   | ]}|d          du V  dS )r   TNr)   )r8   rows     r#   	<genexpr>z;test_write_and_summarize_community_ideas.<locals>.<genexpr>A   s,      <<s?#t+<<<<<<r%   totalby_coinby_biasr   )r   r   live_order_allowed_countr   recommendation"research_only_never_trade_directly)r   r    r	   	read_text
splitlinesr!   allr   )r1   r"   pathrowssummarys        r#   (test_write_and_summarize_community_ideasrJ   :   s7   T:PXZ[[[E8<<<D8j(+NNNNNNGG)9)9)D)D)F)FGGGDt99>>>><<t<<<<<<<<'11G7q    9%++++9Q1!=!=====-.!3333#$(LLLLLLLr%   )r
   r   )r1   r   r
   r   )
__future__r   r6   pathlibr   %src.tools.tradingview_community_ideasr   r   r   r   r	   r    r$   r*   r0   rJ   r)   r%   r#   <module>rN      s    " " " " " "                    	) ) ) )D D D D6 6 6 6M M M M M Mr%   