codeaudit 1.8.1__tar.gz → 1.9.1__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 (270) hide show
  1. codeaudit-1.9.1/.github/workflows/python-test.yml +31 -0
  2. codeaudit-1.9.1/.github/workflows/sast_validation.yml +45 -0
  3. {codeaudit-1.8.1 → codeaudit-1.9.1}/CHANGELOG.md +46 -0
  4. {codeaudit-1.8.1 → codeaudit-1.9.1}/PKG-INFO +14 -12
  5. {codeaudit-1.8.1 → codeaudit-1.9.1}/README.md +11 -9
  6. {codeaudit-1.8.1 → codeaudit-1.9.1}/SECURITY.md +1 -1
  7. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/CONTRIBUTE.md +52 -0
  8. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/_config.yml +1 -1
  9. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/exception_check.md +1 -1
  10. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/cimode.md +7 -7
  11. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/codeauditcommands.md +84 -45
  12. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/codeauditoverview.md +15 -8
  13. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/codeauditchecks.html +1 -1
  14. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/demoscan.json +2 -2
  15. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/filescan.md +16 -13
  16. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/intro.md +2 -0
  17. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/makeitbetter.md +1 -1
  18. {codeaudit-1.8.1 → codeaudit-1.9.1}/pyproject.toml +4 -5
  19. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/__about__.py +1 -1
  20. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/api_interfaces.py +43 -16
  21. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/corecli.py +1 -1
  22. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/filehelpfunctions.py +8 -14
  23. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/pypi_package_scan.py +73 -0
  24. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/reporting.py +118 -63
  25. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/dashboardapp.py +62 -62
  26. codeaudit-1.9.1/tests/test_filescan_api.py +130 -0
  27. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_hashstrenght.py +3 -0
  28. codeaudit-1.9.1/tests/test_valid_python.py +122 -0
  29. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/test_filehelpfunctions.py +9 -15
  30. codeaudit-1.9.1/tests/validationfiles/incorrect_python_file.py +0 -0
  31. codeaudit-1.9.1/tests/validationfiles/linkaudit-0.9.9.tar.gz +0 -0
  32. codeaudit-1.8.1/.github/workflows/python-test.yml +0 -24
  33. {codeaudit-1.8.1 → codeaudit-1.9.1}/.gitignore +0 -0
  34. {codeaudit-1.8.1 → codeaudit-1.9.1}/CONTRIBUTE.md +0 -0
  35. {codeaudit-1.8.1 → codeaudit-1.9.1}/LICENSE.txt +0 -0
  36. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/.gitignore +0 -0
  37. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/class_index.html +0 -0
  38. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/coverage_html_cb_dd2e7eb5.js +0 -0
  39. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/favicon_32_cb_c827f16f.png +0 -0
  40. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/function_index.html +0 -0
  41. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/index.html +0 -0
  42. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/keybd_closed_cb_900cfef5.png +0 -0
  43. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/status.json +0 -0
  44. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/style_cb_9ff733b0.css +0 -0
  45. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8___about___py.html +0 -0
  46. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8___init___py.html +0 -0
  47. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_altairplots_py.html +0 -0
  48. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_api_helpers_py.html +0 -0
  49. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_api_interfaces_py.html +0 -0
  50. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_api_reporting_py.html +0 -0
  51. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_checkmodules_py.html +0 -0
  52. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_codeaudit_dashboard_py.html +0 -0
  53. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_codeaudit_py.html +0 -0
  54. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_complexitycheck_py.html +0 -0
  55. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_dashboard_reports_py.html +0 -0
  56. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_filehelpfunctions_py.html +0 -0
  57. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_htmlhelpfunctions_py.html +0 -0
  58. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_issuevalidations_py.html +0 -0
  59. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_privacy_lint_py.html +0 -0
  60. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_pypi_package_scan_py.html +0 -0
  61. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_reporting_py.html +0 -0
  62. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_security_checks_py.html +0 -0
  63. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_suppression_py.html +0 -0
  64. {codeaudit-1.8.1 → codeaudit-1.9.1}/cov_html/z_15dab3f49bf85fa8_totals_py.html +0 -0
  65. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/CLIcommands.ipynb +0 -0
  66. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/_static/nocxstyle.css +0 -0
  67. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/_toc.yml +0 -0
  68. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/about.md +0 -0
  69. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/apidocs/api_intro.md +0 -0
  70. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/apidocs/codeaudit.rst +0 -0
  71. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/apidocs/modules.rst +0 -0
  72. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/architecture.md +0 -0
  73. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/changelog.md +0 -0
  74. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/assert_check.md +0 -0
  75. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/base64_check.md +0 -0
  76. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/binding_check.md +0 -0
  77. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/builtinfunctions_check.md +0 -0
  78. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/chmod_check.md +0 -0
  79. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/directorycreation_check.md +0 -0
  80. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/dynamicimport_check.md +0 -0
  81. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/ftp_check.md +0 -0
  82. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/hash_check.md +0 -0
  83. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/httpserver_check.md +0 -0
  84. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/input_check.md +0 -0
  85. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/loggingconf_check.md +0 -0
  86. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/marshal_check.md +0 -0
  87. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/mktemp_check.md +0 -0
  88. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/multiprocessing_check.md +0 -0
  89. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/pickle_check.md +0 -0
  90. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/random_check.md +0 -0
  91. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/shelve_check.md +0 -0
  92. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/shutil_check.md +0 -0
  93. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/subprocess_check.md +0 -0
  94. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/syscalls_check.md +0 -0
  95. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/systemcalls_check.md +0 -0
  96. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/tarfile_extract_check.md +0 -0
  97. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/xml_check.md +0 -0
  98. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checks/zipfile_check.md +0 -0
  99. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/checksinformation.md +0 -0
  100. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/codeauditchecks.md +0 -0
  101. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/complexitycheck.md +0 -0
  102. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/data_egress_implementation.md +0 -0
  103. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/data_exfiltration_detection.md +0 -0
  104. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_api_example_basic.ipynb +0 -0
  105. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_api_example_checks.ipynb +0 -0
  106. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_api_example_json.ipynb +0 -0
  107. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_api_example_overview.ipynb +0 -0
  108. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_api_example_scanning.ipynb +0 -0
  109. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/ca_checks.ipynb +0 -0
  110. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/demofile.py +0 -0
  111. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/directoryscan.html +0 -0
  112. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/example_risk_heatmap.ipynb +0 -0
  113. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/example_weakness_perfile_view.ipynb +0 -0
  114. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/filescan.html +0 -0
  115. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/modulescan.html +0 -0
  116. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/examples/overview.html +0 -0
  117. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/features.md +0 -0
  118. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/filescan.png +0 -0
  119. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/handling_errors.md +0 -0
  120. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/help.md +0 -0
  121. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/howtoscan.md +0 -0
  122. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/OO.png +0 -0
  123. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/ROI_logo.png +0 -0
  124. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/YourLogoHere.png +0 -0
  125. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/ai_use.png +0 -0
  126. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/architecture_overview.png +0 -0
  127. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/codeauditlogo.png +0 -0
  128. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/filescan_screenshot_16012026.png +0 -0
  129. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/modulescan_screenshot_16012026.png +0 -0
  130. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/nocxbanner.png +0 -0
  131. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/overview_linkaudit.png +0 -0
  132. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/images/overview_screenshot_16012026.png +0 -0
  133. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/implementedvalidations.md +0 -0
  134. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/installation.md +0 -0
  135. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/issues.md +0 -0
  136. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/license.md +0 -0
  137. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/markingissues.md +0 -0
  138. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/modulescan.md +0 -0
  139. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/overviewplot.png +0 -0
  140. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/pca_overview.png +0 -0
  141. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/project_philosophy.md +0 -0
  142. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/sponsors.md +0 -0
  143. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/userguide.md +0 -0
  144. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/warnings.md +0 -0
  145. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/whatissast.md +0 -0
  146. {codeaudit-1.8.1 → codeaudit-1.9.1}/docs/whysast.md +0 -0
  147. {codeaudit-1.8.1 → codeaudit-1.9.1}/filescan.png +0 -0
  148. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/__init__.py +0 -0
  149. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/altairplots.py +0 -0
  150. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/api_helpers.py +0 -0
  151. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/api_reporting.py +0 -0
  152. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/checkmodules.py +0 -0
  153. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/ci_workflowscan.py +0 -0
  154. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/complexitycheck.py +0 -0
  155. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/dashboard_reports.py +0 -0
  156. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/data/sastchecks.csv +0 -0
  157. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/data/secretslist.txt +0 -0
  158. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/htmlhelpfunctions.py +0 -0
  159. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/issuevalidations.py +0 -0
  160. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/privacy_lint.py +0 -0
  161. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/security_checks.py +0 -0
  162. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/simple.css +0 -0
  163. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/suppression.py +0 -0
  164. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/codeaudit/totals.py +0 -0
  165. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/__init__.py +0 -0
  166. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/module_load_validation.html +0 -0
  167. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/module_load_validation2.html +0 -0
  168. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp.html +0 -0
  169. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp.js +0 -0
  170. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_171.html +0 -0
  171. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_171.js +0 -0
  172. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_version162.html +0 -0
  173. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_version162.js +0 -0
  174. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_version166.html +0 -0
  175. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/dashboardapp_version166.js +0 -0
  176. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp.html +0 -0
  177. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp.js +0 -0
  178. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp_171.html +0 -0
  179. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp_171.js +0 -0
  180. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp_180.html +0 -0
  181. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/pyodide/deployed/dashboardapp_180.js +0 -0
  182. {codeaudit-1.8.1 → codeaudit-1.9.1}/src/dashboard/requirements.txt +0 -0
  183. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/__init__.py +0 -0
  184. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/count_lines_file1.py +0 -0
  185. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/clean.py +0 -0
  186. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/elastic.py +0 -0
  187. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/example1.py +0 -0
  188. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/klyne.py +0 -0
  189. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/mixed.py +0 -0
  190. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/telemetry.py +0 -0
  191. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/spytestdir/telemetryfile2.py +0 -0
  192. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/suppression/sastsuppression_0.py +0 -0
  193. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/suppression/sastsuppression_1.py +0 -0
  194. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/suppression/sastsuppression_2.py +0 -0
  195. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_apicalls.py +0 -0
  196. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_apicalls2.py +0 -0
  197. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_base64.py +0 -0
  198. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_basicpatterns.py +0 -0
  199. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_chmod.py +0 -0
  200. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_constructspart2.py +0 -0
  201. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_correctexceptionuse.py +0 -0
  202. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_count_commentlines.py +0 -0
  203. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_directorycreation.py +0 -0
  204. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_directorycreation2.py +0 -0
  205. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_dynamic_import.py +0 -0
  206. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_edgecases.py +0 -0
  207. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_ftp.py +0 -0
  208. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_importlib_util.py +0 -0
  209. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_modulecheck.py +0 -0
  210. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_obfuscatingbuiltins.py +0 -0
  211. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_oschecks.py +0 -0
  212. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_pylintreport.py +0 -0
  213. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_pypiscan.py +0 -0
  214. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_random.py +0 -0
  215. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_secretfinding.py +0 -0
  216. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_standardlibconstructs.py +0 -0
  217. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_subprocess.py +0 -0
  218. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_suppression.py +0 -0
  219. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_suppressionlogic.py +0 -0
  220. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_totalscheck.py +0 -0
  221. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_wasmsafe_funtions.py +0 -0
  222. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/test_zstd.py +0 -0
  223. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/__init__.py +0 -0
  224. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/test_clean_import_list.py +0 -0
  225. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/test_collectsourcefiles.py +0 -0
  226. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/test_count_weaknesses.py +0 -0
  227. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/unit_tests/test_readinsourcefile.py +0 -0
  228. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/allshit.py +0 -0
  229. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/apivalidations.py +0 -0
  230. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/assert.py +0 -0
  231. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/base64.py +0 -0
  232. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/chmod_things.py +0 -0
  233. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/codeaudit_scan.json +0 -0
  234. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/complexitycheck.py +0 -0
  235. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/correctcounts.py +0 -0
  236. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/danger_imports.py +0 -0
  237. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/directorycreation.py +0 -0
  238. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/directorycreation2.py +0 -0
  239. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/dunderexec_with_parsing_error.py +0 -0
  240. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/eval.py +0 -0
  241. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/eval2.py +0 -0
  242. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/exception.py +0 -0
  243. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/file3.py +0 -0
  244. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/file_with_warnings.py +0 -0
  245. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/ftp.py +0 -0
  246. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/gzip.py +0 -0
  247. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/hashcheck.py +0 -0
  248. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/httpserver.py +0 -0
  249. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/inputstatement.py +0 -0
  250. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/malware.py +0 -0
  251. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/malwareAI.py +0 -0
  252. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/marshal.py +0 -0
  253. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/modulecheck.py +0 -0
  254. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/multiprocessing.py +0 -0
  255. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/obfuscating.py +0 -0
  256. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/oschecks.py +0 -0
  257. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/pickle.py +0 -0
  258. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/python2_file_willnotwork.py +0 -0
  259. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/random.py +0 -0
  260. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/shelve.py +0 -0
  261. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/shutil.py +0 -0
  262. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/subprocess.py +0 -0
  263. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/syslibrary.py +0 -0
  264. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/tarfilevalidation.py +0 -0
  265. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/tempcheck.py +0 -0
  266. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/validation1.py +0 -0
  267. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/validation2.py +0 -0
  268. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/xml.py +0 -0
  269. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/zipfile.py +0 -0
  270. {codeaudit-1.8.1 → codeaudit-1.9.1}/tests/validationfiles/zstd.py +0 -0
