P6 硬化(5 项全部完成):
- CDC 多实例水平扩展: _INSTANCE_ID + get_lag() 真实 lag 计算
- ExamCache Redis 化: key data_ana:exam:{exam_id}, TTL 30 天 + 内存 LRU fallback
- ClickHouse TTL 归档: 5 表均加 TTL(1-3 年),分区级删除
- Prometheus 监控: 18 个指标(CDC/CH/ExamCache/DataScope/gRPC/业务)
- readyz 深度硬化: 4 依赖超时检查(CH 1s/Redis 200ms/iam 2s/CDC lag<1000)
v2 新增 6 个 RPC(analytics.proto 扩展为 18 RPC):
- GetStudentGrowth / GetAssignmentAnalysis / GetMasterySummary
- ListDiagnosticReports(占位,待 ai 服务)/ ListErrorBookItems / GetErrorBookStats
监控与可观测性: lifespan 预热 + gRPC ServerInterceptor + CDC 消费者指标
Docker 本地测试 19 项全部通过(healthz/readyz/metrics + 11 HTTP + 10 gRPC + ruff)
nextstep-v2.md: 上游需求对齐 + 下游要求(iam/core-edu/content/ai/SRE)
917 lines
34 KiB
Python
917 lines
34 KiB
Python
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||
"""Client and server classes corresponding to protobuf-defined services."""
|
||
|
||
import grpc
|
||
import warnings
|
||
|
||
from generated_proto import analytics_pb2 as analytics__pb2
|
||
|
||
GRPC_GENERATED_VERSION = "1.82.1"
|
||
GRPC_VERSION = grpc.__version__
|
||
_version_not_supported = False
|
||
|
||
try:
|
||
from grpc._utilities import first_version_is_lower
|
||
|
||
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
||
except ImportError:
|
||
_version_not_supported = True
|
||
|
||
if _version_not_supported:
|
||
raise RuntimeError(
|
||
f"The grpc package installed is at version {GRPC_VERSION},"
|
||
+ " but the generated code in analytics_pb2_grpc.py depends on"
|
||
+ f" grpcio>={GRPC_GENERATED_VERSION}."
|
||
+ f" Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}"
|
||
+ f" or downgrade your generated code using grpcio-tools<={GRPC_VERSION}."
|
||
)
|
||
|
||
|
||
class AnalyticsServiceStub:
|
||
"""AnalyticsService 数据分析服务契约(D6 智能洞察领域).
|
||
P4 启用 gRPC server 端口 50055,HTTP 3006 保留作 Gateway 直连降级.
|
||
所有 RPC 返回 ActionState 信封(success/data/error/details.degraded).
|
||
"""
|
||
|
||
def __init__(self, channel):
|
||
"""Constructor.
|
||
|
||
Args:
|
||
channel: A grpc.Channel.
|
||
"""
|
||
self.GetClassPerformance = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetClassPerformance",
|
||
request_serializer=analytics__pb2.GetClassPerformanceRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.ClassPerformance.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetStudentWeakness = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentWeakness",
|
||
request_serializer=analytics__pb2.GetStudentWeaknessRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.StudentWeakness.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetLearningTrend = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetLearningTrend",
|
||
request_serializer=analytics__pb2.GetLearningTrendRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.LearningTrend.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetTeacherDashboard = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetTeacherDashboard",
|
||
request_serializer=analytics__pb2.GetTeacherDashboardRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.TeacherDashboard.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetStudentDashboard = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentDashboard",
|
||
request_serializer=analytics__pb2.GetStudentDashboardRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.StudentDashboard.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetParentDashboard = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetParentDashboard",
|
||
request_serializer=analytics__pb2.GetParentDashboardRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.ParentDashboard.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetAdminDashboard = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetAdminDashboard",
|
||
request_serializer=analytics__pb2.GetAdminDashboardRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.AdminDashboard.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetWarnings = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetWarnings",
|
||
request_serializer=analytics__pb2.GetWarningsRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.WarningList.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.TriggerWarning = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/TriggerWarning",
|
||
request_serializer=analytics__pb2.TriggerWarningRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.TriggerWarningResponse.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetMasteryDistribution = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetMasteryDistribution",
|
||
request_serializer=analytics__pb2.GetMasteryDistributionRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.MasteryDistribution.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetStudentMastery = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentMastery",
|
||
request_serializer=analytics__pb2.GetStudentMasteryRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.StudentMastery.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.SubscribeMasteryUpdate = channel.unary_stream(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/SubscribeMasteryUpdate",
|
||
request_serializer=analytics__pb2.SubscribeMasteryUpdateRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.MasteryUpdateEvent.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetStudentGrowth = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentGrowth",
|
||
request_serializer=analytics__pb2.GetStudentGrowthRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.StudentGrowth.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetAssignmentAnalysis = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetAssignmentAnalysis",
|
||
request_serializer=analytics__pb2.GetAssignmentAnalysisRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.AssignmentAnalysis.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetMasterySummary = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetMasterySummary",
|
||
request_serializer=analytics__pb2.GetMasterySummaryRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.MasterySummary.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.ListDiagnosticReports = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/ListDiagnosticReports",
|
||
request_serializer=analytics__pb2.ListDiagnosticReportsRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.DiagnosticReportList.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.ListErrorBookItems = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/ListErrorBookItems",
|
||
request_serializer=analytics__pb2.ListErrorBookItemsRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.ErrorBookList.FromString,
|
||
_registered_method=True,
|
||
)
|
||
self.GetErrorBookStats = channel.unary_unary(
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetErrorBookStats",
|
||
request_serializer=analytics__pb2.GetErrorBookStatsRequest.SerializeToString,
|
||
response_deserializer=analytics__pb2.ErrorBookStats.FromString,
|
||
_registered_method=True,
|
||
)
|
||
|
||
|
||
class AnalyticsServiceServicer:
|
||
"""AnalyticsService 数据分析服务契约(D6 智能洞察领域).
|
||
P4 启用 gRPC server 端口 50055,HTTP 3006 保留作 Gateway 直连降级.
|
||
所有 RPC 返回 ActionState 信封(success/data/error/details.degraded).
|
||
"""
|
||
|
||
def GetClassPerformance(self, request, context):
|
||
"""班级成绩分析(平均分/及格率/参考人数)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetStudentWeakness(self, request, context):
|
||
"""学生薄弱知识点(mastery_level < 0.6)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetLearningTrend(self, request, context):
|
||
"""学习趋势(历史成绩曲线)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetTeacherDashboard(self, request, context):
|
||
"""教师仪表盘聚合(班级概览 + 待办 + 预警)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetStudentDashboard(self, request, context):
|
||
"""学生仪表盘(个人学情 + 排名 + 薄弱点)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetParentDashboard(self, request, context):
|
||
"""家长仪表盘(孩子学情概览)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetAdminDashboard(self, request, context):
|
||
"""管理员仪表盘(全校统计 + AI 用量)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetWarnings(self, request, context):
|
||
"""预警列表查询(按班级/严重度/时间过滤)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def TriggerWarning(self, request, context):
|
||
"""手动触发预警(管理员/教师主动标记关注)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetMasteryDistribution(self, request, context):
|
||
"""班级掌握度分布(mastered/progressing/weak 三档)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetStudentMastery(self, request, context):
|
||
"""学生知识点掌握度明细."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def SubscribeMasteryUpdate(self, request, context):
|
||
"""订阅掌握度更新(server-streaming,P5+ AI 个性化推荐实时推送通道)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetStudentGrowth(self, request, context):
|
||
"""===== P6+ v2 扩展 RPC(响应上游 parent-bff / student-bff v2 请求) =====
|
||
学生成长档案(综合成绩趋势 + 掌握度变化 + 考勤统计,供 parent-bff GrowthArchiveService).
|
||
"""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetAssignmentAnalysis(self, request, context):
|
||
"""作业/考试分析(单次作业/考试维度统计,供 student-bff / parent-bff)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetMasterySummary(self, request, context):
|
||
"""学生掌握度汇总(轻量级,仅返回总体掌握度 + 三档分布,供 parent-bff MasteryService.GetSummary)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def ListDiagnosticReports(self, request, context):
|
||
"""诊断报告列表(占位实现,真实数据需 ai 服务集成,供 parent-bff / student-bff)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def ListErrorBookItems(self, request, context):
|
||
"""错题本列表(gRPC 版本,供 parent-bff ErrorBookService.List)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
def GetErrorBookStats(self, request, context):
|
||
"""错题本统计(按知识点聚合,供 parent-bff ErrorBookService.GetStats)."""
|
||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||
context.set_details("Method not implemented!")
|
||
raise NotImplementedError("Method not implemented!")
|
||
|
||
|
||
def add_AnalyticsServiceServicer_to_server(servicer, server):
|
||
rpc_method_handlers = {
|
||
"GetClassPerformance": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetClassPerformance,
|
||
request_deserializer=analytics__pb2.GetClassPerformanceRequest.FromString,
|
||
response_serializer=analytics__pb2.ClassPerformance.SerializeToString,
|
||
),
|
||
"GetStudentWeakness": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetStudentWeakness,
|
||
request_deserializer=analytics__pb2.GetStudentWeaknessRequest.FromString,
|
||
response_serializer=analytics__pb2.StudentWeakness.SerializeToString,
|
||
),
|
||
"GetLearningTrend": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetLearningTrend,
|
||
request_deserializer=analytics__pb2.GetLearningTrendRequest.FromString,
|
||
response_serializer=analytics__pb2.LearningTrend.SerializeToString,
|
||
),
|
||
"GetTeacherDashboard": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetTeacherDashboard,
|
||
request_deserializer=analytics__pb2.GetTeacherDashboardRequest.FromString,
|
||
response_serializer=analytics__pb2.TeacherDashboard.SerializeToString,
|
||
),
|
||
"GetStudentDashboard": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetStudentDashboard,
|
||
request_deserializer=analytics__pb2.GetStudentDashboardRequest.FromString,
|
||
response_serializer=analytics__pb2.StudentDashboard.SerializeToString,
|
||
),
|
||
"GetParentDashboard": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetParentDashboard,
|
||
request_deserializer=analytics__pb2.GetParentDashboardRequest.FromString,
|
||
response_serializer=analytics__pb2.ParentDashboard.SerializeToString,
|
||
),
|
||
"GetAdminDashboard": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetAdminDashboard,
|
||
request_deserializer=analytics__pb2.GetAdminDashboardRequest.FromString,
|
||
response_serializer=analytics__pb2.AdminDashboard.SerializeToString,
|
||
),
|
||
"GetWarnings": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetWarnings,
|
||
request_deserializer=analytics__pb2.GetWarningsRequest.FromString,
|
||
response_serializer=analytics__pb2.WarningList.SerializeToString,
|
||
),
|
||
"TriggerWarning": grpc.unary_unary_rpc_method_handler(
|
||
servicer.TriggerWarning,
|
||
request_deserializer=analytics__pb2.TriggerWarningRequest.FromString,
|
||
response_serializer=analytics__pb2.TriggerWarningResponse.SerializeToString,
|
||
),
|
||
"GetMasteryDistribution": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetMasteryDistribution,
|
||
request_deserializer=analytics__pb2.GetMasteryDistributionRequest.FromString,
|
||
response_serializer=analytics__pb2.MasteryDistribution.SerializeToString,
|
||
),
|
||
"GetStudentMastery": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetStudentMastery,
|
||
request_deserializer=analytics__pb2.GetStudentMasteryRequest.FromString,
|
||
response_serializer=analytics__pb2.StudentMastery.SerializeToString,
|
||
),
|
||
"SubscribeMasteryUpdate": grpc.unary_stream_rpc_method_handler(
|
||
servicer.SubscribeMasteryUpdate,
|
||
request_deserializer=analytics__pb2.SubscribeMasteryUpdateRequest.FromString,
|
||
response_serializer=analytics__pb2.MasteryUpdateEvent.SerializeToString,
|
||
),
|
||
"GetStudentGrowth": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetStudentGrowth,
|
||
request_deserializer=analytics__pb2.GetStudentGrowthRequest.FromString,
|
||
response_serializer=analytics__pb2.StudentGrowth.SerializeToString,
|
||
),
|
||
"GetAssignmentAnalysis": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetAssignmentAnalysis,
|
||
request_deserializer=analytics__pb2.GetAssignmentAnalysisRequest.FromString,
|
||
response_serializer=analytics__pb2.AssignmentAnalysis.SerializeToString,
|
||
),
|
||
"GetMasterySummary": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetMasterySummary,
|
||
request_deserializer=analytics__pb2.GetMasterySummaryRequest.FromString,
|
||
response_serializer=analytics__pb2.MasterySummary.SerializeToString,
|
||
),
|
||
"ListDiagnosticReports": grpc.unary_unary_rpc_method_handler(
|
||
servicer.ListDiagnosticReports,
|
||
request_deserializer=analytics__pb2.ListDiagnosticReportsRequest.FromString,
|
||
response_serializer=analytics__pb2.DiagnosticReportList.SerializeToString,
|
||
),
|
||
"ListErrorBookItems": grpc.unary_unary_rpc_method_handler(
|
||
servicer.ListErrorBookItems,
|
||
request_deserializer=analytics__pb2.ListErrorBookItemsRequest.FromString,
|
||
response_serializer=analytics__pb2.ErrorBookList.SerializeToString,
|
||
),
|
||
"GetErrorBookStats": grpc.unary_unary_rpc_method_handler(
|
||
servicer.GetErrorBookStats,
|
||
request_deserializer=analytics__pb2.GetErrorBookStatsRequest.FromString,
|
||
response_serializer=analytics__pb2.ErrorBookStats.SerializeToString,
|
||
),
|
||
}
|
||
generic_handler = grpc.method_handlers_generic_handler(
|
||
"next_edu_cloud.analytics.v1.AnalyticsService", rpc_method_handlers
|
||
)
|
||
server.add_generic_rpc_handlers((generic_handler,))
|
||
server.add_registered_method_handlers(
|
||
"next_edu_cloud.analytics.v1.AnalyticsService", rpc_method_handlers
|
||
)
|
||
|
||
|
||
# This class is part of an EXPERIMENTAL API.
|
||
class AnalyticsService:
|
||
"""AnalyticsService 数据分析服务契约(D6 智能洞察领域).
|
||
P4 启用 gRPC server 端口 50055,HTTP 3006 保留作 Gateway 直连降级.
|
||
所有 RPC 返回 ActionState 信封(success/data/error/details.degraded).
|
||
"""
|
||
|
||
@staticmethod
|
||
def GetClassPerformance(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetClassPerformance",
|
||
analytics__pb2.GetClassPerformanceRequest.SerializeToString,
|
||
analytics__pb2.ClassPerformance.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetStudentWeakness(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentWeakness",
|
||
analytics__pb2.GetStudentWeaknessRequest.SerializeToString,
|
||
analytics__pb2.StudentWeakness.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetLearningTrend(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetLearningTrend",
|
||
analytics__pb2.GetLearningTrendRequest.SerializeToString,
|
||
analytics__pb2.LearningTrend.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetTeacherDashboard(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetTeacherDashboard",
|
||
analytics__pb2.GetTeacherDashboardRequest.SerializeToString,
|
||
analytics__pb2.TeacherDashboard.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetStudentDashboard(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentDashboard",
|
||
analytics__pb2.GetStudentDashboardRequest.SerializeToString,
|
||
analytics__pb2.StudentDashboard.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetParentDashboard(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetParentDashboard",
|
||
analytics__pb2.GetParentDashboardRequest.SerializeToString,
|
||
analytics__pb2.ParentDashboard.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetAdminDashboard(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetAdminDashboard",
|
||
analytics__pb2.GetAdminDashboardRequest.SerializeToString,
|
||
analytics__pb2.AdminDashboard.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetWarnings(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetWarnings",
|
||
analytics__pb2.GetWarningsRequest.SerializeToString,
|
||
analytics__pb2.WarningList.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def TriggerWarning(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/TriggerWarning",
|
||
analytics__pb2.TriggerWarningRequest.SerializeToString,
|
||
analytics__pb2.TriggerWarningResponse.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetMasteryDistribution(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetMasteryDistribution",
|
||
analytics__pb2.GetMasteryDistributionRequest.SerializeToString,
|
||
analytics__pb2.MasteryDistribution.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetStudentMastery(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentMastery",
|
||
analytics__pb2.GetStudentMasteryRequest.SerializeToString,
|
||
analytics__pb2.StudentMastery.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def SubscribeMasteryUpdate(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_stream(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/SubscribeMasteryUpdate",
|
||
analytics__pb2.SubscribeMasteryUpdateRequest.SerializeToString,
|
||
analytics__pb2.MasteryUpdateEvent.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetStudentGrowth(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetStudentGrowth",
|
||
analytics__pb2.GetStudentGrowthRequest.SerializeToString,
|
||
analytics__pb2.StudentGrowth.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetAssignmentAnalysis(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetAssignmentAnalysis",
|
||
analytics__pb2.GetAssignmentAnalysisRequest.SerializeToString,
|
||
analytics__pb2.AssignmentAnalysis.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetMasterySummary(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetMasterySummary",
|
||
analytics__pb2.GetMasterySummaryRequest.SerializeToString,
|
||
analytics__pb2.MasterySummary.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def ListDiagnosticReports(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/ListDiagnosticReports",
|
||
analytics__pb2.ListDiagnosticReportsRequest.SerializeToString,
|
||
analytics__pb2.DiagnosticReportList.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def ListErrorBookItems(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/ListErrorBookItems",
|
||
analytics__pb2.ListErrorBookItemsRequest.SerializeToString,
|
||
analytics__pb2.ErrorBookList.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|
||
|
||
@staticmethod
|
||
def GetErrorBookStats(
|
||
request,
|
||
target,
|
||
options=(),
|
||
channel_credentials=None,
|
||
call_credentials=None,
|
||
insecure=False,
|
||
compression=None,
|
||
wait_for_ready=None,
|
||
timeout=None,
|
||
metadata=None,
|
||
):
|
||
return grpc.experimental.unary_unary(
|
||
request,
|
||
target,
|
||
"/next_edu_cloud.analytics.v1.AnalyticsService/GetErrorBookStats",
|
||
analytics__pb2.GetErrorBookStatsRequest.SerializeToString,
|
||
analytics__pb2.ErrorBookStats.FromString,
|
||
options,
|
||
channel_credentials,
|
||
insecure,
|
||
call_credentials,
|
||
compression,
|
||
wait_for_ready,
|
||
timeout,
|
||
metadata,
|
||
_registered_method=True,
|
||
)
|