nextrec 0.4.1__tar.gz → 0.4.2__tar.gz

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.
Files changed (138) hide show
  1. {nextrec-0.4.1 → nextrec-0.4.2}/PKG-INFO +4 -4
  2. {nextrec-0.4.1 → nextrec-0.4.2}/README.md +3 -3
  3. {nextrec-0.4.1 → nextrec-0.4.2}/README_zh.md +3 -3
  4. nextrec-0.4.2/coverage.xml +542 -0
  5. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/conf.py +1 -1
  6. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/__init__.py +1 -1
  7. nextrec-0.4.2/nextrec/__version__.py +1 -0
  8. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/activation.py +10 -5
  9. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/callback.py +1 -0
  10. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/features.py +30 -22
  11. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/layers.py +220 -106
  12. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/loggers.py +62 -43
  13. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/metrics.py +268 -119
  14. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/model.py +1082 -400
  15. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/session.py +10 -3
  16. nextrec-0.4.2/nextrec/cli.py +498 -0
  17. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/data/__init__.py +19 -25
  18. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/data/batch_utils.py +11 -3
  19. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/data/data_processing.py +51 -45
  20. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/data/data_utils.py +26 -15
  21. nextrec-0.4.2/nextrec/data/dataloader.py +497 -0
  22. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/data/preprocessor.py +320 -199
  23. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/loss/listwise.py +17 -9
  24. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/loss/loss_utils.py +7 -8
  25. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/loss/pairwise.py +2 -0
  26. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/loss/pointwise.py +30 -12
  27. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/generative/hstu.py +103 -38
  28. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/dssm.py +82 -68
  29. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/dssm_v2.py +72 -57
  30. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/mind.py +175 -107
  31. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/sdm.py +104 -87
  32. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/youtube_dnn.py +73 -59
  33. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/esmm.py +53 -37
  34. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/mmoe.py +64 -45
  35. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/ple.py +101 -48
  36. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/poso.py +113 -36
  37. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/share_bottom.py +48 -35
  38. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/afm.py +72 -37
  39. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/autoint.py +72 -55
  40. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/dcn.py +55 -35
  41. nextrec-0.4.2/nextrec/models/ranking/dcn_v2.py +125 -0
  42. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/deepfm.py +32 -22
  43. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/dien.py +155 -99
  44. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/din.py +85 -57
  45. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/fibinet.py +52 -32
  46. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/fm.py +29 -23
  47. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/masknet.py +91 -29
  48. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/pnn.py +31 -28
  49. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/widedeep.py +34 -26
  50. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/xdeepfm.py +60 -38
  51. nextrec-0.4.2/nextrec/utils/__init__.py +97 -0
  52. nextrec-0.4.2/nextrec/utils/config.py +490 -0
  53. nextrec-0.4.2/nextrec/utils/device.py +78 -0
  54. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/distributed.py +36 -9
  55. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/embedding.py +1 -0
  56. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/feature.py +1 -0
  57. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/file.py +32 -11
  58. nextrec-0.4.2/nextrec/utils/initializer.py +83 -0
  59. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/optimizer.py +25 -9
  60. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/synthetic_data.py +283 -165
  61. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/tensor.py +24 -13
  62. {nextrec-0.4.1 → nextrec-0.4.2}/pyproject.toml +4 -1
  63. {nextrec-0.4.1 → nextrec-0.4.2}/requirements.txt +2 -1
  64. nextrec-0.4.2/scripts/format_code.py +231 -0
  65. {nextrec-0.4.1 → nextrec-0.4.2}/test/conftest.py +61 -56
  66. {nextrec-0.4.1 → nextrec-0.4.2}/test/run_tests.py +44 -54
  67. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_layers.py +161 -190
  68. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_losses.py +10 -2
  69. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_match_models.py +330 -292
  70. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_multitask_models.py +370 -254
  71. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_preprocessor.py +3 -3
  72. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_ranking_models.py +578 -401
  73. {nextrec-0.4.1 → nextrec-0.4.2}/test/test_utils.py +61 -41
  74. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/distributed/example_distributed_training.py +49 -43
  75. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/distributed/example_distributed_training_large_dataset.py +57 -39
  76. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/example_match_dssm.py +50 -20
  77. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/example_multitask.py +46 -39
  78. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/example_ranking_din.py +53 -15
  79. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/movielen_match_dssm.py +65 -35
  80. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/movielen_ranking_deepfm.py +23 -15
  81. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/run_all_match_models.py +85 -55
  82. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/run_all_multitask_models.py +73 -47
  83. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/run_all_ranking_models.py +95 -33
  84. nextrec-0.4.1/nextrec/__version__.py +0 -1
  85. nextrec-0.4.1/nextrec/data/dataloader.py +0 -320
  86. nextrec-0.4.1/nextrec/models/ranking/dcn_v2.py +0 -84
  87. nextrec-0.4.1/nextrec/utils/__init__.py +0 -72
  88. nextrec-0.4.1/nextrec/utils/device.py +0 -68
  89. nextrec-0.4.1/nextrec/utils/initializer.py +0 -38
  90. {nextrec-0.4.1 → nextrec-0.4.2}/.github/workflows/publish.yml +0 -0
  91. {nextrec-0.4.1 → nextrec-0.4.2}/.github/workflows/tests.yml +0 -0
  92. {nextrec-0.4.1 → nextrec-0.4.2}/.gitignore +0 -0
  93. {nextrec-0.4.1 → nextrec-0.4.2}/.readthedocs.yaml +0 -0
  94. {nextrec-0.4.1 → nextrec-0.4.2}/CODE_OF_CONDUCT.md +0 -0
  95. {nextrec-0.4.1 → nextrec-0.4.2}/CONTRIBUTING.md +0 -0
  96. {nextrec-0.4.1 → nextrec-0.4.2}/LICENSE +0 -0
  97. {nextrec-0.4.1 → nextrec-0.4.2}/MANIFEST.in +0 -0
  98. {nextrec-0.4.1 → nextrec-0.4.2}/assets/Feature Configuration.png +0 -0
  99. {nextrec-0.4.1 → nextrec-0.4.2}/assets/Model Parameters.png +0 -0
  100. {nextrec-0.4.1 → nextrec-0.4.2}/assets/Training Configuration.png +0 -0
  101. {nextrec-0.4.1 → nextrec-0.4.2}/assets/Training logs.png +0 -0
  102. {nextrec-0.4.1 → nextrec-0.4.2}/assets/logo.png +0 -0
  103. {nextrec-0.4.1 → nextrec-0.4.2}/assets/mmoe_tutorial.png +0 -0
  104. {nextrec-0.4.1 → nextrec-0.4.2}/assets/nextrec_diagram_en.png +0 -0
  105. {nextrec-0.4.1 → nextrec-0.4.2}/assets/nextrec_diagram_zh.png +0 -0
  106. {nextrec-0.4.1 → nextrec-0.4.2}/assets/test data.png +0 -0
  107. {nextrec-0.4.1 → nextrec-0.4.2}/dataset/ctcvr_task.csv +0 -0
  108. {nextrec-0.4.1 → nextrec-0.4.2}/dataset/match_task.csv +0 -0
  109. {nextrec-0.4.1 → nextrec-0.4.2}/dataset/movielens_100k.csv +0 -0
  110. {nextrec-0.4.1 → nextrec-0.4.2}/dataset/multitask_task.csv +0 -0
  111. {nextrec-0.4.1 → nextrec-0.4.2}/dataset/ranking_task.csv +0 -0
  112. {nextrec-0.4.1 → nextrec-0.4.2}/docs/en/Getting started guide.md +0 -0
  113. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/Makefile +0 -0
  114. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/index.md +0 -0
  115. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/make.bat +0 -0
  116. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/modules.rst +0 -0
  117. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/nextrec.basic.rst +0 -0
  118. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/nextrec.data.rst +0 -0
  119. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/nextrec.loss.rst +0 -0
  120. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/nextrec.rst +0 -0
  121. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/nextrec.utils.rst +0 -0
  122. {nextrec-0.4.1 → nextrec-0.4.2}/docs/rtd/requirements.txt +0 -0
  123. {nextrec-0.4.1 → nextrec-0.4.2}/docs/zh//345/277/253/351/200/237/344/270/212/346/211/213.md" +0 -0
  124. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/basic/__init__.py +0 -0
  125. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/loss/__init__.py +0 -0
  126. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/generative/__init__.py +0 -0
  127. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/generative/tiger.py +0 -0
  128. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/match/__init__.py +0 -0
  129. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/multi_task/__init__.py +0 -0
  130. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/models/ranking/__init__.py +0 -0
  131. {nextrec-0.4.1 → nextrec-0.4.2}/nextrec/utils/model.py +0 -0
  132. {nextrec-0.4.1 → nextrec-0.4.2}/pytest.ini +0 -0
  133. {nextrec-0.4.1 → nextrec-0.4.2}/test/__init__.py +0 -0
  134. {nextrec-0.4.1 → nextrec-0.4.2}/test_requirements.txt +0 -0
  135. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/notebooks/en/Hands on dataprocessor.ipynb +0 -0
  136. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/notebooks/en/Hands on nextrec.ipynb +0 -0
  137. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/notebooks/zh/Hands on dataprocessor.ipynb +0 -0
  138. {nextrec-0.4.1 → nextrec-0.4.2}/tutorials/notebooks/zh/Hands on nextrec.ipynb +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextrec
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: A comprehensive recommendation library with match, ranking, and multi-task learning models
5
5
  Project-URL: Homepage, https://github.com/zerolovesea/NextRec
