loopix-sdk 2.30.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 (238) hide show
  1. loopix_sdk-2.30.0/LICENSE +9 -0
  2. loopix_sdk-2.30.0/PKG-INFO +98 -0
  3. loopix_sdk-2.30.0/README.md +65 -0
  4. loopix_sdk-2.30.0/loopix/__init__.py +260 -0
  5. loopix_sdk-2.30.0/loopix/api/__init__.py +287 -0
  6. loopix_sdk-2.30.0/loopix/api/client/__init__.py +8 -0
  7. loopix_sdk-2.30.0/loopix/api/client/api/__init__.py +1 -0
  8. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/__init__.py +1 -0
  9. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/delete_sandboxes_sandbox_id.py +161 -0
  10. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_sandboxes.py +176 -0
  11. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_sandboxes_metrics.py +173 -0
  12. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id.py +163 -0
  13. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id_logs.py +199 -0
  14. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_sandboxes_sandbox_id_metrics.py +212 -0
  15. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_v2_sandboxes.py +230 -0
  16. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/get_v_2_sandboxes_sandbox_id_logs.py +254 -0
  17. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes.py +172 -0
  18. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_connect.py +193 -0
  19. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_pause.py +187 -0
  20. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_refreshes.py +181 -0
  21. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_resume.py +189 -0
  22. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_snapshots.py +195 -0
  23. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/post_sandboxes_sandbox_id_timeout.py +193 -0
  24. loopix_sdk-2.30.0/loopix/api/client/api/sandboxes/put_sandboxes_sandbox_id_network.py +199 -0
  25. loopix_sdk-2.30.0/loopix/api/client/api/snapshots/__init__.py +1 -0
  26. loopix_sdk-2.30.0/loopix/api/client/api/snapshots/get_snapshots.py +202 -0
  27. loopix_sdk-2.30.0/loopix/api/client/api/tags/__init__.py +1 -0
  28. loopix_sdk-2.30.0/loopix/api/client/api/tags/delete_templates_tags.py +174 -0
  29. loopix_sdk-2.30.0/loopix/api/client/api/tags/get_templates_template_id_tags.py +172 -0
  30. loopix_sdk-2.30.0/loopix/api/client/api/tags/post_templates_tags.py +176 -0
  31. loopix_sdk-2.30.0/loopix/api/client/api/templates/__init__.py +1 -0
  32. loopix_sdk-2.30.0/loopix/api/client/api/templates/delete_templates_template_id.py +157 -0
  33. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates.py +172 -0
  34. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates_aliases_alias.py +167 -0
  35. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates_template_id.py +195 -0
  36. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates_template_id_builds_build_id_logs.py +272 -0
  37. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates_template_id_builds_build_id_status.py +232 -0
  38. loopix_sdk-2.30.0/loopix/api/client/api/templates/get_templates_template_id_files_hash.py +180 -0
  39. loopix_sdk-2.30.0/loopix/api/client/api/templates/patch_templates_template_id.py +183 -0
  40. loopix_sdk-2.30.0/loopix/api/client/api/templates/patch_v_2_templates_template_id.py +185 -0
  41. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_templates.py +172 -0
  42. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_templates_template_id.py +181 -0
  43. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_templates_template_id_builds_build_id.py +170 -0
  44. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_v2_templates.py +172 -0
  45. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_v3_templates.py +176 -0
  46. loopix_sdk-2.30.0/loopix/api/client/api/templates/post_v_2_templates_template_id_builds_build_id.py +192 -0
  47. loopix_sdk-2.30.0/loopix/api/client/api/volumes/__init__.py +1 -0
  48. loopix_sdk-2.30.0/loopix/api/client/api/volumes/delete_volumes_volume_id.py +161 -0
  49. loopix_sdk-2.30.0/loopix/api/client/api/volumes/get_volumes.py +140 -0
  50. loopix_sdk-2.30.0/loopix/api/client/api/volumes/get_volumes_volume_id.py +163 -0
  51. loopix_sdk-2.30.0/loopix/api/client/api/volumes/post_volumes.py +172 -0
  52. loopix_sdk-2.30.0/loopix/api/client/client.py +286 -0
  53. loopix_sdk-2.30.0/loopix/api/client/errors.py +16 -0
  54. loopix_sdk-2.30.0/loopix/api/client/models/__init__.py +185 -0
  55. loopix_sdk-2.30.0/loopix/api/client/models/admin_build_cancel_result.py +67 -0
  56. loopix_sdk-2.30.0/loopix/api/client/models/admin_sandbox_kill_result.py +67 -0
  57. loopix_sdk-2.30.0/loopix/api/client/models/assign_template_tags_request.py +67 -0
  58. loopix_sdk-2.30.0/loopix/api/client/models/assigned_template_tags.py +68 -0
  59. loopix_sdk-2.30.0/loopix/api/client/models/aws_registry.py +85 -0
  60. loopix_sdk-2.30.0/loopix/api/client/models/aws_registry_type.py +8 -0
  61. loopix_sdk-2.30.0/loopix/api/client/models/build_log_entry.py +89 -0
  62. loopix_sdk-2.30.0/loopix/api/client/models/build_status_reason.py +95 -0
  63. loopix_sdk-2.30.0/loopix/api/client/models/connect_sandbox.py +59 -0
  64. loopix_sdk-2.30.0/loopix/api/client/models/created_access_token.py +100 -0
  65. loopix_sdk-2.30.0/loopix/api/client/models/created_team_api_key.py +166 -0
  66. loopix_sdk-2.30.0/loopix/api/client/models/delete_template_tags_request.py +67 -0
  67. loopix_sdk-2.30.0/loopix/api/client/models/disk_metrics.py +91 -0
  68. loopix_sdk-2.30.0/loopix/api/client/models/error.py +67 -0
  69. loopix_sdk-2.30.0/loopix/api/client/models/gcp_registry.py +69 -0
  70. loopix_sdk-2.30.0/loopix/api/client/models/gcp_registry_type.py +8 -0
  71. loopix_sdk-2.30.0/loopix/api/client/models/general_registry.py +77 -0
  72. loopix_sdk-2.30.0/loopix/api/client/models/general_registry_type.py +8 -0
  73. loopix_sdk-2.30.0/loopix/api/client/models/identifier_masking_details.py +83 -0
  74. loopix_sdk-2.30.0/loopix/api/client/models/listed_sandbox.py +179 -0
  75. loopix_sdk-2.30.0/loopix/api/client/models/log_level.py +11 -0
  76. loopix_sdk-2.30.0/loopix/api/client/models/logs_direction.py +9 -0
  77. loopix_sdk-2.30.0/loopix/api/client/models/logs_source.py +9 -0
  78. loopix_sdk-2.30.0/loopix/api/client/models/machine_info.py +83 -0
  79. loopix_sdk-2.30.0/loopix/api/client/models/max_team_metric.py +78 -0
  80. loopix_sdk-2.30.0/loopix/api/client/models/mcp_type_0.py +44 -0
  81. loopix_sdk-2.30.0/loopix/api/client/models/new_access_token.py +59 -0
  82. loopix_sdk-2.30.0/loopix/api/client/models/new_sandbox.py +224 -0
  83. loopix_sdk-2.30.0/loopix/api/client/models/new_team_api_key.py +59 -0
  84. loopix_sdk-2.30.0/loopix/api/client/models/new_volume.py +59 -0
  85. loopix_sdk-2.30.0/loopix/api/client/models/node.py +160 -0
  86. loopix_sdk-2.30.0/loopix/api/client/models/node_detail.py +160 -0
  87. loopix_sdk-2.30.0/loopix/api/client/models/node_metrics.py +122 -0
  88. loopix_sdk-2.30.0/loopix/api/client/models/node_status.py +12 -0
  89. loopix_sdk-2.30.0/loopix/api/client/models/node_status_change.py +82 -0
  90. loopix_sdk-2.30.0/loopix/api/client/models/post_sandboxes_sandbox_id_refreshes_body.py +59 -0
  91. loopix_sdk-2.30.0/loopix/api/client/models/post_sandboxes_sandbox_id_snapshots_body.py +60 -0
  92. loopix_sdk-2.30.0/loopix/api/client/models/post_sandboxes_sandbox_id_timeout_body.py +59 -0
  93. loopix_sdk-2.30.0/loopix/api/client/models/resumed_sandbox.py +68 -0
  94. loopix_sdk-2.30.0/loopix/api/client/models/sandbox.py +145 -0
  95. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_auto_resume_config.py +60 -0
  96. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_detail.py +267 -0
  97. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_lifecycle.py +70 -0
  98. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_log.py +70 -0
  99. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_log_entry.py +93 -0
  100. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_log_entry_fields.py +44 -0
  101. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_logs.py +91 -0
  102. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_logs_v2_response.py +73 -0
  103. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_metric.py +126 -0
  104. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_config.py +118 -0
  105. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_config_rules.py +72 -0
  106. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_rule.py +74 -0
  107. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_transform.py +79 -0
  108. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_transform_headers.py +47 -0
  109. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_update_config.py +114 -0
  110. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_network_update_config_rules.py +71 -0
  111. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_on_timeout.py +9 -0
  112. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_pause_request.py +62 -0
  113. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_state.py +9 -0
  114. loopix_sdk-2.30.0/loopix/api/client/models/sandbox_volume_mount.py +67 -0
  115. loopix_sdk-2.30.0/loopix/api/client/models/sandboxes_with_metrics.py +59 -0
  116. loopix_sdk-2.30.0/loopix/api/client/models/snapshot_info.py +70 -0
  117. loopix_sdk-2.30.0/loopix/api/client/models/team.py +83 -0
  118. loopix_sdk-2.30.0/loopix/api/client/models/team_api_key.py +158 -0
  119. loopix_sdk-2.30.0/loopix/api/client/models/team_metric.py +86 -0
  120. loopix_sdk-2.30.0/loopix/api/client/models/team_user.py +75 -0
  121. loopix_sdk-2.30.0/loopix/api/client/models/template.py +225 -0
  122. loopix_sdk-2.30.0/loopix/api/client/models/template_alias_response.py +67 -0
  123. loopix_sdk-2.30.0/loopix/api/client/models/template_build.py +139 -0
  124. loopix_sdk-2.30.0/loopix/api/client/models/template_build_file_upload.py +70 -0
  125. loopix_sdk-2.30.0/loopix/api/client/models/template_build_info.py +126 -0
  126. loopix_sdk-2.30.0/loopix/api/client/models/template_build_logs_response.py +73 -0
  127. loopix_sdk-2.30.0/loopix/api/client/models/template_build_request.py +115 -0
  128. loopix_sdk-2.30.0/loopix/api/client/models/template_build_request_v2.py +88 -0
  129. loopix_sdk-2.30.0/loopix/api/client/models/template_build_request_v3.py +107 -0
  130. loopix_sdk-2.30.0/loopix/api/client/models/template_build_start_v2.py +184 -0
  131. loopix_sdk-2.30.0/loopix/api/client/models/template_build_status.py +11 -0
  132. loopix_sdk-2.30.0/loopix/api/client/models/template_legacy.py +207 -0
  133. loopix_sdk-2.30.0/loopix/api/client/models/template_request_response_v3.py +99 -0
  134. loopix_sdk-2.30.0/loopix/api/client/models/template_step.py +91 -0
  135. loopix_sdk-2.30.0/loopix/api/client/models/template_tag.py +78 -0
  136. loopix_sdk-2.30.0/loopix/api/client/models/template_update_request.py +59 -0
  137. loopix_sdk-2.30.0/loopix/api/client/models/template_update_response.py +59 -0
  138. loopix_sdk-2.30.0/loopix/api/client/models/template_with_builds.py +156 -0
  139. loopix_sdk-2.30.0/loopix/api/client/models/update_team_api_key.py +59 -0
  140. loopix_sdk-2.30.0/loopix/api/client/models/volume.py +67 -0
  141. loopix_sdk-2.30.0/loopix/api/client/models/volume_and_token.py +75 -0
  142. loopix_sdk-2.30.0/loopix/api/client/models/volume_token.py +59 -0
  143. loopix_sdk-2.30.0/loopix/api/client/py.typed +1 -0
  144. loopix_sdk-2.30.0/loopix/api/client/types.py +54 -0
  145. loopix_sdk-2.30.0/loopix/api/client_async/__init__.py +74 -0
  146. loopix_sdk-2.30.0/loopix/api/client_sync/__init__.py +73 -0
  147. loopix_sdk-2.30.0/loopix/api/metadata.py +14 -0
  148. loopix_sdk-2.30.0/loopix/connection_config.py +309 -0
  149. loopix_sdk-2.30.0/loopix/envd/api.py +170 -0
  150. loopix_sdk-2.30.0/loopix/envd/filesystem/filesystem_connect.py +193 -0
  151. loopix_sdk-2.30.0/loopix/envd/filesystem/filesystem_pb2.py +80 -0
  152. loopix_sdk-2.30.0/loopix/envd/filesystem/filesystem_pb2.pyi +272 -0
  153. loopix_sdk-2.30.0/loopix/envd/process/process_connect.py +174 -0
  154. loopix_sdk-2.30.0/loopix/envd/process/process_pb2.py +96 -0
  155. loopix_sdk-2.30.0/loopix/envd/process/process_pb2.pyi +316 -0
  156. loopix_sdk-2.30.0/loopix/envd/rpc.py +139 -0
  157. loopix_sdk-2.30.0/loopix/envd/versions.py +11 -0
  158. loopix_sdk-2.30.0/loopix/exceptions.py +133 -0
  159. loopix_sdk-2.30.0/loopix/io_utils.py +57 -0
  160. loopix_sdk-2.30.0/loopix/paginator.py +52 -0
  161. loopix_sdk-2.30.0/loopix/py.typed +0 -0
  162. loopix_sdk-2.30.0/loopix/sandbox/_git/__init__.py +85 -0
  163. loopix_sdk-2.30.0/loopix/sandbox/_git/args.py +363 -0
  164. loopix_sdk-2.30.0/loopix/sandbox/_git/auth.py +132 -0
  165. loopix_sdk-2.30.0/loopix/sandbox/_git/config.py +32 -0
  166. loopix_sdk-2.30.0/loopix/sandbox/_git/parse.py +222 -0
  167. loopix_sdk-2.30.0/loopix/sandbox/_git/types.py +149 -0
  168. loopix_sdk-2.30.0/loopix/sandbox/commands/command_handle.py +69 -0
  169. loopix_sdk-2.30.0/loopix/sandbox/commands/main.py +39 -0
  170. loopix_sdk-2.30.0/loopix/sandbox/filesystem/filesystem.py +337 -0
  171. loopix_sdk-2.30.0/loopix/sandbox/filesystem/watch_handle.py +70 -0
  172. loopix_sdk-2.30.0/loopix/sandbox/main.py +227 -0
  173. loopix_sdk-2.30.0/loopix/sandbox/mcp.py +1949 -0
  174. loopix_sdk-2.30.0/loopix/sandbox/network.py +8 -0
  175. loopix_sdk-2.30.0/loopix/sandbox/sandbox_api.py +624 -0
  176. loopix_sdk-2.30.0/loopix/sandbox/signature.py +47 -0
  177. loopix_sdk-2.30.0/loopix/sandbox/utils.py +34 -0
  178. loopix_sdk-2.30.0/loopix/sandbox_async/commands/command.py +396 -0
  179. loopix_sdk-2.30.0/loopix/sandbox_async/commands/command_handle.py +298 -0
  180. loopix_sdk-2.30.0/loopix/sandbox_async/commands/pty.py +257 -0
  181. loopix_sdk-2.30.0/loopix/sandbox_async/filesystem/filesystem.py +720 -0
  182. loopix_sdk-2.30.0/loopix/sandbox_async/filesystem/watch_handle.py +97 -0
  183. loopix_sdk-2.30.0/loopix/sandbox_async/git.py +1100 -0
  184. loopix_sdk-2.30.0/loopix/sandbox_async/main.py +987 -0
  185. loopix_sdk-2.30.0/loopix/sandbox_async/paginator.py +140 -0
  186. loopix_sdk-2.30.0/loopix/sandbox_async/sandbox_api.py +504 -0
  187. loopix_sdk-2.30.0/loopix/sandbox_async/utils.py +7 -0
  188. loopix_sdk-2.30.0/loopix/sandbox_domains.py +5 -0
  189. loopix_sdk-2.30.0/loopix/sandbox_sync/commands/command.py +420 -0
  190. loopix_sdk-2.30.0/loopix/sandbox_sync/commands/command_handle.py +239 -0
  191. loopix_sdk-2.30.0/loopix/sandbox_sync/commands/pty.py +279 -0
  192. loopix_sdk-2.30.0/loopix/sandbox_sync/filesystem/filesystem.py +710 -0
  193. loopix_sdk-2.30.0/loopix/sandbox_sync/filesystem/watch_handle.py +102 -0
  194. loopix_sdk-2.30.0/loopix/sandbox_sync/git.py +1077 -0
  195. loopix_sdk-2.30.0/loopix/sandbox_sync/main.py +975 -0
  196. loopix_sdk-2.30.0/loopix/sandbox_sync/paginator.py +140 -0
  197. loopix_sdk-2.30.0/loopix/sandbox_sync/sandbox_api.py +491 -0
  198. loopix_sdk-2.30.0/loopix/template/consts.py +45 -0
  199. loopix_sdk-2.30.0/loopix/template/dockerfile_parser.py +286 -0
  200. loopix_sdk-2.30.0/loopix/template/logger.py +232 -0
  201. loopix_sdk-2.30.0/loopix/template/main.py +1368 -0
  202. loopix_sdk-2.30.0/loopix/template/readycmd.py +144 -0
  203. loopix_sdk-2.30.0/loopix/template/types.py +194 -0
  204. loopix_sdk-2.30.0/loopix/template/utils.py +426 -0
  205. loopix_sdk-2.30.0/loopix/template_async/build_api.py +419 -0
  206. loopix_sdk-2.30.0/loopix/template_async/main.py +528 -0
  207. loopix_sdk-2.30.0/loopix/template_sync/build_api.py +409 -0
  208. loopix_sdk-2.30.0/loopix/template_sync/main.py +529 -0
  209. loopix_sdk-2.30.0/loopix/volume/client/__init__.py +8 -0
  210. loopix_sdk-2.30.0/loopix/volume/client/api/__init__.py +1 -0
  211. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/__init__.py +1 -0
  212. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/delete_volumecontent_volume_id_path.py +174 -0
  213. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/get_volumecontent_volume_id_dir.py +204 -0
  214. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/get_volumecontent_volume_id_file.py +179 -0
  215. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/get_volumecontent_volume_id_path.py +176 -0
  216. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/patch_volumecontent_volume_id_path.py +203 -0
  217. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/post_volumecontent_volume_id_dir.py +239 -0
  218. loopix_sdk-2.30.0/loopix/volume/client/api/volumes/put_volumecontent_volume_id_file.py +259 -0
  219. loopix_sdk-2.30.0/loopix/volume/client/client.py +286 -0
  220. loopix_sdk-2.30.0/loopix/volume/client/errors.py +16 -0
  221. loopix_sdk-2.30.0/loopix/volume/client/models/__init__.py +13 -0
  222. loopix_sdk-2.30.0/loopix/volume/client/models/error.py +67 -0
  223. loopix_sdk-2.30.0/loopix/volume/client/models/patch_volumecontent_volume_id_path_body.py +77 -0
  224. loopix_sdk-2.30.0/loopix/volume/client/models/volume_entry_stat.py +145 -0
  225. loopix_sdk-2.30.0/loopix/volume/client/models/volume_entry_stat_type.py +11 -0
  226. loopix_sdk-2.30.0/loopix/volume/client/py.typed +1 -0
  227. loopix_sdk-2.30.0/loopix/volume/client/types.py +54 -0
  228. loopix_sdk-2.30.0/loopix/volume/client_async/__init__.py +88 -0
  229. loopix_sdk-2.30.0/loopix/volume/client_sync/__init__.py +80 -0
  230. loopix_sdk-2.30.0/loopix/volume/connection_config.py +145 -0
  231. loopix_sdk-2.30.0/loopix/volume/types.py +62 -0
  232. loopix_sdk-2.30.0/loopix/volume/utils.py +52 -0
  233. loopix_sdk-2.30.0/loopix/volume/volume_async.py +639 -0
  234. loopix_sdk-2.30.0/loopix/volume/volume_sync.py +639 -0
  235. loopix_sdk-2.30.0/loopix_connect/__init__.py +1 -0
  236. loopix_sdk-2.30.0/loopix_connect/client.py +534 -0
  237. loopix_sdk-2.30.0/loopix_connect/py.typed +0 -0
  238. loopix_sdk-2.30.0/pyproject.toml +67 -0
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 FOUNDRYLABS, INC.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.4
2
+ Name: loopix-sdk
3
+ Version: 2.30.0
4
+ Summary: Loopix SDK that give agents cloud environments
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Author: loopix
8
+ Author-email: hello@vm.betmandu.net
9
+ Requires-Python: >=3.10,<4.0
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Requires-Dist: attrs (>=23.2.0)
18
+ Requires-Dist: dockerfile-parse (>=2.0.1,<3.0.0)
19
+ Requires-Dist: h2 (>=4,<5)
20
+ Requires-Dist: httpcore (>=1.0.5,<2.0.0)
21
+ Requires-Dist: httpx (>=0.27.0,<1.0.0)
22
+ Requires-Dist: packaging (>=24.1)
23
+ Requires-Dist: protobuf (>=4.21.0)
24
+ Requires-Dist: python-dateutil (>=2.8.2)
25
+ Requires-Dist: rich (>=14.0.0)
26
+ Requires-Dist: typing-extensions (>=4.1.0)
27
+ Requires-Dist: wcmatch (>=10.1,<11.0)
28
+ Project-URL: Bug Tracker, https://github.com/loopix-dev/loopix/issues
29
+ Project-URL: Homepage, https://vm.betmandu.net/
30
+ Project-URL: Repository, https://github.com/loopix-dev/loopix/tree/main/packages/python-sdk
31
+ Description-Content-Type: text/markdown
32
+
33
+ <p align="center">
34
+ <picture>
35
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-white.png">
36
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-black.png">
37
+ <img alt="Loopix Logo" src="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-black.png" width="200">
38
+ </picture>
39
+ </p>
40
+
41
+ <h4 align="center">
42
+ <a href="https://pypi.org/project/loopix/">
43
+ <img alt="Last 1 month downloads for the Python SDK" loading="lazy" decoding="async" style="color:transparent;width:170px;height:18px" src="https://static.pepy.tech/personalized-badge/loopix?period=monthly&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=PyPi%20Monthly%20Downloads">
44
+ </a>
45
+ </h4>
46
+
47
+
48
+ ## What is Loopix?
49
+ [Loopix](https://www.loopix.dev/) is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our [JavaScript SDK](https://www.npmjs.com/package/loopix) or [Python SDK](https://pypi.org/project/loopix).
50
+
51
+ ## Run your first Sandbox
52
+
53
+ ### 1. Install SDK
54
+
55
+ ```
56
+ pip install loopix
57
+ ```
58
+
59
+ ### 2. Get your Loopix API key
60
+ 1. Sign up to Loopix [here](https://vm.betmandu.net).
61
+ 2. Get your API key [here](https://vm.betmandu.net/dashboard?tab=keys).
62
+ 3. Set environment variable with your API key
63
+ ```
64
+ LOOPIX_API_KEY=lpx_***
65
+ ```
66
+
67
+ ### 3. Start a sandbox and run commands
68
+
69
+ ```py
70
+ from loopix import Sandbox
71
+
72
+ with Sandbox.create() as sandbox:
73
+ result = sandbox.commands.run('echo "Hello from Loopix!"')
74
+ print(result.stdout) # Hello from Loopix!
75
+ ```
76
+
77
+ ### 4. Code execution with Code Interpreter
78
+
79
+ If you need [`run_code()`](https://vm.betmandu.net/docs/code-interpreting), install the [Code Interpreter SDK](https://github.com/loopix-dev/code-interpreter):
80
+
81
+ ```
82
+ pip install loopix-code-interpreter
83
+ ```
84
+
85
+ ```py
86
+ from loopix_code_interpreter import Sandbox
87
+
88
+ with Sandbox.create() as sandbox:
89
+ execution = sandbox.run_code("x = 1; x += 1; x")
90
+ print(execution.text) # outputs 2
91
+ ```
92
+
93
+ ### 5. Check docs
94
+ Visit [Loopix documentation](https://vm.betmandu.net/docs).
95
+
96
+ ### 6. Loopix cookbook
97
+ Visit our [Cookbook](https://github.com/loopix-dev/loopix-cookbook/tree/main) to get inspired by examples with different LLMs and AI frameworks.
98
+
@@ -0,0 +1,65 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-white.png">
4
+ <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-black.png">
5
+ <img alt="Loopix Logo" src="https://raw.githubusercontent.com/loopix-dev/loopix/refs/heads/main/readme-assets/logo-black.png" width="200">
6
+ </picture>
7
+ </p>
8
+
9
+ <h4 align="center">
10
+ <a href="https://pypi.org/project/loopix/">
11
+ <img alt="Last 1 month downloads for the Python SDK" loading="lazy" decoding="async" style="color:transparent;width:170px;height:18px" src="https://static.pepy.tech/personalized-badge/loopix?period=monthly&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=PyPi%20Monthly%20Downloads">
12
+ </a>
13
+ </h4>
14
+
15
+
16
+ ## What is Loopix?
17
+ [Loopix](https://www.loopix.dev/) is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our [JavaScript SDK](https://www.npmjs.com/package/loopix) or [Python SDK](https://pypi.org/project/loopix).
18
+
19
+ ## Run your first Sandbox
20
+
21
+ ### 1. Install SDK
22
+
23
+ ```
24
+ pip install loopix
25
+ ```
26
+
27
+ ### 2. Get your Loopix API key
28
+ 1. Sign up to Loopix [here](https://vm.betmandu.net).
29
+ 2. Get your API key [here](https://vm.betmandu.net/dashboard?tab=keys).
30
+ 3. Set environment variable with your API key
31
+ ```
32
+ LOOPIX_API_KEY=lpx_***
33
+ ```
34
+
35
+ ### 3. Start a sandbox and run commands
36
+
37
+ ```py
38
+ from loopix import Sandbox
39
+
40
+ with Sandbox.create() as sandbox:
41
+ result = sandbox.commands.run('echo "Hello from Loopix!"')
42
+ print(result.stdout) # Hello from Loopix!
43
+ ```
44
+
45
+ ### 4. Code execution with Code Interpreter
46
+
47
+ If you need [`run_code()`](https://vm.betmandu.net/docs/code-interpreting), install the [Code Interpreter SDK](https://github.com/loopix-dev/code-interpreter):
48
+
49
+ ```
50
+ pip install loopix-code-interpreter
51
+ ```
52
+
53
+ ```py
54
+ from loopix_code_interpreter import Sandbox
55
+
56
+ with Sandbox.create() as sandbox:
57
+ execution = sandbox.run_code("x = 1; x += 1; x")
58
+ print(execution.text) # outputs 2
59
+ ```
60
+
61
+ ### 5. Check docs
62
+ Visit [Loopix documentation](https://vm.betmandu.net/docs).
63
+
64
+ ### 6. Loopix cookbook
65
+ Visit our [Cookbook](https://github.com/loopix-dev/loopix-cookbook/tree/main) to get inspired by examples with different LLMs and AI frameworks.
@@ -0,0 +1,260 @@
1
+ """
2
+ Secure sandboxed cloud environments made for AI agents and AI apps.
3
+
4
+ Check docs [here](https://vm.betmandu.net/docs).
5
+
6
+ Loopix Sandbox is a secure cloud sandbox environment made for AI agents and AI
7
+ apps.
8
+ Sandboxes allow AI agents and apps to have long running cloud secure environments.
9
+ In these environments, large language models can use the same tools as humans do.
10
+
11
+ Loopix Python SDK supports both sync and async API:
12
+
13
+ ```py
14
+ from loopix import Sandbox
15
+
16
+ # Create sandbox
17
+ sandbox = Sandbox.create()
18
+ ```
19
+
20
+ ```py
21
+ from loopix import AsyncSandbox
22
+
23
+ # Create sandbox
24
+ sandbox = await AsyncSandbox.create()
25
+ ```
26
+ """
27
+
28
+ from .api import (
29
+ ApiClient,
30
+ client,
31
+ )
32
+ from .connection_config import (
33
+ ApiParams,
34
+ ConnectionConfig,
35
+ ProxyTypes,
36
+ Username,
37
+ )
38
+ from .volume.connection_config import VolumeApiParams, VolumeConnectionConfig
39
+ from .exceptions import (
40
+ AuthenticationException,
41
+ FileNotFoundException,
42
+ GitAuthException,
43
+ GitUpstreamException,
44
+ BuildException,
45
+ FileUploadException,
46
+ InvalidArgumentException,
47
+ NotEnoughSpaceException,
48
+ NotFoundException,
49
+ RateLimitException,
50
+ SandboxException,
51
+ SandboxNotFoundException,
52
+ TemplateException,
53
+ TimeoutException,
54
+ VolumeException,
55
+ )
56
+ from .sandbox.commands.command_handle import (
57
+ CommandExitException,
58
+ CommandResult,
59
+ PtyOutput,
60
+ PtySize,
61
+ Stderr,
62
+ Stdout,
63
+ )
64
+ from .sandbox.commands.main import ProcessInfo
65
+ from .sandbox.filesystem.filesystem import EntryInfo, FileType, WriteInfo
66
+ from .sandbox.filesystem.watch_handle import (
67
+ FilesystemEvent,
68
+ FilesystemEventType,
69
+ )
70
+ from .sandbox._git import GitBranches, GitFileStatus, GitResetMode, GitStatus
71
+ from .sandbox_sync.git import Git
72
+ from .sandbox.network import ALL_TRAFFIC
73
+ from .sandbox.signature import get_signature
74
+ from .sandbox.sandbox_api import (
75
+ GitHubMcpServer,
76
+ GitHubMcpServerConfig,
77
+ McpServer,
78
+ SandboxInfo,
79
+ SandboxInfoLifecycle,
80
+ SandboxMetrics,
81
+ SandboxLifecycle,
82
+ SandboxOnTimeout,
83
+ SandboxNetworkInfo,
84
+ SandboxNetworkOpts,
85
+ SandboxNetworkRule,
86
+ SandboxNetworkRuleInfo,
87
+ SandboxNetworkRules,
88
+ SandboxNetworkSelector,
89
+ SandboxNetworkSelectorContext,
90
+ SandboxNetworkTransform,
91
+ SandboxNetworkUpdate,
92
+ SandboxQuery,
93
+ SandboxState,
94
+ SnapshotInfo,
95
+ )
96
+ from .sandbox_async.commands.command_handle import AsyncCommandHandle
97
+ from .sandbox_async.filesystem.watch_handle import AsyncWatchHandle
98
+ from .sandbox_async.main import AsyncSandbox
99
+ from .sandbox_async.paginator import AsyncSandboxPaginator, AsyncSnapshotPaginator
100
+ from .sandbox_async.utils import OutputHandler
101
+ from .sandbox_sync.commands.command_handle import CommandHandle
102
+ from .sandbox_sync.filesystem.watch_handle import WatchHandle
103
+ from .sandbox_sync.main import Sandbox
104
+ from .sandbox_sync.paginator import SandboxPaginator, SnapshotPaginator
105
+ from .template.logger import (
106
+ LogEntry,
107
+ LogEntryEnd,
108
+ LogEntryLevel,
109
+ LogEntryStart,
110
+ default_build_logger,
111
+ )
112
+ from .template.main import TemplateBase, TemplateClass
113
+ from .template.readycmd import (
114
+ ReadyCmd,
115
+ wait_for_file,
116
+ wait_for_port,
117
+ wait_for_process,
118
+ wait_for_timeout,
119
+ wait_for_url,
120
+ )
121
+ from .template.types import (
122
+ BuildInfo,
123
+ BuildStatusReason,
124
+ CopyItem,
125
+ TemplateBuildStatus,
126
+ TemplateBuildStatusResponse,
127
+ TemplateTag,
128
+ TemplateTagInfo,
129
+ )
130
+ from .template_async.main import AsyncTemplate
131
+ from .template_sync.main import Template
132
+
133
+ from .volume.volume_sync import Volume
134
+ from .volume.volume_async import AsyncVolume
135
+ from .volume.types import (
136
+ VolumeInfo,
137
+ VolumeAndToken,
138
+ VolumeEntryStat,
139
+ VolumeFileType,
140
+ )
141
+
142
+ __all__ = [
143
+ # API
144
+ "ApiClient",
145
+ "client",
146
+ # Connection config
147
+ "ConnectionConfig",
148
+ "VolumeConnectionConfig",
149
+ "ProxyTypes",
150
+ "ApiParams",
151
+ "VolumeApiParams",
152
+ "Username",
153
+ # Exceptions
154
+ "SandboxException",
155
+ "TimeoutException",
156
+ "NotFoundException",
157
+ "FileNotFoundException",
158
+ "SandboxNotFoundException",
159
+ "AuthenticationException",
160
+ "GitAuthException",
161
+ "GitUpstreamException",
162
+ "InvalidArgumentException",
163
+ "NotEnoughSpaceException",
164
+ "TemplateException",
165
+ "BuildException",
166
+ "FileUploadException",
167
+ "RateLimitException",
168
+ "VolumeException",
169
+ # Sandbox API
170
+ "SandboxInfo",
171
+ "SandboxInfoLifecycle",
172
+ "SandboxMetrics",
173
+ "ProcessInfo",
174
+ "SandboxQuery",
175
+ "SandboxState",
176
+ "SandboxMetrics",
177
+ "GitStatus",
178
+ "GitBranches",
179
+ "GitFileStatus",
180
+ "GitResetMode",
181
+ # Command handle
182
+ "CommandResult",
183
+ "Stderr",
184
+ "Stdout",
185
+ "CommandExitException",
186
+ "PtyOutput",
187
+ "PtySize",
188
+ # Filesystem
189
+ "FilesystemEvent",
190
+ "FilesystemEventType",
191
+ "EntryInfo",
192
+ "WriteInfo",
193
+ "FileType",
194
+ # Network
195
+ "SandboxNetworkOpts",
196
+ "SandboxNetworkInfo",
197
+ "SandboxNetworkSelector",
198
+ "SandboxNetworkSelectorContext",
199
+ "SandboxNetworkRule",
200
+ "SandboxNetworkRuleInfo",
201
+ "SandboxNetworkRules",
202
+ "SandboxNetworkTransform",
203
+ "SandboxNetworkUpdate",
204
+ "SandboxLifecycle",
205
+ "SandboxOnTimeout",
206
+ "ALL_TRAFFIC",
207
+ # Snapshot
208
+ "SnapshotInfo",
209
+ "SnapshotPaginator",
210
+ "AsyncSnapshotPaginator",
211
+ # Signature
212
+ "get_signature",
213
+ # Sync sandbox
214
+ "Sandbox",
215
+ "SandboxPaginator",
216
+ "WatchHandle",
217
+ "CommandHandle",
218
+ # Async sandbox
219
+ "OutputHandler",
220
+ "AsyncSandboxPaginator",
221
+ "AsyncSandbox",
222
+ "AsyncWatchHandle",
223
+ "AsyncCommandHandle",
224
+ # Template
225
+ "Template",
226
+ "AsyncTemplate",
227
+ "TemplateBase",
228
+ "TemplateClass",
229
+ "CopyItem",
230
+ "BuildInfo",
231
+ "BuildStatusReason",
232
+ "TemplateBuildStatus",
233
+ "TemplateBuildStatusResponse",
234
+ "TemplateTag",
235
+ "TemplateTagInfo",
236
+ "ReadyCmd",
237
+ "wait_for_file",
238
+ "wait_for_url",
239
+ "wait_for_port",
240
+ "wait_for_process",
241
+ "wait_for_timeout",
242
+ "LogEntry",
243
+ "LogEntryStart",
244
+ "LogEntryEnd",
245
+ "LogEntryLevel",
246
+ "default_build_logger",
247
+ # MCP
248
+ "McpServer",
249
+ "GitHubMcpServer",
250
+ "GitHubMcpServerConfig",
251
+ # Git
252
+ "Git",
253
+ # Volume
254
+ "Volume",
255
+ "AsyncVolume",
256
+ "VolumeInfo",
257
+ "VolumeAndToken",
258
+ "VolumeEntryStat",
259
+ "VolumeFileType",
260
+ ]