tdl-xoa-driver 1.0.0__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.
Files changed (325) hide show
  1. tdl_xoa_driver-1.0.0.dist-info/LICENSE +202 -0
  2. tdl_xoa_driver-1.0.0.dist-info/METADATA +177 -0
  3. tdl_xoa_driver-1.0.0.dist-info/RECORD +325 -0
  4. tdl_xoa_driver-1.0.0.dist-info/WHEEL +5 -0
  5. tdl_xoa_driver-1.0.0.dist-info/top_level.txt +1 -0
  6. xoa_driver/__init__.py +2 -0
  7. xoa_driver/enums.py +399 -0
  8. xoa_driver/exceptions.py +77 -0
  9. xoa_driver/functions/__init__.py +0 -0
  10. xoa_driver/functions/anlt.py +744 -0
  11. xoa_driver/functions/anlt_ll_debug.py +429 -0
  12. xoa_driver/functions/cli.py +581 -0
  13. xoa_driver/functions/exceptions.py +72 -0
  14. xoa_driver/functions/headers.py +608 -0
  15. xoa_driver/functions/mgmt.py +515 -0
  16. xoa_driver/functions/tools.py +256 -0
  17. xoa_driver/hlfuncs.py +18 -0
  18. xoa_driver/internals/__init__.py +0 -0
  19. xoa_driver/internals/commands/__init__.py +31 -0
  20. xoa_driver/internals/commands/c_commands.py +2041 -0
  21. xoa_driver/internals/commands/enums.py +3289 -0
  22. xoa_driver/internals/commands/m4_commands.py +700 -0
  23. xoa_driver/internals/commands/m4e_commands.py +107 -0
  24. xoa_driver/internals/commands/m_commands.py +1875 -0
  25. xoa_driver/internals/commands/p4_commands.py +2221 -0
  26. xoa_driver/internals/commands/p4e_commands.py +160 -0
  27. xoa_driver/internals/commands/p4g_commands.py +7253 -0
  28. xoa_driver/internals/commands/p_commands.py +6000 -0
  29. xoa_driver/internals/commands/pc_commands.py +335 -0
  30. xoa_driver/internals/commands/pd_commands.py +355 -0
  31. xoa_driver/internals/commands/pe_commands.py +1018 -0
  32. xoa_driver/internals/commands/pec_commands.py +265 -0
  33. xoa_driver/internals/commands/ped_commands.py +1034 -0
  34. xoa_driver/internals/commands/pef_commands.py +2216 -0
  35. xoa_driver/internals/commands/pf_commands.py +379 -0
  36. xoa_driver/internals/commands/pl1_commands.py +1588 -0
  37. xoa_driver/internals/commands/pl_commands.py +178 -0
  38. xoa_driver/internals/commands/pm_commands.py +256 -0
  39. xoa_driver/internals/commands/pp_commands.py +2341 -0
  40. xoa_driver/internals/commands/pr_commands.py +812 -0
  41. xoa_driver/internals/commands/ps_commands.py +2311 -0
  42. xoa_driver/internals/commands/pt_commands.py +370 -0
  43. xoa_driver/internals/commands/px_commands.py +303 -0
  44. xoa_driver/internals/commands/subtypes.py +86 -0
  45. xoa_driver/internals/core/__init__.py +0 -0
  46. xoa_driver/internals/core/builders.py +39 -0
  47. xoa_driver/internals/core/exceptions.py +69 -0
  48. xoa_driver/internals/core/funcs.py +81 -0
  49. xoa_driver/internals/core/funcs.pyi +1072 -0
  50. xoa_driver/internals/core/interfaces.py +47 -0
  51. xoa_driver/internals/core/token.py +44 -0
  52. xoa_driver/internals/core/transporter/__init__.py +0 -0
  53. xoa_driver/internals/core/transporter/_processor.py +83 -0
  54. xoa_driver/internals/core/transporter/_publisher.py +101 -0
  55. xoa_driver/internals/core/transporter/_request_id_counter.py +28 -0
  56. xoa_driver/internals/core/transporter/_stream.py +99 -0
  57. xoa_driver/internals/core/transporter/_typings.py +43 -0
  58. xoa_driver/internals/core/transporter/exceptions.py +44 -0
  59. xoa_driver/internals/core/transporter/handler.py +127 -0
  60. xoa_driver/internals/core/transporter/logger/__init__.py +10 -0
  61. xoa_driver/internals/core/transporter/logger/__logger.py +94 -0
  62. xoa_driver/internals/core/transporter/logger/__state_off.py +32 -0
  63. xoa_driver/internals/core/transporter/logger/__state_on_default.py +70 -0
  64. xoa_driver/internals/core/transporter/logger/__state_on_loguru.py +51 -0
  65. xoa_driver/internals/core/transporter/logger/__state_on_user.py +48 -0
  66. xoa_driver/internals/core/transporter/protocol/__init__.py +0 -0
  67. xoa_driver/internals/core/transporter/protocol/_constants.py +77 -0
  68. xoa_driver/internals/core/transporter/protocol/_utils.py +59 -0
  69. xoa_driver/internals/core/transporter/protocol/exceptions.py +271 -0
  70. xoa_driver/internals/core/transporter/protocol/payload/__init__.py +70 -0
  71. xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +283 -0
  72. xoa_driver/internals/core/transporter/protocol/payload/descriptor.py +119 -0
  73. xoa_driver/internals/core/transporter/protocol/payload/exceptions.py +20 -0
  74. xoa_driver/internals/core/transporter/protocol/payload/field.py +296 -0
  75. xoa_driver/internals/core/transporter/protocol/payload/types.py +173 -0
  76. xoa_driver/internals/core/transporter/protocol/payload/utils.py +53 -0
  77. xoa_driver/internals/core/transporter/protocol/struct_header.py +123 -0
  78. xoa_driver/internals/core/transporter/protocol/struct_request.py +65 -0
  79. xoa_driver/internals/core/transporter/protocol/struct_response.py +89 -0
  80. xoa_driver/internals/core/transporter/registry.py +43 -0
  81. xoa_driver/internals/exceptions/__init__.py +9 -0
  82. xoa_driver/internals/exceptions/modules.py +13 -0
  83. xoa_driver/internals/exceptions/testers.py +21 -0
  84. xoa_driver/internals/hli_v1/__init__.py +0 -0
  85. xoa_driver/internals/hli_v1/indices/__init__.py +0 -0
  86. xoa_driver/internals/hli_v1/indices/base_index.py +39 -0
  87. xoa_driver/internals/hli_v1/indices/connection_group/__init__.py +0 -0
  88. xoa_driver/internals/hli_v1/indices/connection_group/cg.py +186 -0
  89. xoa_driver/internals/hli_v1/indices/connection_group/histogram.py +78 -0
  90. xoa_driver/internals/hli_v1/indices/connection_group/l2.py +94 -0
  91. xoa_driver/internals/hli_v1/indices/connection_group/l3.py +130 -0
  92. xoa_driver/internals/hli_v1/indices/connection_group/raw.py +200 -0
  93. xoa_driver/internals/hli_v1/indices/connection_group/replay.py +109 -0
  94. xoa_driver/internals/hli_v1/indices/connection_group/tcp.py +314 -0
  95. xoa_driver/internals/hli_v1/indices/connection_group/tls.py +198 -0
  96. xoa_driver/internals/hli_v1/indices/connection_group/udp.py +133 -0
  97. xoa_driver/internals/hli_v1/indices/connection_group/user_state.py +28 -0
  98. xoa_driver/internals/hli_v1/indices/filter/__init__.py +0 -0
  99. xoa_driver/internals/hli_v1/indices/filter/base_filter.py +65 -0
  100. xoa_driver/internals/hli_v1/indices/filter/genuine_filter.py +20 -0
  101. xoa_driver/internals/hli_v1/indices/length_term.py +49 -0
  102. xoa_driver/internals/hli_v1/indices/macsecscs/__init__.py +0 -0
  103. xoa_driver/internals/hli_v1/indices/macsecscs/base_macsecsc.py +224 -0
  104. xoa_driver/internals/hli_v1/indices/macsecscs/genuine_macsecsc.py +72 -0
  105. xoa_driver/internals/hli_v1/indices/match_term.py +64 -0
  106. xoa_driver/internals/hli_v1/indices/port_dataset.py +72 -0
  107. xoa_driver/internals/hli_v1/indices/streams/__init__.py +0 -0
  108. xoa_driver/internals/hli_v1/indices/streams/base_stream.py +405 -0
  109. xoa_driver/internals/hli_v1/indices/streams/genuine_stream.py +64 -0
  110. xoa_driver/internals/hli_v1/modules/__init__.py +0 -0
  111. xoa_driver/internals/hli_v1/modules/__interfaces.py +21 -0
  112. xoa_driver/internals/hli_v1/modules/base_module.py +138 -0
  113. xoa_driver/internals/hli_v1/modules/module_chimera.py +366 -0
  114. xoa_driver/internals/hli_v1/modules/module_l23ve.py +73 -0
  115. xoa_driver/internals/hli_v1/modules/module_l47.py +397 -0
  116. xoa_driver/internals/hli_v1/modules/module_l47ve.py +9 -0
  117. xoa_driver/internals/hli_v1/modules/modules_l23/__init__.py +0 -0
  118. xoa_driver/internals/hli_v1/modules/modules_l23/family_combi.py +83 -0
  119. xoa_driver/internals/hli_v1/modules/modules_l23/family_d.py +75 -0
  120. xoa_driver/internals/hli_v1/modules/modules_l23/family_e.py +85 -0
  121. xoa_driver/internals/hli_v1/modules/modules_l23/family_f.py +145 -0
  122. xoa_driver/internals/hli_v1/modules/modules_l23/family_g.py +84 -0
  123. xoa_driver/internals/hli_v1/modules/modules_l23/family_h.py +40 -0
  124. xoa_driver/internals/hli_v1/modules/modules_l23/family_i.py +25 -0
  125. xoa_driver/internals/hli_v1/modules/modules_l23/family_j.py +25 -0
  126. xoa_driver/internals/hli_v1/modules/modules_l23/family_k.py +39 -0
  127. xoa_driver/internals/hli_v1/modules/modules_l23/family_l.py +55 -0
  128. xoa_driver/internals/hli_v1/modules/modules_l23/family_l1.py +800 -0
  129. xoa_driver/internals/hli_v1/modules/modules_l23/family_m.py +25 -0
  130. xoa_driver/internals/hli_v1/modules/modules_l23/family_n.py +40 -0
  131. xoa_driver/internals/hli_v1/modules/modules_l23/module_l23_base.py +383 -0
  132. xoa_driver/internals/hli_v1/ports/__init__.py +0 -0
  133. xoa_driver/internals/hli_v1/ports/base_port.py +125 -0
  134. xoa_driver/internals/hli_v1/ports/port_l23/__init__.py +0 -0
  135. xoa_driver/internals/hli_v1/ports/port_l23/bases/__init__.py +0 -0
  136. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_capture.py +70 -0
  137. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23.py +527 -0
  138. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23_genuine.py +229 -0
  139. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_reception_statistics.py +231 -0
  140. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +117 -0
  141. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transmission_statistics.py +131 -0
  142. xoa_driver/internals/hli_v1/ports/port_l23/chimera/__init__.py +0 -0
  143. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  144. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
  145. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/general.py +396 -0
  146. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/shadow.py +104 -0
  147. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/working.py +36 -0
  148. xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_custom_distribution.py +125 -0
  149. xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_distribution.py +174 -0
  150. xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_chimera.py +119 -0
  151. xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_emulation.py +244 -0
  152. xoa_driver/internals/hli_v1/ports/port_l23/chimera/reception_statistics.py +24 -0
  153. xoa_driver/internals/hli_v1/ports/port_l23/chimera/transmission_statistics.py +24 -0
  154. xoa_driver/internals/hli_v1/ports/port_l23/family_combi.py +37 -0
  155. xoa_driver/internals/hli_v1/ports/port_l23/family_d.py +51 -0
  156. xoa_driver/internals/hli_v1/ports/port_l23/family_e.py +107 -0
  157. xoa_driver/internals/hli_v1/ports/port_l23/family_f.py +151 -0
  158. xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +77 -0
  159. xoa_driver/internals/hli_v1/ports/port_l23/family_h.py +67 -0
  160. xoa_driver/internals/hli_v1/ports/port_l23/family_i.py +84 -0
  161. xoa_driver/internals/hli_v1/ports/port_l23/family_j.py +68 -0
  162. xoa_driver/internals/hli_v1/ports/port_l23/family_k.py +73 -0
  163. xoa_driver/internals/hli_v1/ports/port_l23/family_l.py +82 -0
  164. xoa_driver/internals/hli_v1/ports/port_l23/family_l1.py +166 -0
  165. xoa_driver/internals/hli_v1/ports/port_l23/family_m.py +29 -0
  166. xoa_driver/internals/hli_v1/ports/port_l23/fault_jkl.py +24 -0
  167. xoa_driver/internals/hli_v1/ports/port_l23/freya_l1.py +722 -0
  168. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ghijkl.py +369 -0
  169. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ijkl_chimera.py +60 -0
  170. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_l.py +78 -0
  171. xoa_driver/internals/hli_v1/ports/port_l23/port_l23ve.py +101 -0
  172. xoa_driver/internals/hli_v1/ports/port_l47/__init__.py +0 -0
  173. xoa_driver/internals/hli_v1/ports/port_l47/counters.py +174 -0
  174. xoa_driver/internals/hli_v1/ports/port_l47/main.py +228 -0
  175. xoa_driver/internals/hli_v1/ports/port_l47/packet_engine.py +31 -0
  176. xoa_driver/internals/hli_v1/revisions.py +11 -0
  177. xoa_driver/internals/hli_v1/testers/__init__.py +0 -0
  178. xoa_driver/internals/hli_v1/testers/_base_tester.py +259 -0
  179. xoa_driver/internals/hli_v1/testers/genuine/__init__.py +0 -0
  180. xoa_driver/internals/hli_v1/testers/genuine/l_23/__init__.py +0 -0
  181. xoa_driver/internals/hli_v1/testers/genuine/l_23/health.py +16 -0
  182. xoa_driver/internals/hli_v1/testers/genuine/l_23/rest_api.py +38 -0
  183. xoa_driver/internals/hli_v1/testers/genuine/l_23/time_keeper.py +57 -0
  184. xoa_driver/internals/hli_v1/testers/genuine/l_23/upload_file.py +29 -0
  185. xoa_driver/internals/hli_v1/testers/genuine/management_interface.py +42 -0
  186. xoa_driver/internals/hli_v1/testers/l23_tester.py +196 -0
  187. xoa_driver/internals/hli_v1/testers/l23ve_tester.py +114 -0
  188. xoa_driver/internals/hli_v1/testers/l47_tester.py +106 -0
  189. xoa_driver/internals/hli_v1/testers/l47ve_tester.py +54 -0
  190. xoa_driver/internals/hli_v2/__init__.py +0 -0
  191. xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
  192. xoa_driver/internals/hli_v2/indices/base_index.py +39 -0
  193. xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
  194. xoa_driver/internals/hli_v2/indices/connection_group/cg.py +115 -0
  195. xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +59 -0
  196. xoa_driver/internals/hli_v2/indices/connection_group/l2.py +71 -0
  197. xoa_driver/internals/hli_v2/indices/connection_group/l3.py +96 -0
  198. xoa_driver/internals/hli_v2/indices/connection_group/raw.py +148 -0
  199. xoa_driver/internals/hli_v2/indices/connection_group/replay.py +89 -0
  200. xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +261 -0
  201. xoa_driver/internals/hli_v2/indices/connection_group/tls.py +166 -0
  202. xoa_driver/internals/hli_v2/indices/connection_group/udp.py +112 -0
  203. xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +25 -0
  204. xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
  205. xoa_driver/internals/hli_v2/indices/filter/base_filter.py +50 -0
  206. xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +17 -0
  207. xoa_driver/internals/hli_v2/indices/length_term.py +44 -0
  208. xoa_driver/internals/hli_v2/indices/match_term.py +49 -0
  209. xoa_driver/internals/hli_v2/indices/port_dataset.py +53 -0
  210. xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
  211. xoa_driver/internals/hli_v2/indices/streams/base_stream.py +234 -0
  212. xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +32 -0
  213. xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
  214. xoa_driver/internals/hli_v2/modules/__interfaces.py +21 -0
  215. xoa_driver/internals/hli_v2/modules/base_module.py +125 -0
  216. xoa_driver/internals/hli_v2/modules/module_chimera.py +358 -0
  217. xoa_driver/internals/hli_v2/modules/module_l23ve.py +58 -0
  218. xoa_driver/internals/hli_v2/modules/module_l47.py +230 -0
  219. xoa_driver/internals/hli_v2/modules/module_l47ve.py +8 -0
  220. xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
  221. xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +73 -0
  222. xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +75 -0
  223. xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +85 -0
  224. xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +144 -0
  225. xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +84 -0
  226. xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +40 -0
  227. xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +25 -0
  228. xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +25 -0
  229. xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +39 -0
  230. xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +55 -0
  231. xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +797 -0
  232. xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +25 -0
  233. xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +40 -0
  234. xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +339 -0
  235. xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
  236. xoa_driver/internals/hli_v2/ports/base_port.py +105 -0
  237. xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
  238. xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
  239. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +64 -0
  240. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +441 -0
  241. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +172 -0
  242. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +156 -0
  243. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +117 -0
  244. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +59 -0
  245. xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
  246. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  247. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
  248. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +340 -0
  249. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +99 -0
  250. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +36 -0
  251. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +116 -0
  252. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +102 -0
  253. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +113 -0
  254. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +420 -0
  255. xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +22 -0
  256. xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +22 -0
  257. xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +36 -0
  258. xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +49 -0
  259. xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +96 -0
  260. xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +144 -0
  261. xoa_driver/internals/hli_v2/ports/port_l23/family_g.py +77 -0
  262. xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +60 -0
  263. xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +66 -0
  264. xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +53 -0
  265. xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +58 -0
  266. xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +67 -0
  267. xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +149 -0
  268. xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +28 -0
  269. xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +22 -0
  270. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +342 -0
  271. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +50 -0
  272. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +65 -0
  273. xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +81 -0
  274. xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
  275. xoa_driver/internals/hli_v2/ports/port_l47/counters.py +146 -0
  276. xoa_driver/internals/hli_v2/ports/port_l47/main.py +137 -0
  277. xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +20 -0
  278. xoa_driver/internals/hli_v2/revisions.py +11 -0
  279. xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
  280. xoa_driver/internals/hli_v2/testers/_base_tester.py +207 -0
  281. xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
  282. xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
  283. xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +16 -0
  284. xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +34 -0
  285. xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +50 -0
  286. xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +26 -0
  287. xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +38 -0
  288. xoa_driver/internals/hli_v2/testers/l23_tester.py +159 -0
  289. xoa_driver/internals/hli_v2/testers/l23ve_tester.py +98 -0
  290. xoa_driver/internals/hli_v2/testers/l47_tester.py +95 -0
  291. xoa_driver/internals/hli_v2/testers/l47ve_tester.py +50 -0
  292. xoa_driver/internals/state_storage/__init__.py +0 -0
  293. xoa_driver/internals/state_storage/_speed_detector.py +121 -0
  294. xoa_driver/internals/state_storage/modules_state.py +128 -0
  295. xoa_driver/internals/state_storage/ports_state.py +154 -0
  296. xoa_driver/internals/state_storage/testers_state.py +104 -0
  297. xoa_driver/internals/utils/__init__.py +0 -0
  298. xoa_driver/internals/utils/attributes.py +33 -0
  299. xoa_driver/internals/utils/cap_id.py +63 -0
  300. xoa_driver/internals/utils/con_traffic_light.py +88 -0
  301. xoa_driver/internals/utils/indices/__init__.py +0 -0
  302. xoa_driver/internals/utils/indices/_interfaces.py +26 -0
  303. xoa_driver/internals/utils/indices/header_modifier_manager.py +56 -0
  304. xoa_driver/internals/utils/indices/index_manager.py +95 -0
  305. xoa_driver/internals/utils/indices/observer.py +17 -0
  306. xoa_driver/internals/utils/kind.py +19 -0
  307. xoa_driver/internals/utils/managers/__init__.py +0 -0
  308. xoa_driver/internals/utils/managers/abc.py +44 -0
  309. xoa_driver/internals/utils/managers/exceptions.py +22 -0
  310. xoa_driver/internals/utils/managers/modules_manager.py +118 -0
  311. xoa_driver/internals/utils/managers/ports_manager.py +116 -0
  312. xoa_driver/internals/utils/rev_tool.py +21 -0
  313. xoa_driver/internals/utils/session.py +117 -0
  314. xoa_driver/internals/warn.py +32 -0
  315. xoa_driver/lli.py +15 -0
  316. xoa_driver/misc.py +57 -0
  317. xoa_driver/modules.py +448 -0
  318. xoa_driver/ports.py +332 -0
  319. xoa_driver/testers.py +37 -0
  320. xoa_driver/utils.py +12 -0
  321. xoa_driver/v2/__init__.py +11 -0
  322. xoa_driver/v2/misc.py +77 -0
  323. xoa_driver/v2/modules.py +308 -0
  324. xoa_driver/v2/ports.py +232 -0
  325. xoa_driver/v2/testers.py +24 -0
