evolver-tools 17.0.0__tar.gz → 18.0.0__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 (243) hide show
  1. {evolver_tools-17.0.0/src/evolver_tools.egg-info → evolver_tools-18.0.0}/PKG-INFO +2 -2
  2. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/pyproject.toml +2 -2
  3. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/cli.py +1 -1
  4. evolver_tools-18.0.0/src/evolver_tools/vendor/base32.py +61 -0
  5. evolver_tools-18.0.0/src/evolver_tools/vendor/epoch.py +93 -0
  6. evolver_tools-18.0.0/src/evolver_tools/vendor/hexdump.py +87 -0
  7. evolver_tools-18.0.0/src/evolver_tools/vendor/rot13.py +71 -0
  8. evolver_tools-18.0.0/src/evolver_tools/vendor/subnet.py +76 -0
  9. {evolver_tools-17.0.0 → evolver_tools-18.0.0/src/evolver_tools.egg-info}/PKG-INFO +2 -2
  10. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools.egg-info/SOURCES.txt +5 -0
  11. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/LICENSE +0 -0
  12. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/README.md +0 -0
  13. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/setup.cfg +0 -0
  14. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/__init__.py +0 -0
  15. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/__main__.py +0 -0
  16. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/autoreg.py +0 -0
  17. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/__init__.py +0 -0
  18. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/agent_b_tool.py +0 -0
  19. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ansi_strip.py +0 -0
  20. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/api_tester.py +0 -0
  21. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ascii_gen.py +0 -0
  22. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/audit_log.py +0 -0
  23. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/b64/__init__.py +0 -0
  24. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/b64/b64.py +0 -0
  25. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/backup.py +0 -0
  26. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/banner/__init__.py +0 -0
  27. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/banner/banner.py +0 -0
  28. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/banner.py +0 -0
  29. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/bookmark.py +0 -0
  30. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cal_tool/__init__.py +0 -0
  31. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cal_tool/cli.py +0 -0
  32. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/calendar_cli.py +0 -0
  33. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cert_check.py +0 -0
  34. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cert_info.py +0 -0
  35. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/changelog_gen/__init__.py +0 -0
  36. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/changelog_gen/changelog_gen.py +0 -0
  37. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/changelog_gen.py +0 -0
  38. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/chart_cli/__init__.py +0 -0
  39. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/chart_cli/__main__.py +0 -0
  40. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/checksum_dir.py +0 -0
  41. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/clipboard/__init__.py +0 -0
  42. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/clipboard/clipboard.py +0 -0
  43. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/code_auditor.py +0 -0
  44. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/code_stats.py +0 -0
  45. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/colorize.py +0 -0
  46. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/colors/__init__.py +0 -0
  47. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/colors/__main__.py +0 -0
  48. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/config_validator.py +0 -0
  49. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/config_vault.py +0 -0
  50. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cron/__init__.py +0 -0
  51. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cron/__main__.py +0 -0
  52. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/cron_pretty.py +0 -0
  53. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/crontab_helper.py +0 -0
  54. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/crypto_box.py +0 -0
  55. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/crypto_price.py +0 -0
  56. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv2json.py +0 -0
  57. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_stats/__init__.py +0 -0
  58. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_stats/__main__.py +0 -0
  59. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_stats/analyzer.py +0 -0
  60. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_stats/cli.py +0 -0
  61. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_validate.py +0 -0
  62. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/csv_view.py +0 -0
  63. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/db_mate.py +0 -0
  64. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/db_schema.py +0 -0
  65. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dep_graph.py +0 -0
  66. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dev_dashboard.py +0 -0
  67. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dice_roll.py +0 -0
  68. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/diff_csv.py +0 -0
  69. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/diff_tool/__init__.py +0 -0
  70. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/diff_tool/__main__.py +0 -0
  71. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dirsize/__init__.py +0 -0
  72. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/disk_cleanup.py +0 -0
  73. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/disk_usage/__init__.py +0 -0
  74. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/disk_usage/disk_usage.py +0 -0
  75. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dns_lookup.py +0 -0
  76. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/docker_helper.py +0 -0
  77. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/dt_convert.py +0 -0
  78. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/env_diff.py +0 -0
  79. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/env_manager.py +0 -0
  80. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/envcheck/__init__.py +0 -0
  81. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/excel2csv.py +0 -0
  82. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ff/__init__.py +0 -0
  83. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ff/__main__.py +0 -0
  84. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/figlet_cli.py +0 -0
  85. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/figlet_tool.py +0 -0
  86. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/file_encrypt.py +0 -0
  87. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/file_joiner.py +0 -0
  88. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/file_splitter.py +0 -0
  89. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/file_watch.py +0 -0
  90. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/find_dups/__init__.py +0 -0
  91. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/find_dups/cli.py +0 -0
  92. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/firewall_rule.py +0 -0
  93. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/fmt/__init__.py +0 -0
  94. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/fmt/fmt.py +0 -0
  95. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/geo_ip.py +0 -0
  96. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/git_branch_cleaner.py +0 -0
  97. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/git_log_pretty.py +0 -0
  98. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/git_stats.py +0 -0
  99. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/hash_check.py +0 -0
  100. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/hash_file.py +0 -0
  101. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/hashsum/__init__.py +0 -0
  102. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/hashsum/__main__.py +0 -0
  103. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/hex_tool.py +0 -0
  104. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/html2markdown.py +0 -0
  105. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/html2md.py +0 -0
  106. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/http_headers.py +0 -0
  107. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/http_live/__init__.py +0 -0
  108. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/http_live/__main__.py +0 -0
  109. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/image_meta.py +0 -0
  110. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ini2json.py +0 -0
  111. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ini_parser/__init__.py +0 -0
  112. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ini_parser/ini_parser.py +0 -0
  113. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ip_location.py +0 -0
  114. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ipcalc/__init__.py +0 -0
  115. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ipcalc/__main__.py +0 -0
  116. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ipinfo/__init__.py +0 -0
  117. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ipinfo/__main__.py +0 -0
  118. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/join.py +0 -0
  119. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/joke.py +0 -0
  120. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/jq_lite/__init__.py +0 -0
  121. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/jq_lite/__main__.py +0 -0
  122. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json2csv/__init__.py +0 -0
  123. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json2csv/__main__.py +0 -0
  124. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json2ini.py +0 -0
  125. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json_pretty/__init__.py +0 -0
  126. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json_pretty/json_pretty.py +0 -0
  127. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/json_schema_validate.py +0 -0
  128. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/jsonql/__init__.py +0 -0
  129. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/jsonql/__main__.py +0 -0
  130. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/key_value_store.py +0 -0
  131. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/license.py +0 -0
  132. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/license_cli/__init__.py +0 -0
  133. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/license_cli/__main__.py +0 -0
  134. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/license_cli/cli.py +0 -0
  135. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/log_analyzer.py +0 -0
  136. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/log_hawk.py +0 -0
  137. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/log_tail.py +0 -0
  138. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/macrogen.py +0 -0
  139. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/markdown_check/__init__.py +0 -0
  140. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/markdown_preview.py +0 -0
  141. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/markdown_toc.py +0 -0
  142. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/media_studio.py +0 -0
  143. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/morse.py +0 -0
  144. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/nb/__init__.py +0 -0
  145. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/nb/__main__.py +0 -0
  146. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/net_analyzer.py +0 -0
  147. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/net_speed.py +0 -0
  148. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/network_scan.py +0 -0
  149. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/note_taker.py +0 -0
  150. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/otp_gen.py +0 -0
  151. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/passgen/__init__.py +0 -0
  152. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/password_strength.py +0 -0
  153. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/pdf_text.py +0 -0
  154. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/pipe_viewer.py +0 -0
  155. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/port_scan.py +0 -0
  156. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/portcheck/__init__.py +0 -0
  157. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/portcheck/__main__.py +0 -0
  158. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/pr_tool/__init__.py +0 -0
  159. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/pr_tool/pr_tool.py +0 -0
  160. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/process_kill.py +0 -0
  161. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/progress_bar.py +0 -0
  162. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/project_doctor/__init__.py +0 -0
  163. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/project_doctor/__main__.py +0 -0
  164. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/qc_calc.py +0 -0
  165. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/qc_report.py +0 -0
  166. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/qc_sample.py +0 -0
  167. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/qr_cli.py +0 -0
  168. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/qrcode.py +0 -0
  169. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/quote.py +0 -0
  170. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/quote_tool/__init__.py +0 -0
  171. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/quote_tool/quote.py +0 -0
  172. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/rainbow.py +0 -0
  173. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/random.py +0 -0
  174. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/reminder.py +0 -0
  175. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ren/__init__.py +0 -0
  176. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ren/__main__.py +0 -0
  177. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/replace_text.py +0 -0
  178. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/restore.py +0 -0
  179. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/route_trace.py +0 -0
  180. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/scan_ports.py +0 -0
  181. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/screen_recorder.py +0 -0
  182. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/screenshot_cli.py +0 -0
  183. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/search_files.py +0 -0
  184. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/search_history.py +0 -0
  185. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/secret_scanner.py +0 -0
  186. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/service_check.py +0 -0
  187. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/shuffle.py +0 -0
  188. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/siege_lite/__init__.py +0 -0
  189. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/siege_lite/__main__.py +0 -0
  190. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/smellfinder/__init__.py +0 -0
  191. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/smellfinder/__main__.py +0 -0
  192. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sort/__init__.py +0 -0
  193. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sort/sort.py +0 -0
  194. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/spinner.py +0 -0
  195. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/split.py +0 -0
  196. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/split_tool/__init__.py +0 -0
  197. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/split_tool/split.py +0 -0
  198. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sql2csv.py +0 -0
  199. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sqlite_cli/__init__.py +0 -0
  200. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sqlite_cli/__main__.py +0 -0
  201. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ssh_key_gen.py +0 -0
  202. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/ssl_check.py +0 -0
  203. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/stopwatch.py +0 -0
  204. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sysmon/__init__.py +0 -0
  205. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sysmon/__main__.py +0 -0
  206. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/sysmon_pro.py +0 -0
  207. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/system_info.py +0 -0
  208. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/temp_cleaner.py +0 -0
  209. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/template.py +0 -0
  210. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/text_stats.py +0 -0
  211. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/timer/__init__.py +0 -0
  212. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/timer_pro/__init__.py +0 -0
  213. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/timer_pro/timer_pro.py +0 -0
  214. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/timer_pro.py +0 -0
  215. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/todo_cli.py +0 -0
  216. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/toml2json.py +0 -0
  217. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/tree.py +0 -0
  218. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/treedir/__init__.py +0 -0
  219. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/treedir/__main__.py +0 -0
  220. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/uniq_tool/__init__.py +0 -0
  221. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/uniq_tool/uniq.py +0 -0
  222. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/unit_convert.py +0 -0
  223. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/uri_encode.py +0 -0
  224. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/url_parser.py +0 -0
  225. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/urlparse_tool/__init__.py +0 -0
  226. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/urlparse_tool/cli.py +0 -0
  227. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/uuid_tool/__init__.py +0 -0
  228. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/uuid_tool/__main__.py +0 -0
  229. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/weather_cli.py +0 -0
  230. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/web_download.py +0 -0
  231. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/web_summary/__init__.py +0 -0
  232. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/web_summary/__main__.py +0 -0
  233. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/whois_lookup.py +0 -0
  234. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/wordcount/__init__.py +0 -0
  235. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/wordcount/__main__.py +0 -0
  236. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/xml2json.py +0 -0
  237. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/yaml2json/__init__.py +0 -0
  238. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/yaml2json/yaml2json.py +0 -0
  239. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/yaml2toml.py +0 -0
  240. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools/vendor/yaml_validate.py +0 -0
  241. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools.egg-info/dependency_links.txt +0 -0
  242. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools.egg-info/entry_points.txt +0 -0
  243. {evolver_tools-17.0.0 → evolver_tools-18.0.0}/src/evolver_tools.egg-info/top_level.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolver-tools
