refactor: rawptr[T] -> T* 与 t.CConst 前缀迁移(R14/R16)

R14:rawptr[X] -> X*(41 文件 / 2037 行改动),X 含模块限定名与嵌套下标(rawptr[GSList[NameEntry]] -> GSList[NameEntry]*)。保留 6 处 rawptr[t.CPtr](规范例外:存纯裸指针);# 注释与字符串里的 rawptr[...] 属元语法描述,未动。 R16(保守子集):t.CConst | str/bytes -> const str/bytes,t.CConst | char | t.CPtr -> const str;typedef 右值位置豁免(const str 在该处无法注册,与 R1 同源)。 验证:TPC 自举三重重编 SUCCESS;TransPyV.exe 全量 77/77 顺序回归通过。
This commit is contained in:
TermiNexus committed 2026-10-05 17:38:21 +08:00
1 parent 0ef4ba9634
commit 0055ab7ea7
41 files changed
+2031 -2031

No files matched your search

+14 -14
View File
@@ -219,7 +219,7 @@ def _TlsErrText():
# Core request
# ============================================================
def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> rawptr[requests.Response]:
def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> requests.Response*:
"""HTTPS GET/POST core. verify=False skips cert chain/hostname checks (not recommended);
verify=True uses ca_file PEM bundle (else system default); auth adds Authorization header on POST only.
"""
@@ -228,7 +228,7 @@ def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str,
_last_verify_flag = 1 if verify else 0
resp: rawptr[requests.Response] = requests.create_response()
resp: requests.Response* = requests.create_response()
if resp is None: return None
if _EnsureReady() != 0:
@@ -478,7 +478,7 @@ def _HttpsRequest(method: str, url: str, verify: bool, ca_file: str, data: str,
# Public API
# ============================================================
def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> rawptr[requests.Response]:
def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data: str, content_type: str, auth: str = None) -> requests.Response*:
"""HTTPS GET/POST with redirect following (cross http/https, max 5 hops).
auth is passed through to _HttpsRequest; note Authorization also follows cross-host redirects.
"""
@@ -493,7 +493,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
string.strcpy(cur, url)
for hop in range(5):
resp: rawptr[requests.Response] = _HttpsRequest(method, cur, verify, ca_file, data, content_type, auth)
resp: requests.Response* = _HttpsRequest(method, cur, verify, ca_file, data, content_type, auth)
if resp is None:
requests._mbuddy.free(cur)
return None
@@ -530,7 +530,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
if string.strncmp(nxt, "https://", 8) != 0:
requests._mbuddy.free(loc)
requests._mbuddy.free(cur)
http_resp: rawptr[requests.Response] = requests.get(nxt)
http_resp: requests.Response* = requests.get(nxt)
requests._mbuddy.free(nxt)
return http_resp
@@ -543,7 +543,7 @@ def _HttpsRedirectLoop(method: str, url: str, verify: bool, ca_file: str, data:
return None
def get(url: str, verify: bool = True, ca_file: str = None) -> rawptr[requests.Response]:
def get(url: str, verify: bool = True, ca_file: str = None) -> requests.Response*:
"""HTTPS GET (follows 3xx redirects, max 5 hops). verify checks cert chain + hostname;
ca_file is a PEM CA bundle path, None uses system default. Returns Response* or None.
"""
@@ -551,7 +551,7 @@ def get(url: str, verify: bool = True, ca_file: str = None) -> rawptr[requests.R
def post(url: str, data: str = None, content_type: str = "application/x-www-form-urlencoded",
verify: bool = True, ca_file: str = None, auth: str = None) -> rawptr[requests.Response]:
verify: bool = True, ca_file: str = None, auth: str = None) -> requests.Response*:
"""HTTPS POST (follows 3xx redirects, max 5 hops). verify checks cert chain + hostname;
ca_file PEM CA bundle (None = system default); auth optional "Bearer <key>", sent when non-empty.
"""
@@ -563,20 +563,20 @@ def post(url: str, data: str = None, content_type: str = "application/x-www-form
# choices[0].delta.content from data:{json} lines into _st_buf; blocking, returns HTTP status or -1/-2.
# ============================================================
def _SseDeltaContent(root: rawptr[json.JsonValue]) -> str:
def _SseDeltaContent(root: json.JsonValue*) -> str:
"""Extract choices[0].delta.content from a stream data event; None if absent."""
if root is None or not root.is_object():
return None
cv: rawptr[json.JsonValue] = root["choices"]
cv: json.JsonValue* = root["choices"]
if cv is None or not cv.is_array():
return None
m0: rawptr[json.JsonValue] = cv.get_item(0)
m0: json.JsonValue* = cv.get_item(0)
if m0 is None or not m0.is_object():
return None
dv: rawptr[json.JsonValue] = m0["delta"]
dv: json.JsonValue* = m0["delta"]
if dv is None or not dv.is_object():
return None
content_v: rawptr[json.JsonValue] = dv["content"]
content_v: json.JsonValue* = dv["content"]
if content_v is None or not content_v.is_string():
return None
return content_v.as_string()
@@ -782,7 +782,7 @@ def post_stream(url: str, data: str, content_type: str = "application/json",
sock.close()
requests._mbuddy.free(errmsg)
return -1
jpool: rawptr[memhub.MemPool] = memhub.MemPool(pmem, 524288)
jpool: memhub.MemPool* = memhub.MemPool(pmem, 524288)
leftover: t.CArray[char, 16384]
llen: INT = 0
@@ -840,7 +840,7 @@ def post_stream(url: str, data: str, content_type: str = "application/json",
if pl[0] != 0:
if string.strncmp(pl, "[DONE]", 6) != 0 or pl[6] != 0:
jpool.reset()
ev: rawptr[json.JsonValue] = json.parse(jpool, pl)
ev: json.JsonValue* = json.parse(jpool, pl)
dtx: str = _SseDeltaContent(ev)
if dtx is not None:
_StreamAppendContent(dtx)