pypcapkit 1.3.3.post1__cp313-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 (466) hide show
  1. pcapkit/__init__.py +126 -0
  2. pcapkit/__main__.py +138 -0
  3. pcapkit/all.py +136 -0
  4. pcapkit/const/__init__.py +81 -0
  5. pcapkit/const/arp/__init__.py +25 -0
  6. pcapkit/const/arp/hardware.py +181 -0
  7. pcapkit/const/arp/operation.py +131 -0
  8. pcapkit/const/ftp/__init__.py +25 -0
  9. pcapkit/const/ftp/command.py +309 -0
  10. pcapkit/const/ftp/return_code.py +304 -0
  11. pcapkit/const/hip/__init__.py +94 -0
  12. pcapkit/const/hip/certificate.py +77 -0
  13. pcapkit/const/hip/cipher.py +65 -0
  14. pcapkit/const/hip/di.py +59 -0
  15. pcapkit/const/hip/ecdsa_curve.py +59 -0
  16. pcapkit/const/hip/ecdsa_low_curve.py +56 -0
  17. pcapkit/const/hip/eddsa_curve.py +65 -0
  18. pcapkit/const/hip/esp_transform_suite.py +98 -0
  19. pcapkit/const/hip/group.py +86 -0
  20. pcapkit/const/hip/hi_algorithm.py +86 -0
  21. pcapkit/const/hip/hit_suite.py +68 -0
  22. pcapkit/const/hip/nat_traversal.py +62 -0
  23. pcapkit/const/hip/notify_message.py +200 -0
  24. pcapkit/const/hip/packet.py +89 -0
  25. pcapkit/const/hip/parameter.py +377 -0
  26. pcapkit/const/hip/registration.py +68 -0
  27. pcapkit/const/hip/registration_failure.py +84 -0
  28. pcapkit/const/hip/suite.py +71 -0
  29. pcapkit/const/hip/transport.py +59 -0
  30. pcapkit/const/http/__init__.py +39 -0
  31. pcapkit/const/http/error_code.py +95 -0
  32. pcapkit/const/http/frame.py +95 -0
  33. pcapkit/const/http/method.py +184 -0
  34. pcapkit/const/http/setting.py +96 -0
  35. pcapkit/const/http/status_code.py +294 -0
  36. pcapkit/const/ipv4/__init__.py +57 -0
  37. pcapkit/const/ipv4/classification_level.py +64 -0
  38. pcapkit/const/ipv4/option_class.py +55 -0
  39. pcapkit/const/ipv4/option_number.py +137 -0
  40. pcapkit/const/ipv4/protection_authority.py +63 -0
  41. pcapkit/const/ipv4/qs_function.py +51 -0
  42. pcapkit/const/ipv4/router_alert.py +251 -0
  43. pcapkit/const/ipv4/tos_del.py +51 -0
  44. pcapkit/const/ipv4/tos_ecn.py +55 -0
  45. pcapkit/const/ipv4/tos_pre.py +63 -0
  46. pcapkit/const/ipv4/tos_rel.py +51 -0
  47. pcapkit/const/ipv4/tos_thr.py +51 -0
  48. pcapkit/const/ipv4/ts_flag.py +53 -0
  49. pcapkit/const/ipv6/__init__.py +53 -0
  50. pcapkit/const/ipv6/extension_header.py +66 -0
  51. pcapkit/const/ipv6/option.py +137 -0
  52. pcapkit/const/ipv6/option_action.py +55 -0
  53. pcapkit/const/ipv6/qs_function.py +51 -0
  54. pcapkit/const/ipv6/router_alert.py +266 -0
  55. pcapkit/const/ipv6/routing.py +80 -0
  56. pcapkit/const/ipv6/seed_id.py +55 -0
  57. pcapkit/const/ipv6/smf_dpd_mode.py +51 -0
  58. pcapkit/const/ipv6/tagger_id.py +62 -0
  59. pcapkit/const/ipx/__init__.py +27 -0
  60. pcapkit/const/ipx/packet.py +72 -0
  61. pcapkit/const/ipx/socket.py +104 -0
  62. pcapkit/const/l2tp/__init__.py +21 -0
  63. pcapkit/const/l2tp/type.py +51 -0
  64. pcapkit/const/mh/__init__.py +204 -0
  65. pcapkit/const/mh/access_type.py +92 -0
  66. pcapkit/const/mh/ack_status_code.py +71 -0
  67. pcapkit/const/mh/ani_suboption.py +74 -0
  68. pcapkit/const/mh/auth_subtype.py +53 -0
  69. pcapkit/const/mh/binding_ack_flag.py +66 -0
  70. pcapkit/const/mh/binding_error.py +51 -0
  71. pcapkit/const/mh/binding_revocation.py +59 -0
  72. pcapkit/const/mh/binding_update_flag.py +81 -0
  73. pcapkit/const/mh/cga_extension.py +66 -0
  74. pcapkit/const/mh/cga_sec.py +57 -0
  75. pcapkit/const/mh/cga_type.py +68 -0
  76. pcapkit/const/mh/dhcp_support_mode.py +53 -0
  77. pcapkit/const/mh/dns_status_code.py +65 -0
  78. pcapkit/const/mh/dsmip6_tls_packet.py +62 -0
  79. pcapkit/const/mh/dsmipv6_home_address.py +74 -0
  80. pcapkit/const/mh/enumerating_algorithm.py +56 -0
  81. pcapkit/const/mh/fb_ack_status.py +62 -0
  82. pcapkit/const/mh/fb_action.py +71 -0
  83. pcapkit/const/mh/fb_indication_trigger.py +65 -0
  84. pcapkit/const/mh/fb_type.py +59 -0
  85. pcapkit/const/mh/flow_id_status.py +77 -0
  86. pcapkit/const/mh/flow_id_suboption.py +71 -0
  87. pcapkit/const/mh/handoff_type.py +71 -0
  88. pcapkit/const/mh/handover_ack_flag.py +54 -0
  89. pcapkit/const/mh/handover_ack_status.py +92 -0
  90. pcapkit/const/mh/handover_initiate_flag.py +57 -0
  91. pcapkit/const/mh/handover_initiate_status.py +62 -0
  92. pcapkit/const/mh/home_address_reply.py +71 -0
  93. pcapkit/const/mh/lla_code.py +63 -0
  94. pcapkit/const/mh/lma_mag_suboption.py +59 -0
  95. pcapkit/const/mh/mn_group_id.py +59 -0
  96. pcapkit/const/mh/mn_id_subtype.py +77 -0
  97. pcapkit/const/mh/operator_id.py +63 -0
  98. pcapkit/const/mh/option.py +260 -0
  99. pcapkit/const/mh/packet.py +119 -0
  100. pcapkit/const/mh/qos_attribute.py +89 -0
  101. pcapkit/const/mh/revocation_status_code.py +83 -0
  102. pcapkit/const/mh/revocation_trigger.py +86 -0
  103. pcapkit/const/mh/status_code.py +232 -0
  104. pcapkit/const/mh/traffic_selector.py +62 -0
  105. pcapkit/const/mh/upa_status.py +71 -0
  106. pcapkit/const/mh/upn_reason.py +80 -0
  107. pcapkit/const/ospf/__init__.py +27 -0
  108. pcapkit/const/ospf/authentication.py +65 -0
  109. pcapkit/const/ospf/packet.py +71 -0
  110. pcapkit/const/pcapng/__init__.py +51 -0
  111. pcapkit/const/pcapng/block_type.py +152 -0
  112. pcapkit/const/pcapng/filter_type.py +48 -0
  113. pcapkit/const/pcapng/hash_algorithm.py +59 -0
  114. pcapkit/const/pcapng/option_type.py +233 -0
  115. pcapkit/const/pcapng/record_type.py +57 -0
  116. pcapkit/const/pcapng/secrets_type.py +56 -0
  117. pcapkit/const/pcapng/verdict_type.py +53 -0
  118. pcapkit/const/reg/__init__.py +34 -0
  119. pcapkit/const/reg/apptype.py +32702 -0
  120. pcapkit/const/reg/ethertype.py +714 -0
  121. pcapkit/const/reg/linktype.py +902 -0
  122. pcapkit/const/reg/transtype.py +523 -0
  123. pcapkit/const/tcp/__init__.py +35 -0
  124. pcapkit/const/tcp/checksum.py +55 -0
  125. pcapkit/const/tcp/flags.py +73 -0
  126. pcapkit/const/tcp/mp_tcp_option.py +80 -0
  127. pcapkit/const/tcp/option.py +198 -0
  128. pcapkit/const/vlan/__init__.py +23 -0
  129. pcapkit/const/vlan/priority_level.py +71 -0
  130. pcapkit/corekit/__init__.py +59 -0
  131. pcapkit/corekit/fields/__init__.py +45 -0
  132. pcapkit/corekit/fields/collections.py +282 -0
  133. pcapkit/corekit/fields/field.py +269 -0
  134. pcapkit/corekit/fields/ipaddress.py +274 -0
  135. pcapkit/corekit/fields/misc.py +722 -0
  136. pcapkit/corekit/fields/numbers.py +375 -0
  137. pcapkit/corekit/fields/strings.py +245 -0
  138. pcapkit/corekit/infoclass.py +394 -0
  139. pcapkit/corekit/io.py +506 -0
  140. pcapkit/corekit/module.py +39 -0
  141. pcapkit/corekit/multidict.py +626 -0
  142. pcapkit/corekit/protochain.py +263 -0
  143. pcapkit/corekit/version.py +33 -0
  144. pcapkit/dumpkit/__init__.py +15 -0
  145. pcapkit/dumpkit/common.py +199 -0
  146. pcapkit/dumpkit/null.py +77 -0
  147. pcapkit/dumpkit/pcap.py +144 -0
  148. pcapkit/foundation/__init__.py +45 -0
  149. pcapkit/foundation/engines/__init__.py +36 -0
  150. pcapkit/foundation/engines/dpkt.py +230 -0
  151. pcapkit/foundation/engines/engine.py +194 -0
  152. pcapkit/foundation/engines/pcap.py +188 -0
  153. pcapkit/foundation/engines/pcapng.py +310 -0
  154. pcapkit/foundation/engines/pyshark.py +166 -0
  155. pcapkit/foundation/engines/scapy.py +161 -0
  156. pcapkit/foundation/extraction.py +915 -0
  157. pcapkit/foundation/reassembly/__init__.py +49 -0
  158. pcapkit/foundation/reassembly/data/__init__.py +48 -0
  159. pcapkit/foundation/reassembly/data/ip.py +117 -0
  160. pcapkit/foundation/reassembly/data/tcp.py +145 -0
  161. pcapkit/foundation/reassembly/ip.py +192 -0
  162. pcapkit/foundation/reassembly/ipv4.py +50 -0
  163. pcapkit/foundation/reassembly/ipv6.py +50 -0
  164. pcapkit/foundation/reassembly/reassembly.py +389 -0
  165. pcapkit/foundation/reassembly/tcp.py +249 -0
  166. pcapkit/foundation/registry/__init__.py +41 -0
  167. pcapkit/foundation/registry/foundation.py +327 -0
  168. pcapkit/foundation/registry/protocols.py +885 -0
  169. pcapkit/foundation/traceflow/__init__.py +44 -0
  170. pcapkit/foundation/traceflow/data/__init__.py +30 -0
  171. pcapkit/foundation/traceflow/data/tcp.py +105 -0
  172. pcapkit/foundation/traceflow/tcp.py +159 -0
  173. pcapkit/foundation/traceflow/traceflow.py +390 -0
  174. pcapkit/interface/__init__.py +22 -0
  175. pcapkit/interface/core.py +185 -0
  176. pcapkit/interface/misc.py +120 -0
  177. pcapkit/protocols/__init__.py +85 -0
  178. pcapkit/protocols/application/NotImplemented/bgp.py +0 -0
  179. pcapkit/protocols/application/NotImplemented/dhcp.py +0 -0
  180. pcapkit/protocols/application/NotImplemented/dhcpv6.py +0 -0
  181. pcapkit/protocols/application/NotImplemented/dns.py +0 -0
  182. pcapkit/protocols/application/NotImplemented/imap.py +0 -0
  183. pcapkit/protocols/application/NotImplemented/ldap.py +0 -0
  184. pcapkit/protocols/application/NotImplemented/mqtt.py +0 -0
  185. pcapkit/protocols/application/NotImplemented/nntp.py +0 -0
  186. pcapkit/protocols/application/NotImplemented/ntp.py +0 -0
  187. pcapkit/protocols/application/NotImplemented/onc_rpc.py +0 -0
  188. pcapkit/protocols/application/NotImplemented/pop.py +0 -0
  189. pcapkit/protocols/application/NotImplemented/rip.py +0 -0
  190. pcapkit/protocols/application/NotImplemented/rtp.py +0 -0
  191. pcapkit/protocols/application/NotImplemented/sip.py +0 -0
  192. pcapkit/protocols/application/NotImplemented/smtp.py +0 -0
  193. pcapkit/protocols/application/NotImplemented/snmp.py +0 -0
  194. pcapkit/protocols/application/NotImplemented/ssh.py +0 -0
  195. pcapkit/protocols/application/NotImplemented/telnet.py +0 -0
  196. pcapkit/protocols/application/NotImplemented/tls.py +0 -0
  197. pcapkit/protocols/application/NotImplemented/xmpp.py +0 -0
  198. pcapkit/protocols/application/__init__.py +34 -0
  199. pcapkit/protocols/application/application.py +114 -0
  200. pcapkit/protocols/application/ftp.py +206 -0
  201. pcapkit/protocols/application/http.py +176 -0
  202. pcapkit/protocols/application/httpv1.py +320 -0
  203. pcapkit/protocols/application/httpv2.py +1255 -0
  204. pcapkit/protocols/data/__init__.py +192 -0
  205. pcapkit/protocols/data/application/__init__.py +57 -0
  206. pcapkit/protocols/data/application/ftp.py +59 -0
  207. pcapkit/protocols/data/application/httpv1.py +79 -0
  208. pcapkit/protocols/data/application/httpv2.py +293 -0
  209. pcapkit/protocols/data/data.py +25 -0
  210. pcapkit/protocols/data/internet/__init__.py +298 -0
  211. pcapkit/protocols/data/internet/ah.py +31 -0
  212. pcapkit/protocols/data/internet/hip.py +804 -0
  213. pcapkit/protocols/data/internet/hopopt.py +351 -0
  214. pcapkit/protocols/data/internet/ipv4.py +369 -0
  215. pcapkit/protocols/data/internet/ipv6.py +67 -0
  216. pcapkit/protocols/data/internet/ipv6_frag.py +29 -0
  217. pcapkit/protocols/data/internet/ipv6_opts.py +368 -0
  218. pcapkit/protocols/data/internet/ipv6_route.py +86 -0
  219. pcapkit/protocols/data/internet/ipx.py +56 -0
  220. pcapkit/protocols/data/internet/mh.py +509 -0
  221. pcapkit/protocols/data/link/__init__.py +33 -0
  222. pcapkit/protocols/data/link/arp.py +74 -0
  223. pcapkit/protocols/data/link/ethernet.py +28 -0
  224. pcapkit/protocols/data/link/l2tp.py +63 -0
  225. pcapkit/protocols/data/link/ospf.py +58 -0
  226. pcapkit/protocols/data/link/vlan.py +42 -0
  227. pcapkit/protocols/data/misc/__init__.py +109 -0
  228. pcapkit/protocols/data/misc/null.py +18 -0
  229. pcapkit/protocols/data/misc/pcap/__init__.py +18 -0
  230. pcapkit/protocols/data/misc/pcap/frame.py +56 -0
  231. pcapkit/protocols/data/misc/pcap/header.py +53 -0
  232. pcapkit/protocols/data/misc/pcapng.py +925 -0
  233. pcapkit/protocols/data/misc/raw.py +25 -0
  234. pcapkit/protocols/data/protocol.py +32 -0
  235. pcapkit/protocols/data/transport/__init__.py +71 -0
  236. pcapkit/protocols/data/transport/tcp.py +555 -0
  237. pcapkit/protocols/data/transport/udp.py +29 -0
  238. pcapkit/protocols/internet/NotImplemented/ecn.py +0 -0
  239. pcapkit/protocols/internet/NotImplemented/esp.py +97 -0
  240. pcapkit/protocols/internet/NotImplemented/icmp.py +0 -0
  241. pcapkit/protocols/internet/NotImplemented/icmpv6.py +0 -0
  242. pcapkit/protocols/internet/NotImplemented/igmp.py +0 -0
  243. pcapkit/protocols/internet/NotImplemented/shim6.py +0 -0
  244. pcapkit/protocols/internet/__init__.py +43 -0
  245. pcapkit/protocols/internet/ah.py +275 -0
  246. pcapkit/protocols/internet/hip.py +4727 -0
  247. pcapkit/protocols/internet/hopopt.py +1879 -0
  248. pcapkit/protocols/internet/internet.py +240 -0
  249. pcapkit/protocols/internet/ip.py +51 -0
  250. pcapkit/protocols/internet/ipsec.py +50 -0
  251. pcapkit/protocols/internet/ipv4.py +1782 -0
  252. pcapkit/protocols/internet/ipv6.py +361 -0
  253. pcapkit/protocols/internet/ipv6_frag.py +258 -0
  254. pcapkit/protocols/internet/ipv6_opts.py +1890 -0
  255. pcapkit/protocols/internet/ipv6_route.py +710 -0
  256. pcapkit/protocols/internet/ipx.py +230 -0
  257. pcapkit/protocols/internet/mh.py +2764 -0
  258. pcapkit/protocols/link/NotImplemented/dsl.py +0 -0
  259. pcapkit/protocols/link/NotImplemented/eapol.py +1 -0
  260. pcapkit/protocols/link/NotImplemented/fddi.py +0 -0
  261. pcapkit/protocols/link/NotImplemented/isdn.py +0 -0
  262. pcapkit/protocols/link/NotImplemented/ndp.py +0 -0
  263. pcapkit/protocols/link/NotImplemented/ppp.py +0 -0
  264. pcapkit/protocols/link/__init__.py +35 -0
  265. pcapkit/protocols/link/arp.py +421 -0
  266. pcapkit/protocols/link/ethernet.py +248 -0
  267. pcapkit/protocols/link/l2tp.py +267 -0
  268. pcapkit/protocols/link/link.py +140 -0
  269. pcapkit/protocols/link/ospf.py +342 -0
  270. pcapkit/protocols/link/rarp.py +82 -0
  271. pcapkit/protocols/link/vlan.py +225 -0
  272. pcapkit/protocols/misc/__init__.py +37 -0
  273. pcapkit/protocols/misc/null.py +129 -0
  274. pcapkit/protocols/misc/pcap/__init__.py +17 -0
  275. pcapkit/protocols/misc/pcap/frame.py +478 -0
  276. pcapkit/protocols/misc/pcap/header.py +358 -0
  277. pcapkit/protocols/misc/pcapng.py +5520 -0
  278. pcapkit/protocols/misc/raw.py +180 -0
  279. pcapkit/protocols/protocol.py +1216 -0
  280. pcapkit/protocols/schema/__init__.py +140 -0
  281. pcapkit/protocols/schema/application/__init__.py +40 -0
  282. pcapkit/protocols/schema/application/ftp.py +21 -0
  283. pcapkit/protocols/schema/application/httpv1.py +21 -0
  284. pcapkit/protocols/schema/application/httpv2.py +384 -0
  285. pcapkit/protocols/schema/internet/__init__.py +294 -0
  286. pcapkit/protocols/schema/internet/ah.py +40 -0
  287. pcapkit/protocols/schema/internet/hip.py +1184 -0
  288. pcapkit/protocols/schema/internet/hopopt.py +679 -0
  289. pcapkit/protocols/schema/internet/ipv4.py +576 -0
  290. pcapkit/protocols/schema/internet/ipv6.py +63 -0
  291. pcapkit/protocols/schema/internet/ipv6_frag.py +48 -0
  292. pcapkit/protocols/schema/internet/ipv6_opts.py +680 -0
  293. pcapkit/protocols/schema/internet/ipv6_route.py +198 -0
  294. pcapkit/protocols/schema/internet/ipx.py +40 -0
  295. pcapkit/protocols/schema/internet/mh.py +718 -0
  296. pcapkit/protocols/schema/link/__init__.py +19 -0
  297. pcapkit/protocols/schema/link/arp.py +39 -0
  298. pcapkit/protocols/schema/link/ethernet.py +51 -0
  299. pcapkit/protocols/schema/link/l2tp.py +88 -0
  300. pcapkit/protocols/schema/link/ospf.py +90 -0
  301. pcapkit/protocols/schema/link/vlan.py +69 -0
  302. pcapkit/protocols/schema/misc/__init__.py +108 -0
  303. pcapkit/protocols/schema/misc/null.py +18 -0
  304. pcapkit/protocols/schema/misc/pcap/__init__.py +10 -0
  305. pcapkit/protocols/schema/misc/pcap/frame.py +51 -0
  306. pcapkit/protocols/schema/misc/pcap/header.py +63 -0
  307. pcapkit/protocols/schema/misc/pcapng.py +1689 -0
  308. pcapkit/protocols/schema/misc/raw.py +24 -0
  309. pcapkit/protocols/schema/schema.py +809 -0
  310. pcapkit/protocols/schema/transport/__init__.py +69 -0
  311. pcapkit/protocols/schema/transport/tcp.py +928 -0
  312. pcapkit/protocols/schema/transport/udp.py +90 -0
  313. pcapkit/protocols/transport/NotImplemented/dccp.py +0 -0
  314. pcapkit/protocols/transport/NotImplemented/rsvp.py +0 -0
  315. pcapkit/protocols/transport/NotImplemented/sctp.py +0 -0
  316. pcapkit/protocols/transport/__init__.py +27 -0
  317. pcapkit/protocols/transport/tcp.py +3025 -0
  318. pcapkit/protocols/transport/transport.py +158 -0
  319. pcapkit/protocols/transport/udp.py +214 -0
  320. pcapkit/py.typed +0 -0
  321. pcapkit/toolkit/__init__.py +57 -0
  322. pcapkit/toolkit/dpkt.py +306 -0
  323. pcapkit/toolkit/pcap.py +212 -0
  324. pcapkit/toolkit/pcapng.py +251 -0
  325. pcapkit/toolkit/pyshark.py +99 -0
  326. pcapkit/toolkit/scapy.py +297 -0
  327. pcapkit/utilities/__init__.py +20 -0
  328. pcapkit/utilities/compat.py +196 -0
  329. pcapkit/utilities/decorators.py +192 -0
  330. pcapkit/utilities/exceptions.py +365 -0
  331. pcapkit/utilities/logging.py +55 -0
  332. pcapkit/utilities/warnings.py +185 -0
  333. pcapkit/vendor/__init__.py +105 -0
  334. pcapkit/vendor/__main__.py +92 -0
  335. pcapkit/vendor/arp/__init__.py +27 -0
  336. pcapkit/vendor/arp/hardware.py +29 -0
  337. pcapkit/vendor/arp/operation.py +29 -0
  338. pcapkit/vendor/default.py +474 -0
  339. pcapkit/vendor/ftp/__init__.py +27 -0
  340. pcapkit/vendor/ftp/command.py +244 -0
  341. pcapkit/vendor/ftp/return_code.py +256 -0
  342. pcapkit/vendor/hip/__init__.py +94 -0
  343. pcapkit/vendor/hip/certificate.py +29 -0
  344. pcapkit/vendor/hip/cipher.py +29 -0
  345. pcapkit/vendor/hip/di.py +29 -0
  346. pcapkit/vendor/hip/ecdsa_curve.py +29 -0
  347. pcapkit/vendor/hip/ecdsa_low_curve.py +29 -0
  348. pcapkit/vendor/hip/eddsa_curve.py +85 -0
  349. pcapkit/vendor/hip/esp_transform_suite.py +29 -0
  350. pcapkit/vendor/hip/group.py +87 -0
  351. pcapkit/vendor/hip/hi_algorithm.py +29 -0
  352. pcapkit/vendor/hip/hit_suite.py +29 -0
  353. pcapkit/vendor/hip/nat_traversal.py +29 -0
  354. pcapkit/vendor/hip/notify_message.py +29 -0
  355. pcapkit/vendor/hip/packet.py +88 -0
  356. pcapkit/vendor/hip/parameter.py +88 -0
  357. pcapkit/vendor/hip/registration.py +29 -0
  358. pcapkit/vendor/hip/registration_failure.py +29 -0
  359. pcapkit/vendor/hip/suite.py +29 -0
  360. pcapkit/vendor/hip/transport.py +29 -0
  361. pcapkit/vendor/http/__init__.py +39 -0
  362. pcapkit/vendor/http/error_code.py +95 -0
  363. pcapkit/vendor/http/frame.py +91 -0
  364. pcapkit/vendor/http/method.py +167 -0
  365. pcapkit/vendor/http/setting.py +93 -0
  366. pcapkit/vendor/http/status_code.py +185 -0
  367. pcapkit/vendor/ipv4/__init__.py +57 -0
  368. pcapkit/vendor/ipv4/classification_level.py +91 -0
  369. pcapkit/vendor/ipv4/option_class.py +80 -0
  370. pcapkit/vendor/ipv4/option_number.py +105 -0
  371. pcapkit/vendor/ipv4/protection_authority.py +84 -0
  372. pcapkit/vendor/ipv4/qs_function.py +78 -0
  373. pcapkit/vendor/ipv4/router_alert.py +93 -0
  374. pcapkit/vendor/ipv4/tos_del.py +78 -0
  375. pcapkit/vendor/ipv4/tos_ecn.py +95 -0
  376. pcapkit/vendor/ipv4/tos_pre.py +84 -0
  377. pcapkit/vendor/ipv4/tos_rel.py +78 -0
  378. pcapkit/vendor/ipv4/tos_thr.py +77 -0
  379. pcapkit/vendor/ipv4/ts_flag.py +79 -0
  380. pcapkit/vendor/ipv6/__init__.py +53 -0
  381. pcapkit/vendor/ipv6/extension_header.py +171 -0
  382. pcapkit/vendor/ipv6/option.py +104 -0
  383. pcapkit/vendor/ipv6/option_action.py +90 -0
  384. pcapkit/vendor/ipv6/qs_function.py +78 -0
  385. pcapkit/vendor/ipv6/router_alert.py +93 -0
  386. pcapkit/vendor/ipv6/routing.py +87 -0
  387. pcapkit/vendor/ipv6/seed_id.py +81 -0
  388. pcapkit/vendor/ipv6/smf_dpd_mode.py +78 -0
  389. pcapkit/vendor/ipv6/tagger_id.py +81 -0
  390. pcapkit/vendor/ipx/__init__.py +37 -0
  391. pcapkit/vendor/ipx/packet.py +123 -0
  392. pcapkit/vendor/ipx/socket.py +125 -0
  393. pcapkit/vendor/l2tp/__init__.py +21 -0
  394. pcapkit/vendor/l2tp/type.py +78 -0
  395. pcapkit/vendor/mh/__init__.py +204 -0
  396. pcapkit/vendor/mh/access_type.py +87 -0
  397. pcapkit/vendor/mh/ack_status_code.py +88 -0
  398. pcapkit/vendor/mh/ani_suboption.py +88 -0
  399. pcapkit/vendor/mh/auth_subtype.py +83 -0
  400. pcapkit/vendor/mh/binding_ack_flag.py +148 -0
  401. pcapkit/vendor/mh/binding_error.py +78 -0
  402. pcapkit/vendor/mh/binding_revocation.py +87 -0
  403. pcapkit/vendor/mh/binding_update_flag.py +147 -0
  404. pcapkit/vendor/mh/cga_extension.py +91 -0
  405. pcapkit/vendor/mh/cga_sec.py +91 -0
  406. pcapkit/vendor/mh/cga_type.py +74 -0
  407. pcapkit/vendor/mh/dhcp_support_mode.py +77 -0
  408. pcapkit/vendor/mh/dns_status_code.py +87 -0
  409. pcapkit/vendor/mh/dsmip6_tls_packet.py +87 -0
  410. pcapkit/vendor/mh/dsmipv6_home_address.py +87 -0
  411. pcapkit/vendor/mh/enumerating_algorithm.py +82 -0
  412. pcapkit/vendor/mh/fb_ack_status.py +87 -0
  413. pcapkit/vendor/mh/fb_action.py +88 -0
  414. pcapkit/vendor/mh/fb_indication_trigger.py +87 -0
  415. pcapkit/vendor/mh/fb_type.py +88 -0
  416. pcapkit/vendor/mh/flow_id_status.py +87 -0
  417. pcapkit/vendor/mh/flow_id_suboption.py +87 -0
  418. pcapkit/vendor/mh/handoff_type.py +87 -0
  419. pcapkit/vendor/mh/handover_ack_flag.py +143 -0
  420. pcapkit/vendor/mh/handover_ack_status.py +87 -0
  421. pcapkit/vendor/mh/handover_initiate_flag.py +143 -0
  422. pcapkit/vendor/mh/handover_initiate_status.py +87 -0
  423. pcapkit/vendor/mh/home_address_reply.py +87 -0
  424. pcapkit/vendor/mh/lla_code.py +97 -0
  425. pcapkit/vendor/mh/lma_mag_suboption.py +88 -0
  426. pcapkit/vendor/mh/mn_group_id.py +87 -0
  427. pcapkit/vendor/mh/mn_id_subtype.py +87 -0
  428. pcapkit/vendor/mh/operator_id.py +87 -0
  429. pcapkit/vendor/mh/option.py +83 -0
  430. pcapkit/vendor/mh/packet.py +82 -0
  431. pcapkit/vendor/mh/qos_attribute.py +87 -0
  432. pcapkit/vendor/mh/revocation_status_code.py +87 -0
  433. pcapkit/vendor/mh/revocation_trigger.py +87 -0
  434. pcapkit/vendor/mh/status_code.py +91 -0
  435. pcapkit/vendor/mh/traffic_selector.py +87 -0
  436. pcapkit/vendor/mh/upa_status.py +87 -0
  437. pcapkit/vendor/mh/upn_reason.py +87 -0
  438. pcapkit/vendor/ospf/__init__.py +27 -0
  439. pcapkit/vendor/ospf/authentication.py +29 -0
  440. pcapkit/vendor/ospf/packet.py +29 -0
  441. pcapkit/vendor/pcapng/__init__.py +51 -0
  442. pcapkit/vendor/pcapng/block_type.py +94 -0
  443. pcapkit/vendor/pcapng/filter_type.py +77 -0
  444. pcapkit/vendor/pcapng/hash_algorithm.py +82 -0
  445. pcapkit/vendor/pcapng/option_type.py +287 -0
  446. pcapkit/vendor/pcapng/record_type.py +81 -0
  447. pcapkit/vendor/pcapng/secrets_type.py +81 -0
  448. pcapkit/vendor/pcapng/verdict_type.py +79 -0
  449. pcapkit/vendor/reg/__init__.py +34 -0
  450. pcapkit/vendor/reg/apptype.py +338 -0
  451. pcapkit/vendor/reg/ethertype.py +121 -0
  452. pcapkit/vendor/reg/linktype.py +110 -0
  453. pcapkit/vendor/reg/transtype.py +111 -0
  454. pcapkit/vendor/tcp/__init__.py +35 -0
  455. pcapkit/vendor/tcp/checksum.py +80 -0
  456. pcapkit/vendor/tcp/flags.py +149 -0
  457. pcapkit/vendor/tcp/mp_tcp_option.py +90 -0
  458. pcapkit/vendor/tcp/option.py +103 -0
  459. pcapkit/vendor/vlan/__init__.py +23 -0
  460. pcapkit/vendor/vlan/priority_level.py +97 -0
  461. pypcapkit-1.3.3.post1.dist-info/LICENSE +29 -0
  462. pypcapkit-1.3.3.post1.dist-info/METADATA +236 -0
  463. pypcapkit-1.3.3.post1.dist-info/RECORD +466 -0
  464. pypcapkit-1.3.3.post1.dist-info/WHEEL +5 -0
  465. pypcapkit-1.3.3.post1.dist-info/entry_points.txt +3 -0
  466. pypcapkit-1.3.3.post1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,365 @@