@@ -0,0 +1,31 @@
1
+ name: Python Package Test
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'src/**'
7
+ - 'tests/**'
8
+ pull_request:
9
+ paths:
10
+ - 'src/**'
11
+ - 'tests/**'
12
+
13
+ jobs:
14
+ test:
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - uses: actions/checkout@v5
19
+
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v6
22
+ with:
23
+ python-version: 3.14
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip hatch
28
+
29
+ - name: Test with hatch
30
+ run: |
31
+ hatch test -acr
@@ -0,0 +1,45 @@
1
+ # SAST scan with Python Code Audit on GitHub Actions
2
+ # Uses the development version!! So make sure it always works -)
3
+
4
+ name: Python Code Audit SAST Scan
5
+
6
+ on:
7
+ push:
8
+ paths:
9
+ - 'src/**'
10
+ pull_request:
11
+ paths:
12
+ - 'src/**'
13
+
14
+ jobs:
15
+ codeaudit-scan:
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - name: Checkout repository
20
+ uses: actions/checkout@v5
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v6
24
+ with:
25
+ python-version: "3.14"
26
+
27
+ - name: Upgrade pip
28
+ run: python -m pip install --upgrade pip
29
+
30
+ - name: Install Python Code Audit
31
+ run: python -m pip install -e .
32
+
33
+ - name: Show version
34
+ run: codeaudit --version
35
+
36
+ - name: Run SAST scan
37
+ run: |
38
+ codeaudit cimode . --output text | tee codeaudit-output.text
39
+ exit ${PIPESTATUS[0]}
40
+
41
+ - name: Upload scan artifact
42
+ uses: actions/upload-artifact@v6
43
+ with:
44
+ name: codeaudit-${{ github.ref_name }}
45
+ path: codeaudit-output.text
@@ -1,5 +1,51 @@
1
1
  # Change Log