@@ -0,0 +1,94 @@
1
+ from __future__ import annotations
2
+ import typing as t
3
+ import logging
4
+
5
+ from .__state_off import StateOff
6
+ from .__state_on_default import StateOnDefault
7
+ from .__state_on_loguru import StateOnLoguru
8
+ from .__state_on_user import StateOnUser
9
+
10
+
11
+ class TransportationLogger:
12
+ __slots__ = ("enabled", "identity_name", "_logger", "__state")
13
+
14
+ def __init__(self, cid: str, enabled: bool = False, logger: CustomLogger | None = None) -> None:
15
+ self.enabled = enabled
16
+ self.identity_name = f"{cid}"
17
+ self.__state = self.__select_state(logger)
18
+ self._logger = self.__state.setup(self.identity_name, logger)
19
+
20
+ def __select_state(self, logger) -> t.Type[LoggerState]:
21
+ if not self.enabled:
22
+ return StateOff
23
+ elif self.enabled and logger is None:
24
+ return StateOnDefault
25
+ elif isinstance(logger, logging.Logger):
26
+ return StateOnDefault
27
+ try:
28
+ from loguru import Logger as LoguruLogger
29
+ except ImportError:
30
+ pass
31
+ else:
32
+ if isinstance(logger, LoguruLogger):
33
+ return StateOnLoguru
34
+ return StateOnUser
35
+
36
+ def info(self, msg: t.Any) -> None:
37
+ self.__state.info(self, msg)
38
+
39
+ def error(self, msg: t.Any) -> None:
40
+ self.__state.error(self, msg)
41
+
42
+ def debug_request(self, request: object) -> None:
43
+ self.__state.debug_request(self, request)
44
+
45
+ def debug_response(self, response: object) -> None:
46
+ self.__state.debug_response(self, response)
47
+
48
+ def debug_push(self, response: object) -> None:
49
+ self.__state.debug_push(self, response)
50
+
51
+
52
+ class CustomLogger(t.Protocol):
53
+ """
54
+ The custom logger must be an instance of python Logger or Loguru Logger.
55
+ by providing the custom class of the logger we will not waranty as all of
56
+ the messages will be visible to the user.
57
+ """
58
+ def debug(self, msg, /, *args, **kwargs: t.Any) -> None:
59
+ ...
60
+
61
+ def info(self, msg, /, *args, **kwargs: t.Any) -> None:
62
+ ...
63
+
64
+ def warning(self, msg, /, *args, **kwargs: t.Any) -> None:
65
+ ...
66
+
67
+ def error(self, msg, /, *args, **kwargs: t.Any) -> None:
68
+ ...
69
+
70
+
71
+ class LoggerState(t.Protocol):
72
+ @staticmethod
73
+ def setup(connid: str, logger) -> CustomLogger | None:
74
+ return None
75
+
76
+ @staticmethod
77
+ def info(inst: "TransportationLogger", msg: t.Any) -> None:
78
+ ...
79
+
80
+ @staticmethod
81
+ def error(inst: "TransportationLogger", msg: t.Any) -> None:
82
+ ...
83
+
84
+ @staticmethod
85
+ def debug_request(inst: "TransportationLogger", request: object) -> None:
86
+ ...
87
+
88
+ @staticmethod
89
+ def debug_response(inst: "TransportationLogger", response: object) -> None:
90
+ ...
91
+
92
+ @staticmethod
93
+ def debug_push(inst: "TransportationLogger", response: object) -> None:
94
+ ...
@@ -0,0 +1,32 @@
1
+ from __future__ import annotations
2
+ import typing as t
3
+
4
+ if t.TYPE_CHECKING:
5
+ from .__logger import TransportationLogger
6
+
7
+
8
+ class StateOff:
9
+
10
+ @staticmethod
11
+ def setup(connid: str, logger) -> None:
12
+ return None
13
+
14
+ @staticmethod
15
+ def info(inst: "TransportationLogger", msg: t.Any) -> None:
16
+ return None
17
+
18
+ @staticmethod
19
+ def error(inst: "TransportationLogger", msg: t.Any) -> None:
20
+ return None
21
+
22
+ @staticmethod
23
+ def debug_request(inst: "TransportationLogger", request: object) -> None:
24
+ return None
25
+
26
+ @staticmethod
27
+ def debug_response(inst: "TransportationLogger", response: object) -> None:
28
+ return None
29
+
30
+ @staticmethod
31
+ def debug_push(inst: "TransportationLogger", response: object) -> None:
32
+ return None
@@ -0,0 +1,70 @@
1
+ from __future__ import annotations
2
+ import sys
3
+ import typing as t
4
+ import logging
5
+
6
+ if t.TYPE_CHECKING:
7
+ from .__logger import TransportationLogger
8
+
9
+
10
+ RESET = "\x1b[0m"
11
+ YELLOW = "\x1b[30;43m"
12
+ GREEN = "\x1b[30;42m"
13
+ MAGENTA = "\x1b[1;45m"
14
+
15
+ SYMBOL_REQUEST = f"{GREEN} -> {RESET}"
16
+ SYMBOL_PUSH = f"{MAGENTA} -P {RESET}"
17
+ SYMBOL_RESPONSE = f"{YELLOW} <- {RESET}"
18
+
19
+
20
+ class XoaLoggerAdapter(logging.LoggerAdapter):
21
+ def process(self, msg: t.Any, kwargs: t.MutableMapping[str, t.Any]):
22
+ if not self.extra:
23
+ return f"{msg}", kwargs
24
+ return f"[{self.extra['connid']}] {msg}", kwargs
25
+
26
+
27
+ class StateOnDefault:
28
+ @staticmethod
29
+ def setup(connid: str, logger: logging.Logger | None) -> XoaLoggerAdapter:
30
+ log_stream_formatter = logging.Formatter(
31
+ fmt="%(asctime)s | %(levelname)-8s | %(message)s"
32
+ )
33
+ console_handler = logging.StreamHandler(stream=sys.stdout)
34
+ console_handler.setFormatter(log_stream_formatter)
35
+ if not logger:
36
+ logger = logging.getLogger("XOA_Driver")
37
+ logger.propagate = False
38
+ logger.addHandler(console_handler)
39
+ logger.setLevel(logging.DEBUG)
40
+ return XoaLoggerAdapter(logger, {'connid': connid})
41
+
42
+ @staticmethod
43
+ def info(inst: "TransportationLogger", msg: t.Any) -> None:
44
+ _logger = t.cast(logging.Logger, inst._logger)
45
+ if _logger.isEnabledFor(logging.INFO):
46
+ _logger.info(msg)
47
+
48
+ @staticmethod
49
+ def error(inst: "TransportationLogger", msg: t.Any) -> None:
50
+ _logger = t.cast(logging.Logger, inst._logger)
51
+ if _logger.isEnabledFor(logging.ERROR):
52
+ _logger.error(msg)
53
+
54
+ @staticmethod
55
+ def debug_request(inst: "TransportationLogger", request: object) -> None:
56
+ _logger = t.cast(logging.Logger, inst._logger)
57
+ if _logger.isEnabledFor(logging.DEBUG):
58
+ _logger.debug(f"{SYMBOL_REQUEST} {request!r}")
59
+
60
+ @staticmethod
61
+ def debug_response(inst: "TransportationLogger", response: object) -> None:
62
+ _logger = t.cast(logging.Logger, inst._logger)
63
+ if _logger.isEnabledFor(logging.DEBUG):
64
+ _logger.debug(f"{SYMBOL_RESPONSE} {response!r}")
65
+
66
+ @staticmethod
67
+ def debug_push(inst: "TransportationLogger", response: object) -> None:
68
+ _logger = t.cast(logging.Logger, inst._logger)
69
+ if _logger.isEnabledFor(logging.DEBUG):
70
+ _logger.debug(f"{SYMBOL_PUSH} {response!r}")
@@ -0,0 +1,51 @@
1
+ from __future__ import annotations
2
+ import sys
3
+ import typing as t
4
+
5
+ if t.TYPE_CHECKING:
6
+ try:
7
+ from loguru import Logger
8
+ except ImportError:
9
+ pass
10
+ from .__logger import TransportationLogger
11
+
12
+
13
+ SYMBOL_REQUEST = "<G><w> -> </w></G>"
14
+ SYMBOL_PUSH = "<M><w> -P </w></M>"
15
+ SYMBOL_RESPONSE = "<Y><e> <- </e></Y>"
16
+
17
+
18
+ class StateOnLoguru:
19
+
20
+ @staticmethod
21
+ def setup(connid: str, logger: "Logger") -> "Logger":
22
+ logger.remove() # All configured handlers are removed
23
+ fmt = "<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level: <8}</level> | <level>{message}</level>"
24
+ logger.add(sys.stdout, format=fmt)
25
+ logger = logger.bind(connid=connid)
26
+ return logger
27
+
28
+ @staticmethod
29
+ def info(inst: "TransportationLogger", msg: t.Any) -> None:
30
+ _loger = t.cast("Logger", inst._logger)
31
+ _loger.opt(lazy=True, colors=True).info(msg)
32
+
33
+ @staticmethod
34
+ def error(inst: "TransportationLogger", msg: t.Any) -> None:
35
+ _loger = t.cast("Logger", inst._logger)
36
+ _loger.opt(lazy=True, colors=True).error(msg)
37
+
38
+ @staticmethod
39
+ def debug_request(inst: "TransportationLogger", request: object) -> None:
40
+ _loger = t.cast("Logger", inst._logger)
41
+ _loger.opt(lazy=True, colors=True).debug(f"{SYMBOL_REQUEST} {request!r}")
42
+
43
+ @staticmethod
44
+ def debug_response(inst: "TransportationLogger", response: object) -> None:
45
+ _loger = t.cast("Logger", inst._logger)
46
+ _loger.opt(lazy=True, colors=True).debug(f"{SYMBOL_RESPONSE} {response!r}")
47
+
48
+ @staticmethod
49
+ def debug_push(inst: "TransportationLogger", response: object) -> None:
50
+ _loger = t.cast("Logger", inst._logger)
51
+ _loger.opt(lazy=True, colors=True).debug(f"{SYMBOL_PUSH} {response!r}")
@@ -0,0 +1,48 @@
1
+ from __future__ import annotations
2
+ import typing as t
3
+
4
+ if t.TYPE_CHECKING:
5
+ from .__logger import (
6
+ TransportationLogger,
7
+ CustomLogger,
8
+ )
9
+
10
+
11
+ RESET = "\x1b[0m"
12
+ YELLOW = "\x1b[30;43m"
13
+ GREEN = "\x1b[30;42m"
14
+ MAGENTA = "\x1b[1;45m"
15
+
16
+ SYMBOL_REQUEST = f"{GREEN} -> {RESET}"
17
+ SYMBOL_PUSH = f"{MAGENTA} -P {RESET}"
18
+ SYMBOL_RESPONSE = f"{YELLOW} <- {RESET}"
19
+
20
+ class StateOnUser:
21
+ @staticmethod
22
+ def setup(connid: str, logger: "CustomLogger") -> "CustomLogger" | None:
23
+ return logger
24
+
25
+ @staticmethod
26
+ def info(inst: "TransportationLogger", msg: t.Any) -> None:
27
+ _logger = t.cast("CustomLogger", inst._logger)
28
+ _logger.info(msg)
29
+
30
+ @staticmethod
31
+ def error(inst: "TransportationLogger", msg: t.Any) -> None:
32
+ _logger = t.cast("CustomLogger", inst._logger)
33
+ _logger.error(msg)
34
+
35
+ @staticmethod
36
+ def debug_request(inst: "TransportationLogger", request: object) -> None:
37
+ _logger = t.cast("CustomLogger", inst._logger)
38
+ _logger.debug(f"{SYMBOL_REQUEST} {request!r}")
39
+
40
+ @staticmethod
41
+ def debug_response(inst: "TransportationLogger", response: object) -> None:
42
+ _logger = t.cast("CustomLogger", inst._logger)
43
+ _logger.debug(f"{SYMBOL_RESPONSE} {response!r}")
44
+
45
+ @staticmethod
46
+ def debug_push(inst: "TransportationLogger", response: object) -> None:
47
+ _logger = t.cast("CustomLogger", inst._logger)
48
+ _logger.debug(f"{SYMBOL_PUSH} {response!r}")
@@ -0,0 +1,77 @@
1
+ from enum import IntEnum
2
+ from typing import Final
3
+
4
+
5
+ NOTHING: Final = 0xFF
6
+ WILDCARD: Final = 0xFE
7
+ NOVALUE: Final = "N/A"
8
+ MAGIC_WORD: Final = b"XENA"
9
+ # MAGIC_WORD = 0x58454E41
10
+
11
+
12
+ def indices_format(number: int) -> str:
13
+ return f"!{number}I"
14
+
15
+
16
+ class CommandType(IntEnum):
17
+ """BXMP request type"""
18
+
19
+ COMMAND_CHAIN = 1
20
+ COMMAND_QUERY = 2
21
+ COMMAND_VALUE = 3
22
+ COMMAND_STATUS = 4
23
+
24
+
25
+ class CommandStatus(IntEnum):
26
+ """Status codes in BXMP response message to request type <COMMAND_STATUS = 4>"""
27
+
28
+ OK = 0
29
+ """OK"""
30
+ NOCONNECTIONS = 1
31
+ """chassis has no available connection slots"""
32
+ NOTLOGGEDON = 2
33
+ """no command can be submitted before logon"""
34
+ NOTRESERVED = 3
35
+ """parameter cannot be set because containing resource not reserved"""
36
+ NOTWRITABLE = 4
37
+ """parameter cannot be set because it is not in a writable state"""
38
+ NOTREADABLE = 5
39
+ """parameter is write-only"""
40
+ NOTVALID = 6
41
+ """operation not valid in current state"""
42
+ BADHEADER = 7
43
+ """invalid magic word"""
44
+ BADCOMMAND = 8
45
+ """invalid command"""
46
+ BADPARAMETER = 9
47
+ """invalid parameter code"""
48
+ BADMODULE = 10
49
+ """invalid module index"""
50
+ BADPORT = 11
51
+ """invalid port index"""
52
+ BADINDEX = 12
53
+ """invalid parameter index"""
54
+ BADSIZE = 13
55
+ """invalid size of data"""
56
+ BADVALUE = 14
57
+ """invalid value of data"""
58
+ FAILED = 15
59
+ """failed to perform operation"""
60
+ MEMORYFAILURE = 16
61
+ """failed to allocate memory"""
62
+ NOLICPE = 17
63
+ """no free PE license"""
64
+ NOLICPORT = 18
65
+ """no free Port license"""
66
+ NOTSUPPORTED = 19
67
+ """feature not supported"""
68
+ PENDING = 20
69
+ """status return will wait until command has been executed"""
70
+ MODULE_OPERATION_NOT_SUPPORTED_BY_CHASSIS = 21
71
+ """module is not supported by chassis - e.g. because multi-image requires x64 OS."""
72
+ XLSFAILED = 22
73
+ """could not establish connection to Xena License Server"""
74
+ XLSDENIED = 23
75
+ """request for resource rejected by Xena License Server"""
76
+ XLSINVALID = 24
77
+ """Trying to run Valkyrie VE with VulcanVE-300 resource"""
@@ -0,0 +1,59 @@
1
+ from __future__ import annotations
2
+ from typing import Generator
3
+ from . import _constants as const
4
+
5
+
6
+ def repr_bytes(data: bytes) -> list[str]:
7
+ return data.hex(",").split(",")
8
+
9
+
10
+ def get_code_str(x) -> Generator[int | str, None, None]:
11
+ code, ty = (
12
+ x.header.cmd_code,
13
+ x.header.cmd_type,
14
+ )
15
+ yield const.CommandType(ty).name
16
+ if ty == const.CommandType.COMMAND_STATUS:
17
+ yield const.CommandStatus(code).name
18
+ else:
19
+ yield code
20
+
21
+
22
+ def format_repr(obj) -> str:
23
+ ty_str, code_str = get_code_str(obj)
24
+ return (
25
+ f"{str(obj.header.request_identifier):5s} "
26
+ f"{str(obj.header.module_index):3s} "
27
+ f"{str(obj.header.port_index):3s} "
28
+ f"{str(obj.index_values):10s} "
29
+ f"{str(obj.class_name):25s} "
30
+ f"{str(code_str):6s} "
31
+ f"{str(ty_str):15s} "
32
+ f"{obj.values}"
33
+ )
34
+
35
+
36
+ def format_str(obj) -> str:
37
+ bin_str = repr_bytes(bytes(obj))
38
+ ty_str, code_str = get_code_str(obj)
39
+ obj_name = type(obj).__name__
40
+ if obj_name == 'Response':
41
+ cmd_p = 'Replied' if obj.header.request_identifier != 0 else 'Pushed'
42
+ else:
43
+ cmd_p = [code_str, ty_str]
44
+
45
+ return "\n" + "\n".join(
46
+ (
47
+ f"{obj_name} : {bin_str}",
48
+ f"class_name : {obj.class_name}",
49
+ f"magic_word : {obj.header.magic_word}",
50
+ f"number_of_indices : {obj.header.number_of_indices}",
51
+ f"number_of_value_bytes: {obj.header.number_of_value_bytes}",
52
+ f"command_parameter : {obj.header.command_parameter}:{cmd_p}",
53
+ f"module_index : {obj.header.module_index}",
54
+ f"port_index : {obj.header.port_index}",
55
+ f"request_identifier : {obj.header.request_identifier}",
56
+ f"index_values : {obj.index_values}",
57
+ f"values : {obj.values}",
58
+ )
59
+ )