1
+ # -*- coding: utf-8 -*-
2
+ """User Defined Exceptions
3
+ =============================
4
+
5
+ .. module:: pcapkit.utilities.exceptions
6
+
7
+ :mod:`pcapkit.exceptions` refined built-in exceptions.
8
+ Make it possible to show only user error stack infomation [*]_,
9
+ when exception raised on user's operation.
10
+
11
+ .. [*] See |tbtrim|_ project for Pythonic implementation.
12
+
13
+ .. |tbtrim| replace:: ``tbtrim``
14
+ .. _tbtrim: https://github.com/gousaiyang/tbtrim
15
+
16
+ """
17
+ import io
18
+ import os
19
+ import struct
20
+ import sys
21
+ import traceback
22
+ from typing import TYPE_CHECKING
23
+
24
+ from pcapkit.utilities.compat import ModuleNotFoundError # pylint: disable=redefined-builtin
25
+ from pcapkit.utilities.logging import DEVMODE, VERBOSE, logger
26
+
27
+ if TYPE_CHECKING:
28
+ from typing import Any
29
+
30
+ __all__ = [
31
+ 'stacklevel',
32
+
33
+ 'BaseError', # Exception
34
+ 'DigitError', 'IntError', 'RealError', 'ComplexError', # TypeError
35
+ 'BoolError', 'BytesError', 'StringError', 'BytearrayError', # TypeError
36
+ 'DictError', 'ListError', 'TupleError', 'IterableError', # TypeError
37
+ 'IOObjError', 'ProtocolUnbound', 'CallableError', # TypeError
38
+ 'InfoError', 'IPError', 'EnumError', 'ComparisonError', # TypeError
39
+ 'RegistryError', 'FieldError', # TypeError
40
+ 'FormatError', 'UnsupportedCall', # AttributeError
41
+ 'FileError', 'UnsupportedOperation', # IOError
42
+ 'FileExists', # FileExistsError
43
+ 'FileNotFound', # FileNotFoundError
44
+ 'ProtocolNotFound', # IndexError
45
+ 'VersionError', 'IndexNotFound', 'ProtocolError', # ValueError
46
+ 'EndianError', 'KeyExists', 'NoDefaultValue', # ValueError
47
+ 'FieldValueError', 'SchemaError', 'SeekError', 'TruncateError', # ValueError
48
+ 'ProtocolNotImplemented', 'VendorNotImplemented', # NotImplementedError
49
+ 'StructError', # struct.error
50
+ 'MissingKeyError', 'FragmentError', 'PacketError', # KeyError
51
+ 'ModuleNotFound', # ModuleNotFoundError
52
+ ]
53
+
54
+
55
+ def stacklevel() -> 'int':
56
+ """Fetch current stack level.
57
+
58
+ The function will walk through the straceback stack (:func:`traceback.extract_stack`),
59
+ and fetch the stack level where the path contains ``/pcapkit/``. So that it won't
60
+ display any disturbing internal traceback information when raising errors.
61
+
62
+ Returns:
63
+ Stack level until internal stacks, i.e. contains ``/pcapkit/``.
64
+
65
+ """
66
+ pcapkit = f'{os.path.sep}pcapkit{os.path.sep}'
67
+ tb = traceback.extract_stack()
68
+ for index, tbitem in enumerate(tb):
69
+ if pcapkit in tbitem[0]:
70
+ break
71
+ else:
72
+ index = len(tb)
73
+ return index-1
74
+
75
+
76
+ ##############################################################################
77
+ # BaseError (abc of exceptions) session.
78
+ ##############################################################################
79
+
80
+
81
+ class BaseError(Exception):
82
+ """Base error class of all kinds.
83
+
84
+ Important:
85
+
86
+ * Turn off system-default traceback function by set :data:`sys.tracebacklimit` to ``0``.
87
+ * But bugs appear in Python 3.6, so we have to set :data:`sys.tracebacklimit` to ``None``.
88
+
89
+ .. note::
90
+
91
+ This note is deprecated since Python fixed the problem above.
92
+
93
+ * In Python 2.7, :func:`trace.print_stack(limit)` dose not support negative limit.
94
+
95
+ See Also:
96
+ :func:`pcapkit.utilities.exceptions.stacklevel`
97
+
98
+ """
99
+
100
+ def __init__(self, *args: 'Any', quiet: 'bool' = False, **kwargs: 'Any') -> 'None':
101
+ # log error
102
+ if not quiet:
103
+ if DEVMODE:
104
+ logger.critical('%s: %s', type(self).__name__, str(self),
105
+ exc_info=self if VERBOSE else False,
106
+ stack_info=VERBOSE, stacklevel=-stacklevel())
107
+ else:
108
+ logger.critical("%s: %s", type(self).__name__, str(self))
109
+
110
+ # logger.error('%s: %s', type(self).__name__, str(self), exc_info=self,
111
+ # stack_info=True, stacklevel=-stacklevel())
112
+ else:
113
+ logger.error('%s: %s', type(self).__name__, str(self))
114
+
115
+ if not DEVMODE:
116
+ sys.tracebacklimit = 0
117
+ super().__init__(*args, **kwargs)
118
+
119
+
120
+ ##############################################################################
121
+ # TypeError session.
122
+ ##############################################################################
123
+
124
+
125
+ class DigitError(BaseError, TypeError):
126
+ """The argument(s) must be (a) number(s)."""
127
+
128
+
129
+ class IntError(BaseError, TypeError):
130
+ """The argument(s) must be integral."""
131
+
132
+
133
+ class RealError(BaseError, TypeError):
134
+ """The function is not defined for real number."""
135
+
136
+
137
+ class ComplexError(BaseError, TypeError):
138
+ """The function is not defined for complex instance."""
139
+
140
+
141
+ class BytesError(BaseError, TypeError):
142
+ """The argument(s) must be :obj:`bytes` type."""
143
+
144
+
145
+ class BytearrayError(BaseError, TypeError):
146
+ """The argument(s) must be :obj:`bytearray` type."""
147
+
148
+
149
+ class BoolError(BaseError, TypeError):
150
+ """The argument(s) must be :obj:`bool` type."""
151
+
152
+
153
+ class StringError(BaseError, TypeError):
154
+ """The argument(s) must be :obj:`str` type."""
155
+
156
+
157
+ class DictError(BaseError, TypeError):
158
+ """The argument(s) must be :obj:`dict` type."""
159
+
160
+
161
+ class ListError(BaseError, TypeError):
162
+ """The argument(s) must be :obj:`list` type."""
163
+
164
+
165
+ class TupleError(BaseError, TypeError):
166
+ """The argument(s) must be :obj:`tuple` type."""
167
+
168
+
169
+ class IterableError(BaseError, TypeError):
170
+ """The argument(s) must be *iterable*."""
171
+
172
+
173
+ class CallableError(BaseError, TypeError):
174
+ """The argument(s) must be *callable*."""
175
+
176
+
177
+ class ProtocolUnbound(BaseError, TypeError):
178
+ """Protocol slice unbound."""
179
+
180
+
181
+ class IOObjError(BaseError, TypeError):
182
+ """The argument(s) must be *file-like object*."""
183
+
184
+
185
+ class InfoError(BaseError, TypeError):
186
+ """The argument(s) must be :class:`~pcapkit.corekit.infoclass.Info` instance."""
187
+
188
+
189
+ class IPError(BaseError, TypeError):
190
+ """The argument(s) must be *IP address*."""
191
+
192
+
193
+ class EnumError(BaseError, TypeError):
194
+ """The argument(s) must be *enumeration protocol* type."""
195
+
196
+
197
+ class ComparisonError(BaseError, TypeError):
198
+ """Rich comparison not supported between instances."""
199
+
200
+
201
+ class RegistryError(BaseError, TypeError):
202
+ """The argument(s) must be *registry* type."""
203
+
204
+
205
+ class FieldError(BaseError, TypeError):
206
+ """The argument(s) must be *field* type."""
207
+
208
+
209
+ ##############################################################################
210
+ # AttributeError session.
211
+ ##############################################################################
212
+
213
+
214
+ class FormatError(BaseError, AttributeError):
215
+ """Unknown format(s)."""
216
+
217
+
218
+ class UnsupportedCall(BaseError, AttributeError):
219
+ """Unsupported function or property call."""
220
+
221
+
222
+ ##############################################################################
223
+ # IOError session.
224
+ ##############################################################################
225
+
226
+
227
+ class FileError(BaseError, IOError):
228
+ """[Errno 5] Wrong file format."""
229
+ # args: errno, strerror, filename, winerror, filename2
230
+
231
+
232
+ ##############################################################################
233
+ # FileExistsError session.
234
+ ##############################################################################
235
+
236
+
237
+ class FileExists(BaseError, FileExistsError):
238
+ """[Errno 17] File already exists."""
239
+ # args: errno, strerror, filename, winerror, filename2
240
+
241
+
242
+ ##############################################################################
243
+ # FileNotFoundError session.
244
+ ##############################################################################
245
+
246
+
247
+ class FileNotFound(BaseError, FileNotFoundError):
248
+ """[Errno 2] File not found."""
249
+ # args: errno, strerror, filename, winerror, filename2
250
+
251
+
252
+ ##############################################################################
253
+ # IndexError session.
254
+ ##############################################################################
255
+
256
+
257
+ class ProtocolNotFound(BaseError, IndexError):
258
+ """Protocol not found in ProtoChain."""
259
+
260
+
261
+ ##############################################################################
262
+ # ValueError session.
263
+ ##############################################################################
264
+
265
+
266
+ class VersionError(BaseError, ValueError):
267
+ """Unknown IP version."""
268
+
269
+
270
+ class IndexNotFound(BaseError, ValueError):
271
+ """Protocol not in ProtoChain."""
272
+
273
+
274
+ class ProtocolError(BaseError, ValueError):
275
+ """Invalid protocol format."""
276
+
277
+
278
+ class EndianError(BaseError, ValueError):
279
+ """Invalid endian (byte order)."""
280
+
281
+
282
+ class KeyExists(BaseError, ValueError):
283
+ """Key already exists."""
284
+
285
+
286
+ class NoDefaultValue(BaseError, ValueError):
287
+ """No default value."""
288
+
289
+
290
+ class FieldValueError(BaseError, ValueError):
291
+ """Invalid field value."""
292
+
293
+
294
+ class SchemaError(BaseError, ValueError):
295
+ """Invalid schema."""
296
+
297
+
298
+ class SeekError(BaseError, ValueError):
299
+ """Invalid seek position."""
300
+
301
+
302
+ class TruncateError(BaseError, ValueError):
303
+ """Invalid truncate size."""
304
+
305
+
306
+ ##############################################################################
307
+ # NotImplementedError session.
308
+ ##############################################################################
309
+
310
+
311
+ class ProtocolNotImplemented(BaseError, NotImplementedError):
312
+ """Protocol not implemented."""
313
+
314
+
315
+ class VendorNotImplemented(BaseError, NotImplementedError):
316
+ """Vendor not implemented."""
317
+
318
+
319
+ ##############################################################################
320
+ # struct.error session.
321
+ ##############################################################################
322
+
323
+
324
+ class StructError(BaseError, struct.error):
325
+ """Unpack failed."""
326
+
327
+ def __init__(self, *args: 'Any', eof: 'bool' = False, **kwargs: 'Any') -> 'None':
328
+ self.eof = eof
329
+ super().__init__(*args, **kwargs)
330
+
331
+
332
+ ##############################################################################
333
+ # KeyError session.
334
+ ##############################################################################
335
+
336
+
337
+ class MissingKeyError(BaseError, KeyError):
338
+ """Key not found."""
339
+
340
+
341
+ class FragmentError(BaseError, KeyError):
342
+ """Invalid fragment dict."""
343
+
344
+
345
+ class PacketError(BaseError, KeyError):
346
+ """Invalid packet dict."""
347
+
348
+
349
+ ##############################################################################
350
+ # ModuleNotFoundError session.
351
+ ##############################################################################
352
+
353
+
354
+ class ModuleNotFound(BaseError, ModuleNotFoundError):
355
+ """Module not found."""
356
+ # kwargs: name, path
357
+
358
+
359
+ ##############################################################################
360
+ # io.UnsupportedOperation session.
361
+ ##############################################################################
362
+
363
+
364
+ class UnsupportedOperation(BaseError, io.UnsupportedOperation):
365
+ """Unsupported operation."""
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ """Logging System
3
+ ====================
4
+
5
+ .. module:: pcapkit.utilities.logging
6
+
7
+ :mod:`pcapkit.utilities.logging` contains naïve integration
8
+ of the Python logging system, i.e. a :class:`logging.Logger`
9
+ instance as :data:`~pcapkit.utilities.logging.logger`.
10
+
11
+ """
12
+ import logging
13
+ import os
14
+ import sys
15
+
16
+ __all__ = ['logger']
17
+
18
+ ###############################################################################
19
+ # Dev Mode
20
+ ###############################################################################
21
+
22
+ # boolean mappings
23
+ BOOLEAN_STATES = {'1': True, '0': False,
24
+ 'yes': True, 'no': False,
25
+ 'true': True, 'false': False,
26
+ 'on': True, 'off': False}
27
+
28
+ #: bool: Development mode flag.
29
+ DEVMODE = BOOLEAN_STATES.get(os.environ.get('PCAPKIT_DEVMODE', 'false').casefold(), False)
30
+ #: bool: Verbose output flag.
31
+ VERBOSE = BOOLEAN_STATES.get(os.environ.get('PCAPKIT_VERBOSE', 'false').casefold(), False)
32
+
33
+ ###############################################################################
34
+ # Sphinx Mode
35
+ ###############################################################################
36
+
37
+ #: bool: This is a workaround for :data:`typing.TYPE_CHECKING` in Sphinx.
38
+ SPHINX_TYPE_CHECKING = BOOLEAN_STATES.get(os.environ.get('PCAPKIT_SPHINX', 'false').casefold(), False)
39
+
40
+ ###############################################################################
41
+ # Logger Setup
42
+ ###############################################################################
43
+
44
+ #: logging.Logger: :class:`~logging.Logger` instance named after ``pcapkit``.
45
+ logger = logging.getLogger('pcapkit')
46
+
47
+ formatter = logging.Formatter(fmt='[%(levelname)s] %(asctime)s - %(message)s',
48
+ datefmt='%m/%d/%Y %I:%M:%S %p')
49
+ handler = logging.StreamHandler(sys.stderr)
50
+ if DEVMODE:
51
+ logger.setLevel(logging.DEBUG)
52
+ else:
53
+ logger.setLevel(logging.INFO)
54
+ handler.setFormatter(formatter)
55
+ logger.addHandler(handler)
@@ -0,0 +1,185 @@
1
+ # -*- coding: utf-8 -*-
2
+ """User Defined Warnings
3
+ ===========================
4
+
5
+ .. module:: pcapkit.utilities.warnings
6
+
7
+ :mod:`pcapkit.warnings` refined built-in warnings.
8
+
9
+ """
10
+ import warnings
11
+ from typing import TYPE_CHECKING
12
+
13
+ from pcapkit.utilities.exceptions import stacklevel as stacklevel_calculator
14
+ from pcapkit.utilities.logging import DEVMODE, VERBOSE, logger
15
+
16
+ if TYPE_CHECKING:
17
+ from typing import Any, Optional, Type, Union
18
+
19
+ __all__ = [
20
+ 'warn',
21
+
22
+ # UserWarning
23
+ 'BaseWarning',
24
+ # ImportWarning
25
+ 'FormatWarning', 'EngineWarning', 'InvalidVendorWarning',
26
+ # RuntimeWarning
27
+ 'FileWarning', 'LayerWarning', 'ProtocolWarning', 'AttributeWarning',
28
+ 'DevModeWarning', 'VendorRequestWarning', 'VendorRuntimeWarning',
29
+ 'UnknownFieldWarning', 'RegistryWarning', 'SchemaWarning', 'InfoWarning',
30
+ 'SeekWarning', 'ExtractionWarning',
31
+ # ResourceWarning
32
+ 'DPKTWarning', 'ScapyWarning', 'PySharkWarning', 'EmojiWarning',
33
+ 'VendorWarning',
34
+ # DeprecationWarning
35
+ 'DeprecatedFormatWarning',
36
+ ]
37
+
38
+
39
+ def warn(message: 'Union[str, Warning]', category: 'Type[Warning]',
40
+ stacklevel: 'Optional[int]' = None) -> 'None':
41
+ """Wrapper function of :func:`warnings.warn`.
42
+
43
+ Args:
44
+ message: Warning message.
45
+ category: Warning category.
46
+ stacklevel: Warning stack level.
47
+
48
+ """
49
+ if stacklevel is None:
50
+ stacklevel = stacklevel_calculator()
51
+
52
+ logger.warning(message, exc_info=VERBOSE, stack_info=VERBOSE,
53
+ stacklevel=stacklevel)
54
+ warnings.warn(message, category, stacklevel)
55
+
56
+
57
+ ##############################################################################
58
+ # BaseWarning (abc of warnings) session.
59
+ ##############################################################################
60
+
61
+
62
+ class BaseWarning(UserWarning):
63
+ """Base warning class of all kinds."""
64
+
65
+ def __init__(self, *args: 'Any', **kwargs: 'Any') -> 'None': # pylint: disable=useless-super-delegation
66
+ # log warning
67
+ if DEVMODE:
68
+ if VERBOSE:
69
+ logger.warning(str(self), exc_info=self, stack_info=True,
70
+ stacklevel=stacklevel_calculator())
71
+ else:
72
+ logger.warning(str(self))
73
+ else:
74
+ warnings.simplefilter('ignore', type(self))
75
+
76
+ # warnings.simplefilter('default')
77
+ super().__init__(*args, **kwargs)
78
+
79
+
80
+ ##############################################################################
81
+ # ImportWarning session.
82
+ ##############################################################################
83
+
84
+
85
+ class FormatWarning(BaseWarning, ImportWarning):
86
+ """Warning on unknown format(s)."""
87
+
88
+
89
+ class EngineWarning(BaseWarning, ImportWarning):
90
+ """Unsupported extraction engine."""
91
+
92
+
93
+ class InvalidVendorWarning(BaseWarning, ImportWarning):
94
+ """Vendor CLI invalid updater."""
95
+
96
+
97
+ ##############################################################################
98
+ # RuntimeWarning session.
99
+ ##############################################################################
100
+
101
+
102
+ class FileWarning(BaseWarning, RuntimeWarning):
103
+ """Warning on file(s)."""
104
+
105
+
106
+ class LayerWarning(BaseWarning, RuntimeWarning):
107
+ """Unrecognised layer."""
108
+
109
+
110
+ class ProtocolWarning(BaseWarning, RuntimeWarning):
111
+ """Unrecognised protocol."""
112
+
113
+
114
+ class AttributeWarning(BaseWarning, RuntimeWarning):
115
+ """Unsupported attribute."""
116
+
117
+
118
+ class DevModeWarning(BaseWarning, RuntimeWarning):
119
+ """Run in development mode."""
120
+
121
+
122
+ class VendorRequestWarning(BaseWarning, RuntimeWarning):
123
+ """Vendor request connection failed."""
124
+
125
+
126
+ class VendorRuntimeWarning(BaseWarning, RuntimeWarning):
127
+ """Vendor failed during runtime."""
128
+
129
+
130
+ class UnknownFieldWarning(BaseWarning, RuntimeWarning):
131
+ """Unknown field."""
132
+
133
+
134
+ class RegistryWarning(BaseWarning, RuntimeWarning):
135
+ """Registry warning."""
136
+
137
+
138
+ class SchemaWarning(BaseWarning, RuntimeWarning):
139
+ """Schema warning."""
140
+
141
+
142
+ class InfoWarning(BaseWarning, RuntimeWarning):
143
+ """Info class warning."""
144
+
145
+
146
+ class SeekWarning(BaseWarning, RuntimeWarning):
147
+ """Seek operation warning."""
148
+
149
+
150
+ class ExtractionWarning(BaseWarning, RuntimeWarning):
151
+ """Extraction warning."""
152
+
153
+
154
+ ##############################################################################
155
+ # ResourceWarning session.
156
+ ##############################################################################
157
+
158
+
159
+ class DPKTWarning(BaseWarning, ResourceWarning):
160
+ """Warnings on DPKT usage."""
161
+
162
+
163
+ class ScapyWarning(BaseWarning, ResourceWarning):
164
+ """Warnings on Scapy usage."""
165
+
166
+
167
+ class PySharkWarning(BaseWarning, ResourceWarning):
168
+ """Warnings on PyShark usage."""
169
+
170
+
171
+ class EmojiWarning(BaseWarning, ResourceWarning):
172
+ """Warnings on Emoji usage."""
173
+
174
+
175
+ class VendorWarning(BaseWarning, ResourceWarning):
176
+ """Warnings on vendor usage."""
177
+
178
+
179
+ ##############################################################################
180
+ # DeprecationWarning session.
181
+ ##############################################################################
182
+
183
+
184
+ class DeprecatedFormatWarning(BaseWarning, DeprecationWarning):
185
+ """Warning on deprecated formats."""