2
2
 
3
+ ## Version 1.9.1:
4
+
5
+ **Added**
6
+
7
+ * Extra badge in the `README.md` for direct launch of the WASM version.
8
+ * A switch option in the UI for the WASM version to use or suppress markers in code when scanning.
9
+ * AI policy section for contributions in the manual.
10
+
11
+ **Changed**
12
+
13
+ * Adjusted validation values for checking `targz` files (`max_file_size = 15 * 1024 * 1024`, `max_tar_members = 12000`).
14
+ * Tightened security for validating Python files using `validate_python` from the `fileaudit` Python module.
15
+ * Dashboard version: Improved validation for valid PyPI names on the client side.
16
+ * Improved handling and status of tabs in the WASM version.
17
+ * Minor updates to the CLI help text.
18
+ * Changed the manual title from **Python Security Code Audit** to **Python Code Audit**.
19
+
20
+ **Fixed**
21
+
22
+ * Improved and updated unit tests for validating the correct working of excluded directories during scans (`test_excluded_dirs`).
23
+
24
+ **Documentation**
25
+
26
+ * General updates and fixes for the manual.
27
+
28
+
29
+ ## Version 1.9.0:
30
+
31
+ **Added**
32
+
33
+ * Support for scanning local and remote `.tar.gz` files using the `filescan` API function, simplifying package scanning before PyPI publication (available via `codeaudit filescan` and `codeaudit overview` CLI commands).
34
+ * Added `"test"` to the default collection of excluded scan directories.
35
+
36
+ **Changed**
37
+
38
+ * Improved the `filescan` API function.
39
+ * Dropped active installation support for Python versions older than 3.12 (code analysis support for older Python versions remains available).
40
+ * Updated GitHub Actions to use Node.js 24.
41
+ * Optimized the GitHub testing workflow to ignore documentation-only changes.
42
+
43
+
44
+ **Documentation**
45
+
46
+ * Updated and improved unit tests to reflect current functionality and test coverage.
47
+
48
+
3
49
  ## Version 1.8.1:
4
50
 
5
51
  **Added**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeaudit
3
- Version: 1.8.1
3
+ Version: 1.9.1
4
4
  Summary: A modern Python security source code analyzer (SAST) based on distrust.
5
5
  Project-URL: Homepage, https://codeaudit.nocomplexity.com
6
6
  Project-URL: Documentation, https://github.com/nocomplexity/codeaudit#readme
@@ -15,14 +15,14 @@ Classifier: Environment :: Console
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: Intended Audience :: Science/Research
17
17
  Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
20
19
  Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Programming Language :: Python :: 3.14
22
21
  Classifier: Topic :: Security
23
22
  Classifier: Topic :: Software Development :: Quality Assurance
24
- Requires-Python: >=3.11
23
+ Requires-Python: >=3.12
25
24
  Requires-Dist: altair==6.0.0
25
+ Requires-Dist: fileaudit
26
26
  Requires-Dist: fire==0.7.1
27
27
  Requires-Dist: pandas>=2.3
28
28
  Provides-Extra: test
@@ -35,7 +35,7 @@ Description-Content-Type: text/markdown
35
35
 
36
36
  # Codeaudit
37
37
 
38
- ![CodeauditLogo](https://github.com/nocomplexity/codeaudit/raw/main/docs/images/codeauditlogo.png)
38
+ [![CodeauditLogo](https://github.com/nocomplexity/codeaudit/raw/main/docs/images/codeauditlogo.png)](https://codeaudit.nocomplexity.com/)
39
39
 
40
40
  [![PythonCodeAudit Badge](https://img.shields.io/badge/Python%20Code%20Audit-Security%20Verified-FF0000?style=flat-square)](https://github.com/nocomplexity/codeaudit)
41
41
  [![PyPI - Version](https://img.shields.io/pypi/v/codeaudit.svg)](https://pypi.org/project/codeaudit)
@@ -43,6 +43,7 @@ Description-Content-Type: text/markdown
43
43
  [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/10970/badge)](https://www.bestpractices.dev/projects/10970)
44
44
  [![Documentation](https://img.shields.io/badge/Python%20Code%20Audit%20Handbook-Available-blue)](https://nocomplexity.com/documents/codeaudit/intro.html)
45
45
  [![License](https://img.shields.io/badge/License-GPLv3-FFD700)](https://nocomplexity.com/documents/codeaudit/license.html)
46
+ [![Try WebAssembly Version](https://img.shields.io/badge/Try_Live-In%20Your%20Browser-8A2BE2)](https://nocomplexity.com/codeauditapp/dashboardapp.html)
46
47
  [![PyPI Downloads](https://static.pepy.tech/badge/codeaudit)](https://pepy.tech/projects/codeaudit)
47
48
 
48
49
  Python Code Audit - A modern Python security source code analyzer based on distrust.
@@ -51,6 +52,15 @@ Python Code Audit is a static application security testing (SAST) tool designed
51
52
 
52
53
  This tool is designed for anyone who uses or creates Python programs and wants to understand and mitigate potential security risks.
53
54
 
55
+ > [!TIP]
56
+ > **Try it instantly — no installs, no setup, no excuses.**
57
+ >
58
+ > 👉 [Launch the browser version](https://nocomplexity.com/codeauditapp/dashboardapp.html)
59
+
60
+ It runs **100% locally** in your browser via WebAssembly (WASM). See the full power of **Python Code Audit** within 60 seconds.
61
+ No downloads. No dependencies. Just click and run a security audit on any Python package on PyPI!
62
+
63
+
54
64
  This tool is created for:
55
65
 
56
66
  - Python Users who want to assess the security risks in the Python code they use.
@@ -82,14 +92,6 @@ Python Code Audit has the following features:
82
92
 
83
93
  ## Installation
84
94
 
85
- > [!TIP]
86
- > Try it instantly—no installs, no setup, no excuses.
87
- >
88
- > 👉 Launch the browser version [here](https://nocomplexity.com/codeauditapp/dashboardapp.html)
89
-
90
- It runs 100% locally in your browser using WebAssembly (WASM). See the power of the tool in under 60 seconds.
91
- No downloads. No dependencies. Just click and do a security audit on Python Code.
92
-
93
95
  Loved the browser version? Unlock the full power. For advanced security code inspections, CI/CD integration, and all professional features, install the complete Python package:
94
96
 
95
97
  ```console
@@ -1,6 +1,6 @@
1
1
  # Codeaudit
2
2
 
3
- ![CodeauditLogo](https://github.com/nocomplexity/codeaudit/raw/main/docs/images/codeauditlogo.png)
3
+ [![CodeauditLogo](https://github.com/nocomplexity/codeaudit/raw/main/docs/images/codeauditlogo.png)](https://codeaudit.nocomplexity.com/)
4
4
 
5
5
  [![PythonCodeAudit Badge](https://img.shields.io/badge/Python%20Code%20Audit-Security%20Verified-FF0000?style=flat-square)](https://github.com/nocomplexity/codeaudit)
6
6
  [![PyPI - Version](https://img.shields.io/pypi/v/codeaudit.svg)](https://pypi.org/project/codeaudit)
@@ -8,6 +8,7 @@
8
8
  [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/10970/badge)](https://www.bestpractices.dev/projects/10970)
9
9
  [![Documentation](https://img.shields.io/badge/Python%20Code%20Audit%20Handbook-Available-blue)](https://nocomplexity.com/documents/codeaudit/intro.html)
10
10
  [![License](https://img.shields.io/badge/License-GPLv3-FFD700)](https://nocomplexity.com/documents/codeaudit/license.html)
11
+ [![Try WebAssembly Version](https://img.shields.io/badge/Try_Live-In%20Your%20Browser-8A2BE2)](https://nocomplexity.com/codeauditapp/dashboardapp.html)
11
12
  [![PyPI Downloads](https://static.pepy.tech/badge/codeaudit)](https://pepy.tech/projects/codeaudit)
12
13
 
13
14
  Python Code Audit - A modern Python security source code analyzer based on distrust.
@@ -16,6 +17,15 @@ Python Code Audit is a static application security testing (SAST) tool designed
16
17
 
17
18
  This tool is designed for anyone who uses or creates Python programs and wants to understand and mitigate potential security risks.
18
19
 
20
+ > [!TIP]
21
+ > **Try it instantly — no installs, no setup, no excuses.**
22
+ >
23
+ > 👉 [Launch the browser version](https://nocomplexity.com/codeauditapp/dashboardapp.html)
24
+
25
+ It runs **100% locally** in your browser via WebAssembly (WASM). See the full power of **Python Code Audit** within 60 seconds.
26
+ No downloads. No dependencies. Just click and run a security audit on any Python package on PyPI!
27
+
28
+
19
29
  This tool is created for:
20
30
 
21
31
  - Python Users who want to assess the security risks in the Python code they use.
@@ -47,14 +57,6 @@ Python Code Audit has the following features:
47
57
 
48
58
  ## Installation
49
59
 
50
- > [!TIP]
51
- > Try it instantly—no installs, no setup, no excuses.
52
- >
53
- > 👉 Launch the browser version [here](https://nocomplexity.com/codeauditapp/dashboardapp.html)
54
-
55
- It runs 100% locally in your browser using WebAssembly (WASM). See the power of the tool in under 60 seconds.
56
- No downloads. No dependencies. Just click and do a security audit on Python Code.
57
-
58
60
  Loved the browser version? Unlock the full power. For advanced security code inspections, CI/CD integration, and all professional features, install the complete Python package:
59
61
 
60
62
  ```console
@@ -20,7 +20,7 @@ I will send a response indicating the next steps in handling your report. After
20
20
 
21
21
 
22
22
  > [!TIP]
23
- > To learn more about security, please visit [Simplify Cyber Security](https://nocomplexity.com/simplify-security/). And do not hestite to join-in to make these Free and Open Security Playbooks better!
23
+ > To learn more about security, please visit [Simplify Cyber Security](https://nocomplexity.com/simplify-security/). And do not hesitate to join-in to make these Free and Open Security Playbooks better!
24
24
 
25
25
 
26
26
 
@@ -63,6 +63,58 @@ See the [section Development](makeitbetter) for to get a head start when making
63
63
 
64
64
  :::
65
65
 
66
+ (AI-policy)=
67
+ ## Generative AI / LLM Policy
68
+
69
+ Everyone is free to make contributions with or without AI assistence. Especially since English is not the native language of many people and users.
70
+
71
+ **BUT:** Due to both legal and human reasons, we have to establish boundaries.
72
+
73
+ :::{caution}
74
+ - We take the responsibility for this project very seriously and we expect you to take your responsibility for your contributions seriously, too.
75
+ - Every contribution has to be backed by a human who unequivocally owns the copyright for all changes.
76
+
77
+ No LLM bots in `Co-authored-by:`s.
78
+ - Absolutely **no** unsupervised agentic tools like OpenClaw.
79
+
80
+ By submitting a pull request, you declare that:
81
+ - You are the author of the contribution.
82
+ - You **understand** the code.
83
+ - You accept full responsibility for it.
84
+ :::
85
+
86
+ ### Legal
87
+
88
+ When you contribute to **Python Code Audit** (On PyPI `codeaudit`), your contributions (with or without AI support) are made under the same license as the file you are working on. You retain your copyright to your changes to this project.
89
+
90
+
91
+ ### Human
92
+
93
+ We take responsibility to our users very serious. Every code change is reviewed manually before merging because it's our responsibility to keep the project **stable and secure**.
94
+
95
+ Please understand that by opening low-quality pull requests generated by AI you're not helping. Make small pull request that are easy to review and merge.
96
+ :::{note}
97
+ Every pull request must be created by a Human or reviewed by a human. A human is responsible for all text in an issue or pull request.
98
+ :::
99
+
100
+ We have no time to become part of your vibe coding loop where you drop LLM slop and we spend time and energy to review it, and you just feed it back into the LLM for another iteration.
101
+
102
+ In practice, this means:
103
+
104
+ - Pull requests that have an LLM product listed as co-author can't be merged and will be closed without further discussion.
105
+
106
+ If you used LLM tools during development, you may still submit. But you must remove all LLM author tags and take full ownership of every line.
107
+
108
+ - By submitting a pull request, **you** take full responsibility for the contents of the pull request.
109
+
110
+ *"An LLM wrote it"* is **not** an acceptable response to questions or review remarks.
111
+
112
+ So:
113
+ - Do **not** post LLM-generated review comments.
114
+ - Do **not** post summaries unless you've fact-checked them and take responsibility for 100% of their content.
115
+
116
+ *Attribution: This AI policy is based on [attrs' AI_POLICY.md](https://github.com/python-attrs/attrs/blob/main/.github/AI_POLICY.md).*
117
+
66
118
  (CoC-label)=
67
119
  ## Code of Conduct
68
120
 
@@ -99,6 +99,6 @@ sphinx:
99
99
  use_issues_button: True
100
100
  home_page_in_toc: True
101
101
  logo:
102
- text: <b>Python Security Code Audit</b>
102
+ text: <b>Python Code Audit</b>
103
103
  extra_footer: '<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a> This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>'
104
104
 
@@ -1,4 +1,4 @@
1
- ## Exception Statements
1
+ # Exception Statements
2
2
 
3
3
  Python Code Audit detects the use of `pass` within an `except` block.
4
4
 
@@ -198,12 +198,12 @@ jobs:
198
198
 
199
199
  steps:
200
200
  - name: Checkout repository
201
- uses: actions/checkout@v4
201
+ uses: actions/checkout@v5
202
202
 
203
203
  - name: Set up Python
204
- uses: actions/setup-python@v5
204
+ uses: actions/setup-python@v6
205
205
  with:
206
- python-version: "3.13"
206
+ python-version: "3.14"
207
207
 
208
208
  - name: Upgrade pip
209
209
  run: python -m pip install --upgrade pip
@@ -220,7 +220,7 @@ jobs:
220
220
  exit ${PIPESTATUS[0]}
221
221
 
222
222
  - name: Upload scan artifact
223
- uses: actions/upload-artifact@v4
223
+ uses: actions/upload-artifact@v5
224
224
  with:
225
225
  name: codeaudit-${{ github.ref_name }}
226
226
  path: codeaudit-output.text
@@ -243,10 +243,10 @@ jobs:
243
243
 
244
244
  steps:
245
245
  - name: Checkout repository
246
- uses: actions/checkout@v4
246
+ uses: actions/checkout@v5
247
247
 
248
248
  - name: Set up Python
249
- uses: actions/setup-python@v5
249
+ uses: actions/setup-python@v6
250
250
  with:
251
251
  python-version: "3.13"
252
252
 
@@ -263,7 +263,7 @@ jobs:
263
263
  run: codeaudit cimode . --output html > codeaudit-output.html
264
264
 
265
265
  - name: Upload scan artifact
266
- uses: actions/upload-artifact@v4
266
+ uses: actions/upload-artifact@v6
267
267
  with:
268
268
  name: codeaudit-${{ github.ref_name }}
269
269
  path: codeaudit-output.html
@@ -1,6 +1,6 @@
1
1
  % THIS FILE IS GENERATED! - Use CLIcommands.ipynb to make it better!
2
2
  # Commands Overview
3
- Python Code Audit commands for: version: 1.8.1
3
+ Python Code Audit commands for: version: 1.9.1
4
4
  ```
5
5
  ----------------------------------------------------
6
6
  _ __ _
@@ -16,62 +16,88 @@ Usage: codeaudit COMMAND <directory|package> [report.html]
16
16
  Depending on the command, you must specify a local directory, a Python file, or a package name hosted on PyPI.org.Reporting: The results are generated as a static HTML report for viewing in a web browser.
17
17
 
18
18
  Commands:
19
- overview Generates an overview report of code complexity and security indicators.
20
- filescan Scans Python source code or PyPI packages for security weaknesses.
19
+ overview Generate an overview report of code complexity and security indicators.
20
+ filescan Scan Python source code, PyPI packages, or tar.gz archives for security weaknesses.
21
21
  cimode Run a SAST scan for CI workflows.
22
22
  modulescan Generate a report on known vulnerabilities in Python modules and packages.
23
23
  checks Creates an HTML report of all implemented security checks.
24
24
  version Prints the module version. Or use codeaudit [-v] [--v] [-version] or [--version].
25
25
 
26
- Use the Python Code Audit documentation (https://codeaudit.nocomplexity.com) to audit and secure your Python programmes. Explore further essential open-source security tools at https://simplifysecurity.nocomplexity.com/
26
+ Use the Python Code Audit documentation (https://codeaudit.nocomplexity.com) to audit and secure your Python programmes. Explore further essential open-source security tools at https://pythonsecurity.nocomplexity.com/
27
27
 
28
28
  ```
29
29
  ## codeaudit overview
30
30
  ```text
31
- Generates an overview report of code complexity and security indicators.
31
+ Generate an overview report of code complexity and security indicators.
32
32
 
33
- This function analyzes a Python project to produce a high-level overview of
34
- complexity and security-related metrics. The input may be either:
33
+ This function analyzes a Python project and generates a high-level HTML
34
+ overview of code complexity, project size, module dependencies, and
35
+ security-related indicators.
35
36
 
36
- - A local directory containing Python source files
37
- - The name of a package hosted on PyPI.org
37
+ The input can be one of the following:
38
38
 
39
- So:
40
- codeaudit overview <package-name|directory> [reportname.html]
39
+ * A local directory containing Python source files
40
+ * A local or remote ``.tar.gz`` source archive
41
+ * The name of a package hosted on PyPI.org
41
42
 
42
- For PyPI packages, the source distribution (sdist) is downloaded,
43
+ codeaudit overview <package-name|directory|archive.tar.gz> [reportname.html]
44
+
45
+ For a local or remote ``.tar.gz`` archive, the archive is validated,
46
+ extracted to a temporary directory, scanned, and removed after the report
47
+ has been generated.
48
+
49
+ For a PyPI package, the source distribution (sdist) is downloaded,
43
50
  extracted to a temporary directory, scanned, and removed after the report
44
- is generated.
51
+ has been generated.
52
+
53
+ The report includes:
45
54
 
46
- The report includes summary statistics, security risk indicators based on
47
- complexity and total lines of code, a list of discovered modules, per-file
48
- metrics, and a visual overview. Results are written to a static HTML file.
55
+ * Summary statistics for the analyzed project
56
+ * Security concern indicators based on maximum code complexity
57
+ and total lines of code
58
+ * A list of discovered standard-library and external modules
59
+ * Detailed metrics for each Python source file
60
+ * A visual overview of the collected metrics
61
+ * Advice for performing a full SAST scan with ``codeaudit filescan``
49
62
 
50
63
  Examples:
51
64
  Generate an overview report for a local project directory::
52
65
 
53
66
  codeaudit overview /projects/mycolleaguesproject
54
67
 
68
+ Generate an overview report for a local ``.tar.gz`` archive::
69
+
70
+ codeaudit overview /path/to/myproject.tar.gz
71
+
72
+ Generate an overview report for a remote ``.tar.gz`` archive::
73
+
74
+ codeaudit overview https://example.com/myproject.tar.gz
75
+
55
76
  Generate an overview report for a PyPI package::
56
77
 
57
- codeaudit overview linkaudit #A nice project on PyPI.org
78
+ codeaudit overview linkaudit
58
79
 
59
- codeaudit overview pydantic #A complex project on PyPI.org from a security perspective?
80
+ codeaudit overview pydantic
81
+
82
+ Specify an output report file::
83
+
84
+ codeaudit overview /projects/mycolleaguesproject report.html
60
85
 
61
86
  Args:
62
- directory (str): Path to a local directory containing Python source files
63
- or the name of a package available on PyPI.org.
87
+ directory (str): Path to a local directory containing Python source
88
+ files, a local or remote ``.tar.gz`` source archive, or the name of
89
+ a package available on PyPI.org.
64
90
  filename (str, optional): Name (and optional path) of the HTML file to
65
- write the overview report to. The filename should use the ``.html``
66
- extension. Defaults to ``DEFAULT_OUTPUT_FILE``.
91
+ write the overview report to. The filename should use the
92
+ ``.html`` extension. Defaults to ``DEFAULT_OUTPUT_FILE``.
67
93
 
68
94
  Returns:
69
- None. The function writes a static HTML overview report to disk.
95
+ None: The function writes a static HTML overview report to disk.
70
96
 
71
97
  Raises:
72
- SystemExit: If the provided path is not a directory, contains no Python
73
- files, or is neither a valid local directory nor a valid PyPI
74
- package name.
98
+ SystemExit: If the provided path is not a directory, contains no
99
+ Python files, is an invalid ``.tar.gz`` archive, or is neither a
100
+ valid local input nor a valid PyPI package name.
75
101
  str(object='') -> str
76
102
  str(bytes_or_buffer[, encoding[, errors]]) -> str
77
103
 
@@ -133,26 +159,32 @@ errors defaults to 'strict'.
133
159
  ```
134
160
  ## codeaudit filescan
135
161
  ```text
136
- Scans Python source code or PyPI packages for security weaknesses.
162
+ Scan Python source code, PyPI packages, or tar.gz archives for security weaknesses.
163
+
137
164
  This function performs static application security testing (SAST) on a
138
165
  specified input. The input can be one of the following:
139
166
 
140
167
  * A local directory containing Python source code
141
168
  * A single local Python file
169
+ * A local or remote ``.tar.gz`` source archive
142
170
  * The name of a package hosted on PyPI
143
171
 
144
- codeaudit filescan <pythonfile|package-name|directory> [reportname.html] [--nosec]
172
+ codeaudit filescan <pythonfile|package-name|directory|archive.tar.gz> [reportname.html] [--nosec]
145
173
 
146
174
  Based on the input type, the function analyzes the source code for potential
147
175
  security issues, generates an HTML report summarizing the findings, and
148
176
  writes the report to disk.
149
177
 
178
+ For a local or remote ``.tar.gz`` archive, the archive is validated,
179
+ extracted to a temporary directory, scanned as a source directory, and
180
+ cleaned up after the scan completes.
181
+
150
182
  If a PyPI package name is provided, the function downloads the source
151
183
  distribution (sdist), extracts it to a temporary directory, scans the
152
184
  extracted source code, and cleans up all temporary files after the scan
153
185
  completes.
154
186
 
155
- Examples:
187
+ Examples:
156
188
 
157
189
  Scan a local directory and write the report to ``report.html``::
158
190
 
@@ -166,49 +198,56 @@ completes.
166
198
 
167
199
  codeaudit filescan myexample.py
168
200
 
201
+ Scan a local tar.gz archive::
202
+
203
+ codeaudit filescan /path/to/package.tar.gz
204
+
205
+ Scan a remote tar.gz archive::
206
+
207
+ codeaudit filescan https://example.com/package.tar.gz
208
+
169
209
  Scan a package hosted on PyPI::
170
210
 
171
211
  codeaudit filescan linkaudit
172
212
 
173
213
  codeaudit filescan requests
174
214
 
175
-
176
215
  Specify an output report file::
177
216
 
178
217
  codeaudit filescan /path/to/project report.html
179
218
 
180
- Enable filtering of issues marked with ``#nosec`` or another marker on potential code weaknesses that mitigated or known ::
219
+ Enable filtering of issues marked with ``#nosec`` or another marker
220
+ indicating that potential code weaknesses have been reviewed or
221
+ intentionally ignored::
181
222
 
182
223
  codeaudit filescan myexample.py --nosec
183
224
 
184
225
  POSITIONAL ARGUMENTS
185
226
  INPUT_PATH
186
- Path to a local Python file or directory, or the name of a package available on PyPI.
187
-
227
+ Path to a local Python file or directory, a local or remote ``.tar.gz``
228
+ archive, or the name of a package available on PyPI.
188
229
 
189
230
  FLAGS
190
231
  -f, --filename=FILENAME
191
232
  Default: 'codeaudit-report.html'
192
- -n, --nosec=NOSEC
193
- Default: False
194
-
195
-
196
- Args:
233
+ Name (and optional path) of the HTML file to write the scan report to.
234
+ The filename should use the ``.html`` extension.
197
235
 
198
- -f, --filename=FILENAME
199
- Default: 'codeaudit-report.html'
200
- Name (and optional path) of the HTML file to write the scan report to. The filename should use the ``.html`` extension. Defaults to ``DEFAULT_OUTPUT_FILE``.
201
236
  -n, --nosec=NOSEC
202
237
  Default: False
203
- Whether to filter out issues marked as reviewed or ignored in the source code. Defaults to ``False``, no filtering.
238
+ Whether to filter out issues marked as reviewed or ignored in the
239
+ source code.
204
240
 
205
- input_path (str): Path to a local Python file or directory, or the name
206
- of a package available on PyPI.
241
+ Args:
242
+ input_path (str): Path to a local Python file or directory, a local or
243
+ remote ``.tar.gz`` archive, or the name of a package available on
244
+ PyPI.
207
245
  filename (str, optional): Name (and optional path) of the HTML file to
208
246
  write the scan report to. The filename should use the ``.html``
209
247
  extension. Defaults to ``DEFAULT_OUTPUT_FILE``.
210
248
  nosec (bool, optional): Whether to filter out issues marked as reviewed
211
- or ignored in the source code. Defaults to ``False``, no filtering.
249
+ or ignored in the source code. Defaults to ``False``, meaning no
250
+ filtering is applied.
212
251
 
213
252
  Returns:
214
253
  None: The function writes a static HTML security report to disk.
@@ -2,21 +2,28 @@
2
2
  # Command `codeaudit overview`
3
3
 
4
4
 
5
+ Use this command to generate a quick security-relevant assessment of a Python project or package. It provides an overview of important security and code-complexity metrics for the project.
5
6
 
6
- Use this command to generate a quick security relevant assessment of a Python project or package. It provides an overview of important security metrics for the project.
7
+ ## Usage
7
8
 
8
- Usage
9
- ```Bash
10
- codeaudit overview <package-path|package-name> [report-name.html]
9
+ ```bash
10
+ codeaudit overview <package-path|package-name|package.tar.gz> [report-name.html]
11
11
  ```
12
12
 
13
- Arguments:
14
- * `<package-path|package-name>` (Required)
15
- Specify either a local directory containing Python files or the name of a Python package hosted on PyPI.org.
13
+ ## Arguments
14
+
15
+ * `<package-path|package-name|package.tar.gz>` (Required)
16
+
17
+ Specify one of the following:
18
+
19
+ * A local directory containing Python files.
20
+ * The name of a Python package hosted on PyPI.org.
21
+ * A local `.tar.gz` source archive.
22
+ * A remote `.tar.gz` source archive URL (only HTTPS allowed!).
16
23
 
17
24
  * `[report-name.html]` (Optional)
18
- The filename for the generated security report. If omitted, the tool will use a default filename. If you provide a custom name, ensure it ends with the `.html` extension.
19
25
 
26
+ The filename for the generated overview report. If omitted, the tool will use a default filename. If you provide a custom name, ensure it ends with the `.html` extension.
20
27
 
21
28
 
22
29
  For every Python file the following **security** relevant statistics are determined:
@@ -774,4 +774,4 @@ footer {
774
774
  <td>Vulnerable to path traversal attacks if used with untrusted archives.</td>
775
775
  </tr>
776
776
  </tbody>
777
- </table><br><p>Number of implemented security validations:<b>89</b></p><p>Version of codeaudit: <b>1.8.1</b><p>Because Python and cybersecurity are constantly changing, issue reports <b>SHOULD</b> specify the codeaudit version used.</p><p><b>Disclaimer:</b> <i>This SAST tool <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> provides a powerful, automatic security analysis for Python source code. However, it's not a substitute for human review in combination with business knowledge. Undetected vulnerabilities may still exist.</i></p><p>This Python security report was created on: <b>2026-07-31 13:23</b> with <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> version <b>1.8.1</b></p><hr><footer><div class="footer-links">Check the <a href="https://nocomplexity.com/documents/codeaudit/intro.html" target="_blank">documentation</a> for help on found issues.<br>Codeaudit is made with <span class="heart">&#10084;</span> by cyber security professionals who advocate for <a href="https://nocomplexity.com/simplify-security/" target="_blank">open simple security solutions</a>.<br><a href="https://nocomplexity.com/documents/codeaudit/CONTRIBUTE.html" target="_blank">Join the community</a> and contribute to make this tool better!</div></footer></div></body></html>
777
+ </table><br><p>Number of implemented security validations:<b>89</b></p><p>Version of codeaudit: <b>1.9.1</b><p>Because Python and cybersecurity are constantly changing, issue reports <b>SHOULD</b> specify the codeaudit version used.</p><p><b>Disclaimer:</b> <i>This SAST tool <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> provides a powerful, automatic security analysis for Python source code. However, it's not a substitute for human review in combination with business knowledge. Undetected vulnerabilities may still exist.</i></p><p>This Python security report was created on: <b>2026-10-09 11:58</b> with <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> version <b>1.9.1</b></p><hr><footer><div class="footer-links">Check the <a href="https://nocomplexity.com/documents/codeaudit/intro.html" target="_blank">documentation</a> for help on found issues.<br>Codeaudit is made with <span class="heart">&#10084;</span> by cyber security professionals who advocate for <a href="https://nocomplexity.com/simplify-security/" target="_blank">open simple security solutions</a>.<br><a href="https://nocomplexity.com/documents/codeaudit/CONTRIBUTE.html" target="_blank">Join the community</a> and contribute to make this tool better!</div></footer></div></body></html>