mopr 0.0.98__tar.gz → 0.0.111.dev167__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 (395) hide show
  1. {mopr-0.0.98 → mopr-0.0.111.dev167}/.gitignore +2 -0
  2. mopr-0.0.111.dev167/AGENTS.md +72 -0
  3. {mopr-0.0.98 → mopr-0.0.111.dev167}/BUILDING.md +8 -8
  4. {mopr-0.0.98 → mopr-0.0.111.dev167}/CHANGELOG.md +1096 -1
  5. mopr-0.0.111.dev167/CONTRIBUTING.md +640 -0
  6. {mopr-0.0.98 → mopr-0.0.111.dev167}/PKG-INFO +10 -7
  7. {mopr-0.0.98 → mopr-0.0.111.dev167}/README.md +8 -5
  8. {mopr-0.0.98 → mopr-0.0.111.dev167}/THIRD-PARTY-NOTICES.md +612 -611
  9. {mopr-0.0.98 → mopr-0.0.111.dev167}/_version.py +3 -3
  10. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/README.md +3 -3
  11. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/bits.py +1 -1
  12. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/cron.md +71 -41
  13. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/cron.py +126 -73
  14. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/cron_test.py +214 -54
  15. mopr-0.0.111.dev167/base/dotenv.md +70 -0
  16. mopr-0.0.111.dev167/base/dotenv.py +117 -0
  17. mopr-0.0.111.dev167/base/dotenv_test.py +73 -0
  18. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/environment.md +6 -5
  19. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/environment.py +1 -96
  20. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/except.py +1 -1
  21. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/filesystem.md +8 -6
  22. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/filesystem.py +41 -17
  23. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/filesystem_test.py +38 -0
  24. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/language.md +6 -6
  25. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/language.py +1 -1
  26. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/language_test.py +1 -1
  27. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/mmap.md +6 -5
  28. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/numeric.md +3 -3
  29. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/region.md +23 -11
  30. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/region_test.py +1 -1
  31. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/singleton.py +4 -4
  32. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/strings.py +1 -1
  33. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/time.md +1 -1
  34. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/time.py +3 -3
  35. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/timestamp.md +4 -4
  36. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/types.md +14 -3
  37. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/types.py +1 -1
  38. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/README.md +2 -2
  39. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/macro/README.md +1 -1
  40. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/README.md +2 -2
  41. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/crc32_macos_arm64.md +1 -1
  42. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/ringbuffer_macos_arm64.md +1 -1
  43. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/wal_macos_arm64.md +2 -2
  44. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/regression/README.md +1 -1
  45. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/stability/README.md +1 -1
  46. {mopr-0.0.98 → mopr-0.0.111.dev167}/conanfile.py +19 -5
  47. {mopr-0.0.98 → mopr-0.0.111.dev167}/config/__init__.py +4 -2
  48. {mopr-0.0.98 → mopr-0.0.111.dev167}/config/config.md +6 -4
  49. {mopr-0.0.98 → mopr-0.0.111.dev167}/config/config.py +20 -3
  50. mopr-0.0.111.dev167/data/README.md +29 -0
  51. mopr-0.0.111.dev167/data/adapter.md +304 -0
  52. mopr-0.0.111.dev167/data/adapter.py +1641 -0
  53. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/adapter_test.py +323 -27
  54. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/cache.py +1 -1
  55. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/cache_test.py +9 -4
  56. mopr-0.0.111.dev167/data/contrib/README.md +24 -0
  57. mopr-0.0.111.dev167/data/contrib/__init__.py +26 -0
  58. mopr-0.0.111.dev167/data/contrib/forex/README.md +110 -0
  59. mopr-0.0.111.dev167/data/contrib/forex/bcd.md +119 -0
  60. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/bcd.py +17 -3
  61. mopr-0.0.111.dev167/data/contrib/forex/bceao.md +168 -0
  62. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/bceao.py +336 -81
  63. mopr-0.0.111.dev167/data/contrib/forex/bog.md +127 -0
  64. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/bog.py +143 -7
  65. mopr-0.0.111.dev167/data/contrib/forex/bsl.md +174 -0
  66. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/bsl.py +140 -32
  67. mopr-0.0.111.dev167/data/contrib/forex/datasource.md +91 -0
  68. mopr-0.0.111.dev167/data/contrib/forex/ecb.md +107 -0
  69. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/ecb.py +29 -8
  70. mopr-0.0.111.dev167/data/contrib/forex/fed.md +115 -0
  71. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/fed.py +11 -2
  72. mopr-0.0.111.dev167/data/contrib/forex/hkma.md +206 -0
  73. mopr-0.0.111.dev167/data/contrib/forex/hkma.py +711 -0
  74. mopr-0.0.111.dev167/data/contrib/forex/number.md +99 -0
  75. mopr-0.0.111.dev167/data/contrib/forex/official_source.md +117 -0
  76. mopr-0.0.111.dev167/data/contrib/forex/pboc.md +139 -0
  77. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/pboc.py +142 -215
  78. mopr-0.0.111.dev167/data/contrib/forex/quote.md +87 -0
  79. mopr-0.0.111.dev167/data/contrib/forex/quote.py +334 -0
  80. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/bog.csv +7542 -7542
  81. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/embedded_resources.cpp +1 -1
  82. mopr-0.0.111.dev167/data/contrib/maintenance.md +207 -0
  83. mopr-0.0.111.dev167/data/contrib/maintenance.py +232 -0
  84. mopr-0.0.111.dev167/data/contrib/maintenance_test.py +259 -0
  85. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/datasource.py +1 -1
  86. mopr-0.0.111.dev167/data/finance.md +51 -0
  87. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/finance.py +7 -7
  88. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/market.md +6 -6
  89. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/market.py +1 -1
  90. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/README.md +11 -9
  91. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/__init__.py +3 -3
  92. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/asset_class_cn.py +1 -1
  93. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/authority.py +1 -1
  94. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar.md +67 -37
  95. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar.py +50 -1
  96. mopr-0.0.111.dev167/data/meta/calendar_announcements.py +83 -0
  97. mopr-0.0.111.dev167/data/meta/calendar_announcements_test.py +84 -0
  98. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_cfets.md +2 -2
  99. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_cfets.py +3 -2
  100. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_cfets_test.py +1 -1
  101. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_cn.md +34 -25
  102. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_cn.py +2 -1
  103. mopr-0.0.111.dev167/data/meta/calendar_djf.py +64 -0
  104. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_djf_sle_test.py +81 -51
  105. mopr-0.0.111.dev167/data/meta/calendar_ecb_holidays.py +84 -0
  106. mopr-0.0.111.dev167/data/meta/calendar_ecb_holidays_test.py +90 -0
  107. mopr-0.0.111.dev167/data/meta/calendar_eur.py +60 -0
  108. mopr-0.0.111.dev167/data/meta/calendar_eur_test.py +108 -0
  109. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_forex.py +63 -44
  110. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_forex_holidays.py +5 -6
  111. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_forex_test.py +24 -22
  112. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_ghs.py +22 -20
  113. mopr-0.0.111.dev167/data/meta/calendar_ghs_holidays.py +28 -0
  114. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_ghs_test.py +64 -22
  115. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_hkd.py +0 -2
  116. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_seed.py +1 -1
  117. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_sle.py +16 -20
  118. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_test.py +65 -1
  119. mopr-0.0.111.dev167/data/meta/calendar_usd.py +54 -0
  120. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/calendar_xof.py +0 -2
  121. mopr-0.0.111.dev167/data/meta/calendar_xof_holidays.py +46 -0
  122. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/exchange.md +62 -47
  123. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/exchange.py +259 -146
  124. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/frequency.py +1 -1
  125. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/fund.py +2 -2
  126. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/holiday.py +4 -1
  127. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/institution.py +6 -5
  128. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/instrument.md +1 -1
  129. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/instrument.py +3 -3
  130. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/layout.py +1 -1
  131. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/monetary.md +1 -1
  132. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/monetary.py +1 -1
  133. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/monetary_test.py +1 -1
  134. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/money.md +1 -1
  135. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/money.py +1 -1
  136. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/money_test.py +1 -1
  137. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/README.md +27 -5
  138. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_cny.h +3 -0
  139. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_eur.h +3 -0
  140. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_ghs.h +3 -0
  141. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_hkd.h +3 -0
  142. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_sle.h +3 -0
  143. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_usd.h +3 -0
  144. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_xof.h +3 -0
  145. mopr-0.0.111.dev167/data/meta/seeds/ecb_holidays.h +319 -0
  146. mopr-0.0.111.dev167/data/meta/seeds/ecb_holidays.json +223 -0
  147. mopr-0.0.111.dev167/data/meta/seeds/ghs_holidays.h +196 -0
  148. mopr-0.0.111.dev167/data/meta/seeds/ghs_holidays.json +129 -0
  149. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/monetary_list-one.h +3 -0
  150. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/monetary_list-one.xml +1955 -1955
  151. mopr-0.0.111.dev167/data/meta/seeds/xof_holidays.json +21 -0
  152. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/session.md +10 -0
  153. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/session.py +21 -2
  154. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/session_test.py +35 -0
  155. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/workday.md +2 -2
  156. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/workday_test.py +2 -1
  157. mopr-0.0.111.dev167/data/msn_quote_ids.json +68 -0
  158. mopr-0.0.111.dev167/data/msn_quotes.py +157 -0
  159. mopr-0.0.111.dev167/data/msn_quotes_test.py +132 -0
  160. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/adjustment.md +1 -1
  161. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/status.py +1 -1
  162. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/README.md +3 -3
  163. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/README.md +19 -6
  164. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/csv.md +5 -5
  165. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/csv.py +9 -8
  166. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/yaml.md +3 -3
  167. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/__init__.py +1 -1
  168. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/connection_pool.md +1 -1
  169. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/connection_pool.py +1 -1
  170. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/endpoint.md +1 -1
  171. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/endpoint.py +1 -1
  172. mopr-0.0.111.dev167/io/http.md +163 -0
  173. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/http.py +36 -5
  174. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/operation_handler.md +1 -1
  175. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/operation_handler.py +1 -1
  176. {mopr-0.0.98 → mopr-0.0.111.dev167}/log/README.md +3 -3
  177. {mopr-0.0.98 → mopr-0.0.111.dev167}/log/logger.md +2 -2
  178. {mopr-0.0.98 → mopr-0.0.111.dev167}/log/logger.py +2 -2
  179. {mopr-0.0.98 → mopr-0.0.111.dev167}/machine/README.md +3 -3
  180. {mopr-0.0.98 → mopr-0.0.111.dev167}/main.py +1 -1
  181. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/README.md +3 -3
  182. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/__init__.py +1 -1
  183. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_class.py +1 -1
  184. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_class_instrument.py +1 -1
  185. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_class_legacy.py +1 -1
  186. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_class_nature.py +1 -1
  187. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_class_tags.py +4 -4
  188. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/asset_master.py +1 -1
  189. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/entities_test.py +1 -1
  190. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/PKG-INFO +10 -7
  191. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/SOURCES.txt +41 -0
  192. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/requires.txt +1 -1
  193. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/scm_file_list.json +101 -0
  194. mopr-0.0.111.dev167/mopr.egg-info/scm_version.json +8 -0
  195. {mopr-0.0.98 → mopr-0.0.111.dev167}/pyproject.toml +35 -16
  196. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/README.md +3 -3
  197. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/__init__.py +2 -1
  198. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/once.md +9 -8
  199. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/ringbuffer.md +1 -1
  200. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/scheduler.md +18 -10
  201. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/README.md +3 -3
  202. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/README.md +1 -1
  203. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/credential_test.py +1 -1
  204. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/rbac_test.py +1 -1
  205. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/session_test.py +1 -1
  206. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/token_test.py +1 -1
  207. {mopr-0.0.98 → mopr-0.0.111.dev167}/spec/README.md +1 -1
  208. {mopr-0.0.98 → mopr-0.0.111.dev167}/spec/api.md +1 -1
  209. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/README.md +3 -3
  210. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/__init__.py +1 -1
  211. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/storage.md +4 -2
  212. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/storage.py +1 -1
  213. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/storage_test.py +5 -1
  214. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/wal.md +16 -10
  215. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/wal.py +36 -1
  216. {mopr-0.0.98 → mopr-0.0.111.dev167}/storage/wal_test.py +51 -1
  217. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/bin2header.py +5 -2
  218. mopr-0.0.111.dev167/tools/crosscheck/__init__.py +20 -0
  219. mopr-0.0.111.dev167/tools/crosscheck/__main__.py +12 -0
  220. mopr-0.0.111.dev167/tools/crosscheck/cases.py +83 -0
  221. mopr-0.0.111.dev167/tools/crosscheck/cli.py +147 -0
  222. mopr-0.0.111.dev167/tools/crosscheck/runners.py +531 -0
  223. mopr-0.0.111.dev167/tools/ecb_holidays.py +154 -0
  224. mopr-0.0.111.dev167/tools/ecb_holidays_test.py +70 -0
  225. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/__init__.py +1 -2
  226. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/python.py +1 -1
  227. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/python.py +11 -6
  228. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/run_module.py +1 -1
  229. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/__init__.py +2 -4
  230. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/layers.py +1 -1
  231. mopr-0.0.98/AGENTS.md +0 -344
  232. mopr-0.0.98/CONTRIBUTING.md +0 -111
  233. mopr-0.0.98/data/README.md +0 -25
  234. mopr-0.0.98/data/adapter.md +0 -103
  235. mopr-0.0.98/data/adapter.py +0 -849
  236. mopr-0.0.98/data/contrib/__init__.py +0 -0
  237. mopr-0.0.98/data/contrib/forex/hkma.py +0 -328
  238. mopr-0.0.98/data/contrib/forex/quote.py +0 -132
  239. mopr-0.0.98/data/meta/calendar_djf.py +0 -20
  240. mopr-0.0.98/data/meta/calendar_eur.py +0 -19
  241. mopr-0.0.98/data/meta/calendar_ghs_holidays.py +0 -37
  242. mopr-0.0.98/data/meta/calendar_usd.py +0 -28
  243. mopr-0.0.98/data/meta/calendar_xof_holidays.py +0 -28
  244. mopr-0.0.98/io/http.md +0 -92
  245. mopr-0.0.98/mopr.egg-info/scm_version.json +0 -8
  246. {mopr-0.0.98 → mopr-0.0.111.dev167}/.clang-format +0 -0
  247. {mopr-0.0.98 → mopr-0.0.111.dev167}/.clang-tidy +0 -0
  248. {mopr-0.0.98 → mopr-0.0.111.dev167}/.clangd +0 -0
  249. {mopr-0.0.98 → mopr-0.0.111.dev167}/.editorconfig +0 -0
  250. {mopr-0.0.98 → mopr-0.0.111.dev167}/.gitattributes +0 -0
  251. {mopr-0.0.98 → mopr-0.0.111.dev167}/.gitee/ISSUE_TEMPLATE/config.yml +0 -0
  252. {mopr-0.0.98 → mopr-0.0.111.dev167}/.gitee/ISSUE_TEMPLATE/proposal.yml +0 -0
  253. {mopr-0.0.98 → mopr-0.0.111.dev167}/.githooks/commit-msg +0 -0
  254. {mopr-0.0.98 → mopr-0.0.111.dev167}/.githooks/pre-commit +0 -0
  255. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-default/settings.json +0 -0
  256. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-default/tasks.json +0 -0
  257. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-macos/settings.json +0 -0
  258. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-macos/tasks.json +0 -0
  259. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-windows/launch.json +0 -0
  260. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-windows/settings.json +0 -0
  261. {mopr-0.0.98 → mopr-0.0.111.dev167}/.vscode-windows/tasks.json +0 -0
  262. {mopr-0.0.98 → mopr-0.0.111.dev167}/LICENSE +0 -0
  263. {mopr-0.0.98 → mopr-0.0.111.dev167}/MANIFEST.in +0 -0
  264. {mopr-0.0.98 → mopr-0.0.111.dev167}/__init__.py +0 -0
  265. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/__init__.py +0 -0
  266. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/bits_test.py +0 -0
  267. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/crc32.md +0 -0
  268. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/crc32.py +0 -0
  269. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/crc32_test.py +0 -0
  270. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/environment_test.py +0 -0
  271. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/mmap.py +0 -0
  272. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/mmap_test.py +0 -0
  273. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/numeric.py +0 -0
  274. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/numeric_test.py +0 -0
  275. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/region.py +0 -0
  276. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/singleton_test.py +0 -0
  277. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/strings.md +0 -0
  278. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/time_test.py +0 -0
  279. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/timestamp.py +0 -0
  280. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/timestamp_test.py +0 -0
  281. {mopr-0.0.98 → mopr-0.0.111.dev167}/base/types_test.py +0 -0
  282. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/csv_macos_arm64.md +0 -0
  283. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/ringbuffer_windows_amd64.md +0 -0
  284. {mopr-0.0.98 → mopr-0.0.111.dev167}/benchmark/micro/wal_windows_amd64.md +0 -0
  285. {mopr-0.0.98 → mopr-0.0.111.dev167}/config/README.md +0 -0
  286. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/__init__.py +0 -0
  287. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/base.py +0 -0
  288. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/cache.md +0 -0
  289. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/__init__.py +0 -0
  290. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/datasource.py +0 -0
  291. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/number.py +0 -0
  292. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/official_source.py +0 -0
  293. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/README.md +0 -0
  294. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/embedded_resources.h +0 -0
  295. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/forex_cny_pboc.csv +0 -0
  296. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/forex_ghs_bog.csv +0 -0
  297. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/forex_ghs_bog_quotes.json +0 -0
  298. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/forex_hkd_hkma.csv +0 -0
  299. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/forex_usd_fed.csv +0 -0
  300. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/pboc_cny_1994_2005.csv +0 -0
  301. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/resources.S +0 -0
  302. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/contrib/forex/seeds/resources.rc +0 -0
  303. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/fund.md +0 -0
  304. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_cny.base +0 -0
  305. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_eur.base +0 -0
  306. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_ghs.base +0 -0
  307. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_hkd.base +0 -0
  308. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_sle.base +0 -0
  309. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_usd.base +0 -0
  310. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/seeds/calendar_xof.base +0 -0
  311. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/meta/workday.py +0 -0
  312. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/README.md +0 -0
  313. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/bar.md +0 -0
  314. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/company.md +0 -0
  315. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/dividend.md +0 -0
  316. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/sector.md +0 -0
  317. {mopr-0.0.98 → mopr-0.0.111.dev167}/data/schema/trade.md +0 -0
  318. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/__init__.py +0 -0
  319. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/README.md +0 -0
  320. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/__init__.py +0 -0
  321. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/generator.py +0 -0
  322. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/hlc.py +0 -0
  323. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/id.py +0 -0
  324. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/option.py +0 -0
  325. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/queue.py +0 -0
  326. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/state_store.py +0 -0
  327. {mopr-0.0.98 → mopr-0.0.111.dev167}/distributed/id/tests.py +0 -0
  328. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/__init__.py +0 -0
  329. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/charsets.py +0 -0
  330. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/json.md +0 -0
  331. {mopr-0.0.98 → mopr-0.0.111.dev167}/encoding/yaml.py +0 -0
  332. {mopr-0.0.98 → mopr-0.0.111.dev167}/io/README.md +0 -0
  333. {mopr-0.0.98 → mopr-0.0.111.dev167}/log/__init__.py +0 -0
  334. {mopr-0.0.98 → mopr-0.0.111.dev167}/machine/__init__.py +0 -0
  335. {mopr-0.0.98 → mopr-0.0.111.dev167}/machine/id.py +0 -0
  336. {mopr-0.0.98 → mopr-0.0.111.dev167}/meta/entities.py +0 -0
  337. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/dependency_links.txt +0 -0
  338. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/entry_points.txt +0 -0
  339. {mopr-0.0.98 → mopr-0.0.111.dev167}/mopr.egg-info/top_level.txt +0 -0
  340. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/once.py +0 -0
  341. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/once_test.py +0 -0
  342. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/ringbuffer.py +0 -0
  343. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/ringbuffer_test.py +0 -0
  344. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/scheduler.py +0 -0
  345. {mopr-0.0.98 → mopr-0.0.111.dev167}/runtime/scheduler_test.py +0 -0
  346. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/__init__.py +0 -0
  347. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/audit/README.md +0 -0
  348. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/__init__.py +0 -0
  349. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/authorize.py +0 -0
  350. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/catalog.py +0 -0
  351. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/credential.py +0 -0
  352. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/errors.py +0 -0
  353. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/model.py +0 -0
  354. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/principal.py +0 -0
  355. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/session.py +0 -0
  356. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/spi.py +0 -0
  357. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/auth/token.py +0 -0
  358. {mopr-0.0.98 → mopr-0.0.111.dev167}/security/compliance/README.md +0 -0
  359. {mopr-0.0.98 → mopr-0.0.111.dev167}/setup.cfg +0 -0
  360. {mopr-0.0.98 → mopr-0.0.111.dev167}/spec/behavior.md +0 -0
  361. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/__init__.py +0 -0
  362. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/__main__.py +0 -0
  363. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/gen_seed_headers.py +0 -0
  364. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/__main__.py +0 -0
  365. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/cli.py +0 -0
  366. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/fetch.py +0 -0
  367. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/__init__.py +0 -0
  368. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/cpp.py +0 -0
  369. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/go.py +0 -0
  370. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/java.py +0 -0
  371. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/handlers/rust.py +0 -0
  372. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/notices.py +0 -0
  373. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/report.py +0 -0
  374. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_audit/todo.py +0 -0
  375. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/__init__.py +0 -0
  376. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/__main__.py +0 -0
  377. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/cli.py +0 -0
  378. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/core.py +0 -0
  379. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/__init__.py +0 -0
  380. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/base.py +0 -0
  381. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/cpp.py +0 -0
  382. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/css.py +0 -0
  383. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/go.py +0 -0
  384. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/html.py +0 -0
  385. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/java.py +0 -0
  386. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/javascript.py +0 -0
  387. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/rust.py +0 -0
  388. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/typescript.py +0 -0
  389. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/handlers/vue.py +0 -0
  390. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/license_header/project_meta.py +0 -0
  391. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/__main__.py +0 -0
  392. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/cli.py +0 -0
  393. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/jsonc.py +0 -0
  394. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/jsonc_test.py +0 -0
  395. {mopr-0.0.98 → mopr-0.0.111.dev167}/tools/vscode_sync/layers_test.py +0 -0