3
- Version: 17.0.0
4
- Summary: 171 CLI tools + 9 flagship projects — one pip install
3
+ Version: 18.0.0
4
+ Summary: 176 CLI tools + 9 flagship projects — one pip install
5
5
  Author: EVOLVER
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://evolver-dev.github.io/evolver-tools
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "evolver-tools"
7
- version = "17.0.0"
8
- description = "171 CLI tools + 9 flagship projects — one pip install"
7
+ version = "18.0.0"
8
+ description = "176 CLI tools + 9 flagship projects — one pip install"
9
9
  readme = "README.md"
10
10
  license = "MIT"
11
11
  requires-python = ">=3.8"
@@ -14,7 +14,7 @@ from evolver_tools.autoreg import auto_discover
14
14
  def list_tools():
15
15
  """Display all available tools."""
16
16
  tools = auto_discover()
17
- print(f'\x1b[1;36m===== EVOLVER Tools v17.0.0 =====\x1b[0m')
17
+ print(f'\x1b[1;36m===== EVOLVER Tools v18.0.0 =====\x1b[0m')
18
18
  print()
19
19
  for name, info in sorted(tools.items()):
20
20
  print(f' \033[1;33m{name:<18}\033[0m {info["desc"]}')
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env python3
2
+ """base32 — Base32 encoding/decoding tool.
3
+
4
+ Usage: base32 encode "hello"
5
+ base32 decode "NBSWY3DP"
6
+ echo "hello" | base32 encode
7
+
8
+ Zero-dependency (stdlib only).
9
+ """
10
+
11
+ import sys
12
+ import base64
13
+
14
+
15
+ def main():
16
+ args = sys.argv[1:]
17
+
18
+ mode = 'encode'
19
+ for a in args[:]:
20
+ if a in ('encode', '--encode', '-e'):
21
+ mode = 'encode'
22
+ args.remove(a)
23
+ elif a in ('decode', '--decode', '-d'):
24
+ mode = 'decode'
25
+ args.remove(a)
26
+ elif a in ('-h', '--help'):
27
+ print(__doc__)
28
+ return
29
+
30
+ text_args = [a for a in args if not a.startswith('-')]
31
+
32
+ if text_args:
33
+ text = ' '.join(text_args)
34
+ elif not sys.stdin.isatty():
35
+ text = sys.stdin.read().strip()
36
+ else:
37
+ print("Usage: base32 (encode|decode) [text]")
38
+ print(" echo <text> | base32 encode")
39
+ return
40
+
41
+ if mode == 'encode':
42
+ encoded = base64.b32encode(text.encode()).decode()
43
+ print(encoded)
44
+ else:
45
+ try:
46
+ decoded = base64.b32decode(text.upper().encode()).decode()
47
+ print(decoded)
48
+ except Exception as e:
49
+ print(f"Error: {e}", file=sys.stderr)
50
+ sys.exit(1)
51
+
52
+
53
+ # === Auto-registration metadata ===
54
+ TOOL_META = {
55
+ "name": "base32",
56
+ "func": "main",
57
+ "desc": 'Base32 encode/decode (stdin or arg)',
58
+ }
59
+
60
+ if __name__ == '__main__':
61
+ main()
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env python3
2
+ """epoch — Unix timestamp / human date converter.
3
+
4
+ Usage: epoch # -> current Unix time
5
+ epoch now # -> current date
6
+ epoch 1717171717 # -> human-readable
7
+ epoch "2026-06-01 12:00" # -> Unix timestamp
8
+ epoch --utc # UTC mode
9
+
10
+ Supports various input formats including ISO 8601.
11
+ Zero-dependency (stdlib only).
12
+ """
13
+
14
+ import sys
15
+ from datetime import datetime, timezone
16
+
17
+
18
+ def parse_date(text):
19
+ """Try to parse a date string, return datetime or None."""
20
+ formats = [
21
+ '%Y-%m-%d %H:%M:%S',
22
+ '%Y-%m-%d %H:%M',
23
+ '%Y-%m-%d',
24
+ '%Y/%m/%d %H:%M:%S',
25
+ '%Y/%m/%d %H:%M',
26
+ '%Y/%m/%d',
27
+ '%m/%d/%Y %H:%M:%S',
28
+ '%m/%d/%Y %H:%M',
29
+ '%m/%d/%Y',
30
+ ]
31
+ for fmt in formats:
32
+ try:
33
+ return datetime.strptime(text, fmt)
34
+ except ValueError:
35
+ continue
36
+ return None
37
+
38
+
39
+ def main():
40
+ args = sys.argv[1:]
41
+ utc_mode = '-u' in args or '--utc' in args
42
+ args = [a for a in args if a not in ('-u', '--utc')]
43
+
44
+ if '-h' in args or '--help' in args:
45
+ print(__doc__)
46
+ return
47
+
48
+ if not args or args[0] == 'now':
49
+ now = datetime.now(timezone.utc if utc_mode else None)
50
+ ts = int(now.timestamp())
51
+ if not args:
52
+ print(ts)
53
+ else:
54
+ print(f"Unix: {ts}")
55
+ print(f"Local: {now.strftime('%Y-%m-%d %H:%M:%S')}")
56
+ print(f"UTC: {datetime.fromtimestamp(ts, tz=timezone.utc).strftime('%Y-%m-%d %H:%M:%S')}")
57
+ return
58
+
59
+ text = ' '.join(args)
60
+
61
+ # Try as Unix timestamp
62
+ try:
63
+ ts = int(text)
64
+ dt_local = datetime.fromtimestamp(ts)
65
+ dt_utc = datetime.fromtimestamp(ts, tz=timezone.utc)
66
+ print(f"Unix: {ts}")
67
+ print(f"Local: {dt_local.strftime('%Y-%m-%d %H:%M:%S')}")
68
+ print(f"UTC: {dt_utc.strftime('%Y-%m-%d %H:%M:%S')}")
69
+ return
70
+ except ValueError:
71
+ pass
72
+
73
+ # Try as date string
74
+ dt = parse_date(text)
75
+ if dt:
76
+ ts = int(dt.replace(tzinfo=timezone.utc).timestamp())
77
+ print(f"Date: {dt.strftime('%Y-%m-%d %H:%M:%S')}")
78
+ print(f"Unix: {ts}")
79
+ return
80
+
81
+ print(f"Error: cannot parse '{text}'", file=sys.stderr)
82
+ sys.exit(1)
83
+
84
+
85
+ # === Auto-registration metadata ===
86
+ TOOL_META = {
87
+ "name": "epoch",
88
+ "func": "main",
89
+ "desc": 'Unix timestamp / human date converter',
90
+ }
91
+
92
+ if __name__ == '__main__':
93
+ main()
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env python3
2
+ """hexdump — Hex dump with ASCII view.
3
+
4
+ Usage: hexdump <file>
5
+ echo "hello" | hexdump [--length N]
6
+
7
+ Shows offset, hex bytes, and ASCII representation.
8
+ Zero-dependency (stdlib only).
9
+ """
10
+
11
+ import sys
12
+ import os
13
+
14
+
15
+ def hexdump(data, length=16):
16
+ result = []
17
+ for i in range(0, len(data), length):
18
+ chunk = data[i:i + length]
19
+ hex_part = ' '.join(f'{b:02x}' for b in chunk)
20
+ # Pad hex part if needed
21
+ hex_part = hex_part.ljust(length * 3 - 1)
22
+ ascii_part = ''.join(chr(b) if 32 <= b < 127 else '.' for b in chunk)
23
+ result.append(f'{i:08x} {hex_part} |{ascii_part}|')
24
+ return '\n'.join(result)
25
+
26
+
27
+ def main():
28
+ args = sys.argv[1:]
29
+ show_len = 16
30
+
31
+ for a in args[:]:
32
+ if a == '--length' and len(args) > args.index(a) + 1:
33
+ idx = args.index(a)
34
+ show_len = int(args[idx + 1])
35
+ args.remove(a)
36
+ args.pop(idx) # remove the value too... but index shifted
37
+ elif a.startswith('--length='):
38
+ show_len = int(a.split('=', 1)[1])
39
+ args.remove(a)
40
+ elif a in ('-h', '--help'):
41
+ print(__doc__)
42
+ return
43
+
44
+ # Re-parse length properly
45
+ args = sys.argv[1:]
46
+ filtered = []
47
+ i = 0
48
+ while i < len(args):
49
+ if args[i] == '--length' and i + 1 < len(args):
50
+ show_len = int(args[i + 1])
51
+ i += 2
52
+ elif args[i].startswith('--length='):
53
+ show_len = int(args[i].split('=', 1)[1])
54
+ i += 1
55
+ elif args[i] in ('-h', '--help'):
56
+ print(__doc__)
57
+ return
58
+ else:
59
+ filtered.append(args[i])
60
+ i += 1
61
+
62
+ if filtered:
63
+ path = filtered[0]
64
+ if not os.path.isfile(path):
65
+ print(f"Error: file not found: {path}", file=sys.stderr)
66
+ sys.exit(1)
67
+ with open(path, 'rb') as f:
68
+ data = f.read()
69
+ print(hexdump(data, show_len))
70
+ elif not sys.stdin.isatty():
71
+ data = sys.stdin.buffer.read()
72
+ print(hexdump(data, show_len))
73
+ else:
74
+ print("Usage: hexdump <file>")
75
+ print(" cat <file> | hexdump")
76
+ return
77
+
78
+
79
+ # === Auto-registration metadata ===
80
+ TOOL_META = {
81
+ "name": "hexdump",
82
+ "func": "main",
83
+ "desc": 'Hex dump with ASCII view (file or stdin)',
84
+ }
85
+
86
+ if __name__ == '__main__':
87
+ main()
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env python3
2
+ """rot13 — ROT13/ROT47 text cipher.
3
+
4
+ Usage: rot13 "Hello World"
5
+ echo "Hello" | rot13 [--rot47]
6
+ rot13 --rot47 "p6xx2F5H~"
7
+
8
+ Applies ROT13 (default) or ROT47 cipher.
9
+ Zero-dependency (stdlib only).
10
+ """
11
+
12
+ import sys
13
+
14
+ ROT13_TRANS = str.maketrans(
15
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
16
+ 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'
17
+ )
18
+
19
+
20
+ def rot13(text):
21
+ return text.translate(ROT13_TRANS)
22
+
23
+
24
+ def rot47(text):
25
+ result = []
26
+ for c in text:
27
+ o = ord(c)
28
+ if 33 <= o <= 126:
29
+ result.append(chr(33 + ((o - 33 + 47) % 94)))
30
+ else:
31
+ result.append(c)
32
+ return ''.join(result)
33
+
34
+
35
+ def main():
36
+ args = sys.argv[1:]
37
+ use_rot47 = False
38
+
39
+ for a in args[:]:
40
+ if a in ('--rot47', '-7'):
41
+ use_rot47 = True
42
+ args.remove(a)
43
+ elif a in ('-h', '--help'):
44
+ print(__doc__)
45
+ return
46
+
47
+ text_args = [a for a in args if not a.startswith('-')]
48
+
49
+ if text_args:
50
+ text = ' '.join(text_args)
51
+ elif not sys.stdin.isatty():
52
+ text = sys.stdin.read().strip()
53
+ else:
54
+ print("Usage: rot13 <text> or echo <text> | rot13 [--rot47]")
55
+ return
56
+
57
+ if use_rot47:
58
+ print(rot47(text))
59
+ else:
60
+ print(rot13(text))
61
+
62
+
63
+ # === Auto-registration metadata ===
64
+ TOOL_META = {
65
+ "name": "rot13",
66
+ "func": "main",
67
+ "desc": 'ROT13/ROT47 text cipher (stdin or arg)',
68
+ }
69
+
70
+ if __name__ == '__main__':
71
+ main()
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env python3
2
+ """subnet — IPv4 subnet/CIDR calculator.
3
+
4
+ Usage: subnet 192.168.1.0/24
5
+ subnet 10.0.0.0 255.255.255.0
6
+ subnet --list 192.168.1.0/28 # List all hosts
7
+
8
+ Shows network address, broadcast, usable range, mask, CIDR.
9
+ Zero-dependency (stdlib only).
10
+ """
11
+
12
+ import sys
13
+ import ipaddress
14
+
15
+
16
+ def main():
17
+ args = sys.argv[1:]
18
+ list_hosts = False
19
+
20
+ for a in args[:]:
21
+ if a in ('--list', '-l'):
22
+ list_hosts = True
23
+ args.remove(a)
24
+ elif a in ('-h', '--help'):
25
+ print(__doc__)
26
+ return
27
+
28
+ if not args:
29
+ print("Usage: subnet <CIDR> [--list]")
30
+ print(" subnet <ip> <netmask>")
31
+ print("Example: subnet 192.168.1.0/24")
32
+ return
33
+
34
+ try:
35
+ if len(args) >= 2:
36
+ network = ipaddress.IPv4Network(f"{args[0]}/{args[1]}", strict=False)
37
+ else:
38
+ network = ipaddress.IPv4Network(args[0], strict=False)
39
+ except ValueError as e:
40
+ print(f"Error: {e}", file=sys.stderr)
41
+ sys.exit(1)
42
+
43
+ netmask = network.netmask
44
+ num_addresses = network.num_addresses
45
+ host_count = max(0, num_addresses - 2)
46
+
47
+ print(f" Address: {network.network_address}")
48
+ print(f" Netmask: {netmask}")
49
+ print(f" Wildcard: {network.hostmask}")
50
+ print(f" CIDR: /{network.prefixlen}")
51
+ print(f" Network: {network.network_address}")
52
+ print(f" Broadcast: {network.broadcast_address}")
53
+ print(f" Usable: {network.network_address + 1} - {network.broadcast_address - 1}")
54
+ print(f" Hosts/Net: {host_count}")
55
+ print(f" Total IPs: {num_addresses}")
56
+ print(f" Class: {'A' if network.prefixlen < 16 else 'B' if network.prefixlen < 24 else 'C' if network.prefixlen < 30 else 'Special'}")
57
+
58
+ if list_hosts and host_count < 256:
59
+ hosts = list(network.hosts())
60
+ print(f"\n Hosts ({len(hosts)}):")
61
+ for i, h in enumerate(hosts):
62
+ print(f" {h}")
63
+ if i >= 254:
64
+ print(f" ... ({len(hosts) - 255} more)")
65
+ break
66
+
67
+
68
+ # === Auto-registration metadata ===
69
+ TOOL_META = {
70
+ "name": "subnet",
71
+ "func": "main",
72
+ "desc": 'IPv4 subnet/CIDR calculator',
73
+ }
74
+
75
+ if __name__ == '__main__':
76
+ main()
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolver-tools
3
- Version: 17.0.0
4
- Summary: 171 CLI tools + 9 flagship projects — one pip install
3
+ Version: 18.0.0
4
+ Summary: 176 CLI tools + 9 flagship projects — one pip install
5
5
  Author: EVOLVER
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://evolver-dev.github.io/evolver-tools
@@ -18,6 +18,7 @@ src/evolver_tools/vendor/ascii_gen.py
18
18
  src/evolver_tools/vendor/audit_log.py
