Exemplo n.º 1
0
def init_securities(df, security_type='stock', provider=Provider.EASTMONEY):
    df = df.drop_duplicates(subset=['id'])
    data_schema = get_security_schema(security_type)
    store_category = get_store_category(data_schema=data_schema)

    db_engine = get_db_engine(provider, store_category=store_category)
    security_schema = get_security_schema(security_type)

    current = get_securities(security_type=security_type,
                             columns=[security_schema.id],
                             provider=provider)
    df = df[~df['id'].isin(current['id'])]

    df.to_sql(security_schema.__tablename__,
              db_engine,
              index=False,
              if_exists='append')
Exemplo n.º 2
0
def get_securities(security_type='stock',
                   exchanges=None,
                   codes=None,
                   columns=None,
                   return_type='df',
                   session=None,
                   start_timestamp=None,
                   end_timestamp=None,
                   filters=None,
                   order=None,
                   limit=None,
                   provider='eastmoney'):
    local_session = False

    data_schema = get_security_schema(security_type)
    store_category = get_store_category(data_schema=data_schema)

    if not session:
        session = get_db_session(provider=provider,
                                 store_category=store_category)
        local_session = True

    if not order:
        order = data_schema.code.asc()

    try:
        if columns:
            query = session.query(*columns)
        else:
            query = session.query(data_schema)

        # filters
        if exchanges:
            query = query.filter(data_schema.exchange.in_(exchanges))
        if codes:
            query = query.filter(data_schema.code.in_(codes))

        query = common_filter(query,
                              data_schema=data_schema,
                              start_timestamp=start_timestamp,
                              end_timestamp=end_timestamp,
                              filters=filters,
                              order=order,
                              limit=limit)

        if return_type == 'df':
            # TODO:add indices info
            return pd.read_sql(query.statement, query.session.bind)
        elif return_type == 'domain':
            return query.all()
        elif return_type == 'dict':
            return [item.to_json() for item in query.all()]
    except Exception as e:

        raise
    finally:
        if local_session:
            session.close()
Exemplo n.º 3
0
def init_securities(df, security_type='stock', provider=Provider.EASTMONEY):
    db_engine = get_db_engine(store_category=StoreCategory.meta)
    security_schema = get_security_schema(security_type)

    current = get_securities(columns=[security_schema.id], provider=provider)
    df = df[~df['id'].isin(current['id'])]

    df.to_sql(security_schema.__tablename__,
              db_engine,
              index=False,
              if_exists='append')
Exemplo n.º 4
0
def get_securities(security_list: List[str] = None,
                   security_type: Union[SecurityType, str] = 'stock',
                   exchanges: List[str] = None,
                   codes: List[str] = None,
                   columns: List = None,
                   return_type: str = 'df',
                   session: Session = None,
                   start_timestamp: Union[str, pd.Timestamp] = None,
                   end_timestamp: Union[str, pd.Timestamp] = None,
                   filters: List = None,
                   order: object = None,
                   limit: int = None,
                   provider: Union[str, Provider] = 'eastmoney',
                   index: str = 'code',
                   index_is_time: bool = False) -> object:
    data_schema = get_security_schema(security_type)

    if not order:
        order = data_schema.code.asc()

    if exchanges:
        if filters:
            filters.append(data_schema.exchange.in_(exchanges))
        else:
            filters = [data_schema.exchange.in_(exchanges)]

    return get_data(data_schema=data_schema,
                    security_list=security_list,
                    security_id=None,
                    codes=codes,
                    level=None,
                    provider=provider,
                    columns=columns,
                    return_type=return_type,
                    start_timestamp=start_timestamp,
                    end_timestamp=end_timestamp,
                    filters=filters,
                    session=session,
                    order=order,
                    limit=limit,
                    index=index,
                    index_is_time=index_is_time)