6
6
  Project-URL: Repository, https://github.com/zerolovesea/NextRec
@@ -63,7 +63,7 @@ Description-Content-Type: text/markdown
63
63
  ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
64
64
  ![PyTorch](https://img.shields.io/badge/PyTorch-1.10+-ee4c2c.svg)
65
65
  ![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)
66
- ![Version](https://img.shields.io/badge/Version-0.4.1-orange.svg)
66
+ ![Version](https://img.shields.io/badge/Version-0.4.2-orange.svg)
67
67
 
68
68
  English | [中文文档](README_zh.md)
69
69
 
@@ -110,7 +110,7 @@ To dive deeper, Jupyter notebooks are available:
110
110
  - [Hands on the NextRec framework](/tutorials/notebooks/en/Hands%20on%20nextrec.ipynb)
111
111
  - [Using the data processor for preprocessing](/tutorials/notebooks/en/Hands%20on%20dataprocessor.ipynb)
112
112
 
113
- > Current version [0.4.1]: the matching module is not fully polished yet and may have compatibility issues or unexpected errors. Please raise an issue if you run into problems.
113
+ > Current version [0.4.2]: the matching module is not fully polished yet and may have compatibility issues or unexpected errors. Please raise an issue if you run into problems.
114
114
 
115
115
  ## 5-Minute Quick Start
116
116
 
@@ -198,7 +198,7 @@ metrics = model.evaluate(
198
198
 
199
199
  ## Platform Compatibility
200
200
 
201
- The current version is 0.4.1. All models and test code have been validated on the following platforms. If you encounter compatibility issues, please report them in the issue tracker with your system version:
201
+ The current version is 0.4.2. All models and test code have been validated on the following platforms. If you encounter compatibility issues, please report them in the issue tracker with your system version:
202
202
 
203
203
  | Platform | Configuration |
204
204
  |----------|---------------|
@@ -7,7 +7,7 @@
7
7
  ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
8
8
  ![PyTorch](https://img.shields.io/badge/PyTorch-1.10+-ee4c2c.svg)
9
9
  ![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)
10
- ![Version](https://img.shields.io/badge/Version-0.4.1-orange.svg)
10
+ ![Version](https://img.shields.io/badge/Version-0.4.2-orange.svg)
11
11
 
12
12
  English | [中文文档](README_zh.md)
13
13
 
@@ -54,7 +54,7 @@ To dive deeper, Jupyter notebooks are available:
54
54
  - [Hands on the NextRec framework](/tutorials/notebooks/en/Hands%20on%20nextrec.ipynb)
55
55
  - [Using the data processor for preprocessing](/tutorials/notebooks/en/Hands%20on%20dataprocessor.ipynb)
56
56
 
57
- > Current version [0.4.1]: the matching module is not fully polished yet and may have compatibility issues or unexpected errors. Please raise an issue if you run into problems.
57
+ > Current version [0.4.2]: the matching module is not fully polished yet and may have compatibility issues or unexpected errors. Please raise an issue if you run into problems.
58
58
 
59
59
  ## 5-Minute Quick Start
60
60
 
@@ -142,7 +142,7 @@ metrics = model.evaluate(
142
142
 
143
143
  ## Platform Compatibility
144
144
 
145
- The current version is 0.4.1. All models and test code have been validated on the following platforms. If you encounter compatibility issues, please report them in the issue tracker with your system version:
145
+ The current version is 0.4.2. All models and test code have been validated on the following platforms. If you encounter compatibility issues, please report them in the issue tracker with your system version:
146
146
 
147
147
  | Platform | Configuration |
148
148
  |----------|---------------|
@@ -7,7 +7,7 @@
7
7
  ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
8
8
  ![PyTorch](https://img.shields.io/badge/PyTorch-1.10+-ee4c2c.svg)
9
9
  ![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)
10
- ![Version](https://img.shields.io/badge/Version-0.4.1-orange.svg)
10
+ ![Version](https://img.shields.io/badge/Version-0.4.2-orange.svg)
11
11
 
12
12
  [English Version](README.md) | 中文文档
13
13
 
@@ -54,7 +54,7 @@ NextRec采用模块化、低耦合的工程设计,使得推荐系统从数据
54
54
  - [如何上手NextRec框架](/tutorials/notebooks/zh/Hands%20on%20nextrec.ipynb)
55
55
  - [如何使用数据处理器进行数据预处理](/tutorials/notebooks/zh/Hands%20on%20dataprocessor.ipynb)
56
56
 
57
- > 当前版本[0.4.1],召回模型模块尚不完善,可能存在一些兼容性问题或意外报错,如果遇到问题,欢迎开发者在Issue区提出问题。
57
+ > 当前版本[0.4.2],召回模型模块尚不完善,可能存在一些兼容性问题或意外报错,如果遇到问题,欢迎开发者在Issue区提出问题。
58
58
 
59
59
  ## 5分钟快速上手
60
60
 
@@ -140,7 +140,7 @@ metrics = model.evaluate(
140
140
  ```
141
141
  ## 兼容平台
142
142
 
143
- 当前最新版本为0.4.1,所有模型和测试代码均已在以下平台通过验证,如果开发者在使用中遇到兼容问题,请在issue区提出错误报告及系统版本:
143
+ 当前最新版本为0.4.2,所有模型和测试代码均已在以下平台通过验证,如果开发者在使用中遇到兼容问题,请在issue区提出错误报告及系统版本:
144
144
 
145
145
  | 平台 | 配置 |
146
146
  |------|------|
@@ -0,0 +1,542 @@
1
+ <?xml version="1.0" ?>
2
+ <coverage version="7.12.0" timestamp="1765072027004" lines-valid="499" lines-covered="368" line-rate="0.7375" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
3
+ <!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.12.0 -->
4
+ <!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
5
+ <sources>
6
+ <source>/Users/zyaztec/DailyWork/建模代码整理/experiments/NextRec/nextrec/models/match</source>
7
+ </sources>
8
+ <packages>
9
+ <package name="." line-rate="0.7375" branch-rate="0" complexity="0">
10
+ <classes>
11
+ <class name="__init__.py" filename="__init__.py" complexity="0" line-rate="1" branch-rate="0">
12
+ <methods/>
13
+ <lines/>
14
+ </class>
15
+ <class name="dssm.py" filename="dssm.py" complexity="0" line-rate="0.9718" branch-rate="0">
16
+ <methods/>
17
+ <lines>
18
+ <line number="9" hits="1"/>
19
+ <line number="10" hits="1"/>
20
+ <line number="11" hits="1"/>
21
+ <line number="13" hits="1"/>
22
+ <line number="14" hits="1"/>
23
+ <line number="15" hits="1"/>
24
+ <line number="18" hits="1"/>
25
+ <line number="26" hits="1"/>
26
+ <line number="27" hits="1"/>
27
+ <line number="28" hits="1"/>
28
+ <line number="30" hits="1"/>
29
+ <line number="60" hits="1"/>
30
+ <line number="79" hits="1"/>
31
+ <line number="80" hits="1"/>
32
+ <line number="81" hits="1"/>
33
+ <line number="84" hits="1"/>
34
+ <line number="85" hits="1"/>
35
+ <line number="86" hits="1"/>
36
+ <line number="87" hits="1"/>
37
+ <line number="88" hits="1"/>
38
+ <line number="89" hits="1"/>
39
+ <line number="90" hits="1"/>
40
+ <line number="92" hits="1"/>
41
+ <line number="93" hits="1"/>
42
+ <line number="96" hits="1"/>
43
+ <line number="97" hits="1"/>
44
+ <line number="98" hits="1"/>
45
+ <line number="99" hits="1"/>
46
+ <line number="100" hits="1"/>
47
+ <line number="101" hits="1"/>
48
+ <line number="102" hits="1"/>
49
+ <line number="105" hits="1"/>
50
+ <line number="106" hits="1"/>
51
+ <line number="115" hits="1"/>
52
+ <line number="116" hits="1"/>
53
+ <line number="117" hits="1"/>
54
+ <line number="118" hits="1"/>
55
+ <line number="119" hits="1"/>
56
+ <line number="120" hits="1"/>
57
+ <line number="121" hits="0"/>
58
+ <line number="123" hits="1"/>
59
+ <line number="124" hits="1"/>
60
+ <line number="127" hits="1"/>
61
+ <line number="128" hits="1"/>
62
+ <line number="129" hits="1"/>
63
+ <line number="130" hits="1"/>
64
+ <line number="131" hits="1"/>
65
+ <line number="132" hits="1"/>
66
+ <line number="133" hits="0"/>
67
+ <line number="136" hits="1"/>
68
+ <line number="137" hits="1"/>
69
+ <line number="145" hits="1"/>
70
+ <line number="149" hits="1"/>
71
+ <line number="154" hits="1"/>
72
+ <line number="155" hits="1"/>
73
+ <line number="157" hits="1"/>
74
+ <line number="166" hits="1"/>
75
+ <line number="168" hits="1"/>
76
+ <line number="178" hits="1"/>
77
+ <line number="179" hits="1"/>
78
+ <line number="181" hits="1"/>
79
+ <line number="184" hits="1"/>
80
+ <line number="185" hits="1"/>
81
+ <line number="187" hits="1"/>
82
+ <line number="189" hits="1"/>
83
+ <line number="199" hits="1"/>
84
+ <line number="200" hits="1"/>
85
+ <line number="202" hits="1"/>
86
+ <line number="205" hits="1"/>
87
+ <line number="206" hits="1"/>
88
+ <line number="208" hits="1"/>
89
+ </lines>
90
+ </class>
91
+ <class name="dssm_v2.py" filename="dssm_v2.py" complexity="0" line-rate="0" branch-rate="0">
92
+ <methods/>
93
+ <lines>
94
+ <line number="8" hits="0"/>
95
+ <line number="9" hits="0"/>
96
+ <line number="10" hits="0"/>
97
+ <line number="12" hits="0"/>
98
+ <line number="13" hits="0"/>
99
+ <line number="14" hits="0"/>
100
+ <line number="17" hits="0"/>
101
+ <line number="21" hits="0"/>
102
+ <line number="22" hits="0"/>
103
+ <line number="23" hits="0"/>
104
+ <line number="25" hits="0"/>
105
+ <line number="55" hits="0"/>
106
+ <line number="74" hits="0"/>
107
+ <line number="75" hits="0"/>
108
+ <line number="76" hits="0"/>
109
+ <line number="79" hits="0"/>
110
+ <line number="80" hits="0"/>
111
+ <line number="81" hits="0"/>
112
+ <line number="82" hits="0"/>
113
+ <line number="83" hits="0"/>
114
+ <line number="84" hits="0"/>
115
+ <line number="85" hits="0"/>
116
+ <line number="87" hits="0"/>
117
+ <line number="88" hits="0"/>
118
+ <line number="90" hits="0"/>
119
+ <line number="91" hits="0"/>
120
+ <line number="92" hits="0"/>
121
+ <line number="93" hits="0"/>
122
+ <line number="94" hits="0"/>
123
+ <line number="95" hits="0"/>
124
+ <line number="96" hits="0"/>
125
+ <line number="98" hits="0"/>
126
+ <line number="99" hits="0"/>
127
+ <line number="108" hits="0"/>
128
+ <line number="109" hits="0"/>
129
+ <line number="110" hits="0"/>
130
+ <line number="111" hits="0"/>
131
+ <line number="112" hits="0"/>
132
+ <line number="113" hits="0"/>
133
+ <line number="114" hits="0"/>
134
+ <line number="116" hits="0"/>
135
+ <line number="117" hits="0"/>
136
+ <line number="119" hits="0"/>
137
+ <line number="120" hits="0"/>
138
+ <line number="121" hits="0"/>
139
+ <line number="122" hits="0"/>
140
+ <line number="123" hits="0"/>
141
+ <line number="124" hits="0"/>
142
+ <line number="125" hits="0"/>
143
+ <line number="127" hits="0"/>
144
+ <line number="128" hits="0"/>
145
+ <line number="136" hits="0"/>
146
+ <line number="140" hits="0"/>
147
+ <line number="145" hits="0"/>
148
+ <line number="146" hits="0"/>
149
+ <line number="148" hits="0"/>
150
+ <line number="157" hits="0"/>
151
+ <line number="159" hits="0"/>
152
+ <line number="161" hits="0"/>
153
+ <line number="162" hits="0"/>
154
+ <line number="163" hits="0"/>
155
+ <line number="166" hits="0"/>
156
+ <line number="168" hits="0"/>
157
+ <line number="170" hits="0"/>
158
+ <line number="172" hits="0"/>
159
+ <line number="173" hits="0"/>
160
+ <line number="174" hits="0"/>
161
+ <line number="177" hits="0"/>
162
+ <line number="179" hits="0"/>
163
+ </lines>
164
+ </class>
165
+ <class name="mind.py" filename="mind.py" complexity="0" line-rate="0.7771" branch-rate="0">
166
+ <methods/>
167
+ <lines>
168
+ <line number="9" hits="1"/>
169
+ <line number="10" hits="1"/>
170
+ <line number="11" hits="1"/>
171
+ <line number="12" hits="1"/>
172
+ <line number="14" hits="1"/>
173
+ <line number="15" hits="1"/>
174
+ <line number="16" hits="1"/>
175
+ <line number="18" hits="1"/>
176
+ <line number="21" hits="1"/>
177
+ <line number="22" hits="0"/>
178
+ <line number="23" hits="0"/>
179
+ <line number="24" hits="0"/>
180
+ <line number="25" hits="0"/>
181
+ <line number="26" hits="0"/>
182
+ <line number="27" hits="0"/>
183
+ <line number="28" hits="0"/>
184
+ <line number="29" hits="0"/>
185
+ <line number="31" hits="1"/>
186
+ <line number="32" hits="0"/>
187
+ <line number="33" hits="0"/>
188
+ <line number="34" hits="0"/>
189
+ <line number="35" hits="0"/>
190
+ <line number="37" hits="0"/>
191
+ <line number="38" hits="0"/>
192
+ <line number="39" hits="0"/>
193
+ <line number="40" hits="0"/>
194
+ <line number="43" hits="1"/>
195
+ <line number="46" hits="1"/>
196
+ <line number="47" hits="1"/>
197
+ <line number="48" hits="1"/>
198
+ <line number="49" hits="1"/>
199
+ <line number="50" hits="1"/>
200
+ <line number="51" hits="1"/>
201
+ <line number="52" hits="1"/>
202
+ <line number="54" hits="1"/>
203
+ <line number="55" hits="1"/>
204
+ <line number="56" hits="1"/>
205
+ <line number="57" hits="1"/>
206
+ <line number="58" hits="0"/>
207
+ <line number="59" hits="1"/>
208
+ <line number="60" hits="0"/>
209
+ <line number="62" hits="1"/>
210
+ <line number="63" hits="1"/>
211
+ <line number="65" hits="1"/>
212
+ <line number="66" hits="1"/>
213
+ <line number="67" hits="0"/>
214
+ <line number="68" hits="0"/>
215
+ <line number="69" hits="1"/>
216
+ <line number="70" hits="0"/>
217
+ <line number="72" hits="1"/>
218
+ <line number="73" hits="1"/>
219
+ <line number="75" hits="1"/>
220
+ <line number="76" hits="1"/>
221
+ <line number="77" hits="1"/>
222
+ <line number="79" hits="1"/>
223
+ <line number="80" hits="1"/>
224
+ <line number="82" hits="0"/>
225
+ <line number="84" hits="1"/>
226
+ <line number="85" hits="1"/>
227
+ <line number="91" hits="0"/>
228
+ <line number="97" hits="1"/>
229
+ <line number="98" hits="1"/>
230
+ <line number="99" hits="1"/>
231
+ <line number="101" hits="1"/>
232
+ <line number="102" hits="1"/>
233
+ <line number="103" hits="1"/>
234
+ <line number="105" hits="1"/>
235
+ <line number="106" hits="1"/>
236
+ <line number="107" hits="1"/>
237
+ <line number="108" hits="1"/>
238
+ <line number="109" hits="1"/>
239
+ <line number="111" hits="1"/>
240
+ <line number="112" hits="1"/>
241
+ <line number="113" hits="1"/>
242
+ <line number="115" hits="1"/>
243
+ <line number="116" hits="1"/>
244
+ <line number="117" hits="1"/>
245
+ <line number="118" hits="1"/>
246
+ <line number="120" hits="1"/>
247
+ <line number="122" hits="1"/>
248
+ <line number="123" hits="0"/>
249
+ <line number="125" hits="1"/>
250
+ <line number="128" hits="1"/>
251
+ <line number="129" hits="1"/>
252
+ <line number="130" hits="1"/>
253
+ <line number="131" hits="1"/>
254
+ <line number="133" hits="1"/>
255
+ <line number="134" hits="1"/>
256
+ <line number="136" hits="1"/>
257
+ <line number="138" hits="1"/>
258
+ <line number="171" hits="1"/>
259
+ <line number="190" hits="1"/>
260
+ <line number="191" hits="1"/>
261
+ <line number="192" hits="1"/>
262
+ <line number="194" hits="1"/>
263
+ <line number="195" hits="1"/>
264
+ <line number="196" hits="0"/>
265
+ <line number="197" hits="1"/>
266
+ <line number="198" hits="1"/>
267
+ <line number="199" hits="1"/>
268
+ <line number="200" hits="1"/>
269
+ <line number="202" hits="1"/>
270
+ <line number="203" hits="1"/>
271
+ <line number="205" hits="1"/>
272
+ <line number="206" hits="0"/>
273
+ <line number="208" hits="1"/>
274
+ <line number="209" hits="1"/>
275
+ <line number="212" hits="1"/>
276
+ <line number="221" hits="1"/>
277
+ <line number="222" hits="1"/>
278
+ <line number="223" hits="1"/>
279
+ <line number="225" hits="0"/>
280
+ <line number="228" hits="1"/>
281
+ <line number="229" hits="1"/>
282
+ <line number="230" hits="0"/>
283
+ <line number="231" hits="1"/>
284
+ <line number="232" hits="1"/>
285
+ <line number="233" hits="1"/>
286
+ <line number="234" hits="0"/>
287
+ <line number="236" hits="1"/>
288
+ <line number="237" hits="1"/>
289
+ <line number="239" hits="1"/>
290
+ <line number="240" hits="1"/>
291
+ <line number="241" hits="0"/>
292
+ <line number="242" hits="1"/>
293
+ <line number="243" hits="1"/>
294
+ <line number="244" hits="1"/>
295
+ <line number="245" hits="0"/>
296
+ <line number="248" hits="1"/>
297
+ <line number="249" hits="1"/>
298
+ <line number="250" hits="1"/>
299
+ <line number="258" hits="0"/>
300
+ <line number="260" hits="1"/>
301
+ <line number="264" hits="1"/>
302
+ <line number="269" hits="1"/>
303
+ <line number="278" hits="1"/>
304
+ <line number="280" hits="1"/>
305
+ <line number="287" hits="1"/>
306
+ <line number="288" hits="1"/>
307
+ <line number="290" hits="1"/>
308
+ <line number="291" hits="1"/>
309
+ <line number="293" hits="1"/>
310
+ <line number="295" hits="1"/>
311
+ <line number="297" hits="1"/>
312
+ <line number="298" hits="1"/>
313
+ <line number="301" hits="1"/>
314
+ <line number="303" hits="1"/>
315
+ <line number="305" hits="1"/>
316
+ <line number="307" hits="1"/>
317
+ <line number="308" hits="1"/>
318
+ <line number="310" hits="1"/>
319
+ <line number="311" hits="1"/>
320
+ <line number="314" hits="1"/>
321
+ <line number="316" hits="1"/>
322
+ <line number="318" hits="1"/>
323
+ <line number="319" hits="1"/>
324
+ <line number="321" hits="1"/>
325
+ <line number="322" hits="1"/>
326
+ <line number="323" hits="0"/>
327
+ <line number="324" hits="0"/>
328
+ <line number="325" hits="0"/>
329
+ <line number="326" hits="0"/>
330
+ <line number="328" hits="0"/>
331
+ <line number="330" hits="1"/>
332
+ <line number="331" hits="1"/>
333
+ <line number="333" hits="1"/>
334
+ </lines>
335
+ </class>
336
+ <class name="sdm.py" filename="sdm.py" complexity="0" line-rate="0.8492" branch-rate="0">
337
+ <methods/>
338
+ <lines>
339
+ <line number="9" hits="1"/>
340
+ <line number="10" hits="1"/>
341
+ <line number="11" hits="1"/>
342
+ <line number="12" hits="1"/>
343
+ <line number="14" hits="1"/>
344
+ <line number="15" hits="1"/>
345
+ <line number="16" hits="1"/>
346
+ <line number="19" hits="1"/>
347
+ <line number="20" hits="1"/>
348
+ <line number="21" hits="1"/>
349
+ <line number="22" hits="1"/>
350
+ <line number="24" hits="1"/>
351
+ <line number="25" hits="1"/>
352
+ <line number="26" hits="1"/>
353
+ <line number="28" hits="1"/>
354
+ <line number="63" hits="1"/>
355
+ <line number="82" hits="1"/>
356
+ <line number="83" hits="1"/>
357
+ <line number="84" hits="1"/>
358
+ <line number="85" hits="1"/>
359
+ <line number="86" hits="1"/>
360
+ <line number="87" hits="1"/>
361
+ <line number="90" hits="1"/>
362
+ <line number="91" hits="1"/>
363
+ <line number="92" hits="0"/>
364
+ <line number="93" hits="1"/>
365
+ <line number="94" hits="1"/>
366
+ <line number="95" hits="1"/>
367
+ <line number="96" hits="1"/>
368
+ <line number="98" hits="1"/>
369
+ <line number="99" hits="1"/>
370
+ <line number="101" hits="1"/>
371
+ <line number="102" hits="0"/>
372
+ <line number="104" hits="1"/>
373
+ <line number="106" hits="1"/>
374
+ <line number="107" hits="1"/>
375
+ <line number="114" hits="1"/>
376
+ <line number="115" hits="1"/>
377
+ <line number="123" hits="0"/>
378
+ <line number="125" hits="1"/>
379
+ <line number="126" hits="1"/>
380
+ <line number="127" hits="1"/>
381
+ <line number="128" hits="1"/>
382
+ <line number="129" hits="1"/>
383
+ <line number="131" hits="1"/>
384
+ <line number="132" hits="0"/>
385
+ <line number="133" hits="1"/>
386
+ <line number="134" hits="1"/>
387
+ <line number="137" hits="1"/>
388
+ <line number="146" hits="1"/>
389
+ <line number="147" hits="1"/>
390
+ <line number="148" hits="0"/>
391
+ <line number="149" hits="1"/>
392
+ <line number="150" hits="1"/>
393
+ <line number="151" hits="1"/>
394
+ <line number="152" hits="0"/>
395
+ <line number="154" hits="1"/>
396
+ <line number="155" hits="1"/>
397
+ <line number="157" hits="1"/>
398
+ <line number="158" hits="1"/>
399
+ <line number="159" hits="0"/>
400
+ <line number="160" hits="1"/>
401
+ <line number="161" hits="1"/>
402
+ <line number="162" hits="1"/>
403
+ <line number="163" hits="0"/>
404
+ <line number="166" hits="1"/>
405
+ <line number="167" hits="1"/>
406
+ <line number="168" hits="1"/>
407
+ <line number="176" hits="0"/>
408
+ <line number="178" hits="1"/>
409
+ <line number="182" hits="1"/>
410
+ <line number="187" hits="1"/>
411
+ <line number="196" hits="1"/>
412
+ <line number="198" hits="1"/>
413
+ <line number="199" hits="1"/>
414
+ <line number="200" hits="1"/>
415
+ <line number="202" hits="1"/>
416
+ <line number="203" hits="1"/>
417
+ <line number="205" hits="1"/>
418
+ <line number="206" hits="1"/>
419
+ <line number="207" hits="1"/>
420
+ <line number="208" hits="1"/>
421
+ <line number="210" hits="1"/>
422
+ <line number="212" hits="1"/>
423
+ <line number="213" hits="1"/>
424
+ <line number="214" hits="0"/>
425
+ <line number="216" hits="1"/>
426
+ <line number="217" hits="1"/>
427
+ <line number="219" hits="1"/>
428
+ <line number="220" hits="1"/>
429
+ <line number="221" hits="1"/>
430
+ <line number="222" hits="1"/>
431
+ <line number="224" hits="1"/>
432
+ <line number="225" hits="1"/>
433
+ <line number="226" hits="1"/>
434
+ <line number="227" hits="1"/>
435
+ <line number="229" hits="1"/>
436
+ <line number="230" hits="0"/>
437
+ <line number="231" hits="0"/>
438
+ <line number="232" hits="0"/>
439
+ <line number="233" hits="0"/>
440
+ <line number="234" hits="0"/>
441
+ <line number="235" hits="0"/>
442
+ <line number="236" hits="0"/>
443
+ <line number="237" hits="0"/>
444
+ <line number="238" hits="0"/>
445
+ <line number="240" hits="1"/>
446
+ <line number="241" hits="1"/>
447
+ <line number="242" hits="1"/>
448
+ <line number="243" hits="1"/>
449
+ <line number="244" hits="1"/>
450
+ <line number="245" hits="1"/>
451
+ <line number="246" hits="1"/>
452
+ <line number="247" hits="1"/>
453
+ <line number="248" hits="1"/>
454
+ <line number="250" hits="1"/>
455
+ <line number="251" hits="1"/>
456
+ <line number="252" hits="1"/>
457
+ <line number="254" hits="1"/>
458
+ <line number="256" hits="1"/>
459
+ <line number="258" hits="1"/>
460
+ <line number="259" hits="1"/>
461
+ <line number="261" hits="1"/>
462
+ <line number="262" hits="1"/>
463
+ <line number="265" hits="1"/>
464
+ <line number="267" hits="1"/>
465
+ </lines>
466
+ </class>
467
+ <class name="youtube_dnn.py" filename="youtube_dnn.py" complexity="0" line-rate="0.9403" branch-rate="0">
468
+ <methods/>
469
+ <lines>
470
+ <line number="9" hits="1"/>
471
+ <line number="10" hits="1"/>
472
+ <line number="11" hits="1"/>
473
+ <line number="13" hits="1"/>
474
+ <line number="14" hits="1"/>
475
+ <line number="15" hits="1"/>
476
+ <line number="18" hits="1"/>
477
+ <line number="26" hits="1"/>
478
+ <line number="27" hits="1"/>
479
+ <line number="28" hits="1"/>
480
+ <line number="30" hits="1"/>
481
+ <line number="60" hits="1"/>
482
+ <line number="79" hits="1"/>
483
+ <line number="80" hits="1"/>
484
+ <line number="81" hits="1"/>
485
+ <line number="84" hits="1"/>
486
+ <line number="85" hits="1"/>
487
+ <line number="86" hits="1"/>
488
+ <line number="87" hits="1"/>
489
+ <line number="88" hits="1"/>
490
+ <line number="89" hits="1"/>
491
+ <line number="90" hits="1"/>
492
+ <line number="92" hits="1"/>
493
+ <line number="93" hits="1"/>
494
+ <line number="95" hits="1"/>
495
+ <line number="96" hits="1"/>
496
+ <line number="97" hits="1"/>
497
+ <line number="98" hits="1"/>
498
+ <line number="99" hits="1"/>
499
+ <line number="100" hits="1"/>
500
+ <line number="102" hits="1"/>
501
+ <line number="104" hits="1"/>
502
+ <line number="105" hits="1"/>
503
+ <line number="114" hits="1"/>
504
+ <line number="115" hits="1"/>
505
+ <line number="116" hits="0"/>
506
+ <line number="117" hits="1"/>
507
+ <line number="118" hits="1"/>
508
+ <line number="119" hits="1"/>
509
+ <line number="120" hits="0"/>
510
+ <line number="122" hits="1"/>
511
+ <line number="123" hits="1"/>
512
+ <line number="125" hits="1"/>
513
+ <line number="126" hits="1"/>
514
+ <line number="127" hits="0"/>
515
+ <line number="128" hits="1"/>
516
+ <line number="129" hits="1"/>
517
+ <line number="130" hits="1"/>
518
+ <line number="131" hits="0"/>
519
+ <line number="133" hits="1"/>
520
+ <line number="134" hits="1"/>
521
+ <line number="142" hits="1"/>
522
+ <line number="146" hits="1"/>
523
+ <line number="151" hits="1"/>
524
+ <line number="160" hits="1"/>
525
+ <line number="162" hits="1"/>
526
+ <line number="166" hits="1"/>
527
+ <line number="167" hits="1"/>
528
+ <line number="168" hits="1"/>
529
+ <line number="171" hits="1"/>
530
+ <line number="173" hits="1"/>
531
+ <line number="175" hits="1"/>
532
+ <line number="177" hits="1"/>
533
+ <line number="178" hits="1"/>
534
+ <line number="179" hits="1"/>
535
+ <line number="182" hits="1"/>
536
+ <line number="184" hits="1"/>
537
+ </lines>
538
+ </class>
539
+ </classes>
540
+ </package>
541
+ </packages>
542
+ </coverage>
@@ -11,7 +11,7 @@ sys.path.insert(0, str(PROJECT_ROOT / "nextrec"))
11
11
  project = "NextRec"
12
12
  copyright = "2025, Yang Zhou"
13
13
  author = "Yang Zhou"
14
- release = "0.4.1"
14
+ release = "0.4.2"
15
15
 
16
16
  extensions = [
17
17
  "myst_parser",
@@ -1,7 +1,7 @@
1
1
  from nextrec.__version__ import __version__
2
2
 
3
3
  __all__ = [
4
- '__version__',
4
+ "__version__",
5
5
  ]
6
6
 
7
7
  # Package metadata
@@ -0,0 +1 @@
1
+ __version__ = "0.4.2"