コード例 #1
0
ファイル: sl_as.py プロジェクト: 4crash/4crash
class SlAs():
    selected_stock = None
    timetick = None

    def __init__(self):
        self.db = Database()
        self.symbols = self.db.get_symbols(TableName.DAY)
        self.sectors = self.db.get_sectors(TableName.DAY)
        self.sm = StockMess()
        self.app = self.get_home_page()
        self.sw = StockWhisperer()
        self.submit = None

    def get_home_page(self):
        st.set_page_config(layout="wide")

        t1 = threading.Thread(target=SlAs.watch, args=(st, ))
        t1.start()

        # loop = asyncio.get_event_loop()
        print('after async')
        test = st.text_area("websocket", self.timetick)

        st.write("some text")
        test = st.text_area("websocket2", self.timetick)

    @staticmethod
    def watch(sti):
        i = 0
        while True:
            print('thread')
            Utils.countdown(5)
            i += 1
            st.write(str(i))

        # test = st.empty()

    async def watch2(self, test):
        while True:
            print('async')
            Utils.countdown(5)
            test = str(datetime.now())
            # test.markdown(
            #     f"""
            #     <p class="time">
            #         {str(datetime.now())}
            #     </p>
            #     """, unsafe_allow_html=True)
            try:
                await asyncio.sleep(1)
            except KeyboardInterrupt:
                print("ending async")
                exit()

        test = st.empty()

    @staticmethod
    async def time_tick():
        timetick = 0
        while True:
            timetick += 1
            await asyncio.sleep(1)
コード例 #2
0
class RunData():
    selected_stock = None
    timetick = None
    time_from = None
    time_to = None
    selected = {}
    action_type = None
    types = ["sector-stats", "stock-detail",
                  "stocks-stats"]
    
    def __init__(self):
        self.db = Database()
        self.symbols = self.db.get_symbols(TableName.DAY)
        self.sectors = self.db.get_sectors(TableName.DAY)
        self.sm = StockMess()
        self.app = self.get_home_page()
        self.sw = StockWhisperer()
        self.submit = None
        
        
        # self.fig = None
        # print(self.df)
       
    # def load_data(self, option, time_from = "-180d", time_to = None):
    #     df =  self.db.load_data(
    #         "p_day", symbols=option, time_from=time_from, time_to = time_to)
    #     df = FinI.add_indicators(sdf.retype(df))
    #     return df
        
        
    def get_home_page(self):
       
        st.set_page_config(layout="wide")
        asyncio.new_event_loop().run_until_complete(RunData.prepare_test_tasks())
        
        
    @staticmethod
    async def prepare_test_tasks():
        tasks = []
        task = asyncio.ensure_future(RunData.async_test(0.05))
        tasks.append(task)
        task = asyncio.ensure_future(RunData.async_test(0.1))
        tasks.append(task)
        await asyncio.gather(*tasks, return_exceptions=True)
        
    @staticmethod
    async def async_test(sleep):
        
        progress_bar = st.sidebar.progress(0)
        status_text = st.sidebar.empty()
        last_rows = np.random.randn(1, 1)
        chart = st.line_chart(last_rows)
        
        for i in range(1, 101):
            new_rows = last_rows[-1, :] + np.random.randn(5, 1).cumsum(axis=0)
            status_text.text("%i%% Complete" % i)
            chart.add_rows(new_rows)
            progress_bar.progress(i)
            last_rows = new_rows
            await asyncio.sleep(sleep)

        progress_bar.empty()