修复了大量存在的问题,增加了假鸭子类型等等机制

This commit is contained in:
2026-06-25 14:49:46 +08:00
parent 19f2787db0
commit d88d11b646
827 changed files with 32617 additions and 18316 deletions

View File

@@ -5,190 +5,169 @@ import mpool
import json
import string
import w32.win32memory as win32mem
# ============================================================
# 测试计数器
# ============================================================
_pass_count: t.CInt = 0
_fail_count: t.CInt = 0
def check(name: t.CChar | t.CPtr, condition: bool):
global _pass_count, _fail_count
if condition:
_pass_count += 1
printf(" [PASS] %s\n", name)
else:
_fail_count += 1
printf(" [FAIL] %s\n", name)
import testcheck
# ============================================================
# 测试 1构造 JSON 值(使用 mpool
# ============================================================
def test_construct(pool: mpool.MPool | t.CPtr):
printf("\n+-- Construct JsonValue (with mpool) --+\n")
testcheck.section("Construct JsonValue (with mpool)")
# null
v1: json.JsonValue | t.CPtr = json.null(pool)
check("null is_null", v1.is_null())
testcheck.check(v1.is_null(), "null is_null", "null is_null")
# bool
v2: json.JsonValue | t.CPtr = json.bool_val(pool, True)
check("bool true is_bool", v2.is_bool())
check("bool true as_bool", v2.as_bool())
testcheck.check(v2.is_bool(), "bool true is_bool", "bool true is_bool")
testcheck.check(v2.as_bool(), "bool true as_bool", "bool true as_bool")
v3: json.JsonValue | t.CPtr = json.bool_val(pool, False)
check("bool false !as_bool", not v3.as_bool())
testcheck.check(not v3.as_bool(), "bool false !as_bool", "bool false !as_bool")
# int
v4: json.JsonValue | t.CPtr = json.int_val(pool, 42)
check("int is_int", v4.is_int())
check("int 42 == 42", v4.as_int() == 42)
testcheck.check(v4.is_int(), "int is_int", "int is_int")
testcheck.check(v4.as_int() == 42, "int 42 == 42", "int 42 == 42")
v5: json.JsonValue | t.CPtr = json.int_val(pool, -100)
check("int -100 == -100", v5.as_int() == -100)
testcheck.check(v5.as_int() == -100, "int -100 == -100", "int -100 == -100")
# float
v6: json.JsonValue | t.CPtr = json.float_val(pool, 3.14)
check("float is_float", v6.is_float())
check("float 3.14 ~= 3.14", v6.as_float() > 3.13 and v6.as_float() < 3.15)
testcheck.check(v6.is_float(), "float is_float", "float is_float")
testcheck.check(v6.as_float() > 3.13 and v6.as_float() < 3.15, "float 3.14 ~= 3.14", "float 3.14 ~= 3.14")
# string
v7: json.JsonValue | t.CPtr = json.string_val(pool, "hello")
check("string is_string", v7.is_string())
check("string == hello", string.strcmp(v7.as_string(), "hello") == 0)
testcheck.check(v7.is_string(), "string is_string", "string is_string")
testcheck.check(string.strcmp(v7.as_string(), "hello") == 0, "string == hello", "string == hello")
# array
v8: json.JsonValue | t.CPtr = json.array(pool)
check("array is_array", v8.is_array())
check("array empty len()==0", len(v8) == 0)
testcheck.check(v8.is_array(), "array is_array", "array is_array")
testcheck.check(len(v8) == 0, "array empty len()==0", "array empty len()==0")
# object
v9: json.JsonValue | t.CPtr = json.object(pool)
check("object is_object", v9.is_object())
check("object empty len()==0", len(v9) == 0)
printf("+--------------------------------------------+\n")
testcheck.check(v9.is_object(), "object is_object", "object is_object")
testcheck.check(len(v9) == 0, "object empty len()==0", "object empty len()==0")
# ============================================================
# 测试 2构造数组和对象Python风格API
# ============================================================
def test_build_structures(pool: mpool.MPool | t.CPtr):
printf("\n+-- Build Arrays and Objects (Pythonic API) --+\n")
testcheck.section("Build Arrays and Objects (Pythonic API)")
# 构建数组 [1, 2, 3]
arr: json.JsonValue | t.CPtr = json.array(pool)
json.array_append(pool, arr, json.int_val(pool, 1))
json.array_append(pool, arr, json.int_val(pool, 2))
json.array_append(pool, arr, json.int_val(pool, 3))
check("array [1,2,3] len()==3", len(arr) == 3)
check("array get_item(0)==1", arr.get_item(0).as_int() == 1)
check("array get_item(1)==2", arr.get_item(1).as_int() == 2)
check("array get_item(2)==3", arr.get_item(2).as_int() == 3)
testcheck.check(len(arr) == 3, "array [1,2,3] len()==3", "array [1,2,3] len()==3")
testcheck.check(arr.get_item(0).as_int() == 1, "array get_item(0)==1", "array get_item(0)==1")
testcheck.check(arr.get_item(1).as_int() == 2, "array get_item(1)==2", "array get_item(1)==2")
testcheck.check(arr.get_item(2).as_int() == 3, "array get_item(2)==3", "array get_item(2)==3")
# 构建对象 {"name": "Viper", "version": 1}
obj: json.JsonValue | t.CPtr = json.object(pool)
json.object_set(pool, obj, "name", json.string_val(pool, "Viper"))
json.object_set(pool, obj, "version", json.int_val(pool, 1))
check("object len()==2", len(obj) == 2)
testcheck.check(len(obj) == 2, "object len()==2", "object len()==2")
# Python风格取值obj["key"]
name_val: json.JsonValue | t.CPtr = obj["name"]
check("obj['name']==Viper", name_val != None and string.strcmp(name_val.as_string(), "Viper") == 0)
testcheck.check(name_val != None and string.strcmp(name_val.as_string(), "Viper") == 0, "obj['name']==Viper", "obj['name']==Viper")
ver_val: json.JsonValue | t.CPtr = obj["version"]
check("obj['version']==1", ver_val != None and ver_val.as_int() == 1)
testcheck.check(ver_val != None and ver_val.as_int() == 1, "obj['version']==1", "obj['version']==1")
missing: json.JsonValue | t.CPtr = obj["missing"]
check("obj['missing']==None", missing == None)
printf("+--------------------------------------------+\n")
testcheck.check(missing == None, "obj['missing']==None", "obj['missing']==None")
# ============================================================
# 测试 3JSON 解析
# ============================================================
def test_parse(pool: mpool.MPool | t.CPtr):
printf("\n+-- Parse JSON --+\n")
testcheck.section("Parse JSON")
# 解析整数
v1: json.JsonValue | t.CPtr = json.parse(pool, "42")
check("parse int is_int", v1.is_int())
check("parse int == 42", v1.as_int() == 42)
testcheck.check(v1.is_int(), "parse int is_int", "parse int is_int")
testcheck.check(v1.as_int() == 42, "parse int == 42", "parse int == 42")
# 解析负数
v2: json.JsonValue | t.CPtr = json.parse(pool, "-7")
check("parse neg int == -7", v2.as_int() == -7)
testcheck.check(v2.as_int() == -7, "parse neg int == -7", "parse neg int == -7")
# 解析浮点数
v3: json.JsonValue | t.CPtr = json.parse(pool, "3.14")
check("parse float is_float", v3.is_float())
check("parse float ~= 3.14", v3.as_float() > 3.13 and v3.as_float() < 3.15)
testcheck.check(v3.is_float(), "parse float is_float", "parse float is_float")
testcheck.check(v3.as_float() > 3.13 and v3.as_float() < 3.15, "parse float ~= 3.14", "parse float ~= 3.14")
# 解析字符串
v4: json.JsonValue | t.CPtr = json.parse(pool, '"hello world"')
check("parse string is_string", v4.is_string())
check("parse string == hello world", string.strcmp(v4.as_string(), "hello world") == 0)
testcheck.check(v4.is_string(), "parse string is_string", "parse string is_string")
testcheck.check(string.strcmp(v4.as_string(), "hello world") == 0, "parse string == hello world", "parse string == hello world")
# 解析布尔
v5: json.JsonValue | t.CPtr = json.parse(pool, "true")
check("parse true is_bool", v5.is_bool())
check("parse true as_bool", v5.as_bool())
testcheck.check(v5.is_bool(), "parse true is_bool", "parse true is_bool")
testcheck.check(v5.as_bool(), "parse true as_bool", "parse true as_bool")
v6: json.JsonValue | t.CPtr = json.parse(pool, "false")
check("parse false !as_bool", not v6.as_bool())
testcheck.check(not v6.as_bool(), "parse false !as_bool", "parse false !as_bool")
# 解析 null
v7: json.JsonValue | t.CPtr = json.parse(pool, "null")
check("parse null is_null", v7.is_null())
testcheck.check(v7.is_null(), "parse null is_null", "parse null is_null")
# 解析数组
v8: json.JsonValue | t.CPtr = json.parse(pool, "[1, 2, 3]")
check("parse array is_array", v8.is_array())
check("parse array len()==3", len(v8) == 3)
check("parse array get_item(0)==1", v8.get_item(0).as_int() == 1)
check("parse array get_item(2)==3", v8.get_item(2).as_int() == 3)
testcheck.check(v8.is_array(), "parse array is_array", "parse array is_array")
testcheck.check(len(v8) == 3, "parse array len()==3", "parse array len()==3")
testcheck.check(v8.get_item(0).as_int() == 1, "parse array get_item(0)==1", "parse array get_item(0)==1")
testcheck.check(v8.get_item(2).as_int() == 3, "parse array get_item(2)==3", "parse array get_item(2)==3")
# 解析对象Python风格取值
v9: json.JsonValue | t.CPtr = json.parse(pool, '{"x": 10, "y": 20}')
check("parse object is_object", v9.is_object())
check("parse object len()==2", len(v9) == 2)
testcheck.check(v9.is_object(), "parse object is_object", "parse object is_object")
testcheck.check(len(v9) == 2, "parse object len()==2", "parse object len()==2")
x_val: json.JsonValue | t.CPtr = v9["x"]
check("parse obj['x']==10", x_val != None and x_val.as_int() == 10)
testcheck.check(x_val != None and x_val.as_int() == 10, "parse obj['x']==10", "parse obj['x']==10")
y_val: json.JsonValue | t.CPtr = v9["y"]
check("parse obj['y']==20", y_val != None and y_val.as_int() == 20)
printf("+--------------------------------------------+\n")
testcheck.check(y_val != None and y_val.as_int() == 20, "parse obj['y']==20", "parse obj['y']==20")
# ============================================================
# 测试 4JSON 序列化
# ============================================================
def test_write(pool: mpool.MPool | t.CPtr):
printf("\n+-- Write JSON --+\n")
testcheck.section("Write JSON")
# 写整数
v1: json.JsonValue | t.CPtr = json.int_val(pool, 42)
s1: t.CChar | t.CPtr = json.write(pool, v1, False)
check("write int 42", string.strcmp(s1, "42") == 0)
testcheck.check(string.strcmp(s1, "42") == 0, "write int 42", "write int 42")
# 写字符串
v2: json.JsonValue | t.CPtr = json.string_val(pool, "hello")
s2: t.CChar | t.CPtr = json.write(pool, v2, False)
check("write string hello", string.strcmp(s2, '"hello"') == 0)
testcheck.check(string.strcmp(s2, '"hello"') == 0, "write string hello", "write string hello")
# 写布尔
v3: json.JsonValue | t.CPtr = json.bool_val(pool, True)
s3: t.CChar | t.CPtr = json.write(pool, v3, False)
check("write bool true", string.strcmp(s3, "true") == 0)
testcheck.check(string.strcmp(s3, "true") == 0, "write bool true", "write bool true")
v4: json.JsonValue | t.CPtr = json.bool_val(pool, False)
s4: t.CChar | t.CPtr = json.write(pool, v4, False)
check("write bool false", string.strcmp(s4, "false") == 0)
testcheck.check(string.strcmp(s4, "false") == 0, "write bool false", "write bool false")
# 写 null
v5: json.JsonValue | t.CPtr = json.null(pool)
s5: t.CChar | t.CPtr = json.write(pool, v5, False)
check("write null", string.strcmp(s5, "null") == 0)
testcheck.check(string.strcmp(s5, "null") == 0, "write null", "write null")
# 写数组
arr: json.JsonValue | t.CPtr = json.array(pool)
@@ -196,117 +175,110 @@ def test_write(pool: mpool.MPool | t.CPtr):
json.array_append(pool, arr, json.int_val(pool, 2))
json.array_append(pool, arr, json.int_val(pool, 3))
s6: t.CChar | t.CPtr = json.write(pool, arr, False)
check("write array [1,2,3]", string.strcmp(s6, "[1,2,3]") == 0)
testcheck.check(string.strcmp(s6, "[1,2,3]") == 0, "write array [1,2,3]", "write array [1,2,3]")
# 写对象
obj: json.JsonValue | t.CPtr = json.object(pool)
json.object_set(pool, obj, "a", json.int_val(pool, 1))
json.object_set(pool, obj, "b", json.string_val(pool, "x"))
s7: t.CChar | t.CPtr = json.write(pool, obj, False)
check("write object non-null", s7 != None)
printf("+--------------------------------------------+\n")
testcheck.check(s7 != None, "write object non-null", "write object non-null")
# ============================================================
# 测试 5解析复杂嵌套 JSONPython风格API
# ============================================================
def test_nested(pool: mpool.MPool | t.CPtr):
printf("\n+-- Parse Nested JSON (Pythonic API) --+\n")
testcheck.section("Parse Nested JSON (Pythonic API)")
src: t.CChar | t.CPtr = '{"name": "Viper", "version": 1, "features": ["fast", "safe", "portable"], "nested": {"key": "value", "num": 99}}'
root: json.JsonValue | t.CPtr = json.parse(pool, src)
check("nested is_object", root.is_object())
check("nested len()==4", len(root) == 4)
testcheck.check(root.is_object(), "nested is_object", "nested is_object")
testcheck.check(len(root) == 4, "nested len()==4", "nested len()==4")
# Python风格取值root["name"]
name: json.JsonValue | t.CPtr = root["name"]
check("root['name']==Viper", name != None and string.strcmp(name.as_string(), "Viper") == 0)
testcheck.check(name != None and string.strcmp(name.as_string(), "Viper") == 0, "root['name']==Viper", "root['name']==Viper")
# root["version"]
ver: json.JsonValue | t.CPtr = root["version"]
check("root['version']==1", ver != None and ver.as_int() == 1)
testcheck.check(ver != None and ver.as_int() == 1, "root['version']==1", "root['version']==1")
# root["features"] 数组
feat: json.JsonValue | t.CPtr = root["features"]
check("root['features'] is_array", feat != None and feat.is_array())
check("root['features'] len()==3", feat != None and len(feat) == 3)
check("root['features'][0]==fast", feat != None and string.strcmp(feat.get_item(0).as_string(), "fast") == 0)
check("root['features'][2]==portable", feat != None and string.strcmp(feat.get_item(2).as_string(), "portable") == 0)
testcheck.check(feat != None and feat.is_array(), "root['features'] is_array", "root['features'] is_array")
testcheck.check(feat != None and len(feat) == 3, "root['features'] len()==3", "root['features'] len()==3")
testcheck.check(feat != None and string.strcmp(feat.get_item(0).as_string(), "fast") == 0, "root['features'][0]==fast", "root['features'][0]==fast")
testcheck.check(feat != None and string.strcmp(feat.get_item(2).as_string(), "portable") == 0, "root['features'][2]==portable", "root['features'][2]==portable")
# root["nested"] 对象
nested: json.JsonValue | t.CPtr = root["nested"]
check("root['nested'] is_object", nested != None and nested.is_object())
testcheck.check(nested != None and nested.is_object(), "root['nested'] is_object", "root['nested'] is_object")
nk: json.JsonValue | t.CPtr = nested["key"] if nested != None else None
check("root['nested']['key']==value", nk != None and string.strcmp(nk.as_string(), "value") == 0)
testcheck.check(nk != None and string.strcmp(nk.as_string(), "value") == 0, "root['nested']['key']==value", "root['nested']['key']==value")
nn: json.JsonValue | t.CPtr = nested["num"] if nested != None else None
check("root['nested']['num']==99", nn != None and nn.as_int() == 99)
printf("+--------------------------------------------+\n")
testcheck.check(nn != None and nn.as_int() == 99, "root['nested']['num']==99", "root['nested']['num']==99")
# ============================================================
# 测试 6mpool 重置后重新使用
# ============================================================
def test_mpool_reuse():
printf("\n+-- MPool Reuse --+\n")
testcheck.section("MPool Reuse")
# 分配内存
mem: t.CVoid | t.CPtr = win32mem.VirtualAlloc(t.CVoid(0, t.CPtr), 8192, 0x3000, 0x04)
check("VirtualAlloc ok", mem != None)
testcheck.check(mem != None, "VirtualAlloc ok", "VirtualAlloc ok")
pool: mpool.MPool | t.CPtr = mpool.MPool(mem, 8192, 0)
# 第一次使用
v1: json.JsonValue | t.CPtr = json.int_val(pool, 100)
check("reuse round1 int==100", v1.as_int() == 100)
testcheck.check(v1.as_int() == 100, "reuse round1 int==100", "reuse round1 int==100")
# 重置 mpool
pool.reset()
# 第二次使用(内存复用)
v2: json.JsonValue | t.CPtr = json.string_val(pool, "reused")
check("reuse round2 string==reused", string.strcmp(v2.as_string(), "reused") == 0)
testcheck.check(string.strcmp(v2.as_string(), "reused") == 0, "reuse round2 string==reused", "reuse round2 string==reused")
# 重置后再解析
pool.reset()
v3: json.JsonValue | t.CPtr = json.parse(pool, '{"test": true}')
check("reuse round3 parse ok", v3.is_object())
testcheck.check(v3.is_object(), "reuse round3 parse ok", "reuse round3 parse ok")
tv: json.JsonValue | t.CPtr = v3["test"]
check("reuse round3 obj['test']==true", tv != None and tv.as_bool())
testcheck.check(tv != None and tv.as_bool(), "reuse round3 obj['test']==true", "reuse round3 obj['test']==true")
win32mem.VirtualFree(mem, 0, 0x8000)
printf("+--------------------------------------------+\n")
# ============================================================
# 测试 7转义字符解析
# ============================================================
def test_escape(pool: mpool.MPool | t.CPtr):
printf("\n+-- Escape Characters --+\n")
testcheck.section("Escape Characters")
# 解析含转义字符的字符串
v1: json.JsonValue | t.CPtr = json.parse(pool, '"hello\\nworld"')
check("escape \\n is_string", v1.is_string())
testcheck.check(v1.is_string(), "escape \\n is_string", "escape \\n is_string")
sv1: t.CChar | t.CPtr = v1.as_string()
check("escape \\n contains newline", sv1 != None and sv1[5] == '\n')
testcheck.check(sv1 != None and sv1[5] == '\n', "escape \\n contains newline", "escape \\n contains newline")
v2: json.JsonValue | t.CPtr = json.parse(pool, '"tab\\there"')
check("escape \\t is_string", v2.is_string())
testcheck.check(v2.is_string(), "escape \\t is_string", "escape \\t is_string")
sv2: t.CChar | t.CPtr = v2.as_string()
check("escape \\t contains tab", sv2 != None and sv2[3] == '\t')
testcheck.check(sv2 != None and sv2[3] == '\t', "escape \\t contains tab", "escape \\t contains tab")
v3: json.JsonValue | t.CPtr = json.parse(pool, '"quote\\""')
check("escape \\\" is_string", v3.is_string())
printf("+--------------------------------------------+\n")
testcheck.check(v3.is_string(), "escape \\\" is_string", "escape \\\" is_string")
# ============================================================
# 主函数
# ============================================================
def main() -> t.CInt | t.CExport:
printf("=== JSON Library Test (Pythonic API) ===\n")
testcheck.begin("JSON Library Test (Pythonic API)")
# 使用 mpool 的 bump 分配器
mem: t.CVoid | t.CPtr = win32mem.VirtualAlloc(t.CVoid(0, t.CPtr), 65536, 0x3000, 0x04)
@@ -334,5 +306,4 @@ def main() -> t.CInt | t.CExport:
win32mem.VirtualFree(mem, 0, 0x8000)
printf("\n=== Results: %d passed, %d failed ===\n", _pass_count, _fail_count)
return 0
return testcheck.end()

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3"}

