feat: implement scoped dataset catalog and template input drafts
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""Synthetic HTTP catalog, including page overlap and unknown metrics."""
|
||||
|
||||
import httpx
|
||||
|
||||
|
||||
def field_records(dataset="TEST_FIN", count=123):
|
||||
return [
|
||||
dict(
|
||||
id=f"{dataset}_{i:03}",
|
||||
name=f"TEST 字段 {i:03}",
|
||||
dataset={"id": dataset},
|
||||
type="FUTURE_TYPE" if i == 122 else "VECTOR" if i % 3 == 0 else "MATRIX",
|
||||
coverage=None if i == 122 else 0.95 if i % 2 else 0.6,
|
||||
userCount=None if i == 122 else i,
|
||||
alphaCount=i * 2,
|
||||
description=None if i == 122 else f"合成字段说明 {i}",
|
||||
)
|
||||
for i in range(count)
|
||||
]
|
||||
|
||||
|
||||
def catalog_response(request, fields=None):
|
||||
path, params = request.url.path, request.url.params
|
||||
if path not in ("/data-sets", "/data-fields"):
|
||||
return None
|
||||
assert request.method == "GET"
|
||||
assert params["instrumentType"] == "EQUITY"
|
||||
assert params["region"] and params["universe"] and params["delay"] in ("0", "1")
|
||||
dataset = params.get("dataset.id", "TEST_FIN")
|
||||
rows = (
|
||||
[
|
||||
{
|
||||
"id": "TEST_FIN",
|
||||
"name": "TEST 财务报表",
|
||||
"category": {"name": "基本面"},
|
||||
"subcategory": {"name": "财务报表"},
|
||||
"fieldCount": 123,
|
||||
"description": "合成数据,仅用于验收",
|
||||
},
|
||||
{
|
||||
"id": "TEST_NEWS",
|
||||
"name": "TEST 新闻",
|
||||
"category": {"name": "新闻"},
|
||||
"subcategory": {"name": "情绪"},
|
||||
"fieldCount": 3,
|
||||
},
|
||||
{"id": "TEST_UNKNOWN", "name": "TEST 未分类", "fieldCount": 0},
|
||||
]
|
||||
if path == "/data-sets"
|
||||
else (fields if fields is not None else field_records(dataset, 123 if dataset == "TEST_FIN" else 3))
|
||||
)
|
||||
if path == "/data-fields" and len(rows) > 50:
|
||||
rows = rows[:50] + [rows[49]] + rows[50:]
|
||||
offset, limit = int(params.get("offset", 0)), int(params.get("limit", 50))
|
||||
return httpx.Response(200, json={"results": rows[offset : offset + limit]})
|
||||
Reference in New Issue
Block a user