Chronaxis用户手册English
本页目录相关类型对象导航FrameSortFrameSort.__init__FrameSort._checkFrameSort._openFrameSort._close_fileFrameSort._macFrameSort._writeFrameSort._readFrameSort.appendFrameSort._flushFrameSort._mergeFrameSort.sealFrameSort.rowsFrameSort.close内部匿名回调第140行匿名函数

chronaxis.results.frame_sort

为离线报文导出进行有界磁盘排序,不把整段报文留在内存。

输入为有限标量排序键和新导出自己的JSON记录,输出按键稳定排列的记录流。 每批最多64行,归并只开两路输入;旧run留作诊断且累计计入spool。旧调用默认用摘要绑定每行与结束标记;新版仅显式完整性诊断时启用。 不启用摘要时仍校验行结构、行长和结束计数,拒绝截断,不提供防篡改证明。 所有句柄在owner上登记,持续关闭失败仍可重试;本模块不读原日志或加载DBC。

这是模块参考。日常调用先查公开API索引;下划线对象和嵌套函数供维护者查阅。签名来自固定源码,公开类构造签名经实际Python接口核对。

相关类型

Path、ResultClosedError、ResultFormatError

对象导航

对象 用途
FrameSort 拥有一个新目录、最多64行缓冲和三个实际文件,封口后仅接受顺序回读。
FrameSort.__init__ 预约并创建暂存。
FrameSort._check 在有界I/O间检查取消。
FrameSort._open 登记真实句柄后交付。
FrameSort._close_file 关闭成功才撤销登记。
FrameSort._mac 把完整行绑定当前run及顺序。
FrameSort._write 有界编码并实写一行。
FrameSort._read 逐行核完整性,必须读到合法结束记录。
FrameSort.append 预约后缓冲一条。
FrameSort._flush 稳定排序有限缓冲并保存一个run。
FrameSort._merge 只保两路当前行进行稳定归并。
FrameSort.seal 完成所有有界归并,空输入也有完整结束记录。
FrameSort.rows 交付单一可关闭回读游标。
FrameSort.close 关闭全部实际文件后释放自有预算;保暂存供诊断。
导入与重导出来源(展开)
python
from hashlib import blake2b
from hmac import compare_digest
from pathlib import Path
from secrets import token_bytes
from .budget import _reserve_owned_ram, _release_owned_ram, _cleanup_owner
from .errors import ResultClosedError, ResultFormatError

FrameSort

拥有一个新目录、最多64行缓冲和三个实际文件,封口后仅接受顺序回读。

python
FrameSort(path, budget, *, check_cancel=None, buffer_rows=64, integrity=True)

