示例#1
0
def _get_start_dates(sess, code, class_):
    """获取数据库指定代码所对应的表开始日期"""
    last_date = sess.query(func.max(
        class_.date)).filter(class_.code == code).scalar()
    if last_date is None:
        start = sess.query(Issue.A004_上市日期).filter(Issue.code == code).scalar()
    else:
        # 开始日期递延到下一天
        start = last_date + timedelta(days=1)
    # 没有上市日期
    if start is None:
        return None
    elif start > pd.Timestamp('today').date():
        return None
    else:
        # 当存在开始日期时,移动到季度末
        qe = QuarterEnd()
        start = qe.apply(start).date()
        if start > pd.Timestamp('today').date():
            return None
        else:
            return start
示例#2
0
import random
import time
from requests.exceptions import ConnectionError
import akshare as ak
import pandas as pd
from pandas.tseries.offsets import QuarterEnd
from pymongo.errors import DuplicateKeyError

from ..mongodb import get_db
from ..utils import make_logger

logger = make_logger('巨潮财务报告预约披露')
offset = QuarterEnd(n=-1, startingMonth=3, normalize=True)
today = pd.Timestamp('today')

END_DATE = offset.apply(today)
START_DATE = pd.Timestamp('2006-12-31')

DB_NAME = 'wy'
COLLECTION_NAME = '预约披露'
DATE_KEY = '实际披露'
DATE_KEY_1 = '报告年度'
# 降序排列
DATES = pd.date_range(START_DATE, END_DATE, freq='Q')[::-1]


def _query_period(qd):
    if qd.quarter == 1:
        return f"{qd.year}一季"
    elif qd.quarter == 2:
        return f"{qd.year}半年报"