def on_finish(self): last_year = str(now_pd_timestamp().year) codes = [item.code for item in self.entities] need_filleds = get_dividend_financing( provider=self.provider, codes=codes, return_type='domain', session=self.session, filters=[DividendFinancing.rights_raising_fund.is_(None)], end_timestamp=last_year) for item in need_filleds: df = get_rights_issue_detail( provider=self.provider, entity_id=item.entity_id, columns=[ RightsIssueDetail.timestamp, RightsIssueDetail.rights_raising_fund ], start_timestamp=item.timestamp, end_timestamp="{}-12-31".format(item.timestamp.year)) if df_is_not_null(df): item.rights_raising_fund = df['rights_raising_fund'].sum() self.session.commit() super().on_finish()
def test_000778_dividend_financing(): result = get_dividend_financing(session=session, provider='eastmoney', return_type='domain', codes=['000778'], end_timestamp='2018-09-30', order=DividendFinancing.timestamp.desc()) assert len(result) == 22 latest: DividendFinancing = result[1] assert latest.timestamp == to_pd_timestamp('2017') assert latest.dividend_money == 598632026.4 assert latest.spo_issues == 347572815.0 assert latest.rights_issues == 0 assert latest.ipo_issues == 0
def on_finish(self): code_security = {} for item in self.entities: code_security[item.code] = item need_fill_items = get_dividend_financing(provider=self.provider, codes=list(code_security.keys()), return_type='domain', session=self.session, filters=[ DividendFinancing.ipo_raising_fund.is_(None), DividendFinancing.ipo_issues != 0]) for need_fill_item in need_fill_items: if need_fill_item: need_fill_item.ipo_raising_fund = code_security[item.code].raising_fund self.session.commit() super().on_finish()