源码:src/chronaxis/results/frame_sort.py:19(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort.__init__

预约并创建暂存。

python
FrameSort.__init__(path, budget, *, check_cancel=None, buffer_rows=64, integrity=True)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path pathlib.Path 是 无 位置或关键字。本次排序使用的文件或新工作目录路径。
budget ResourceBudget 是 无 位置或关键字。本次运行共用的ResourceBudget对象,用于检查内存和临时磁盘用量。当前对象在分配前申请额度,用完后归还;同一次运行的组件应使用同一个对象。
check_cancel Callable[[], None] | None 否 None 仅关键字。可选的无参取消检查函数。需要终止时由它抛出异常;None表示不额外调用取消检查。
buffer_rows int 否 64 仅关键字。内存中积累多少条排序记录后写入暂存文件,正整数;不是总输出数量限制。
integrity bool 否 True 仅关键字。是否执行本对象的额外内容摘要或认证核验;False仍保留结构、类型、预算及必要文件变化检查。

返回说明

__init__返回None;使用类名构造时得到已经初始化的对象。后续由该对象管理并关闭自己创建的资源。

异常说明

配置/预算/I/O错。

本函数直接报告的具体错误:

  • ValueError:报文排序缓冲需要1至64行。

源码:src/chronaxis/results/frame_sort.py:22(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._check

在有界I/O间检查取消。

python
FrameSort._check()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

关闭或取消。

本函数直接报告的具体错误:

  • ResultClosedError:报文排序已关闭。

源码:src/chronaxis/results/frame_sort.py:42(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._open

登记真实句柄后交付。

python
FrameSort._open(path, mode)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path pathlib.Path 是 无 位置或关键字。本次排序使用的文件或新工作目录路径。
mode str 是 无 位置或关键字。文件打开模式字符串,例如rb/wb;按当前读写用途传入。

返回说明

文件。

异常说明

打开或登记失败。

源码:src/chronaxis/results/frame_sort.py:50(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._close_file

关闭成功才撤销登记。

python
FrameSort._close_file(stream)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
stream BinaryIO 是 无 位置或关键字。当前已打开的二进制暂存流,函数在此读写或关闭;不是文件路径。

返回说明

返回None,不返回额外的计算值。

异常说明

关闭错保责任。

源码:src/chronaxis/results/frame_sort.py:58(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._mac

把完整行绑定当前run及顺序。

python
FrameSort._mac(path, index, body)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path pathlib.Path 是 无 位置或关键字。本次排序使用的文件或新工作目录路径。
index int 是 无 位置或关键字。该文件中的整数记录序号,纳入校验以发现调换顺序。
body bytes 是 无 位置或关键字。一行UTF-8 JSON正文,不含前面的认证码和末尾换行。

返回说明

64字节摘要。

异常说明

原类型错。

源码:src/chronaxis/results/frame_sort.py:63(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._write

有界编码并实写一行。

python
FrameSort._write(stream, index, packet)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
stream BinaryIO 是 无 位置或关键字。当前已打开的二进制暂存流,函数在此读写或关闭;不是文件路径。
index int 是 无 位置或关键字。将写入记录在本文件中的整数序号。
packet dict[str, object] 是 无 位置或关键字。提供待写入排序暂存的一行JSON结构:数据行为排序键、序号和内容组成的三项结构,结束行为带end计数的对象;编码后不超过64KiB。

返回说明

返回None,不返回额外的计算值。

异常说明

配额/超行/写入错。

本函数直接报告的具体错误:

  • ResultFormatError:报文排序单行超过64KiB。
  • OSError:报文排序写入无进展。

源码:src/chronaxis/results/frame_sort.py:71(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._read

逐行核完整性,必须读到合法结束记录。

python
FrameSort._read(path)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
path pathlib.Path 是 无 位置或关键字。本次排序使用的文件或新工作目录路径。

返回说明

记录生成器。

异常说明

改写/截断/关闭错。

本函数直接报告的具体错误:

  • ResultFormatError:报文排序行截断或超限。
  • ResultFormatError:报文排序行内容或顺序被修改。
  • ResultFormatError:报文排序行结构非法。
  • ResultFormatError:报文排序结束记录不一致。

源码:src/chronaxis/results/frame_sort.py:87(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort.append

预约后缓冲一条。

python
FrameSort.append(key, packet)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
key tuple 是 无 位置或关键字。key有限同类型标量tuple、packet有限JSON对象。
packet dict[str, object] 是 无 位置或关键字。提供一条待排序的有限JSON记录;和独立的key一起保存,编码后不能超过65000字节。这是导出数据,不是进程通信命令。

返回说明

返回None,不返回额外的计算值。

异常说明

结构/预算/I/O错。

本函数直接报告的具体错误:

  • ValueError:报文排序需要building及有限标量键。
  • ResultFormatError:报文记录超过排序行能力。

源码:src/chronaxis/results/frame_sort.py:120(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._flush

稳定排序有限缓冲并保存一个run。

python
FrameSort._flush()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

排序/I/O/配额错。

源码:src/chronaxis/results/frame_sort.py:135(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort._merge

只保两路当前行进行稳定归并。

python
FrameSort._merge(left, right, target)

参数

名称 数据类型 必填 省略时的值 用途、取值和效果
left pathlib.Path 是 无 位置或关键字。已排序的左侧临时文件。
right pathlib.Path 是 无 位置或关键字。已排序的右侧临时文件。
target pathlib.Path 是 无 位置或关键字。归并输出的新文件,逐行写入,不一次读完两个输入。

返回说明

返回None,不返回额外的计算值。

异常说明

输入校验/写入/关闭错。

源码:src/chronaxis/results/frame_sort.py:148(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort.seal

完成所有有界归并,空输入也有完整结束记录。

python
FrameSort.seal()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

输入/预算/取消/I/O错。

本函数直接报告的具体错误:

  • ResultClosedError:报文排序不能重复封口。

源码:src/chronaxis/results/frame_sort.py:181(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort.rows

交付单一可关闭回读游标。

python
FrameSort.rows()

参数:无显式参数。

参数说明

无。

返回说明

(key,序号,记录)生成器。

异常说明

非sealed或已有游标。

本函数直接报告的具体错误:

  • ResultClosedError:报文排序未封口或已交付游标。

源码:src/chronaxis/results/frame_sort.py:199(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

FrameSort.close

关闭全部实际文件后释放自有预算;保暂存供诊断。

python
FrameSort.close()

参数:无显式参数。

参数说明

无。

返回说明

返回None,不返回额外的计算值。

异常说明

原关闭/释放错可重试。

源码:src/chronaxis/results/frame_sort.py:208(行号属于 8904c2f744951857659abd40aaa3535d57faf53c)。

内部匿名回调

第140行匿名函数

python
lambda item: (item[0], item[1])
参数 含义 返回/异常
item 参数按上方签名传入;具体调用语义尚待补充。 返回值由上方表达式决定;具体用途和异常尚待核对,不据模板推断。
Chronaxis 用户手册 · 离线阅读