runloop-api-client 0.12.0__tar.gz → 0.13.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 (224) hide show
  1. runloop_api_client-0.13.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/CHANGELOG.md +28 -0
  3. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/PKG-INFO +67 -5
  4. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/README.md +66 -4
  5. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/api.md +11 -67
  6. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/pyproject.toml +2 -2
  7. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/requirements-dev.lock +3 -3
  8. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/requirements.lock +2 -2
  9. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_base_client.py +6 -0
  10. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_client.py +4 -18
  11. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_models.py +4 -4
  12. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_version.py +1 -1
  13. runloop_api_client-0.13.0/src/runloop_api_client/lib/polling.py +67 -0
  14. runloop_api_client-0.13.0/src/runloop_api_client/lib/polling_async.py +56 -0
  15. runloop_api_client-0.13.0/src/runloop_api_client/pagination.py +247 -0
  16. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/__init__.py +0 -28
  17. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/blueprints.py +90 -62
  18. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/devboxes.py +981 -232
  19. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/executions.py +208 -42
  20. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/logs.py +4 -4
  21. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/lsp.py +192 -24
  22. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/repositories.py +64 -26
  23. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/__init__.py +4 -10
  24. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_parameters.py +1 -1
  25. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_create_params.py +7 -7
  26. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_list_params.py +2 -2
  27. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_preview_params.py +7 -7
  28. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_params.py +26 -18
  29. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +2 -2
  30. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_download_file_params.py +4 -1
  31. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_execute_async_params.py +25 -0
  32. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_execute_sync_params.py +25 -0
  33. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +18 -0
  34. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_list_params.py +20 -0
  35. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +4 -1
  36. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_remove_tunnel_params.py +12 -0
  37. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +3 -3
  38. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_view.py +3 -5
  39. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_upload_file_params.py +7 -3
  40. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_view.py +20 -11
  41. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_write_file_contents_params.py +18 -0
  42. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +3 -2
  43. runloop_api_client-0.13.0/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +25 -0
  44. runloop_api_client-0.13.0/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +25 -0
  45. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +1 -1
  46. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/log_list_params.py +1 -1
  47. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_connection_view.py +2 -2
  48. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_list_params.py +2 -2
  49. {runloop_api_client-0.12.0/src/runloop_api_client/types/shared_params → runloop_api_client-0.13.0/src/runloop_api_client/types/shared}/__init__.py +1 -0
  50. {runloop_api_client-0.12.0/src/runloop_api_client/types → runloop_api_client-0.13.0/src/runloop_api_client/types/shared}/code_mount_parameters.py +1 -1
  51. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared/launch_parameters.py +2 -1
  52. runloop_api_client-0.13.0/src/runloop_api_client/types/shared_params/__init__.py +5 -0
  53. runloop_api_client-0.12.0/src/runloop_api_client/types/code_mount_parameters_param.py → runloop_api_client-0.13.0/src/runloop_api_client/types/shared_params/code_mount_parameters.py +5 -4
  54. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +8 -7
  55. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_executions.py +26 -26
  56. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/test_blueprints.py +9 -9
  57. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/test_devboxes.py +236 -62
  58. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/test_repositories.py +9 -9
  59. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_client.py +54 -0
  60. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_models.py +10 -0
  61. runloop_api_client-0.12.0/.release-please-manifest.json +0 -3
  62. runloop_api_client-0.12.0/src/runloop_api_client/resources/functions/__init__.py +0 -33
  63. runloop_api_client-0.12.0/src/runloop_api_client/resources/functions/functions.py +0 -395
  64. runloop_api_client-0.12.0/src/runloop_api_client/resources/functions/invocations.py +0 -357
  65. runloop_api_client-0.12.0/src/runloop_api_client/resources/projects/__init__.py +0 -33
  66. runloop_api_client-0.12.0/src/runloop_api_client/resources/projects/logs.py +0 -163
  67. runloop_api_client-0.12.0/src/runloop_api_client/resources/projects/projects.py +0 -175
  68. runloop_api_client-0.12.0/src/runloop_api_client/types/devbox_disk_snapshots_params.py +0 -15
  69. runloop_api_client-0.12.0/src/runloop_api_client/types/devbox_execute_async_params.py +0 -15
  70. runloop_api_client-0.12.0/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -15
  71. runloop_api_client-0.12.0/src/runloop_api_client/types/devbox_list_params.py +0 -18
  72. runloop_api_client-0.12.0/src/runloop_api_client/types/devbox_write_file_params.py +0 -15
  73. runloop_api_client-0.12.0/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -15
  74. runloop_api_client-0.12.0/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -15
  75. runloop_api_client-0.12.0/src/runloop_api_client/types/function_invoke_async_params.py +0 -23
  76. runloop_api_client-0.12.0/src/runloop_api_client/types/function_invoke_sync_params.py +0 -23
  77. runloop_api_client-0.12.0/src/runloop_api_client/types/function_list_view.py +0 -20
  78. runloop_api_client-0.12.0/src/runloop_api_client/types/functions/__init__.py +0 -6
  79. runloop_api_client-0.12.0/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -47
  80. runloop_api_client-0.12.0/src/runloop_api_client/types/functions/invocation_list_params.py +0 -15
  81. runloop_api_client-0.12.0/src/runloop_api_client/types/project_list_view.py +0 -30
  82. runloop_api_client-0.12.0/src/runloop_api_client/types/projects/__init__.py +0 -3
  83. runloop_api_client-0.12.0/src/runloop_api_client/types/shared/__init__.py +0 -8
  84. runloop_api_client-0.12.0/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -42
  85. runloop_api_client-0.12.0/src/runloop_api_client/types/shared/project_logs_view.py +0 -22
  86. runloop_api_client-0.12.0/tests/api_resources/functions/__init__.py +0 -1
  87. runloop_api_client-0.12.0/tests/api_resources/functions/test_invocations.py +0 -241
  88. runloop_api_client-0.12.0/tests/api_resources/projects/__init__.py +0 -1
  89. runloop_api_client-0.12.0/tests/api_resources/projects/test_logs.py +0 -98
  90. runloop_api_client-0.12.0/tests/api_resources/test_functions.py +0 -325
  91. runloop_api_client-0.12.0/tests/api_resources/test_projects.py +0 -72
  92. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/.gitignore +0 -0
  93. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/CONTRIBUTING.md +0 -0
  94. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/LICENSE +0 -0
  95. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/SECURITY.md +0 -0
  96. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/bin/check-release-environment +0 -0
  97. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/bin/publish-pypi +0 -0
  98. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/examples/.keep +0 -0
  99. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/mypy.ini +0 -0
  100. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/noxfile.py +0 -0
  101. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/release-please-config.json +0 -0
  102. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop/lib/.keep +0 -0
  103. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/__init__.py +0 -0
  104. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_compat.py +0 -0
  105. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_constants.py +0 -0
  106. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_exceptions.py +0 -0
  107. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_files.py +0 -0
  108. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_qs.py +0 -0
  109. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_resource.py +0 -0
  110. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_response.py +0 -0
  111. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_streaming.py +0 -0
  112. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_types.py +0 -0
  113. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  114. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  115. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  116. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  117. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  118. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  119. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  120. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  121. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  122. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/lib/.keep +0 -0
  123. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/py.typed +0 -0
  124. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  125. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  126. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  127. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  128. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  129. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  130. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  131. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  132. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  133. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  134. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  135. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  136. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  137. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  138. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  139. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  140. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  141. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  142. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  143. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  144. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  145. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  146. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  147. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  148. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  149. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  150. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  151. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  152. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  153. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  154. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  155. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  156. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  157. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  158. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  159. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  160. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  161. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  162. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  163. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  164. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  165. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  166. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  167. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  168. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  169. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  170. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  171. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  172. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  173. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  174. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  175. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  176. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  177. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  178. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  179. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  180. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  181. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  182. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  183. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  184. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  185. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  186. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  187. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  188. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  189. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  190. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  191. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  192. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  193. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  194. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  195. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  196. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  197. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  198. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  199. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  200. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  201. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  202. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  203. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  204. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  205. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  206. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  207. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/__init__.py +0 -0
  208. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/__init__.py +0 -0
  209. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/__init__.py +0 -0
  210. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  211. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  212. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/conftest.py +0 -0
  213. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/sample_file.txt +0 -0
  214. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_deepcopy.py +0 -0
  215. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_extract_files.py +0 -0
  216. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_files.py +0 -0
  217. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_qs.py +0 -0
  218. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_required_args.py +0 -0
  219. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_response.py +0 -0
  220. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_streaming.py +0 -0
  221. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_transform.py +0 -0
  222. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_utils/test_proxy.py +0 -0
  223. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/test_utils/test_typing.py +0 -0
  224. {runloop_api_client-0.12.0 → runloop_api_client-0.13.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.13.0"
3
+ }
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.0 (2025-01-15)
4
+
5
+ Full Changelog: [v0.12.0...v0.13.0](https://github.com/runloopai/api-client-python/compare/v0.12.0...v0.13.0)
6
+
7
+ ### Features
8
+
9
+ * add helpers for common polling operations ([97891c7](https://github.com/runloopai/api-client-python/commit/97891c7cf8be7b9192c5dbcfc35fc93cb3490d04))
10
+ * **api:** api update ([#481](https://github.com/runloopai/api-client-python/issues/481)) ([7a8d8a8](https://github.com/runloopai/api-client-python/commit/7a8d8a8ba1119fd43ee4d40127fc486f0c626cb8))
11
+ * **api:** manual updates ([#490](https://github.com/runloopai/api-client-python/issues/490)) ([bcc441e](https://github.com/runloopai/api-client-python/commit/bcc441ed2706379994b7ef27b6104d2cb47a9095))
12
+ * **api:** manual updates ([#492](https://github.com/runloopai/api-client-python/issues/492)) ([96e2419](https://github.com/runloopai/api-client-python/commit/96e2419332dbd2c65367730d0d4186c31e76ed32))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **client:** only call .close() when needed ([#484](https://github.com/runloopai/api-client-python/issues/484)) ([55bf004](https://github.com/runloopai/api-client-python/commit/55bf004101e86ebdb01db4b9ad8661d619a777bb))
18
+ * correctly handle deserialising `cls` fields ([#489](https://github.com/runloopai/api-client-python/issues/489)) ([2b2a573](https://github.com/runloopai/api-client-python/commit/2b2a5736c16a985e4b8e33313b4dcde8fc10dbca))
19
+
20
+
21
+ ### Chores
22
+
23
+ * **internal:** bump httpx dependency ([#483](https://github.com/runloopai/api-client-python/issues/483)) ([dcd5be5](https://github.com/runloopai/api-client-python/commit/dcd5be5065ed52f1172d2fa813d6a5ff64767de6))
24
+ * **internal:** codegen related update ([#488](https://github.com/runloopai/api-client-python/issues/488)) ([af72728](https://github.com/runloopai/api-client-python/commit/af727286ef5018e27be7d564078d1c0305f7d9e1))
25
+
26
+
27
+ ### Documentation
28
+
29
+ * fix typos ([#487](https://github.com/runloopai/api-client-python/issues/487)) ([440e80b](https://github.com/runloopai/api-client-python/commit/440e80b9e28a64edec079bf72d27c3b188997574))
30
+
3
31
  ## 0.12.0 (2025-01-07)
4
32
 
5
33
  Full Changelog: [v0.11.0...v0.12.0](https://github.com/runloopai/api-client-python/compare/v0.11.0...v0.12.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -105,6 +105,69 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
105
105
 
106
106
  Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
107
107
 
108
+ ## Pagination
109
+
110
+ List methods in the Runloop API are paginated.
111
+
112
+ This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
113
+
114
+ ```python
115
+ from runloop_api_client import Runloop
116
+
117
+ client = Runloop()
118
+
119
+ all_devboxes = []
120
+ # Automatically fetches more pages as needed.
121
+ for devbox in client.devboxes.list():
122
+ # Do something with devbox here
123
+ all_devboxes.append(devbox)
124
+ print(all_devboxes)
125
+ ```
126
+
127
+ Or, asynchronously:
128
+
129
+ ```python
130
+ import asyncio
131
+ from runloop_api_client import AsyncRunloop
132
+
133
+ client = AsyncRunloop()
134
+
135
+
136
+ async def main() -> None:
137
+ all_devboxes = []
138
+ # Iterate through items across all pages, issuing requests as needed.
139
+ async for devbox in client.devboxes.list():
140
+ all_devboxes.append(devbox)
141
+ print(all_devboxes)
142
+
143
+
144
+ asyncio.run(main())
145
+ ```
146
+
147
+ Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
148
+
149
+ ```python
150
+ first_page = await client.devboxes.list()
151
+ if first_page.has_next_page():
152
+ print(f"will fetch next page using these details: {first_page.next_page_info()}")
153
+ next_page = await first_page.get_next_page()
154
+ print(f"number of items we just fetched: {len(next_page.devboxes)}")
155
+
156
+ # Remove `await` for non-async usage.
157
+ ```
158
+
159
+ Or just work directly with the returned data:
160
+
161
+ ```python
162
+ first_page = await client.devboxes.list()
163
+
164
+ print(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."
165
+ for devbox in first_page.devboxes:
166
+ print(devbox.id)
167
+
168
+ # Remove `await` for non-async usage.
169
+ ```
170
+
108
171
  ## Handling errors
109
172
 
110
173
  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `runloop_api_client.APIConnectionError` is raised.
@@ -133,7 +196,7 @@ except runloop_api_client.APIStatusError as e:
133
196
  print(e.response)
134
197
  ```
135
198
 
136
- Error codes are as followed:
199
+ Error codes are as follows:
137
200
 
138
201
  | Status Code | Error Type |
139
202
  | ----------- | -------------------------- |
@@ -264,8 +327,7 @@ If you need to access undocumented endpoints, params, or response properties, th
264
327
  #### Undocumented endpoints
265
328
 
266
329
  To make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other
267
- http verbs. Options on the client will be respected (such as retries) will be respected when making this
268
- request.
330
+ http verbs. Options on the client will be respected (such as retries) when making this request.
269
331
 
270
332
  ```py
271
333
  import httpx
@@ -337,7 +399,7 @@ with Runloop() as client:
337
399
  This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:
338
400
 
339
401
  1. Changes that only affect static types, without breaking runtime behavior.
340
- 2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals)_.
402
+ 2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_
341
403
  3. Changes that we do not expect to impact the vast majority of users in practice.
342
404
 
343
405
  We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
@@ -73,6 +73,69 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
73
73
 
74
74
  Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
75
75
 
76
+ ## Pagination
77
+
78
+ List methods in the Runloop API are paginated.
79
+
80
+ This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
81
+
82
+ ```python
83
+ from runloop_api_client import Runloop
84
+
85
+ client = Runloop()
86
+
87
+ all_devboxes = []
88
+ # Automatically fetches more pages as needed.
89
+ for devbox in client.devboxes.list():
90
+ # Do something with devbox here
91
+ all_devboxes.append(devbox)
92
+ print(all_devboxes)
93
+ ```
94
+
95
+ Or, asynchronously:
96
+
97
+ ```python
98
+ import asyncio
99
+ from runloop_api_client import AsyncRunloop
100
+
101
+ client = AsyncRunloop()
102
+
103
+
104
+ async def main() -> None:
105
+ all_devboxes = []
106
+ # Iterate through items across all pages, issuing requests as needed.
107
+ async for devbox in client.devboxes.list():
108
+ all_devboxes.append(devbox)
109
+ print(all_devboxes)
110
+
111
+
112
+ asyncio.run(main())
113
+ ```
114
+
115
+ Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
116
+
117
+ ```python
118
+ first_page = await client.devboxes.list()
119
+ if first_page.has_next_page():
120
+ print(f"will fetch next page using these details: {first_page.next_page_info()}")
121
+ next_page = await first_page.get_next_page()
122
+ print(f"number of items we just fetched: {len(next_page.devboxes)}")
123
+
124
+ # Remove `await` for non-async usage.
125
+ ```
126
+
127
+ Or just work directly with the returned data:
128
+
129
+ ```python
130
+ first_page = await client.devboxes.list()
131
+
132
+ print(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."
133
+ for devbox in first_page.devboxes:
134
+ print(devbox.id)
135
+
136
+ # Remove `await` for non-async usage.
137
+ ```
138
+
76
139
  ## Handling errors
77
140
 
78
141
  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `runloop_api_client.APIConnectionError` is raised.
@@ -101,7 +164,7 @@ except runloop_api_client.APIStatusError as e:
101
164
  print(e.response)
102
165
  ```
103
166
 
104
- Error codes are as followed:
167
+ Error codes are as follows:
105
168
 
106
169
  | Status Code | Error Type |
107
170
  | ----------- | -------------------------- |
@@ -232,8 +295,7 @@ If you need to access undocumented endpoints, params, or response properties, th
232
295
  #### Undocumented endpoints
233
296
 
234
297
  To make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other
235
- http verbs. Options on the client will be respected (such as retries) will be respected when making this
236
- request.
298
+ http verbs. Options on the client will be respected (such as retries) when making this request.
237
299
 
238
300
  ```py
239
301
  import httpx
@@ -305,7 +367,7 @@ with Runloop() as client:
305
367
  This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:
306
368
 
307
369
  1. Changes that only affect static types, without breaking runtime behavior.
308
- 2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals)_.
370
+ 2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_
309
371
  3. Changes that we do not expect to impact the vast majority of users in practice.
310
372
 
311
373
  We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
@@ -1,12 +1,7 @@
1
1
  # Shared Types
2
2
 
3
3
  ```python
4
- from runloop_api_client.types import (
5
- AfterIdle,
6
- FunctionInvocationExecutionDetailView,
7
- LaunchParameters,
8
- ProjectLogsView,
9
- )
4
+ from runloop_api_client.types import AfterIdle, CodeMountParameters, LaunchParameters
10
5
  ```
11
6
 
12
7
  # Blueprints
@@ -28,18 +23,10 @@ Methods:
28
23
 
29
24
  - <code title="post /v1/blueprints">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">create</a>(\*\*<a href="src/runloop_api_client/types/blueprint_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
30
25
  - <code title="get /v1/blueprints/{id}">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
31
- - <code title="get /v1/blueprints">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_list_view.py">BlueprintListView</a></code>
26
+ - <code title="get /v1/blueprints">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">SyncBlueprintsCursorIDPage[BlueprintView]</a></code>
32
27
  - <code title="get /v1/blueprints/{id}/logs">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">logs</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_build_logs_list_view.py">BlueprintBuildLogsListView</a></code>
33
28
  - <code title="post /v1/blueprints/preview">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">preview</a>(\*\*<a href="src/runloop_api_client/types/blueprint_preview_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_preview_view.py">BlueprintPreviewView</a></code>
34
29
 
35
- # Code
36
-
37
- Types:
38
-
39
- ```python
40
- from runloop_api_client.types import CodeMountParameters
41
- ```
42
-
43
30
  # Devboxes
44
31
 
45
32
  Types:
@@ -54,6 +41,7 @@ from runloop_api_client.types import (
54
41
  DevboxTunnelView,
55
42
  DevboxView,
56
43
  DevboxCreateSSHKeyResponse,
44
+ DevboxDeleteDiskSnapshotResponse,
57
45
  DevboxKeepAliveResponse,
58
46
  DevboxReadFileContentsResponse,
59
47
  DevboxUploadFileResponse,
@@ -64,21 +52,23 @@ Methods:
64
52
 
65
53
  - <code title="post /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create</a>(\*\*<a href="src/runloop_api_client/types/devbox_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
66
54
  - <code title="get /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
67
- - <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_list_view.py">DevboxListView</a></code>
55
+ - <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">SyncDevboxesCursorIDPage[DevboxView]</a></code>
68
56
  - <code title="post /v1/devboxes/{id}/create_ssh_key">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_ssh_key</a>(id) -> <a href="./src/runloop_api_client/types/devbox_create_ssh_key_response.py">DevboxCreateSSHKeyResponse</a></code>
69
57
  - <code title="post /v1/devboxes/{id}/create_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_tunnel</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_create_tunnel_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
70
- - <code title="get /v1/devboxes/disk_snapshots">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">disk_snapshots</a>(\*\*<a href="src/runloop_api_client/types/devbox_disk_snapshots_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_list_view.py">DevboxSnapshotListView</a></code>
58
+ - <code title="post /v1/devboxes/disk_snapshots/{id}/delete">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">delete_disk_snapshot</a>(id) -> <a href="./src/runloop_api_client/types/devbox_delete_disk_snapshot_response.py">object</a></code>
71
59
  - <code title="post /v1/devboxes/{id}/download_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">download_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_download_file_params.py">params</a>) -> BinaryAPIResponse</code>
72
60
  - <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
73
61
  - <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
74
62
  - <code title="post /v1/devboxes/{id}/keep_alive">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">keep_alive</a>(id) -> <a href="./src/runloop_api_client/types/devbox_keep_alive_response.py">object</a></code>
63
+ - <code title="get /v1/devboxes/disk_snapshots">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list_disk_snapshots</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_disk_snapshots_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">SyncDiskSnapshotsCursorIDPage[DevboxSnapshotView]</a></code>
75
64
  - <code title="post /v1/devboxes/{id}/read_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_contents_params.py">params</a>) -> str</code>
65
+ - <code title="post /v1/devboxes/{id}/remove_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">remove_tunnel</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_remove_tunnel_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
76
66
  - <code title="post /v1/devboxes/{id}/resume">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">resume</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
77
67
  - <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
78
68
  - <code title="post /v1/devboxes/{id}/snapshot_disk">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">snapshot_disk</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_snapshot_disk_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
79
69
  - <code title="post /v1/devboxes/{id}/suspend">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">suspend</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
80
70
  - <code title="post /v1/devboxes/{id}/upload_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">upload_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_upload_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_upload_file_response.py">object</a></code>
81
- - <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
71
+ - <code title="post /v1/devboxes/{id}/write_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_contents_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
82
72
 
83
73
  ## Lsp
84
74
 
@@ -178,10 +168,10 @@ Methods:
178
168
 
179
169
  Methods:
180
170
 
181
- - <code title="get /v1/devboxes/{id}/executions/{execution_id}">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">retrieve</a>(execution_id, \*, id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_retrieve_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
171
+ - <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">retrieve</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_retrieve_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
182
172
  - <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
183
173
  - <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
184
- - <code title="post /v1/devboxes/{id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, id) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
174
+ - <code title="post /v1/devboxes/{devbox_id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, devbox_id) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
185
175
 
186
176
  # Repositories
187
177
 
@@ -201,52 +191,6 @@ Methods:
201
191
 
202
192
  - <code title="post /v1/repositories">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">create</a>(\*\*<a href="src/runloop_api_client/types/repository_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_connection_view.py">RepositoryConnectionView</a></code>
203
193
  - <code title="get /v1/repositories/{id}">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/repository_connection_view.py">RepositoryConnectionView</a></code>
204
- - <code title="get /v1/repositories">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list</a>(\*\*<a href="src/runloop_api_client/types/repository_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_connection_list_view.py">RepositoryConnectionListView</a></code>
194
+ - <code title="get /v1/repositories">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list</a>(\*\*<a href="src/runloop_api_client/types/repository_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_connection_view.py">SyncRepositoriesCursorIDPage[RepositoryConnectionView]</a></code>
205
195
  - <code title="post /v1/repositories/{id}/delete">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">delete</a>(id) -> <a href="./src/runloop_api_client/types/repository_delete_response.py">object</a></code>
206
196
  - <code title="get /v1/repositories/{id}/versions">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">versions</a>(id) -> <a href="./src/runloop_api_client/types/repository_version_list_view.py">RepositoryVersionListView</a></code>
207
-
208
- # Functions
209
-
210
- Types:
211
-
212
- ```python
213
- from runloop_api_client.types import FunctionListView
214
- ```
215
-
216
- Methods:
217
-
218
- - <code title="get /v1/functions">client.functions.<a href="./src/runloop_api_client/resources/functions/functions.py">list</a>() -> <a href="./src/runloop_api_client/types/function_list_view.py">FunctionListView</a></code>
219
- - <code title="post /v1/functions/{project_name}/{function_name}/invoke_async">client.functions.<a href="./src/runloop_api_client/resources/functions/functions.py">invoke_async</a>(function_name, \*, project_name, \*\*<a href="src/runloop_api_client/types/function_invoke_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py">FunctionInvocationExecutionDetailView</a></code>
220
- - <code title="post /v1/functions/{project_name}/{function_name}/invoke_sync">client.functions.<a href="./src/runloop_api_client/resources/functions/functions.py">invoke_sync</a>(function_name, \*, project_name, \*\*<a href="src/runloop_api_client/types/function_invoke_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py">FunctionInvocationExecutionDetailView</a></code>
221
-
222
- ## Invocations
223
-
224
- Types:
225
-
226
- ```python
227
- from runloop_api_client.types.functions import FunctionInvocationListView, KillOperationResponse
228
- ```
229
-
230
- Methods:
231
-
232
- - <code title="get /v1/functions/invocations/{invocationId}">client.functions.invocations.<a href="./src/runloop_api_client/resources/functions/invocations.py">retrieve</a>(invocation_id) -> <a href="./src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py">FunctionInvocationExecutionDetailView</a></code>
233
- - <code title="get /v1/functions/invocations">client.functions.invocations.<a href="./src/runloop_api_client/resources/functions/invocations.py">list</a>(\*\*<a href="src/runloop_api_client/types/functions/invocation_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/functions/function_invocation_list_view.py">FunctionInvocationListView</a></code>
234
- - <code title="post /v1/functions/invocations/{invocationId}/kill">client.functions.invocations.<a href="./src/runloop_api_client/resources/functions/invocations.py">kill</a>(invocation_id) -> <a href="./src/runloop_api_client/types/functions/kill_operation_response.py">object</a></code>
235
-
236
- # Projects
237
-
238
- Types:
239
-
240
- ```python
241
- from runloop_api_client.types import ProjectListView
242
- ```
243
-
244
- Methods:
245
-
246
- - <code title="get /v1/projects">client.projects.<a href="./src/runloop_api_client/resources/projects/projects.py">list</a>() -> <a href="./src/runloop_api_client/types/project_list_view.py">ProjectListView</a></code>
247
-
248
- ## Logs
249
-
250
- Methods:
251
-
252
- - <code title="get /v1/projects/{id}/logs">client.projects.logs.<a href="./src/runloop_api_client/resources/projects/logs.py">list</a>(id) -> <a href="./src/runloop_api_client/types/shared/project_logs_view.py">ProjectLogsView</a></code>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.12.0"
3
+ version = "0.13.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -54,7 +54,7 @@ dev-dependencies = [
54
54
  "dirty-equals>=0.6.0",
55
55
  "importlib-metadata>=6.7.0",
56
56
  "rich>=13.7.1",
57
- "nest_asyncio==1.6.0"
57
+ "nest_asyncio==1.6.0",
58
58
  ]
59
59
 
60
60
  [tool.rye.scripts]
@@ -7,6 +7,7 @@
7
7
  # all-features: true
8
8
  # with-sources: false
9
9
  # generate-hashes: false
10
+ # universal: false
10
11
 
11
12
  -e file:.
12
13
  annotated-types==0.6.0
@@ -35,7 +36,7 @@ h11==0.14.0
35
36
  # via httpcore
36
37
  httpcore==1.0.2
37
38
  # via httpx
38
- httpx==0.25.2
39
+ httpx==0.28.1
39
40
  # via respx
40
41
  # via runloop-api-client
41
42
  idna==3.4
@@ -76,7 +77,7 @@ python-dateutil==2.8.2
76
77
  # via time-machine
77
78
  pytz==2023.3.post1
78
79
  # via dirty-equals
79
- respx==0.20.2
80
+ respx==0.22.0
80
81
  rich==13.7.1
81
82
  ruff==0.6.9
82
83
  setuptools==68.2.2
@@ -85,7 +86,6 @@ six==1.16.0
85
86
  # via python-dateutil
86
87
  sniffio==1.3.0
87
88
  # via anyio
88
- # via httpx
89
89
  # via runloop-api-client
90
90
  time-machine==2.9.0
91
91
  tomli==2.0.2
@@ -7,6 +7,7 @@
7
7
  # all-features: true
8
8
  # with-sources: false
9
9
  # generate-hashes: false
10
+ # universal: false
10
11
 
11
12
  -e file:.
12
13
  annotated-types==0.6.0
@@ -25,7 +26,7 @@ h11==0.14.0
25
26
  # via httpcore
26
27
  httpcore==1.0.2
27
28
  # via httpx
28
- httpx==0.25.2
29
+ httpx==0.28.1
29
30
  # via runloop-api-client
30
31
  idna==3.4
31
32
  # via anyio
@@ -36,7 +37,6 @@ pydantic-core==2.27.1
36
37
  # via pydantic
37
38
  sniffio==1.3.0
38
39
  # via anyio
39
- # via httpx
40
40
  # via runloop-api-client
41
41
  typing-extensions==4.12.2
42
42
  # via anyio
@@ -767,6 +767,9 @@ else:
767
767
 
768
768
  class SyncHttpxClientWrapper(DefaultHttpxClient):
769
769
  def __del__(self) -> None:
770
+ if self.is_closed:
771
+ return
772
+
770
773
  try:
771
774
  self.close()
772
775
  except Exception:
@@ -1334,6 +1337,9 @@ else:
1334
1337
 
1335
1338
  class AsyncHttpxClientWrapper(DefaultAsyncHttpxClient):
1336
1339
  def __del__(self) -> None:
1340
+ if self.is_closed:
1341
+ return
1342
+
1337
1343
  try:
1338
1344
  # TODO(someday): support non asyncio runtimes here
1339
1345
  asyncio.get_running_loop().create_task(self.aclose())
@@ -33,8 +33,6 @@ from ._base_client import (
33
33
  AsyncAPIClient,
34
34
  )
35
35
  from .resources.devboxes import devboxes
36
- from .resources.projects import projects
37
- from .resources.functions import functions
38
36
 
39
37
  __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Runloop", "AsyncRunloop", "Client", "AsyncClient"]
40
38
 
@@ -43,8 +41,6 @@ class Runloop(SyncAPIClient):
43
41
  blueprints: blueprints.BlueprintsResource
44
42
  devboxes: devboxes.DevboxesResource
45
43
  repositories: repositories.RepositoriesResource
46
- functions: functions.FunctionsResource
47
- projects: projects.ProjectsResource
48
44
  with_raw_response: RunloopWithRawResponse
49
45
  with_streaming_response: RunloopWithStreamedResponse
50
46
 
@@ -102,11 +98,11 @@ class Runloop(SyncAPIClient):
102
98
  _strict_response_validation=_strict_response_validation,
103
99
  )
104
100
 
101
+ self._idempotency_header = "x-request-id"
102
+
105
103
  self.blueprints = blueprints.BlueprintsResource(self)
106
104
  self.devboxes = devboxes.DevboxesResource(self)
107
105
  self.repositories = repositories.RepositoriesResource(self)
108
- self.functions = functions.FunctionsResource(self)
109
- self.projects = projects.ProjectsResource(self)
110
106
  self.with_raw_response = RunloopWithRawResponse(self)
111
107
  self.with_streaming_response = RunloopWithStreamedResponse(self)
112
108
 
@@ -219,8 +215,6 @@ class AsyncRunloop(AsyncAPIClient):
219
215
  blueprints: blueprints.AsyncBlueprintsResource
220
216
  devboxes: devboxes.AsyncDevboxesResource
221
217
  repositories: repositories.AsyncRepositoriesResource
222
- functions: functions.AsyncFunctionsResource
223
- projects: projects.AsyncProjectsResource
224
218
  with_raw_response: AsyncRunloopWithRawResponse
225
219
  with_streaming_response: AsyncRunloopWithStreamedResponse
226
220
 
@@ -278,11 +272,11 @@ class AsyncRunloop(AsyncAPIClient):
278
272
  _strict_response_validation=_strict_response_validation,
279
273
  )
280
274
 
275
+ self._idempotency_header = "x-request-id"
276
+
281
277
  self.blueprints = blueprints.AsyncBlueprintsResource(self)
282
278
  self.devboxes = devboxes.AsyncDevboxesResource(self)
283
279
  self.repositories = repositories.AsyncRepositoriesResource(self)
284
- self.functions = functions.AsyncFunctionsResource(self)
285
- self.projects = projects.AsyncProjectsResource(self)
286
280
  self.with_raw_response = AsyncRunloopWithRawResponse(self)
287
281
  self.with_streaming_response = AsyncRunloopWithStreamedResponse(self)
288
282
 
@@ -396,8 +390,6 @@ class RunloopWithRawResponse:
396
390
  self.blueprints = blueprints.BlueprintsResourceWithRawResponse(client.blueprints)
397
391
  self.devboxes = devboxes.DevboxesResourceWithRawResponse(client.devboxes)
398
392
  self.repositories = repositories.RepositoriesResourceWithRawResponse(client.repositories)
399
- self.functions = functions.FunctionsResourceWithRawResponse(client.functions)
400
- self.projects = projects.ProjectsResourceWithRawResponse(client.projects)
401
393
 
402
394
 
403
395
  class AsyncRunloopWithRawResponse:
@@ -405,8 +397,6 @@ class AsyncRunloopWithRawResponse:
405
397
  self.blueprints = blueprints.AsyncBlueprintsResourceWithRawResponse(client.blueprints)
406
398
  self.devboxes = devboxes.AsyncDevboxesResourceWithRawResponse(client.devboxes)
407
399
  self.repositories = repositories.AsyncRepositoriesResourceWithRawResponse(client.repositories)
408
- self.functions = functions.AsyncFunctionsResourceWithRawResponse(client.functions)
409
- self.projects = projects.AsyncProjectsResourceWithRawResponse(client.projects)
410
400
 
411
401
 
412
402
  class RunloopWithStreamedResponse:
@@ -414,8 +404,6 @@ class RunloopWithStreamedResponse:
414
404
  self.blueprints = blueprints.BlueprintsResourceWithStreamingResponse(client.blueprints)
415
405
  self.devboxes = devboxes.DevboxesResourceWithStreamingResponse(client.devboxes)
416
406
  self.repositories = repositories.RepositoriesResourceWithStreamingResponse(client.repositories)
417
- self.functions = functions.FunctionsResourceWithStreamingResponse(client.functions)
418
- self.projects = projects.ProjectsResourceWithStreamingResponse(client.projects)
419
407
 
420
408
 
421
409
  class AsyncRunloopWithStreamedResponse:
@@ -423,8 +411,6 @@ class AsyncRunloopWithStreamedResponse:
423
411
  self.blueprints = blueprints.AsyncBlueprintsResourceWithStreamingResponse(client.blueprints)
424
412
  self.devboxes = devboxes.AsyncDevboxesResourceWithStreamingResponse(client.devboxes)
425
413
  self.repositories = repositories.AsyncRepositoriesResourceWithStreamingResponse(client.repositories)
426
- self.functions = functions.AsyncFunctionsResourceWithStreamingResponse(client.functions)
427
- self.projects = projects.AsyncProjectsResourceWithStreamingResponse(client.projects)
428
414
 
429
415
 
430
416
  Client = Runloop
@@ -179,14 +179,14 @@ class BaseModel(pydantic.BaseModel):
179
179
  @classmethod
180
180
  @override
181
181
  def construct( # pyright: ignore[reportIncompatibleMethodOverride]
182
- cls: Type[ModelT],
182
+ __cls: Type[ModelT],
183
183
  _fields_set: set[str] | None = None,
184
184
  **values: object,
185
185
  ) -> ModelT:
186
- m = cls.__new__(cls)
186
+ m = __cls.__new__(__cls)
187
187
  fields_values: dict[str, object] = {}
188
188
 
189
- config = get_model_config(cls)
189
+ config = get_model_config(__cls)
190
190
  populate_by_name = (
191
191
  config.allow_population_by_field_name
192
192
  if isinstance(config, _ConfigProtocol)
@@ -196,7 +196,7 @@ class BaseModel(pydantic.BaseModel):
196
196
  if _fields_set is None:
197
197
  _fields_set = set()
198
198
 
199
- model_fields = get_model_fields(cls)
199
+ model_fields = get_model_fields(__cls)
200
200
  for name, field in model_fields.items():
201
201
  key = field.alias
202
202
  if key is None or (key not in values and populate_by_name):
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.12.0" # x-release-please-version
4
+ __version__ = "0.13.0" # x-release-please-version