kevin-toolbox-dev 1.4.10__py3-none-any.whl → 1.4.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kevin_toolbox/__init__.py +2 -2
- kevin_toolbox/computer_science/algorithm/for_seq/sample_subset_most_evenly.py +3 -1
- kevin_toolbox/computer_science/algorithm/redirector/redirectable_sequence_fetcher.py +2 -2
- kevin_toolbox/nested_dict_list/get_nodes.py +9 -0
- kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py +2 -4
- kevin_toolbox_dev-1.4.11.dist-info/METADATA +67 -0
- {kevin_toolbox_dev-1.4.10.dist-info → kevin_toolbox_dev-1.4.11.dist-info}/RECORD +9 -9
- kevin_toolbox_dev-1.4.10.dist-info/METADATA +0 -106
- {kevin_toolbox_dev-1.4.10.dist-info → kevin_toolbox_dev-1.4.11.dist-info}/WHEEL +0 -0
- {kevin_toolbox_dev-1.4.10.dist-info → kevin_toolbox_dev-1.4.11.dist-info}/top_level.txt +0 -0
kevin_toolbox/__init__.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "1.4.
|
1
|
+
__version__ = "1.4.11"
|
2
2
|
|
3
3
|
|
4
4
|
import os
|
@@ -12,5 +12,5 @@ os.system(
|
|
12
12
|
os.system(
|
13
13
|
f'python {os.path.split(__file__)[0]}/env_info/check_validity_and_uninstall.py '
|
14
14
|
f'--package_name kevin-toolbox-dev '
|
15
|
-
f'--expiration_timestamp
|
15
|
+
f'--expiration_timestamp 1760340881 --verbose 0'
|
16
16
|
)
|
@@ -26,7 +26,9 @@ def sample_subset_most_evenly(inputs, ratio=None, nums=None, seed=None, rng=None
|
|
26
26
|
仅在b_shuffle_the_tail=True时,以上两个参数起效,且仅需指定一个即可。
|
27
27
|
|
28
28
|
"""
|
29
|
-
|
29
|
+
if nums is None:
|
30
|
+
assert ratio is not None
|
31
|
+
nums = math.ceil(len(inputs) * ratio)
|
30
32
|
assert nums >= 0
|
31
33
|
if len(inputs) == 0 or nums == 0:
|
32
34
|
return []
|
@@ -10,8 +10,8 @@ def _randomly_idx_redirector(idx, seq_len, attempts, rng, *args):
|
|
10
10
|
elif idx == seq_len - 1:
|
11
11
|
return rng.randint(0, seq_len - 2)
|
12
12
|
else:
|
13
|
-
return rng.
|
14
|
-
|
13
|
+
return rng.choice([rng.randint(0, idx - 1), rng.randint(idx + 1, seq_len - 1)], size=1,
|
14
|
+
p=[idx / (seq_len - 1), (seq_len - idx - 1) / (seq_len - 1)])[0]
|
15
15
|
|
16
16
|
|
17
17
|
idx_redirector_s = {
|
@@ -21,6 +21,15 @@ def get_nodes(var, level=-1, b_strict=True, **kwargs):
|
|
21
21
|
对于 level=-10 返回的是 [('', {'d': {'c': 4}, 'c': 4}), ]
|
22
22
|
对于 level=10 返回的是 [(':c', 4), (':d:c', 4)]
|
23
23
|
默认为 True,不添加。
|
24
|
+
|
25
|
+
注意:
|
26
|
+
当 level 为负数(表示从叶节点往上计起)时,某些节点可能同时属于多个 level,比如对于:
|
27
|
+
{'d': {'c': [1, ], 'e': 4}},
|
28
|
+
其中:
|
29
|
+
level=-1: :d:e, :d:c@0
|
30
|
+
level=-2: :d, :d:c
|
31
|
+
level=-3: "", :d
|
32
|
+
可以看到由于 :d 下面有两个不等长的到不同叶节点的路径,因此该节点属于 level -2 和 -3
|
24
33
|
"""
|
25
34
|
assert isinstance(level, (int,))
|
26
35
|
kwargs.setdefault("b_skip_repeated_non_leaf_node", False)
|
@@ -44,7 +44,7 @@ def _forward(var, flag, match_cond):
|
|
44
44
|
if not match_cond(name, value):
|
45
45
|
continue
|
46
46
|
id_to_name_s[id(value)].add(name)
|
47
|
-
id_to_height_s[id(value)]
|
47
|
+
id_to_height_s[id(value)] = height
|
48
48
|
height += 1
|
49
49
|
|
50
50
|
#
|
@@ -54,10 +54,8 @@ def _forward(var, flag, match_cond):
|
|
54
54
|
id_to_height_s.pop(k)
|
55
55
|
id_to_name_s.pop(k)
|
56
56
|
continue
|
57
|
-
# 具有相同 id 的节点所处的高度应该相同
|
58
|
-
assert len(v) == 1, f'nodes {id_to_name_s[k]} have different heights: {v}'
|
59
57
|
# 按高度排序
|
60
|
-
id_vs_height = sorted([(k, v
|
58
|
+
id_vs_height = sorted([(k, v) for k, v in id_to_height_s.items()], key=lambda x: x[1], reverse=True)
|
61
59
|
|
62
60
|
# 从高到低,依次将具有相同 id 的节点替换为 单个节点和多个引用 的形式
|
63
61
|
temp = []
|
@@ -0,0 +1,67 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.4.11
|
4
|
+
Summary: 一个常用的工具代码包集合
|
5
|
+
Home-page: https://github.com/cantbeblank96/kevin_toolbox
|
6
|
+
Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
|
7
|
+
Author: kevin hsu
|
8
|
+
Author-email: xukaiming1996@163.com
|
9
|
+
License: MIT
|
10
|
+
Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
|
11
|
+
Platform: UNKNOWN
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
13
|
+
Classifier: Programming Language :: Python
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
15
|
+
Requires-Python: >=3.6
|
16
|
+
Description-Content-Type: text/markdown
|
17
|
+
Requires-Dist: torch (>=1.2.0)
|
18
|
+
Requires-Dist: numpy (>=1.19.0)
|
19
|
+
Provides-Extra: plot
|
20
|
+
Requires-Dist: matplotlib (>=3.0) ; extra == 'plot'
|
21
|
+
Provides-Extra: rest
|
22
|
+
Requires-Dist: pytest (>=6.2.5) ; extra == 'rest'
|
23
|
+
Requires-Dist: line-profiler (>=3.5) ; extra == 'rest'
|
24
|
+
|
25
|
+
# kevin_toolbox
|
26
|
+
|
27
|
+
一个通用的工具代码包集合
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
环境要求
|
32
|
+
|
33
|
+
```shell
|
34
|
+
numpy>=1.19
|
35
|
+
pytorch>=1.2
|
36
|
+
```
|
37
|
+
|
38
|
+
安装方法:
|
39
|
+
|
40
|
+
```shell
|
41
|
+
pip install kevin-toolbox --no-dependencies
|
42
|
+
```
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
[项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
|
47
|
+
|
48
|
+
[使用指南 User_Guide](./notes/User_Guide.md)
|
49
|
+
|
50
|
+
[免责声明 Disclaimer](./notes/Disclaimer.md)
|
51
|
+
|
52
|
+
[版本更新记录](./notes/Release_Record.md):
|
53
|
+
|
54
|
+
- v 1.4.11 (2025-04-16)【bug fix】
|
55
|
+
|
56
|
+
- nested_dict_list
|
57
|
+
- 【bug fix】fix bug in value_parser.replace_identical_with_reference()
|
58
|
+
- bug 描述:该函数的 _forward 中是通过 get_nodes 来获取各层节点,并记录节点的 id 和 level,这就导致某些节点由于其下具有不同长度的到叶节点的路径,因此节点会同时属于多个 level,最终导致其在 id_to_height_s 中被记录为有多个高度,这进一步导致其无法通过后面“具有相同 id 的节点所处的高度应该相同”的检验条件。
|
59
|
+
- 解决:
|
60
|
+
- 修复了 replace_identical_with_reference() 中的 _forward 部分,仅记录每个节点的最大高度。
|
61
|
+
- 去除了“具有相同 id 的节点所处的高度应该相同”的检验条件。
|
62
|
+
- computer_science.algorithm.redirector
|
63
|
+
- 【bug fix】fix bug in Redirectable_Sequence_Fetcher,将 _randomly_idx_redirector 中的 rng.choices 改为 rng.choice
|
64
|
+
- 添加了对应的测试用例。
|
65
|
+
|
66
|
+
|
67
|
+
|
@@ -1,4 +1,4 @@
|
|
1
|
-
kevin_toolbox/__init__.py,sha256=
|
1
|
+
kevin_toolbox/__init__.py,sha256=QgB7rTrMyf-WE-6vB_Nt1ig3DQxhws4AkxxslqumqB4,411
|
2
2
|
kevin_toolbox/computer_science/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
kevin_toolbox/computer_science/algorithm/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
4
4
|
kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py,sha256=xKWoGhpgrgWbU1newrK7PKIoVsSSOyvcAHUP3cbAd3I,108
|
@@ -37,7 +37,7 @@ kevin_toolbox/computer_science/algorithm/for_seq/__init__.py,sha256=FAEKFljPU72c
|
|
37
37
|
kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py,sha256=xlg-ykyheKmZ-Xo6ETGhm5cj5N8s0VRuUaE1XqrI3Nk,2544
|
38
38
|
kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py,sha256=XnDq-_nQln55vwpAnBslyOKI_KYq11C7PmfLChhSe0k,1046
|
39
39
|
kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py,sha256=uVc2pf9cBjX9sWd9VJ3w6nbsRPaeFT1fXRFfGl1zk6Q,309
|
40
|
-
kevin_toolbox/computer_science/algorithm/for_seq/sample_subset_most_evenly.py,sha256=
|
40
|
+
kevin_toolbox/computer_science/algorithm/for_seq/sample_subset_most_evenly.py,sha256=nM5vC5mH2G0fRytarPPle5Ypk_PKU0MXnQiAIjeoRZE,2523
|
41
41
|
kevin_toolbox/computer_science/algorithm/locks/__init__.py,sha256=ZjZjqGsQB-z9MoYfOPYlI0H7nfZI1hNgxtmJaDdrynI,35
|
42
42
|
kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py,sha256=81cCw3oTXCZxFNhUzFTB5cPKmvbcLM_Gg-5DlT2nuRQ,2492
|
43
43
|
kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py,sha256=bIyMaB3v6JFjkrY7-sg_-yAnFH8I53E2qxIhGprcLzo,112
|
@@ -51,7 +51,7 @@ kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py,sha256=F1uD0ZT
|
|
51
51
|
kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py,sha256=WR-_9BruqAWH0QECa40b1Iz1_k6uesBrUYrn2s9ALBM,3008
|
52
52
|
kevin_toolbox/computer_science/algorithm/pareto_front/optimum_picker.py,sha256=wnYN2s9r2g1z5wF0FvFLawRYITUJbMXbBs4TPsdvhlE,9923
|
53
53
|
kevin_toolbox/computer_science/algorithm/redirector/__init__.py,sha256=eeHQnV6qY5_2O3Xhn7Dl4YHaSI5HnAi9Nuyq65qgoow,73
|
54
|
-
kevin_toolbox/computer_science/algorithm/redirector/redirectable_sequence_fetcher.py,sha256
|
54
|
+
kevin_toolbox/computer_science/algorithm/redirector/redirectable_sequence_fetcher.py,sha256=UgWhEvKrEaMbopsQ3vE1c151ReqJmkVvstIoAMC0Wds,12469
|
55
55
|
kevin_toolbox/computer_science/algorithm/registration/__init__.py,sha256=w9CHaFB1rIfIAiKrSXePwdhjN8kaRrxxdBwjJ7S2aWk,152
|
56
56
|
kevin_toolbox/computer_science/algorithm/registration/registry.py,sha256=X1I04ZO2lTE36TjvJ1tcepl7xXD0OJWCA82RDsoENvA,17734
|
57
57
|
kevin_toolbox/computer_science/algorithm/registration/serializer_for_registry_execution.py,sha256=a-bsb1JCc0rfHhz1mCua-5NWYu-lx4kPY9Ubp5MKUVU,3156
|
@@ -252,7 +252,7 @@ kevin_toolbox/nested_dict_list/__init__.py,sha256=ALcn1tYdBdDWUHyIQj588UfHgrAwbU
|
|
252
252
|
kevin_toolbox/nested_dict_list/copy_.py,sha256=iS8P4JZ4SyBwZksObt2t1e4p0tXrsUu9NRtmjifjX5Q,6256
|
253
253
|
kevin_toolbox/nested_dict_list/count_leaf_node_nums.py,sha256=l67u47EvO1inoGinUqH6RZ7cHXwN0VcBQPUvSheqAvA,614
|
254
254
|
kevin_toolbox/nested_dict_list/get_hash.py,sha256=Ygadnn5dnvIeE-9t39p2EwNKNRLzomL37ZsRD5daXxo,1286
|
255
|
-
kevin_toolbox/nested_dict_list/get_nodes.py,sha256=
|
255
|
+
kevin_toolbox/nested_dict_list/get_nodes.py,sha256=lyvKf_Q1-RQpEPGwwIU5ymq1KEnGpBQ0foHtxkqFYT4,4305
|
256
256
|
kevin_toolbox/nested_dict_list/get_value.py,sha256=IiAqQCphyv-pAZWuQRWm0anEwxYQOkC9CttY5ZlUbSs,2389
|
257
257
|
kevin_toolbox/nested_dict_list/set_default.py,sha256=laSgGP1CbApNgFB9HZGCtxCG9fe7u1C-YOx9ZCoHJms,3460
|
258
258
|
kevin_toolbox/nested_dict_list/set_value.py,sha256=AQ4foDtKo4JxyR---of-VSxjhRWfqkv6TrnQ4EoRo3M,3711
|
@@ -283,7 +283,7 @@ kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py,s
|
|
283
283
|
kevin_toolbox/nested_dict_list/value_parser/eval_references.py,sha256=YQyOm3awKVRusXxSNObjJ2yPf0oE4gleobOn_RN_nzU,2301
|
284
284
|
kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py,sha256=RQEDFFNAhQQcX9H8curwja-pI2gKZlVx4M2qeneBOhA,2370
|
285
285
|
kevin_toolbox/nested_dict_list/value_parser/parse_references.py,sha256=G470xNzrRpYlS5To8R5yV0M6nX4iE5LLMp_eV49bh3Y,2116
|
286
|
-
kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py,sha256=
|
286
|
+
kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py,sha256=BsZlgCNm2n4Gd4PeC2TlKRb4QOApIC0TRSgDtI5SBLI,5194
|
287
287
|
kevin_toolbox/network/__init__.py,sha256=wOY_SKvbxzIIH_OFccMw3-LVUwZQwz8BTb82ht88JHA,346
|
288
288
|
kevin_toolbox/network/download_file.py,sha256=hW6DbdKPWcVqkG8U7NK2bwwubPtmaPHp3ftfuAjMNgI,6896
|
289
289
|
kevin_toolbox/network/fetch_content.py,sha256=WjpwZ_7pyfrAAmxNyHMu3onkbucELnHKYXDBM1fSSEY,2167
|
@@ -378,7 +378,7 @@ kevin_toolbox/patches/for_torch/nn/__init__.py,sha256=aJs3RMqRzQmd8KKDmQW9FxwCqS
|
|
378
378
|
kevin_toolbox/patches/for_torch/nn/lambda_layer.py,sha256=KUuLiX_Dr4bvRmpAaCW5QTDWDcnMPRnw0jg4NNXTFhM,223
|
379
379
|
kevin_toolbox/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
380
380
|
kevin_toolbox/utils/variable.py,sha256=PxUmp9w4CKKcKHjgdVNF_Iaw5gwPPOd4aY_Oe5F9U1M,133
|
381
|
-
kevin_toolbox_dev-1.4.
|
382
|
-
kevin_toolbox_dev-1.4.
|
383
|
-
kevin_toolbox_dev-1.4.
|
384
|
-
kevin_toolbox_dev-1.4.
|
381
|
+
kevin_toolbox_dev-1.4.11.dist-info/METADATA,sha256=ZoZzPSqonbtCcRi5rRt6On5gcycPa-eS2JDFsp65iEU,2294
|
382
|
+
kevin_toolbox_dev-1.4.11.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
383
|
+
kevin_toolbox_dev-1.4.11.dist-info/top_level.txt,sha256=S5TeRGF-PwlhsaUEPTI-f2vWrpLmh3axpyI6v-Fi75o,14
|
384
|
+
kevin_toolbox_dev-1.4.11.dist-info/RECORD,,
|
@@ -1,106 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: kevin-toolbox-dev
|
3
|
-
Version: 1.4.10
|
4
|
-
Summary: 一个常用的工具代码包集合
|
5
|
-
Home-page: https://github.com/cantbeblank96/kevin_toolbox
|
6
|
-
Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
|
7
|
-
Author: kevin hsu
|
8
|
-
Author-email: xukaiming1996@163.com
|
9
|
-
License: MIT
|
10
|
-
Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
|
11
|
-
Platform: UNKNOWN
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
13
|
-
Classifier: Programming Language :: Python
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
15
|
-
Requires-Python: >=3.6
|
16
|
-
Description-Content-Type: text/markdown
|
17
|
-
Requires-Dist: torch (>=1.2.0)
|
18
|
-
Requires-Dist: numpy (>=1.19.0)
|
19
|
-
Provides-Extra: plot
|
20
|
-
Requires-Dist: matplotlib (>=3.0) ; extra == 'plot'
|
21
|
-
Provides-Extra: rest
|
22
|
-
Requires-Dist: pytest (>=6.2.5) ; extra == 'rest'
|
23
|
-
Requires-Dist: line-profiler (>=3.5) ; extra == 'rest'
|
24
|
-
|
25
|
-
# kevin_toolbox
|
26
|
-
|
27
|
-
一个通用的工具代码包集合
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
环境要求
|
32
|
-
|
33
|
-
```shell
|
34
|
-
numpy>=1.19
|
35
|
-
pytorch>=1.2
|
36
|
-
```
|
37
|
-
|
38
|
-
安装方法:
|
39
|
-
|
40
|
-
```shell
|
41
|
-
pip install kevin-toolbox --no-dependencies
|
42
|
-
```
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
[项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
|
47
|
-
|
48
|
-
[使用指南 User_Guide](./notes/User_Guide.md)
|
49
|
-
|
50
|
-
[免责声明 Disclaimer](./notes/Disclaimer.md)
|
51
|
-
|
52
|
-
[版本更新记录](./notes/Release_Record.md):
|
53
|
-
|
54
|
-
- v 1.4.10 (2025-04-11)【new feature】【bug fix】
|
55
|
-
|
56
|
-
- patches.for_logging
|
57
|
-
- modify build_logger() to allow parameter level to accept str input,允许参数 level 接受str输入,比如“DEBUG”或者“INFO”。
|
58
|
-
|
59
|
-
- computer_science.algorithm
|
60
|
-
- cache_manager
|
61
|
-
- 【new feature】add load_state_dict(), state_dict() to Cache_Base, Memo_Cache, Cache_Manager ,增加加载和保存状态的相关接口。
|
62
|
-
- add Cache_Manager_wto_Strategy,新增一个不绑定任何策略的缓存管理器,可以视为容量无上限的特殊情况
|
63
|
-
- refactor Cache_Manager,基于 Cache_Manager_wto_Strategy 对 Cache_Manager 代码进行简化和重构。
|
64
|
-
- 【new feature】redirector
|
65
|
-
- 该新增模块包含重定向功能的函数和类。所谓重定向,其本质是:**原目标失效或不合适时,自动转向一个新的目标,以保证流程不中断或获得正确结果**。
|
66
|
-
- add Redirectable_Sequence_Fetcher,用于从给定 seq 中获取元素,可以通过自动跳转来处理获取失败的情况。
|
67
|
-
- 功能描述:
|
68
|
-
1. 对于给定的索引 idx,若能通过 seq(idx) 成功获取,则直接返回获取的结果。
|
69
|
-
2. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
|
70
|
-
1. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
|
71
|
-
2. 当失败次数达到上限后,则不再进行尝试并直接返回重新向后的新的 idx 的结果。
|
72
|
-
3. 若在此过程中原来失败的 idx 又能再次获取成功,则将失败次数减1,直至归零并删除该记录。
|
73
|
-
3. 若递归次数达到上限,则进行报错或者返回给定的默认值。
|
74
|
-
1. 若开启了跳转记忆功能,在重试过程中,一旦某次调用成功,记录原始索引与最终有效索引之间的映射关系。
|
75
|
-
- 添加了对应的测试用例。
|
76
|
-
- for_seq
|
77
|
-
- 【new feature】add sample_subset_most_evenly(),对列表按给定比例or数量进行采样,并返回一个新的列表,同时保证列表中每个元素在新列表中的占比尽量相近。
|
78
|
-
- redirector
|
79
|
-
- 【new feature】modify Redirectable_Sequence_Fetcher,增加了 seed 参数并在 state_dict 中增加 rng_state 项,以便控制(保存和重现)随机行为。
|
80
|
-
- 【new feature】sampler
|
81
|
-
- 该新增模块包含采样相关的函数和类。
|
82
|
-
- add Reservoir_Sampler,水库采样器。
|
83
|
-
|
84
|
-
- data_flow.file.kevin_notation
|
85
|
-
|
86
|
-
- 【bug fix】fix bug in Kevin_Notation_Reader and Kevin_Notation_Writer
|
87
|
-
|
88
|
-
- bug 原因:由于之前的版本默认启用"//"作为注释符号,因此导致无法正确读取带有"//"的值
|
89
|
-
|
90
|
-
- 解决:在 Kevin_Notation_Reader 和 Kevin_Notation_Writer 取消默认使用注释,并限定只有在 metadata 中显式指定注释标志符才会启用
|
91
|
-
|
92
|
-
- 注意:该修改可能导致原本带有注释的旧版本 .kvt 文件无法被正确读取,遇到该情况时,可以尝试将`# --metadata--`部分修改为:
|
93
|
-
|
94
|
-
```text
|
95
|
-
# --metadata--
|
96
|
-
# sep
|
97
|
-
|
98
|
-
# comment_flag
|
99
|
-
//
|
100
|
-
...
|
101
|
-
```
|
102
|
-
|
103
|
-
- 添加了对应的测试用例。
|
104
|
-
|
105
|
-
|
106
|
-
|
File without changes
|
File without changes
|