cycode 3.17.3.dev6__tar.gz → 3.18.1.dev1__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 (217) hide show
  1. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/PKG-INFO +2 -1
  2. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/README.md +1 -0
  3. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/__init__.py +1 -1
  4. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/consts.py +3 -1
  5. cycode-3.18.1.dev1/cycode/cli/files_collector/sca/python/restore_pip_dependencies.py +69 -0
  6. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/sca_file_collector.py +2 -0
  7. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/pyproject.toml +1 -1
  8. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/LICENCE +0 -0
  9. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/__main__.py +0 -0
  10. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/__init__.py +0 -0
  11. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/app.py +0 -0
  12. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/__init__.py +0 -0
  13. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/activation_manager.py +0 -0
  14. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
  15. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
  16. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
  17. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
  18. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
  19. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
  20. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/base.py +0 -0
  21. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +0 -0
  22. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -0
  23. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/copilot.py +0 -0
  24. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
  25. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
  26. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
  27. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
  28. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/handlers.py +0 -0
  29. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
  30. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/policy.py +0 -0
  31. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +0 -0
  32. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
  33. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/scan/utils.py +0 -0
  34. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/session_start_command.py +0 -0
  35. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
  36. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
  37. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  38. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  39. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  40. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  41. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/api/__init__.py +0 -0
  42. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/api/api_command.py +0 -0
  43. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/api/openapi_spec.py +0 -0
  44. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/auth/__init__.py +0 -0
  45. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/auth/auth_command.py +0 -0
  46. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/auth/auth_common.py +0 -0
  47. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/auth/auth_manager.py +0 -0
  48. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/auth/models.py +0 -0
  49. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/configure/__init__.py +0 -0
  50. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/configure/configure_command.py +0 -0
  51. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/configure/consts.py +0 -0
  52. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/configure/messages.py +0 -0
  53. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/configure/prompts.py +0 -0
  54. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ignore/__init__.py +0 -0
  55. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  56. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/mcp/__init__.py +0 -0
  57. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  58. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/__init__.py +0 -0
  59. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/report_command.py +0 -0
  60. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  61. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/common.py +0 -0
  62. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  63. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  64. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  65. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  66. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  67. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  68. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report_import/__init__.py +0 -0
  69. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report_import/report_import_command.py +0 -0
  70. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
  71. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
  72. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/sca_options.py +0 -0
  73. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/__init__.py +0 -0
  74. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  75. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/code_scanner.py +0 -0
  76. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  77. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  78. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  79. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  80. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/path/__init__.py +0 -0
  81. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/path/path_command.py +0 -0
  82. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  83. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  84. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  85. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  86. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  87. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  88. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  89. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  90. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  91. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  92. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  93. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  94. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_command.py +0 -0
  95. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  96. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/scan/scan_result.py +0 -0
  97. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/status/__init__.py +0 -0
  98. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/status/get_cli_status.py +0 -0
  99. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/status/models.py +0 -0
  100. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/status/status_command.py +0 -0
  101. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/apps/status/version_command.py +0 -0
  102. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/cli_types.py +0 -0
  103. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/config.py +0 -0
  104. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/console.py +0 -0
  105. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/__init__.py +0 -0
  106. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  107. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  108. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  109. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/handle_errors.py +0 -0
  110. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  111. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  112. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/__init__.py +0 -0
  113. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/commit_range_documents.py +0 -0
  114. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
  115. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/file_excluder.py +0 -0
  116. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/iac/__init__.py +0 -0
  117. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  118. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/models/__init__.py +0 -0
  119. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  120. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/path_documents.py +0 -0
  121. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/repository_documents.py +0 -0
  122. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/__init__.py +0 -0
  123. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  124. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  125. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  126. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  127. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  128. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  129. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  130. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py +0 -0
  131. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
  132. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  133. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
  134. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
  135. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  136. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  137. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
  138. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
  139. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
  140. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
  141. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
  142. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
  143. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  144. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  145. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  146. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  147. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/walk_ignore.py +0 -0
  148. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/files_collector/zip_documents.py +0 -0
  149. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/logger.py +0 -0
  150. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/main.py +0 -0
  151. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/models.py +0 -0
  152. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/__init__.py +0 -0
  153. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/console_printer.py +0 -0
  154. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/json_printer.py +0 -0
  155. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/printer_base.py +0 -0
  156. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/rich_printer.py +0 -0
  157. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/__init__.py +0 -0
  158. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  159. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/table.py +0 -0
  160. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/table_models.py +0 -0
  161. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/table_printer.py +0 -0
  162. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  163. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/text_printer.py +0 -0
  164. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/__init__.py +0 -0
  165. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  166. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/detection_data.py +0 -0
  167. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  168. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  169. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  170. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  171. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/__init__.py +0 -0
  172. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/base_file_manager.py +0 -0
  173. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/config_file_manager.py +0 -0
  174. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/configuration_manager.py +0 -0
  175. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/credentials_manager.py +0 -0
  176. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/user_settings/jwt_creator.py +0 -0
  177. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/__init__.py +0 -0
  178. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/binary_utils.py +0 -0
  179. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/enum_utils.py +0 -0
  180. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/get_api_client.py +0 -0
  181. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/git_proxy.py +0 -0
  182. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/host_info.py +0 -0
  183. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/ignore_utils.py +0 -0
  184. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/jwt_utils.py +0 -0
  185. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/path_utils.py +0 -0
  186. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/progress_bar.py +0 -0
  187. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/scan_batch.py +0 -0
  188. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/scan_utils.py +0 -0
  189. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/shell_executor.py +0 -0
  190. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/string_utils.py +0 -0
  191. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/task_timer.py +0 -0
  192. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/url_utils.py +0 -0
  193. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/version_checker.py +0 -0
  194. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cli/utils/yaml_utils.py +0 -0
  195. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/config.py +0 -0
  196. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/__init__.py +0 -0
  197. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/ai_security_manager_client.py +0 -0
  198. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
  199. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/auth_client.py +0 -0
  200. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/base_token_auth_client.py +0 -0
  201. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cli_activation_client.py +0 -0
  202. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/client_creator.py +0 -0
  203. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/config.py +0 -0
  204. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/config_dev.py +0 -0
  205. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cycode_client.py +0 -0
  206. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cycode_client_base.py +0 -0
  207. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  208. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
  209. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/cycode_token_based_client.py +0 -0
  210. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/headers.py +0 -0
  211. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/import_sbom_client.py +0 -0
  212. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/logger.py +0 -0
  213. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/models.py +0 -0
  214. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/report_client.py +0 -0
  215. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/scan_client.py +0 -0
  216. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/cyclient/scan_config_base.py +0 -0
  217. {cycode-3.17.3.dev6 → cycode-3.18.1.dev1}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.17.3.dev6
