runloop-api-client 0.11.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.11.0 → runloop_api_client-0.13.0}/CHANGELOG.md +159 -0
  3. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/LICENSE +1 -1
  4. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/PKG-INFO +85 -11
  5. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/README.md +80 -7
  6. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/api.md +23 -57
  7. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/pyproject.toml +3 -3
  8. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/requirements-dev.lock +7 -6
  9. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/requirements.lock +4 -4
  10. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/__init__.py +2 -1
  11. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_base_client.py +6 -0
  12. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_client.py +32 -44
  13. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_models.py +12 -5
  14. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_response.py +10 -10
  15. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_types.py +2 -4
  16. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/__init__.py +1 -0
  17. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_typing.py +30 -1
  18. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_version.py +1 -1
  19. runloop_api_client-0.13.0/src/runloop_api_client/lib/polling.py +67 -0
  20. runloop_api_client-0.13.0/src/runloop_api_client/lib/polling_async.py +56 -0
  21. runloop_api_client-0.13.0/src/runloop_api_client/pagination.py +247 -0
  22. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/__init__.py +14 -28
  23. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/blueprints.py +90 -62
  24. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/devboxes.py +981 -232
  25. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/executions.py +208 -42
  26. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/logs.py +4 -4
  27. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/lsp.py +192 -24
  28. runloop_api_client-0.13.0/src/runloop_api_client/resources/repositories.py +566 -0
  29. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/__init__.py +10 -10
  30. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_parameters.py +1 -1
  31. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_create_params.py +7 -7
  32. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_list_params.py +2 -2
  33. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_preview_params.py +7 -7
  34. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_params.py +26 -18
  35. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +2 -2
  36. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_download_file_params.py +4 -1
  37. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_execute_async_params.py +25 -0
  38. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_execute_sync_params.py +25 -0
  39. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +18 -0
  40. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_list_params.py +20 -0
  41. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +4 -1
  42. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_remove_tunnel_params.py +12 -0
  43. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +3 -3
  44. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_view.py +3 -5
  45. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_upload_file_params.py +7 -3
  46. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_view.py +20 -11
  47. runloop_api_client-0.13.0/src/runloop_api_client/types/devbox_write_file_contents_params.py +18 -0
  48. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +3 -2
  49. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +1 -1
  50. runloop_api_client-0.13.0/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +25 -0
  51. runloop_api_client-0.13.0/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +25 -0
  52. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +1 -1
  53. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/log_list_params.py +1 -1
  54. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_connection_list_view.py +17 -0
  55. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_connection_view.py +25 -0
  56. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_create_params.py +15 -0
  57. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_list_params.py +15 -0
  58. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_version_details.py +44 -0
  59. runloop_api_client-0.13.0/src/runloop_api_client/types/repository_version_list_view.py +13 -0
  60. {runloop_api_client-0.11.0/src/runloop_api_client/types/shared_params → runloop_api_client-0.13.0/src/runloop_api_client/types/shared}/__init__.py +1 -0
  61. {runloop_api_client-0.11.0/src/runloop_api_client/types → runloop_api_client-0.13.0/src/runloop_api_client/types/shared}/code_mount_parameters.py +1 -1
  62. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared/launch_parameters.py +2 -1
  63. runloop_api_client-0.13.0/src/runloop_api_client/types/shared_params/__init__.py +5 -0
  64. runloop_api_client-0.11.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
  65. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +8 -7
  66. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_executions.py +26 -26
  67. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/test_blueprints.py +9 -9
  68. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/test_devboxes.py +236 -62
  69. runloop_api_client-0.13.0/tests/api_resources/test_repositories.py +388 -0
  70. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_client.py +58 -4
  71. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_models.py +27 -1
  72. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/utils.py +4 -0
  73. runloop_api_client-0.11.0/.release-please-manifest.json +0 -3
  74. runloop_api_client-0.11.0/src/runloop_api_client/resources/functions/__init__.py +0 -33
  75. runloop_api_client-0.11.0/src/runloop_api_client/resources/functions/functions.py +0 -395
  76. runloop_api_client-0.11.0/src/runloop_api_client/resources/functions/invocations.py +0 -357
  77. runloop_api_client-0.11.0/src/runloop_api_client/resources/projects/__init__.py +0 -33
  78. runloop_api_client-0.11.0/src/runloop_api_client/resources/projects/logs.py +0 -163
  79. runloop_api_client-0.11.0/src/runloop_api_client/resources/projects/projects.py +0 -175
  80. runloop_api_client-0.11.0/src/runloop_api_client/types/devbox_disk_snapshots_params.py +0 -15
  81. runloop_api_client-0.11.0/src/runloop_api_client/types/devbox_execute_async_params.py +0 -15
  82. runloop_api_client-0.11.0/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -15
  83. runloop_api_client-0.11.0/src/runloop_api_client/types/devbox_list_params.py +0 -18
  84. runloop_api_client-0.11.0/src/runloop_api_client/types/devbox_write_file_params.py +0 -15
  85. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -15
  86. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -15
  87. runloop_api_client-0.11.0/src/runloop_api_client/types/function_invoke_async_params.py +0 -23
  88. runloop_api_client-0.11.0/src/runloop_api_client/types/function_invoke_sync_params.py +0 -23
  89. runloop_api_client-0.11.0/src/runloop_api_client/types/function_list_view.py +0 -20
  90. runloop_api_client-0.11.0/src/runloop_api_client/types/functions/__init__.py +0 -6
  91. runloop_api_client-0.11.0/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -47
  92. runloop_api_client-0.11.0/src/runloop_api_client/types/functions/invocation_list_params.py +0 -15
  93. runloop_api_client-0.11.0/src/runloop_api_client/types/project_list_view.py +0 -30
  94. runloop_api_client-0.11.0/src/runloop_api_client/types/projects/__init__.py +0 -3
  95. runloop_api_client-0.11.0/src/runloop_api_client/types/shared/__init__.py +0 -8
  96. runloop_api_client-0.11.0/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -42
  97. runloop_api_client-0.11.0/src/runloop_api_client/types/shared/project_logs_view.py +0 -22
  98. runloop_api_client-0.11.0/tests/api_resources/functions/__init__.py +0 -1
  99. runloop_api_client-0.11.0/tests/api_resources/functions/test_invocations.py +0 -241
  100. runloop_api_client-0.11.0/tests/api_resources/projects/__init__.py +0 -1
  101. runloop_api_client-0.11.0/tests/api_resources/projects/test_logs.py +0 -98
  102. runloop_api_client-0.11.0/tests/api_resources/test_functions.py +0 -325
  103. runloop_api_client-0.11.0/tests/api_resources/test_projects.py +0 -72
  104. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/.gitignore +0 -0
  105. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/CONTRIBUTING.md +0 -0
  106. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/SECURITY.md +0 -0
  107. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/bin/check-release-environment +0 -0
  108. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/bin/publish-pypi +0 -0
  109. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/examples/.keep +0 -0
  110. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/mypy.ini +0 -0
  111. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/noxfile.py +0 -0
  112. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/release-please-config.json +0 -0
  113. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop/lib/.keep +0 -0
  114. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_compat.py +0 -0
  115. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_constants.py +0 -0
  116. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_exceptions.py +0 -0
  117. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_files.py +0 -0
  118. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_qs.py +0 -0
  119. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_resource.py +0 -0
  120. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_streaming.py +0 -0
  121. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  122. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  123. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  124. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  125. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  126. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  127. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  128. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/lib/.keep +0 -0
  129. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/py.typed +0 -0
  130. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  131. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  132. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  133. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  134. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  135. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  136. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  137. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  138. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  139. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  140. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  141. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  142. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  143. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  144. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  145. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  146. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  147. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  148. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  149. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  150. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  151. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  152. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  153. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  154. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  155. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  156. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  157. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  158. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  159. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  160. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  161. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  162. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  163. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  164. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  165. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  166. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  167. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  168. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  169. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  170. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  171. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  172. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  173. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  174. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  175. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  176. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  177. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  178. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  179. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  180. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  181. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  182. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  183. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  184. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  185. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  186. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  187. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  188. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  189. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  190. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  191. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  192. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  193. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  194. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  195. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  196. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  197. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  198. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  199. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  200. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  201. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  202. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  203. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  204. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  205. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  206. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  207. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  208. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/__init__.py +0 -0
  209. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/__init__.py +0 -0
  210. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/__init__.py +0 -0
  211. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  212. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  213. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/conftest.py +0 -0
  214. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/sample_file.txt +0 -0
  215. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_deepcopy.py +0 -0
  216. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_extract_files.py +0 -0
  217. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_files.py +0 -0
  218. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_qs.py +0 -0
  219. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_required_args.py +0 -0
  220. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_response.py +0 -0
  221. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_streaming.py +0 -0
  222. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_transform.py +0 -0
  223. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_utils/test_proxy.py +0 -0
  224. {runloop_api_client-0.11.0 → runloop_api_client-0.13.0}/tests/test_utils/test_typing.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.13.0"