19
19
  src/evolver_tools/vendor/backup.py
20
20
  src/evolver_tools/vendor/banner.py
21
+ src/evolver_tools/vendor/base32.py
21
22
  src/evolver_tools/vendor/bookmark.py
22
23
  src/evolver_tools/vendor/calendar_cli.py
23
24
  src/evolver_tools/vendor/cert_check.py
@@ -48,6 +49,7 @@ src/evolver_tools/vendor/docker_helper.py
48
49
  src/evolver_tools/vendor/dt_convert.py
49
50
  src/evolver_tools/vendor/env_diff.py
50
51
  src/evolver_tools/vendor/env_manager.py
52
+ src/evolver_tools/vendor/epoch.py
51
53
  src/evolver_tools/vendor/excel2csv.py
52
54
  src/evolver_tools/vendor/figlet_cli.py
53
55
  src/evolver_tools/vendor/figlet_tool.py
@@ -63,6 +65,7 @@ src/evolver_tools/vendor/git_stats.py
63
65
  src/evolver_tools/vendor/hash_check.py
64
66
  src/evolver_tools/vendor/hash_file.py
65
67
  src/evolver_tools/vendor/hex_tool.py
68
+ src/evolver_tools/vendor/hexdump.py
66
69
  src/evolver_tools/vendor/html2markdown.py
67
70
  src/evolver_tools/vendor/html2md.py
68
71
  src/evolver_tools/vendor/http_headers.py
@@ -105,6 +108,7 @@ src/evolver_tools/vendor/random.py
105
108
  src/evolver_tools/vendor/reminder.py
106
109
  src/evolver_tools/vendor/replace_text.py
107
110
  src/evolver_tools/vendor/restore.py
111
+ src/evolver_tools/vendor/rot13.py
108
112
  src/evolver_tools/vendor/route_trace.py
109
113
  src/evolver_tools/vendor/scan_ports.py
110
114
  src/evolver_tools/vendor/screen_recorder.py
@@ -120,6 +124,7 @@ src/evolver_tools/vendor/sql2csv.py
120
124
  src/evolver_tools/vendor/ssh_key_gen.py
121
125
  src/evolver_tools/vendor/ssl_check.py
122
126
  src/evolver_tools/vendor/stopwatch.py
127
+ src/evolver_tools/vendor/subnet.py
123
128
  src/evolver_tools/vendor/sysmon_pro.py
124
129
  src/evolver_tools/vendor/system_info.py
125
130
  src/evolver_tools/vendor/temp_cleaner.py
File without changes
File without changes
File without changes