3
+ Version: 3.18.1.dev1
4
4
  Summary: Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning.
5
5
  License-Expression: MIT
6
6
  License-File: LICENCE
@@ -858,6 +858,7 @@ The following ecosystems support automatic lockfile restoration:
858
858
  | NuGet | `*.csproj` | `packages.lock.json` | `dotnet restore --use-lock-file` |
859
859
  | Ruby | `Gemfile` | `Gemfile.lock` | `bundle --quiet` |
860
860
  | Poetry | `pyproject.toml` | `poetry.lock` | `poetry lock` |
861
+ | pip | `pyproject.toml` / `requirements.txt` | `pylock.toml` | `pip lock .` / `pip lock -r requirements.txt -o pylock.toml` |
861
862
  | Pipenv | `Pipfile` | `Pipfile.lock` | `pipenv lock` |
862
863
  | PHP Composer | `composer.json` | `composer.lock` | `composer update --no-cache --no-install --no-scripts --ignore-platform-reqs` |
863
864
 
@@ -814,6 +814,7 @@ The following ecosystems support automatic lockfile restoration:
814
814
  | NuGet | `*.csproj` | `packages.lock.json` | `dotnet restore --use-lock-file` |
815
815
  | Ruby | `Gemfile` | `Gemfile.lock` | `bundle --quiet` |