@@ -44,6 +44,8 @@ __pycache__/
44
44
  # Distribution / packaging
45
45
  .Python
46
46
  build/
47
+ # CMake 在仓库根生成的一次性"系统信息"工程(工具链探测的副产物, 不是源码)
48
+ __cmake_systeminformation/
47
49
  develop-eggs/
48
50
  dist/
49
51
  downloads/
@@ -0,0 +1,72 @@
1
+ # AGENTS.md — AI 助手入口
2
+
3
+ > **本仓库的规范源是 [CONTRIBUTING.md](CONTRIBUTING.md)**:规则、约定与判据全部在那里。
4
+ > 本文件只做三件事 —— 告诉 AI 该读什么、哪些线不能踩、改完怎么验。**与 CONTRIBUTING.md 冲突时
5
+ > 以后者为准**;本文件不复制细则,只给指针。
6
+
7
+ ## 1. 开工前必读
8
+
9
+ 按顺序读,读完再动手:
10
+
11
+ | 顺序 | 读什么 | 为什么 |
12
+ | --- | --- | --- |
13
+ | 1 | [CONTRIBUTING.md](CONTRIBUTING.md) | 规范全集:语言角色、命名、注释、文档、测试、提交 |
14
+ | 2 | 目标模块的 `README.md` 与同名 `.md` | 该模块的口径、跨语言对照、已知缺口(`§5 TODO`) |
15
+ | 3 | **该语义的 Python 实现(spec)与 Python 用例** | 语义以此为准;不要拿其它语言的既有实现反推 spec |
16
+
17
+ ## 2. 硬约束
18
+
19
+ | # | 约束 | 细则 |
20
+ | --- | --- | --- |
21
+ | 1 | **Python 是 spec**,语义、API、默认行为、失败约定一律以它为准;生产实现为 **C++ / Rust**(可互为替代),Go / Zig / Java 等为扩展 | [§2.3](CONTRIBUTING.md#23-语言角色与演进顺序) |
22
+ | 2 | **不自己造东西**:不造 Python 里没有的结构 / 函数名 / 逻辑;需要新能力先补 Python spec,再推广 | [§4.1](CONTRIBUTING.md#41-总纲snake_case-优先) |
23
+ | 3 | **读 spec 代码,不读注释猜**;怀疑 spec 有错时先跑 Python 验证,再与用户商定是否改 spec | [§2.3](CONTRIBUTING.md#23-语言角色与演进顺序) |
24
+ | 4 | **注释只说"是什么 / 怎么做 / 为什么这样"**,不写"本轮改了啥、上一版是什么" | [§5.1](CONTRIBUTING.md#51-注释只说是什么怎么做) |
25
+ | 5 | **通用能力先查 `base/`**,不写私有副本;缺就补 base | [§5.2](CONTRIBUTING.md#52-通用能力优先落-base) |
26
+ | 6 | **不擅自加开关**;调试开关一律 `debug_` 前缀 | [§5.3](CONTRIBUTING.md#53-调试开关) |
27
+ | 7 | **写盘必须幂等**:同一批输入跑多遍,产物一致 | [§5.4](CONTRIBUTING.md#54-重复触发与幂等) |
28
+ | 8 | **文档与代码同批**:新目录带 `README.md`,跨语言模块带同名 `.md` | [§6](CONTRIBUTING.md#6-文档规范) |
29
+ | 9 | **编码与行尾**:UTF-8 无 BOM、LF、末尾一个换行 | [§5.8](CONTRIBUTING.md#58-文件编码与行尾) |
30
+ | 10 | **不擅自 `git commit` / `push` / `rebase`**;提交信息按模板,Windows 下用 `-F` 传文件 | [§8](CONTRIBUTING.md#8-git-提交规范) |
31
+ | 11 | **对照表列序固定** `python → c++ → rust → go → zig → java`;前四门必须实现,`zig` / `java` 可选(缺失不影响状态) | [§2.3](CONTRIBUTING.md#23-语言角色与演进顺序) |
32
+
33
+ ## 3. 主题索引
34
+
35
+ | 我要… | 去哪 |
36
+ | --- | --- |
37
+ | 查语言最低版本 / 编译器基线 | [§2](CONTRIBUTING.md#2-语言与版本基线) |
38
+ | 决定文件放哪、叫什么 | [§3](CONTRIBUTING.md#3-目录与多语言布局) |
39
+ | 定函数名 / 命名空间 / 头文件守卫宏 | [§4](CONTRIBUTING.md#4-命名与数据契约) |
40
+ | 定整型 / 浮点的跨语言名与宽度 | [§4.6](CONTRIBUTING.md#46-标量类型整型-浮点) |
41
+ | 写注释、判断该不该写某句 | [§5.1](CONTRIBUTING.md#51-注释只说是什么怎么做) |
42
+ | 找某个通用能力该不该落 `base/` | [§5.2](CONTRIBUTING.md#52-通用能力优先落-base) |
43
+ | 处理重复触发 / 幂等 | [§5.4](CONTRIBUTING.md#54-重复触发与幂等) |
44
+ | 跑 Python、写 import | [§5.5](CONTRIBUTING.md#55-python-包形态与导入) |
45
+ | 写 `#include` | [§5.6](CONTRIBUTING.md#56-c-头文件引用) |
46
+ | 处理字符串 | [§5.7](CONTRIBUTING.md#57-c-字符串处理复用) |
47
+ | 写模块文档 / 判"算不算完成" | [§6](CONTRIBUTING.md#6-文档规范) |
48
+ | 写测试 | [§7](CONTRIBUTING.md#7-测试规范) |
49
+ | 写提交信息 | [§8.1](CONTRIBUTING.md#81-提交信息) |
50
+ | 判断要不要立提案 | [§9](CONTRIBUTING.md#9-提案与验证工作流) |
51
+ | 构建 / 依赖 / 发布 | [BUILDING.md](BUILDING.md) |
52
+
53
+ ## 4. 常用命令
54
+
55
+ | 目的 | 命令 |
56
+ | --- | --- |
57
+ | C++ 全量构建 | `cmake --build build/debug-dynamic --config Debug --target mopr_tests` |
58
+ | C++ 跑用例 | `./build/debug-dynamic/tests/Debug/mopr_tests.exe --gtest_filter="<Suite>.*"` |
59
+ | 联网用例(默认跳过) | 置 `MOPR_FOREX_ONLINE=1`,且只跑在临时 home 内 |
60
+ | Python 包化跑用例 | `python -m mopr.<模块>.<子模块>_test`(禁止 `pytest <目录>`) |
61
+ | 跨语言一致性对照 | `python -m tools.crosscheck`(用例见 `tests/fixtures/`) |
62
+ | 编码自查 | 见 [§5.8](CONTRIBUTING.md#58-文件编码与行尾) 的 PowerShell 片段 |
63
+ | 提交(Windows) | 写入 `.git/commit-msg.tmp` 后 `git commit -F .git/commit-msg.tmp` |
64
+
65
+ ## 5. 交付前自检
66
+
67
+ 1. **语义**:与 Python spec 逐值对拍过(不是"看起来一样");有差异先改实现,或与用户商定改 spec。
68
+ 2. **构建与用例**:全量编译通过、相关用例通过;跳过项(在线 / 依赖外部数据)要能说明原因。
69
+ 3. **注释**:没有"本轮 / 上一版 / 原来 / 曾经"这类变更叙事([§5.1](CONTRIBUTING.md#51-注释只说是什么怎么做))。
70
+ 4. **文档**:目录 `README.md`、模块 `.md` 的路线图 / 功能表 / 测试 / TODO 与实际一致,无陈旧条目。
71
+ 5. **编码**:UTF-8 无 BOM、LF、末尾换行([§5.8](CONTRIBUTING.md#58-文件编码与行尾))。
72
+ 6. **提交信息**:符合 `type[language]:summary`,正文分条,无版本号 / 代理署名。
@@ -300,18 +300,18 @@ powershell -ExecutionPolicy Bypass -File .\refresh-clangd.ps1
300
300
 
301
301
  > 注意:clangd 只是编辑器提示,**与编译结果无关**——构建始终以 VS preset / Build 按钮为准;若 clangd 报错而构建通过,以构建为准。
302
302
 
303
- ### 2.8 版本发布(autochangelog)
303
+ ### 2.8 版本发布(auto-changelog)
304
304
 
305
- mopr 的版本号不写死:CMake(`cmake/git_tag_info.cmake`)与 Conan(`conanfile.py` 的 `set_version`)均自动取 git 仓库最新 `v0.0.x` tag 作为构建版本;tag 与 CHANGELOG 由 **[autochangelog](https://gitee.com/quant1x/autochangelog)** 统一生成,Agent 与协作者不手动打 tag(见 AGENTS.md)。
305
+ mopr 的版本号不写死:CMake(`cmake/git_tag_info.cmake`)与 Conan(`conanfile.py` 的 `set_version`)均自动取 git 仓库最新 `v0.0.x` tag 作为构建版本;tag 与 CHANGELOG 由 **[auto-changelog](https://github.com/quant1x/auto-changelog)** 统一生成,Agent 与协作者不手动打 tag(见 CONTRIBUTING.md)。
306
306
 
307
- **安装 autochangelog**(需要 Go 工具链,对应 mopr 的 Go 基线 1.27+):
307
+ **安装 auto-changelog**(需要 Go 工具链,对应 mopr 的 Go 基线 1.27+):
308
308
 
309
309
  ```powershell
310
- go install gitee.com/quant1x/autochangelog@latest
310
+ go install github.com/quant1x/auto-changelog@latest
311
311
  ```
312
312
 
313
- - 产物位于 `%USERPROFILE%\go\bin\autochangelog.exe`;若命令找不到,把该目录加入 PATH 后重开终端;
314
- - 如需安装指定版本,将 `@latest` 替换为版本号即可,例如 `go install gitee.com/quant1x/autochangelog@v1.4.3`。
313
+ - 产物位于 `%USERPROFILE%\go\bin\auto-changelog.exe`;若命令找不到,把该目录加入 PATH 后重开终端;
314
+ - 如需安装指定版本,将 `@latest` 替换为版本号即可,例如 `go install github.com/quant1x/auto-changelog@v1.4.3`。
315
315
 
316
316
  **发布前刷新第三方声明**:conan 依赖变更后,先按 6「第三方声明与许可证归档」运行 `python -m tools.license_audit cpp`,确认无「缺失 / 待人工补录」输出;`THIRD-PARTY-NOTICES.md` 与 `third_party/licenses/` 随发布产物一并附带。
317
317
 
@@ -655,7 +655,7 @@ use mopr::distributed;
655
655
 
656
656
  #### 3.5.2 安装
657
657
 
658
- 前置:Rust 工具链可用(`cargo --version` 不低于本仓基线 1.98.1+,见 AGENTS.md)。三个外部工具都是 cargo 子命令插件,统一经 `cargo install` 编译安装到 `%USERPROFILE%\.cargo\bin`(rustup 通常已将该目录写入 PATH,新装后重开终端生效):
658
+ 前置:Rust 工具链可用(`cargo --version` 不低于本仓基线 1.98.1+,见 CONTRIBUTING.md)。三个外部工具都是 cargo 子命令插件,统一经 `cargo install` 编译安装到 `%USERPROFILE%\.cargo\bin`(rustup 通常已将该目录写入 PATH,新装后重开终端生效):
659
659
 
660
660
  ```powershell
661
661
  cargo install --locked cargo-deny
@@ -792,7 +792,7 @@ mvn -Pbench -Dtest=ringbuffer_LMAXDisruptorBenchmark test # 只跑基准
792
792
 
793
793
  | 约束 | 值 | 说明 |
794
794
  | --- | --- | --- |
795
- | Go 最低版本 | **1.27.0** | `go.mod` 已声明 `go 1.27.0`;本仓库 Go 基线 1.27+,与 README「语言与版本要求」、AGENTS.md 一致 |
795
+ | Go 最低版本 | **1.27.0** | `go.mod` 已声明 `go 1.27.0`;本仓库 Go 基线 1.27+,与 README「语言与版本要求」、CONTRIBUTING.md 一致 |
796
796
 
797
797
  本机工具链版本用 `go version` 核对,应不低于 `go1.27.0`(当前验证环境:Windows + `go1.27.0`)。
798
798