View File

@@ -0,0 +1 @@
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +0,0 @@
{"stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +0,0 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}

View File

@@ -1 +0,0 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -0,0 +1 @@
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -0,0 +1 @@
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e"}

View File

@@ -0,0 +1 @@
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "29813d57621099a9", "win32sync": "29813d57621099a9"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22"}

View File

@@ -1 +1 @@
{"main": "1dd5985fb89f7ef9", "stdint": "56cdd754a8a09347", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "mpool": "68c4fe4b12c908e3", "string": "6aee24fdefa3cbc0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950"}
{"mpool": "0991af0d22263577", "stdint": "49bd8cba55979f76", "w32.win32base": "5a6a2137958c28c5", "win32base": "5a6a2137958c28c5", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "stdio": "73edbcf76e32d00b", "json.__init__": "8ee3170049c70333", "__init__": "8ee3170049c70333", "json": "8ee3170049c70333", "main": "9361526faa30d4d2", "testcheck": "9dbecd0942a39782", "string": "b5f1dc665c52a1bd", "json.__parser": "bd2e7db1744476fe", "__parser": "bd2e7db1744476fe", "viperio": "c9f4be41ca1cc2b4", "json.__writer": "eaf7a981f0ef5b22", "__writer": "eaf7a981f0ef5b22", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "w32.win32file": "abf9ce3160c9279e", "win32file": "abf9ce3160c9279e", "w32.fileio": "fa3691e66b426950", "fileio": "fa3691e66b426950"}

View File

@@ -11,7 +11,7 @@ import string
MPOOL_ALIGN: t.CDefine = 8
MPOOL_TYPE_SLAB: t.CDefine = 0
MPOOL_TYPE_BUMP: t.CDefine = 2
MPOOL_TYPE_BUMP: t.CDefine = 1
def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass

View File

@@ -64,4 +64,12 @@ CHAR16: t.CTypedef = t.CChar16T
CHAR32: t.CTypedef = t.CChar32T
CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr
CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr
CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr
CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr
i8: t.CTypedef = t.CInt8T
i16: t.CTypedef = t.CInt16T
i32: t.CTypedef = t.CInt32T
i64: t.CTypedef = t.CInt64T
u8: t.CTypedef = t.CUInt8T
u16: t.CTypedef = t.CUInt16T
u32: t.CTypedef = t.CUInt32T
u64: t.CTypedef = t.CUInt64T

View File

@@ -11,11 +11,7 @@ import mpool
import json
import string
import w32.win32memory as win32mem
_pass_count: t.CExtern | t.CInt
_fail_count: t.CExtern | t.CInt
def check(name: t.CChar | t.CPtr, condition: bool) -> t.CInt: pass
import testcheck
def test_construct(pool: mpool.MPool | t.CPtr) -> t.CInt: pass

View File

@@ -0,0 +1,25 @@
"""
Auto-generated Python stub file from testcheck.py
Module: testcheck
"""
import t, c
import stdio
_pass_count: t.CExtern | t.CInt
_fail_count: t.CExtern | t.CInt
def begin(name: str) -> t.CInt: pass
def section(name: str) -> t.CInt: pass
def ok(msg: str) -> t.CInt: pass
def fail(msg: str) -> t.CInt: pass
def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass
def info(msg: str) -> t.CInt: pass
def end() -> t.CInt: pass

View File

@@ -1,11 +1,12 @@
1dd5985fb89f7ef9:main.py
56cdd754a8a09347:includes/stdint.py
0991af0d22263577:includes/mpool.py
49bd8cba55979f76:includes/stdint.py
5a6a2137958c28c5:includes/w32\win32base.py
68c4fe4b12c908e3:includes/mpool.py
6aee24fdefa3cbc0:includes/string.py
72e2d5ccb7cedcf1:includes/w32\win32memory.py
73edbcf76e32d00b:includes/stdio.py
8ee3170049c70333:includes/json\__init__.py
9361526faa30d4d2:main.py
9dbecd0942a39782:includes/testcheck.py
b5f1dc665c52a1bd:includes/string.py
bd2e7db1744476fe:includes/json\__parser.py
c9f4be41ca1cc2b4:includes/viperio.py
eaf7a981f0ef5b22:includes/json\__writer.py

View File

@@ -41,4 +41,4 @@ def atoll(src: str) -> t.CInt64T: pass
def atof(src: str) -> t.CDouble: pass
def split(s: str, delim: str, result: list[str]) -> int: pass
def split(s: str, delim: str, result: t.CArray[str]) -> int: pass