3
+ }
@@ -1,5 +1,164 @@
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
+
31
+ ## 0.12.0 (2025-01-07)
32
+
33
+ Full Changelog: [v0.11.0...v0.12.0](https://github.com/runloopai/api-client-python/compare/v0.11.0...v0.12.0)
34
+
35
+ ### Features
36
+
37
+ * **api:** api update ([#362](https://github.com/runloopai/api-client-python/issues/362)) ([3dfc4eb](https://github.com/runloopai/api-client-python/commit/3dfc4eb21b5f4096b33b42e6017a4f536767fe39))
38
+ * **api:** api update ([#364](https://github.com/runloopai/api-client-python/issues/364)) ([206a693](https://github.com/runloopai/api-client-python/commit/206a6934f207d0d5006156da6c18a5e2987bece5))
39
+ * **api:** api update ([#365](https://github.com/runloopai/api-client-python/issues/365)) ([ffb41c8](https://github.com/runloopai/api-client-python/commit/ffb41c8bd150b2697bba5881f4b65a939dbc5628))
40
+ * **api:** api update ([#366](https://github.com/runloopai/api-client-python/issues/366)) ([d3acab8](https://github.com/runloopai/api-client-python/commit/d3acab8f273b3c5a9bbba5f8ed1b2fb6fc95d62e))
41
+ * **api:** api update ([#367](https://github.com/runloopai/api-client-python/issues/367)) ([32362b4](https://github.com/runloopai/api-client-python/commit/32362b43f302c837f9becba35d5f582e66111318))
42
+ * **api:** api update ([#369](https://github.com/runloopai/api-client-python/issues/369)) ([7f4ac29](https://github.com/runloopai/api-client-python/commit/7f4ac29899d9dd9f22ac440f84b1bbd26e8e4bf4))
43
+ * **api:** api update ([#370](https://github.com/runloopai/api-client-python/issues/370)) ([b401ea0](https://github.com/runloopai/api-client-python/commit/b401ea0640d58c4425524bdec3bfb754fd3c7b34))
44
+ * **api:** api update ([#371](https://github.com/runloopai/api-client-python/issues/371)) ([7199c10](https://github.com/runloopai/api-client-python/commit/7199c10e22a071d5e80ac429b8ad137afc91ad14))
45
+ * **api:** api update ([#372](https://github.com/runloopai/api-client-python/issues/372)) ([3d054e8](https://github.com/runloopai/api-client-python/commit/3d054e81f40836ec07447339be74e26eb499ea5b))
46
+ * **api:** api update ([#374](https://github.com/runloopai/api-client-python/issues/374)) ([e1df606](https://github.com/runloopai/api-client-python/commit/e1df606d6726f3c2cd3840f86861c2992f946f57))
47
+ * **api:** api update ([#375](https://github.com/runloopai/api-client-python/issues/375)) ([4d377b5](https://github.com/runloopai/api-client-python/commit/4d377b5aabb9d73b01847c04a37e2a13c3228d30))
48
+ * **api:** api update ([#376](https://github.com/runloopai/api-client-python/issues/376)) ([ae3516e](https://github.com/runloopai/api-client-python/commit/ae3516e8b99310ba7cc4da431d1cdbbdaa7e8063))
49
+ * **api:** api update ([#377](https://github.com/runloopai/api-client-python/issues/377)) ([aba9fd4](https://github.com/runloopai/api-client-python/commit/aba9fd4fde4e4f08396ed8b4d3b523c4d3d4020a))
50
+ * **api:** api update ([#378](https://github.com/runloopai/api-client-python/issues/378)) ([b8f2463](https://github.com/runloopai/api-client-python/commit/b8f2463dc08ab85915fe9fc660cd9c11a557649d))
51
+ * **api:** api update ([#379](https://github.com/runloopai/api-client-python/issues/379)) ([e9cf060](https://github.com/runloopai/api-client-python/commit/e9cf06068c0dd56af8b1ce2942045c31ba4fe478))
52
+ * **api:** api update ([#380](https://github.com/runloopai/api-client-python/issues/380)) ([d20ea3b](https://github.com/runloopai/api-client-python/commit/d20ea3b326fe580a288cac749ec0d4e55177e92c))
53
+ * **api:** api update ([#381](https://github.com/runloopai/api-client-python/issues/381)) ([74b87c3](https://github.com/runloopai/api-client-python/commit/74b87c3f41f310d746aacff56e928b1eae6dd9de))
54
+ * **api:** api update ([#382](https://github.com/runloopai/api-client-python/issues/382)) ([233e0dd](https://github.com/runloopai/api-client-python/commit/233e0dd203d32cbc3567a177a1c8e443b2d14cfa))
55
+ * **api:** api update ([#383](https://github.com/runloopai/api-client-python/issues/383)) ([e235409](https://github.com/runloopai/api-client-python/commit/e2354092bbff99c5314d492bc9213c5dad874c68))
56
+ * **api:** api update ([#384](https://github.com/runloopai/api-client-python/issues/384)) ([1b0e2c4](https://github.com/runloopai/api-client-python/commit/1b0e2c4a84f50f07e3c7b034325e7984ee2cc2a9))
57
+ * **api:** api update ([#385](https://github.com/runloopai/api-client-python/issues/385)) ([8343ecc](https://github.com/runloopai/api-client-python/commit/8343ecc1094be1a920af87f7887b4d7601552ce9))
58
+ * **api:** api update ([#386](https://github.com/runloopai/api-client-python/issues/386)) ([70f46f2](https://github.com/runloopai/api-client-python/commit/70f46f205f8fe8d480107973dacb4590ec1b211e))
59
+ * **api:** api update ([#387](https://github.com/runloopai/api-client-python/issues/387)) ([389cf90](https://github.com/runloopai/api-client-python/commit/389cf905ddd1859b72a210ba53274e951c2b1b34))
60
+ * **api:** api update ([#388](https://github.com/runloopai/api-client-python/issues/388)) ([bf43a05](https://github.com/runloopai/api-client-python/commit/bf43a05a9c2a3a78fa26454db7188d5e353a1411))
61
+ * **api:** api update ([#389](https://github.com/runloopai/api-client-python/issues/389)) ([af17aed](https://github.com/runloopai/api-client-python/commit/af17aed21c4221762ae1111b6df7ee51d49742e2))
62
+ * **api:** api update ([#390](https://github.com/runloopai/api-client-python/issues/390)) ([012f542](https://github.com/runloopai/api-client-python/commit/012f542bad6a0c4d1c1f272d4bb0cddeaeecdb48))
63
+ * **api:** api update ([#391](https://github.com/runloopai/api-client-python/issues/391)) ([9f52531](https://github.com/runloopai/api-client-python/commit/9f5253195ec5f9c9c782565f64499e64e3f4f016))
64
+ * **api:** api update ([#392](https://github.com/runloopai/api-client-python/issues/392)) ([b65b5a4](https://github.com/runloopai/api-client-python/commit/b65b5a4c42f488690f91bed57d427a2fa323b3cd))
65
+ * **api:** api update ([#393](https://github.com/runloopai/api-client-python/issues/393)) ([40016f9](https://github.com/runloopai/api-client-python/commit/40016f944bdb366f82d4d02c8ad4e6dd3d35ee6b))
66
+ * **api:** api update ([#394](https://github.com/runloopai/api-client-python/issues/394)) ([d8b3c3f](https://github.com/runloopai/api-client-python/commit/d8b3c3f6668ff9a898c6e87b19d78cb1ef978a61))
67
+ * **api:** api update ([#395](https://github.com/runloopai/api-client-python/issues/395)) ([4d1c78a](https://github.com/runloopai/api-client-python/commit/4d1c78a27459c170fa613d864bdd0ac902ba1bbc))
68
+ * **api:** api update ([#396](https://github.com/runloopai/api-client-python/issues/396)) ([cff50a1](https://github.com/runloopai/api-client-python/commit/cff50a16266e8cc27d69670f0494ba3c914e12bd))
69
+ * **api:** api update ([#397](https://github.com/runloopai/api-client-python/issues/397)) ([7b1cbec](https://github.com/runloopai/api-client-python/commit/7b1cbecd0d3806ca2f204181e40e30eb21748b00))
70
+ * **api:** api update ([#398](https://github.com/runloopai/api-client-python/issues/398)) ([48cda68](https://github.com/runloopai/api-client-python/commit/48cda680cf76d77861697f361cfcbc835270c608))
71
+ * **api:** api update ([#399](https://github.com/runloopai/api-client-python/issues/399)) ([c9473fb](https://github.com/runloopai/api-client-python/commit/c9473fba9e6bafd8cabea5f1cbf3ca4a038ce90c))
72
+ * **api:** api update ([#400](https://github.com/runloopai/api-client-python/issues/400)) ([e17628d](https://github.com/runloopai/api-client-python/commit/e17628dbdf515ec49ae87e82bf0d37218cb27233))
73
+ * **api:** api update ([#401](https://github.com/runloopai/api-client-python/issues/401)) ([80a1564](https://github.com/runloopai/api-client-python/commit/80a1564e73f434233f8e0a3fa01c826a9009ba0f))
74
+ * **api:** api update ([#402](https://github.com/runloopai/api-client-python/issues/402)) ([fffe4ca](https://github.com/runloopai/api-client-python/commit/fffe4ca8e799aad4a38bd18a4ebf96c0276dfa6c))
75
+ * **api:** api update ([#403](https://github.com/runloopai/api-client-python/issues/403)) ([e055c7e](https://github.com/runloopai/api-client-python/commit/e055c7e2940b599060c1a425f0ccec2ded38da38))
76
+ * **api:** api update ([#404](https://github.com/runloopai/api-client-python/issues/404)) ([1afe6bb](https://github.com/runloopai/api-client-python/commit/1afe6bb15cfadc417e4d10155ad77ac14b03aa48))
77
+ * **api:** api update ([#405](https://github.com/runloopai/api-client-python/issues/405)) ([6621921](https://github.com/runloopai/api-client-python/commit/66219217f21dc75bc55842c65b887cab45e3b5ad))
78
+ * **api:** api update ([#406](https://github.com/runloopai/api-client-python/issues/406)) ([633bf17](https://github.com/runloopai/api-client-python/commit/633bf17df71d3d28a0c291414b85e9a201483d94))
79
+ * **api:** api update ([#407](https://github.com/runloopai/api-client-python/issues/407)) ([964cb03](https://github.com/runloopai/api-client-python/commit/964cb03acb9ed236cc2daea4ddc01d575ecc4a2e))
80
+ * **api:** api update ([#408](https://github.com/runloopai/api-client-python/issues/408)) ([f414a30](https://github.com/runloopai/api-client-python/commit/f414a301829cfcf6cb0e09947531882f8b43794e))
81
+ * **api:** api update ([#409](https://github.com/runloopai/api-client-python/issues/409)) ([8eb1ea3](https://github.com/runloopai/api-client-python/commit/8eb1ea3ba5d4f09376b4ae0de5d939692796f34e))
82
+ * **api:** api update ([#410](https://github.com/runloopai/api-client-python/issues/410)) ([cf5cb65](https://github.com/runloopai/api-client-python/commit/cf5cb651fb5e6ac897099d83a91436582e617e18))
83
+ * **api:** api update ([#411](https://github.com/runloopai/api-client-python/issues/411)) ([c4958ef](https://github.com/runloopai/api-client-python/commit/c4958ef61cd2e8ff009574a664357268ebb27d91))
84
+ * **api:** api update ([#412](https://github.com/runloopai/api-client-python/issues/412)) ([f0bdc85](https://github.com/runloopai/api-client-python/commit/f0bdc85aea591110a9e081e28fe33f1910c9d9ca))
85
+ * **api:** api update ([#413](https://github.com/runloopai/api-client-python/issues/413)) ([d621c18](https://github.com/runloopai/api-client-python/commit/d621c18330cc7ddbbdfbb29570a182a3e038a50e))
86
+ * **api:** api update ([#414](https://github.com/runloopai/api-client-python/issues/414)) ([33f66ee](https://github.com/runloopai/api-client-python/commit/33f66eea0d34928bd7245d97b2b7cee539bc7762))
87
+ * **api:** api update ([#415](https://github.com/runloopai/api-client-python/issues/415)) ([dc4dee7](https://github.com/runloopai/api-client-python/commit/dc4dee7d331821048fd29105ca6acc2b79a8cadf))
88
+ * **api:** api update ([#416](https://github.com/runloopai/api-client-python/issues/416)) ([18ade84](https://github.com/runloopai/api-client-python/commit/18ade84c7eddc115f561b938539db9154de3c962))
89
+ * **api:** api update ([#417](https://github.com/runloopai/api-client-python/issues/417)) ([02a1fe8](https://github.com/runloopai/api-client-python/commit/02a1fe8c81a05ff7001ec524fe4207bf14ba31af))
90
+ * **api:** api update ([#418](https://github.com/runloopai/api-client-python/issues/418)) ([ba31602](https://github.com/runloopai/api-client-python/commit/ba31602d7be4ce823fa5d15d834c7a8adea58bcc))
91
+ * **api:** api update ([#419](https://github.com/runloopai/api-client-python/issues/419)) ([ed84a54](https://github.com/runloopai/api-client-python/commit/ed84a544005c0283199b8cff95f26534fbbbe200))
92
+ * **api:** api update ([#420](https://github.com/runloopai/api-client-python/issues/420)) ([a189508](https://github.com/runloopai/api-client-python/commit/a189508858735228872fad813c60a8999a20b008))
93
+ * **api:** api update ([#421](https://github.com/runloopai/api-client-python/issues/421)) ([ee6083b](https://github.com/runloopai/api-client-python/commit/ee6083bb8faca2542ba8c739a12dbac4c1e2cae3))
94
+ * **api:** api update ([#422](https://github.com/runloopai/api-client-python/issues/422)) ([7415fb9](https://github.com/runloopai/api-client-python/commit/7415fb9c452505d21df8aa23cd26c9073c6b5088))
95
+ * **api:** api update ([#423](https://github.com/runloopai/api-client-python/issues/423)) ([cdb793d](https://github.com/runloopai/api-client-python/commit/cdb793d025ce636693933f0e6df405f2b8f6ffd4))
96
+ * **api:** api update ([#424](https://github.com/runloopai/api-client-python/issues/424)) ([5b5c0c1](https://github.com/runloopai/api-client-python/commit/5b5c0c1eac9f9511b46794af11619cfd5efecac7))
97
+ * **api:** api update ([#425](https://github.com/runloopai/api-client-python/issues/425)) ([673d5ba](https://github.com/runloopai/api-client-python/commit/673d5baba9981f28582dab9619b752c8619feae9))
98
+ * **api:** api update ([#426](https://github.com/runloopai/api-client-python/issues/426)) ([0b11b80](https://github.com/runloopai/api-client-python/commit/0b11b80e261da59a644579ec38c15be7ec68d0df))
99
+ * **api:** api update ([#427](https://github.com/runloopai/api-client-python/issues/427)) ([875a3bb](https://github.com/runloopai/api-client-python/commit/875a3bb143bdee17bc534935c57fd6566164b33b))
100
+ * **api:** api update ([#428](https://github.com/runloopai/api-client-python/issues/428)) ([fc11810](https://github.com/runloopai/api-client-python/commit/fc11810c6c5c908813857532a92e50419e9d0494))
101
+ * **api:** api update ([#431](https://github.com/runloopai/api-client-python/issues/431)) ([c4990b0](https://github.com/runloopai/api-client-python/commit/c4990b039821244b15e58a9e0ad61ebc1d4fb4bb))
102
+ * **api:** api update ([#432](https://github.com/runloopai/api-client-python/issues/432)) ([d0684d0](https://github.com/runloopai/api-client-python/commit/d0684d07d452f4e9dd7b1eb8614f15d70f386da2))
103
+ * **api:** api update ([#433](https://github.com/runloopai/api-client-python/issues/433)) ([bbe8d92](https://github.com/runloopai/api-client-python/commit/bbe8d9289c202f89844cc4a5d219f14ad41232de))
104
+ * **api:** api update ([#434](https://github.com/runloopai/api-client-python/issues/434)) ([f81e740](https://github.com/runloopai/api-client-python/commit/f81e740464585f4a4331adba38a834486e63f8ba))
105
+ * **api:** api update ([#435](https://github.com/runloopai/api-client-python/issues/435)) ([531fcc0](https://github.com/runloopai/api-client-python/commit/531fcc0008697eba0ca9dec0437753a7e0d6802b))
106
+ * **api:** api update ([#436](https://github.com/runloopai/api-client-python/issues/436)) ([f4e0343](https://github.com/runloopai/api-client-python/commit/f4e0343c3229501b22d1ab8373d0045e71a02287))
107
+ * **api:** api update ([#437](https://github.com/runloopai/api-client-python/issues/437)) ([e7e5cde](https://github.com/runloopai/api-client-python/commit/e7e5cde5f5e27ed153e10a30dfb512d36a6ffde1))
108
+ * **api:** api update ([#438](https://github.com/runloopai/api-client-python/issues/438)) ([8f3b91f](https://github.com/runloopai/api-client-python/commit/8f3b91f39fefb8e98e1f1bc60e2b3fe7d0cdbeaa))
109
+ * **api:** api update ([#440](https://github.com/runloopai/api-client-python/issues/440)) ([5a89907](https://github.com/runloopai/api-client-python/commit/5a89907c8812c221193bab0493eba36c0d0ca04f))
110
+ * **api:** api update ([#441](https://github.com/runloopai/api-client-python/issues/441)) ([b59c6e8](https://github.com/runloopai/api-client-python/commit/b59c6e8693d5411b9afdb4a8d2bbf881c7edab4a))
111
+ * **api:** api update ([#442](https://github.com/runloopai/api-client-python/issues/442)) ([4b12c1a](https://github.com/runloopai/api-client-python/commit/4b12c1a233c729ca55dcf10bb290fc3d0dd48916))
112
+ * **api:** api update ([#443](https://github.com/runloopai/api-client-python/issues/443)) ([0847342](https://github.com/runloopai/api-client-python/commit/08473429deb4f10c6b405c931f86dc603154f08f))
113
+ * **api:** api update ([#444](https://github.com/runloopai/api-client-python/issues/444)) ([a268c66](https://github.com/runloopai/api-client-python/commit/a268c66d3a01017b273e3f9ac1ff9462aa368143))
114
+ * **api:** api update ([#445](https://github.com/runloopai/api-client-python/issues/445)) ([c81a340](https://github.com/runloopai/api-client-python/commit/c81a340c849869bb84b014b8fcde50bf5151a18c))
115
+ * **api:** api update ([#446](https://github.com/runloopai/api-client-python/issues/446)) ([890dd15](https://github.com/runloopai/api-client-python/commit/890dd154d289a7b108078cf98675e29d897a78b7))
116
+ * **api:** api update ([#447](https://github.com/runloopai/api-client-python/issues/447)) ([5c15205](https://github.com/runloopai/api-client-python/commit/5c152052cbd78738224e49e572f07a7e985e8d72))
117
+ * **api:** api update ([#448](https://github.com/runloopai/api-client-python/issues/448)) ([0a4281c](https://github.com/runloopai/api-client-python/commit/0a4281ca32cc84aff988c7ac74550801d2659dff))
118
+ * **api:** api update ([#450](https://github.com/runloopai/api-client-python/issues/450)) ([f146e9e](https://github.com/runloopai/api-client-python/commit/f146e9e6579b87cd123ab5b40688276caac09b40))
119
+ * **api:** api update ([#451](https://github.com/runloopai/api-client-python/issues/451)) ([3aa8890](https://github.com/runloopai/api-client-python/commit/3aa88905b80e5436c2f679c9fcb7bceaaeb63a1c))
120
+ * **api:** api update ([#452](https://github.com/runloopai/api-client-python/issues/452)) ([f34e6a0](https://github.com/runloopai/api-client-python/commit/f34e6a04169ca59f11d8f460ac4fc5b8fc1670c6))
121
+ * **api:** api update ([#456](https://github.com/runloopai/api-client-python/issues/456)) ([1c4457e](https://github.com/runloopai/api-client-python/commit/1c4457e187d1da307c4c64b2f64163ca39701c6b))
122
+ * **api:** api update ([#457](https://github.com/runloopai/api-client-python/issues/457)) ([3944caf](https://github.com/runloopai/api-client-python/commit/3944cafae35ed8dfd25cdf81cfb11bb63030ab10))
123
+ * **api:** api update ([#458](https://github.com/runloopai/api-client-python/issues/458)) ([2051057](https://github.com/runloopai/api-client-python/commit/205105792548c8474155710cef59c767d85dc5ff))
124
+ * **api:** api update ([#459](https://github.com/runloopai/api-client-python/issues/459)) ([f994f2b](https://github.com/runloopai/api-client-python/commit/f994f2b220959c64f2e2e0b3a7a5376626cd9f46))
125
+ * **api:** api update ([#461](https://github.com/runloopai/api-client-python/issues/461)) ([9916c69](https://github.com/runloopai/api-client-python/commit/9916c699871deb17032a42c2206b6b7eaef2422a))
126
+ * **api:** api update ([#462](https://github.com/runloopai/api-client-python/issues/462)) ([12db42c](https://github.com/runloopai/api-client-python/commit/12db42c33402d6dbb3ed6f58275e81f9fec7df6d))
127
+ * **api:** api update ([#463](https://github.com/runloopai/api-client-python/issues/463)) ([2b96a69](https://github.com/runloopai/api-client-python/commit/2b96a691a4316974fb0189fea7bcb4a5e83b7100))
128
+ * **api:** api update ([#464](https://github.com/runloopai/api-client-python/issues/464)) ([8befd9c](https://github.com/runloopai/api-client-python/commit/8befd9ca3ded2c1612ce6c0afe45ea5ca19abf60))
129
+ * **api:** api update ([#465](https://github.com/runloopai/api-client-python/issues/465)) ([13a2b7c](https://github.com/runloopai/api-client-python/commit/13a2b7c97f790b84f2d0c17d661deaea1d2c385d))
130
+ * **api:** api update ([#466](https://github.com/runloopai/api-client-python/issues/466)) ([32022e6](https://github.com/runloopai/api-client-python/commit/32022e691ffaf8ff4f329ba11ca442e034702deb))
131
+ * **api:** api update ([#467](https://github.com/runloopai/api-client-python/issues/467)) ([b54bcda](https://github.com/runloopai/api-client-python/commit/b54bcda08049b79fb6119883de75bd7b7577b178))
132
+ * **api:** api update ([#468](https://github.com/runloopai/api-client-python/issues/468)) ([c63ccbb](https://github.com/runloopai/api-client-python/commit/c63ccbb10bec2469147480608a1f8b85884c0a84))
133
+ * **api:** api update ([#469](https://github.com/runloopai/api-client-python/issues/469)) ([e360b33](https://github.com/runloopai/api-client-python/commit/e360b330e21ff2d5f40245fec4abbcc9c855984b))
134
+ * **api:** api update ([#470](https://github.com/runloopai/api-client-python/issues/470)) ([4d451be](https://github.com/runloopai/api-client-python/commit/4d451be9763d647a65e3b808a5df2c4bb558c2e4))
135
+ * **api:** api update ([#471](https://github.com/runloopai/api-client-python/issues/471)) ([00b4736](https://github.com/runloopai/api-client-python/commit/00b4736f593efd87110ce4f281e44b9573b6e88d))
136
+ * **api:** api update ([#472](https://github.com/runloopai/api-client-python/issues/472)) ([b3bb5a3](https://github.com/runloopai/api-client-python/commit/b3bb5a3a006b40c066ba7288b9f9f5d7ad650ed0))
137
+ * **api:** api update ([#473](https://github.com/runloopai/api-client-python/issues/473)) ([0ddbcd9](https://github.com/runloopai/api-client-python/commit/0ddbcd9f332326c4210302d457445eef85ad337c))
138
+ * **api:** api update ([#474](https://github.com/runloopai/api-client-python/issues/474)) ([bebafe7](https://github.com/runloopai/api-client-python/commit/bebafe76afd82928ba0b9b9904598ecf5664d698))
139
+ * **api:** api update ([#475](https://github.com/runloopai/api-client-python/issues/475)) ([493d9a5](https://github.com/runloopai/api-client-python/commit/493d9a5bc8c2116e7a028c7dd39b178a2c51640b))
140
+ * **api:** api update ([#476](https://github.com/runloopai/api-client-python/issues/476)) ([8a8c550](https://github.com/runloopai/api-client-python/commit/8a8c550238f0ecc3ab93773abfd37d28c631b9c3))
141
+
142
+
143
+ ### Chores
144
+
145
+ * add missing isclass check ([#478](https://github.com/runloopai/api-client-python/issues/478)) ([1b477a3](https://github.com/runloopai/api-client-python/commit/1b477a378a9ea74c52c97c5e4741dc67ee96d409))
146
+ * **internal:** add support for TypeAliasType ([#430](https://github.com/runloopai/api-client-python/issues/430)) ([7c4be68](https://github.com/runloopai/api-client-python/commit/7c4be683074bf86d8caca25190508de59b855362))
147
+ * **internal:** bump pyright ([#429](https://github.com/runloopai/api-client-python/issues/429)) ([5546e05](https://github.com/runloopai/api-client-python/commit/5546e05bcb6a1f9b14a611dac0c954303429ad4a))
148
+ * **internal:** codegen related update ([#368](https://github.com/runloopai/api-client-python/issues/368)) ([6bbac9d](https://github.com/runloopai/api-client-python/commit/6bbac9dcd9cace70ade900d5e3261b2c4608cb31))
149
+ * **internal:** codegen related update ([#439](https://github.com/runloopai/api-client-python/issues/439)) ([0ea26b1](https://github.com/runloopai/api-client-python/commit/0ea26b1244c4b857b479acda101661981fac0d46))
150
+ * **internal:** codegen related update ([#453](https://github.com/runloopai/api-client-python/issues/453)) ([947ffa2](https://github.com/runloopai/api-client-python/commit/947ffa210c0d28bb2c2a900054043ede50a51afb))
151
+ * **internal:** codegen related update ([#454](https://github.com/runloopai/api-client-python/issues/454)) ([72127cd](https://github.com/runloopai/api-client-python/commit/72127cdedf2ad79beb513d2d5d0b9aeec6d60c39))
152
+ * **internal:** codegen related update ([#477](https://github.com/runloopai/api-client-python/issues/477)) ([648039b](https://github.com/runloopai/api-client-python/commit/648039bc42b0c39867408c204fd9e78b2bb3e1a9))
153
+ * **internal:** fix some typos ([#460](https://github.com/runloopai/api-client-python/issues/460)) ([1c17f0c](https://github.com/runloopai/api-client-python/commit/1c17f0c3f1fe28ec92c942ef1356c7a28a54a545))
154
+ * make the `Omit` type public ([#373](https://github.com/runloopai/api-client-python/issues/373)) ([1ec1400](https://github.com/runloopai/api-client-python/commit/1ec1400baa00a62d2e3cbe616423653be3d28f22))
155
+ * updates ([#479](https://github.com/runloopai/api-client-python/issues/479)) ([55b7d1d](https://github.com/runloopai/api-client-python/commit/55b7d1dd63c9e363328528a6412bd15d68d39885))
156
+
157
+
158
+ ### Documentation
159
+
160
+ * **readme:** example snippet for client context manager ([#455](https://github.com/runloopai/api-client-python/issues/455)) ([8f57943](https://github.com/runloopai/api-client-python/commit/8f579438f9a3648049c29b264fa1afe0659f274b))
161
+
3
162
  ## 0.11.0 (2024-11-28)
4
163
 
5
164
  Full Changelog: [v0.10.0...v0.11.0](https://github.com/runloopai/api-client-python/compare/v0.10.0...v0.11.0)
@@ -1,4 +1,4 @@
1
- Copyright 2024 runloop
1
+ Copyright 2025 runloop
2
2
 
3
3
  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:
4
4
 
@@ -1,11 +1,12 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.11.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
7
7
  Author-email: Runloop <support@runloop.ai>
8
- License: MIT
8
+ License-Expression: MIT
9
+ License-File: LICENSE
9
10
  Classifier: Intended Audience :: Developers
10
11
  Classifier: License :: OSI Approved :: MIT License
11
12
  Classifier: Operating System :: MacOS
@@ -26,7 +27,7 @@ Requires-Dist: distro<2,>=1.7.0
26
27
  Requires-Dist: httpx<1,>=0.23.0
27
28
  Requires-Dist: pydantic<3,>=1.9.0
28
29
  Requires-Dist: sniffio
29
- Requires-Dist: typing-extensions<5,>=4.7
30
+ Requires-Dist: typing-extensions<5,>=4.10
30
31
  Description-Content-Type: text/markdown
31
32
 
32
33
  # Runloop Python API library
@@ -104,6 +105,69 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
104
105
 
105
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`.
106
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
+
107
171
  ## Handling errors
108
172
 
109
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.
@@ -132,7 +196,7 @@ except runloop_api_client.APIStatusError as e:
132
196
  print(e.response)
133
197
  ```
134
198
 
135
- Error codes are as followed:
199
+ Error codes are as follows:
136
200
 
137
201
  | Status Code | Error Type |
138
202
  | ----------- | -------------------------- |
@@ -263,8 +327,7 @@ If you need to access undocumented endpoints, params, or response properties, th
263
327
  #### Undocumented endpoints
264
328
 
265
329
  To make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other
266
- http verbs. Options on the client will be respected (such as retries) will be respected when making this
267
- request.
330
+ http verbs. Options on the client will be respected (such as retries) when making this request.
268
331
 
269
332
  ```py
270
333
  import httpx
@@ -293,18 +356,19 @@ can also get all the extra fields on the Pydantic model as a dict with
293
356
 
294
357
  You can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:
295
358
 
296
- - Support for proxies
297
- - Custom transports
359
+ - Support for [proxies](https://www.python-httpx.org/advanced/proxies/)
360
+ - Custom [transports](https://www.python-httpx.org/advanced/transports/)
298
361
  - Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality
299
362
 
300
363
  ```python
364
+ import httpx
301
365
  from runloop_api_client import Runloop, DefaultHttpxClient
302
366
 
303
367
  client = Runloop(
304
368
  # Or use the `RUNLOOP_BASE_URL` env var
305
369
  base_url="http://my.test.server.example.com:8083",
306
370
  http_client=DefaultHttpxClient(
307
- proxies="http://my.test.proxy.example.com",
371
+ proxy="http://my.test.proxy.example.com",
308
372
  transport=httpx.HTTPTransport(local_address="0.0.0.0"),
309
373
  ),
310
374
  )
@@ -320,12 +384,22 @@ client.with_options(http_client=DefaultHttpxClient(...))
320
384
 
321
385
  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
322
386
 
387
+ ```py
388
+ from runloop_api_client import Runloop
389
+
390
+ with Runloop() as client:
391
+ # make requests here
392
+ ...
393
+
394
+ # HTTP client is now closed
395
+ ```
396
+
323
397
  ## Versioning
324
398
 
325
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:
326
400
 
327
401
  1. Changes that only affect static types, without breaking runtime behavior.
328
- 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.)_
329
403
  3. Changes that we do not expect to impact the vast majority of users in practice.
330
404
 
331
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
@@ -262,18 +324,19 @@ can also get all the extra fields on the Pydantic model as a dict with
262
324
 
263
325
  You can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:
264
326
 
265
- - Support for proxies
266
- - Custom transports
327
+ - Support for [proxies](https://www.python-httpx.org/advanced/proxies/)
328
+ - Custom [transports](https://www.python-httpx.org/advanced/transports/)
267
329
  - Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality
268
330
 
269
331
  ```python
332
+ import httpx
270
333
  from runloop_api_client import Runloop, DefaultHttpxClient
271
334
 
272
335
  client = Runloop(
273
336
  # Or use the `RUNLOOP_BASE_URL` env var
274
337
  base_url="http://my.test.server.example.com:8083",
275
338
  http_client=DefaultHttpxClient(
276
- proxies="http://my.test.proxy.example.com",
339
+ proxy="http://my.test.proxy.example.com",
277
340
  transport=httpx.HTTPTransport(local_address="0.0.0.0"),
278
341
  ),
279
342
  )
@@ -289,12 +352,22 @@ client.with_options(http_client=DefaultHttpxClient(...))
289
352
 
290
353
  By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
291
354
 
355
+ ```py
356
+ from runloop_api_client import Runloop
357
+
358
+ with Runloop() as client:
359
+ # make requests here
360
+ ...
361
+
362
+ # HTTP client is now closed
363
+ ```
364
+
292
365
  ## Versioning
293
366
 
294
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:
295
368
 
296
369
  1. Changes that only affect static types, without breaking runtime behavior.
297
- 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.)_
298
371
  3. Changes that we do not expect to impact the vast majority of users in practice.
299
372
 
300
373
  We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.