46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
# These imports preserve the historical module-level compatibility surface.
|
|
import copy
|
|
import json
|
|
from datetime import datetime, time as dt_time, timedelta, timezone
|
|
from statistics import median
|
|
from typing import TYPE_CHECKING, Any, Callable
|
|
|
|
from backend.data.numbers import non_nan_number as _number
|
|
from backend.data.providers.ifind_client import IfindError, IfindHttpClient
|
|
from backend.data.providers.tushare_client import TushareClient, TushareError
|
|
from backend.features.market.insights_auction import (
|
|
MarketAuctionInsightsMixin as _MarketAuctionInsightsMixin,
|
|
)
|
|
from backend.features.market.insights_auction_data import (
|
|
MarketAuctionDataMixin as _MarketAuctionDataMixin,
|
|
)
|
|
from backend.features.market.insights_auction_scoring import (
|
|
MarketAuctionScoringMixin as _MarketAuctionScoringMixin,
|
|
)
|
|
from backend.features.market.insights_context import (
|
|
CHINA_TIMEZONE,
|
|
MarketInsightsContextMixin as _MarketInsightsContextMixin,
|
|
_display_date,
|
|
)
|
|
from backend.features.market.insights_popularity import (
|
|
MarketPopularityInsightsMixin as _MarketPopularityInsightsMixin,
|
|
)
|
|
from backend.features.market.insights_themes import (
|
|
MarketThemeInsightsMixin as _MarketThemeInsightsMixin,
|
|
)
|
|
|
|
|
|
class MarketInsightsService(
|
|
_MarketInsightsContextMixin,
|
|
_MarketAuctionScoringMixin,
|
|
_MarketAuctionDataMixin,
|
|
_MarketAuctionInsightsMixin,
|
|
_MarketThemeInsightsMixin,
|
|
_MarketPopularityInsightsMixin,
|
|
):
|
|
"""Read-only market features backed by Tushare and shared SQLite caches."""
|
|
|
|
pass
|