816
816
  | Poetry | `pyproject.toml` | `poetry.lock` | `poetry lock` |
817
+ | pip | `pyproject.toml` / `requirements.txt` | `pylock.toml` | `pip lock .` / `pip lock -r requirements.txt -o pylock.toml` |
817
818
  | Pipenv | `Pipfile` | `Pipfile.lock` | `pipenv lock` |
818
819
  | PHP Composer | `composer.json` | `composer.lock` | `composer update --no-cache --no-install --no-scripts --ignore-platform-reqs` |
819
820
 
@@ -5,4 +5,4 @@ import time as _time
5
5
  # end-to-end scan duration from the moment the user actually triggered it.
6
6
  _BOOT_WALL: float = _time.time()
7
7
 
8
- __version__ = '3.17.3.dev6' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
8
+ __version__ = '3.18.1.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -118,6 +118,7 @@ SCA_CONFIGURATION_SCAN_SUPPORTED_FILES = ( # keep in lowercase
118
118
  'pyproject.toml',
119
119
  'uv.lock',
120
120
  'poetry.lock',
121
+ 'pylock.toml',
121
122
  'pipfile',
122
123
  'pipfile.lock',
123
124
  'requirements.txt',
@@ -175,8 +176,9 @@ PROJECT_FILES_BY_ECOSYSTEM_MAP = {
175
176
  'sbt': ['build.sbt', 'build.scala', 'build.sbt.lock'],
176
177
  'pypi_uv': ['pyproject.toml', 'uv.lock'],
177
178
  'pypi_poetry': ['pyproject.toml', 'poetry.lock'],
179
+ 'pypi_pip': ['pyproject.toml', 'pylock.toml'],
178
180
  'pypi_pipenv': ['Pipfile', 'Pipfile.lock'],
179
- 'pypi_requirements': ['requirements.txt'],
181
+ 'pypi_requirements': ['requirements.txt', 'pylock.toml'],
180
182
  'pypi_setup': ['setup.py'],
181
183
  'hex': ['mix.exs', 'mix.lock'],
182
184
  'swift_pm': ['Package.swift', 'Package.resolved'],
@@ -0,0 +1,69 @@
1
+ from pathlib import Path
2
+ from typing import Optional
3
+
4
+ import typer
5
+
6
+ from cycode.cli.files_collector.sca.base_restore_dependencies import BaseRestoreDependencies, build_dep_tree_path
7
+ from cycode.cli.models import Document
8
+ from cycode.cli.utils.path_utils import get_file_content
9
+ from cycode.logger import get_logger
10
+
11
+ logger = get_logger('Pip Restore Dependencies')
12
+
13
+ PIP_PYPROJECT_MANIFEST_FILE_NAME = 'pyproject.toml'
14
+ PIP_REQUIREMENTS_MANIFEST_FILE_NAME = 'requirements.txt'
15
+ PIP_LOCK_FILE_NAME = 'pylock.toml'
16
+
17
+ _POETRY_TOOL_SECTION = '[tool.poetry]'
18
+ _UV_TOOL_SECTION = '[tool.uv]'
19
+
20
+
21
+ def _indicates_plain_pip(pyproject_content: Optional[str]) -> bool:
22
+ """Return True if pyproject.toml content signals a plain-pip project (no Poetry, no uv)."""
23
+ if not pyproject_content:
24
+ return False
25
+ return _POETRY_TOOL_SECTION not in pyproject_content and _UV_TOOL_SECTION not in pyproject_content
26
+
27
+
28
+ class RestorePipDependencies(BaseRestoreDependencies):
29
+ def __init__(self, ctx: typer.Context, is_git_diff: bool, command_timeout: int) -> None:
30
+ super().__init__(ctx, is_git_diff, command_timeout)
31
+
32
+ def is_project(self, document: Document) -> bool:
33
+ manifest_name = Path(document.path).name
34
+
35
+ if manifest_name == PIP_REQUIREMENTS_MANIFEST_FILE_NAME:
36
+ return True
37
+
38
+ if manifest_name != PIP_PYPROJECT_MANIFEST_FILE_NAME:
39
+ return False
40
+
41
+ manifest_dir = self.get_manifest_dir(document)
42
+ if manifest_dir and (Path(manifest_dir) / PIP_LOCK_FILE_NAME).is_file():
43
+ return True
44
+
45
+ return _indicates_plain_pip(document.content)
46
+
47
+ def try_restore_dependencies(self, document: Document) -> Optional[Document]:
48
+ manifest_dir = self.get_manifest_dir(document)
49
+ lockfile_path = Path(manifest_dir) / PIP_LOCK_FILE_NAME if manifest_dir else None
50
+
51
+ if lockfile_path and lockfile_path.is_file():
52
+ content = get_file_content(str(lockfile_path))
53
+ relative_path = build_dep_tree_path(document.path, PIP_LOCK_FILE_NAME)
54
+ logger.debug('Using existing pylock.toml, %s', {'path': str(lockfile_path)})
55
+ return Document(relative_path, content, self.is_git_diff)
56
+
57
+ return super().try_restore_dependencies(document)
58
+
59
+ def get_commands(self, manifest_file_path: str) -> list[list[str]]:
60
+ if Path(manifest_file_path).name == PIP_REQUIREMENTS_MANIFEST_FILE_NAME:
61
+ return [['pip', 'lock', '-r', 'requirements.txt', '-o', PIP_LOCK_FILE_NAME]]
62
+
63
+ return [['pip', 'lock', '.']]
64
+
65
+ def get_lock_file_name(self) -> str:
66
+ return PIP_LOCK_FILE_NAME
67
+
68
+ def get_lock_file_names(self) -> list[str]:
69
+ return [PIP_LOCK_FILE_NAME]
@@ -17,6 +17,7 @@ from cycode.cli.files_collector.sca.npm.restore_pnpm_dependencies import Restore
17
17
  from cycode.cli.files_collector.sca.npm.restore_yarn_dependencies import RestoreYarnDependencies
18
18
  from cycode.cli.files_collector.sca.nuget.restore_nuget_dependencies import RestoreNugetDependencies
19
19
  from cycode.cli.files_collector.sca.php.restore_composer_dependencies import RestoreComposerDependencies
20
+ from cycode.cli.files_collector.sca.python.restore_pip_dependencies import RestorePipDependencies
20
21
  from cycode.cli.files_collector.sca.python.restore_pipenv_dependencies import RestorePipenvDependencies
21
22
  from cycode.cli.files_collector.sca.python.restore_poetry_dependencies import RestorePoetryDependencies
22
23
  from cycode.cli.files_collector.sca.python.restore_uv_dependencies import RestoreUvDependencies
@@ -164,6 +165,7 @@ def _get_restore_handlers(ctx: typer.Context, is_git_diff: bool) -> list[BaseRes
164
165
  RestoreRubyDependencies(ctx, is_git_diff, build_dep_tree_timeout),
165
166
  RestoreUvDependencies(ctx, is_git_diff, build_dep_tree_timeout), # Must be before Poetry for pyproject.toml
166
167
  RestorePoetryDependencies(ctx, is_git_diff, build_dep_tree_timeout),
168
+ RestorePipDependencies(ctx, is_git_diff, build_dep_tree_timeout), # Must be after Uv & Poetry (pyproject.toml)
167
169
  RestorePipenvDependencies(ctx, is_git_diff, build_dep_tree_timeout),
168
170
  RestoreComposerDependencies(ctx, is_git_diff, build_dep_tree_timeout),
169
171
  ]
@@ -21,7 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.14",
22
22
  ]
23
23
  dynamic = ["dependencies"]
24
- version = "3.17.3.dev6"
24
+ version = "3.18.1.dev1"
25
25
 
26
26
  [project.scripts]
27
27
  cycode = "cycode.cli.app:app"
File without changes