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:
1 parent
0ef4ba9634
commit
0055ab7ea7
41 files changed
+2031
-2031
No files matched your search
+14
-14
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user