runloop-api-client 0.9.0__tar.gz → 0.11.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 (206) hide show
  1. runloop_api_client-0.11.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/CHANGELOG.md +126 -0
  3. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/PKG-INFO +8 -10
  4. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/README.md +6 -6
  5. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/api.md +84 -0
  6. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/mypy.ini +4 -1
  7. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/pyproject.toml +2 -2
  8. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/requirements-dev.lock +1 -0
  9. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_base_client.py +8 -4
  10. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_compat.py +3 -5
  11. runloop_api_client-0.11.0/src/runloop_api_client/_utils/_sync.py +71 -0
  12. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_transform.py +5 -0
  13. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_version.py +1 -1
  14. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/devboxes/__init__.py +14 -0
  15. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/devboxes/devboxes.py +113 -15
  16. runloop_api_client-0.11.0/src/runloop_api_client/resources/devboxes/lsp.py +1461 -0
  17. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_create_params.py +1 -8
  18. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_view.py +3 -1
  19. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_write_file_params.py +1 -1
  20. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/__init__.py +76 -0
  21. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_code_action.py +21 -0
  22. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_command.py +15 -0
  23. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_command_param.py +16 -0
  24. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_diagnostic.py +22 -0
  25. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +24 -0
  26. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_location.py +13 -0
  27. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_markup_content.py +12 -0
  28. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_parameter_information.py +17 -0
  29. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_range.py +24 -0
  30. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_range_param.py +25 -0
  31. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_signature.py +20 -0
  32. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_workspace_edit.py +13 -0
  33. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +14 -0
  34. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_action_application_result.py +17 -0
  35. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_action_context_param.py +34 -0
  36. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_action_kind.py +7 -0
  37. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +7 -0
  38. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_description_param.py +14 -0
  39. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/code_segment_info_response.py +53 -0
  40. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/diagnostic_param.py +65 -0
  41. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +17 -0
  42. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/diagnostic_severity.py +7 -0
  43. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/diagnostic_tag.py +7 -0
  44. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/diagnostics_response.py +14 -0
  45. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/document_symbol.py +58 -0
  46. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/document_uri.py +7 -0
  47. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/file_contents_response.py +17 -0
  48. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/file_path.py +7 -0
  49. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/file_uri.py +7 -0
  50. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/health_status_response.py +23 -0
  51. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/integer.py +7 -0
  52. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/l_sp_any_param.py +9 -0
  53. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/location_param.py +33 -0
  54. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +21 -0
  55. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +40 -0
  56. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +13 -0
  57. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +13 -0
  58. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +15 -0
  59. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_file_params.py +13 -0
  60. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_files_response.py +10 -0
  61. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +13 -0
  62. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +15 -0
  63. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +10 -0
  64. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +19 -0
  65. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +15 -0
  66. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_references_params.py +15 -0
  67. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +13 -0
  68. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +7 -0
  69. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/position.py +27 -0
  70. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/position_param.py +29 -0
  71. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/range.py +15 -0
  72. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/range_param.py +17 -0
  73. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +10 -0
  74. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +12 -0
  75. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/signature_help_response.py +18 -0
  76. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/symbol_kind.py +9 -0
  77. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/symbol_tag.py +7 -0
  78. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/symbol_type.py +7 -0
  79. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/text_edit.py +20 -0
  80. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/text_edit_param.py +21 -0
  81. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/u_ri.py +7 -0
  82. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/uinteger.py +7 -0
  83. runloop_api_client-0.11.0/src/runloop_api_client/types/devboxes/watched_file_response.py +16 -0
  84. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared/after_idle.py +1 -1
  85. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared_params/after_idle.py +1 -1
  86. runloop_api_client-0.11.0/tests/api_resources/devboxes/test_lsp.py +1607 -0
  87. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/test_blueprints.py +20 -68
  88. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/test_devboxes.py +84 -34
  89. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_client.py +38 -0
  90. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_models.py +8 -0
  91. runloop_api_client-0.9.0/.release-please-manifest.json +0 -3
  92. runloop_api_client-0.9.0/src/runloop_api_client/_utils/_sync.py +0 -81
  93. runloop_api_client-0.9.0/src/runloop_api_client/types/devboxes/__init__.py +0 -9
  94. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/.gitignore +0 -0
  95. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/CONTRIBUTING.md +0 -0
  96. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/LICENSE +0 -0
  97. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/SECURITY.md +0 -0
  98. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/bin/check-release-environment +0 -0
  99. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/bin/publish-pypi +0 -0
  100. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/examples/.keep +0 -0
  101. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/noxfile.py +0 -0
  102. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/release-please-config.json +0 -0
  103. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/requirements.lock +0 -0
  104. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop/lib/.keep +0 -0
  105. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/__init__.py +0 -0
  106. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_client.py +0 -0
  107. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_constants.py +0 -0
  108. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_exceptions.py +0 -0
  109. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_files.py +0 -0
  110. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_models.py +0 -0
  111. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_qs.py +0 -0
  112. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_resource.py +0 -0
  113. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_response.py +0 -0
  114. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_streaming.py +0 -0
  115. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_types.py +0 -0
  116. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  117. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  118. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  119. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  120. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  121. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  122. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  123. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/lib/.keep +0 -0
  124. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/py.typed +0 -0
  125. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/__init__.py +0 -0
  126. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  127. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  128. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  129. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/functions/__init__.py +0 -0
  130. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/functions/functions.py +0 -0
  131. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/functions/invocations.py +0 -0
  132. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/projects/__init__.py +0 -0
  133. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/projects/logs.py +0 -0
  134. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/resources/projects/projects.py +0 -0
  135. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/__init__.py +0 -0
  136. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  137. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  138. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  139. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  140. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  141. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  142. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  143. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  144. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  145. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
  146. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
  147. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  148. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  149. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  150. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_disk_snapshots_params.py +0 -0
  151. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  152. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  153. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  154. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  155. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  156. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  157. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  158. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  159. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  160. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  161. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  162. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  163. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  164. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  165. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  166. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  167. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  168. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  169. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
  170. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
  171. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/function_list_view.py +0 -0
  172. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/functions/__init__.py +0 -0
  173. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
  174. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
  175. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/project_list_view.py +0 -0
  176. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/projects/__init__.py +0 -0
  177. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  178. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
  179. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  180. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
  181. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  182. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  183. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/__init__.py +0 -0
  184. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/__init__.py +0 -0
  185. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/devboxes/__init__.py +0 -0
  186. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  187. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  188. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/functions/__init__.py +0 -0
  189. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/functions/test_invocations.py +0 -0
  190. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/projects/__init__.py +0 -0
  191. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/projects/test_logs.py +0 -0
  192. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/test_functions.py +0 -0
  193. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/api_resources/test_projects.py +0 -0
  194. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/conftest.py +0 -0
  195. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/sample_file.txt +0 -0
  196. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_deepcopy.py +0 -0
  197. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_extract_files.py +0 -0
  198. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_files.py +0 -0
  199. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_qs.py +0 -0
  200. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_required_args.py +0 -0
  201. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_response.py +0 -0
  202. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_streaming.py +0 -0
  203. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_transform.py +0 -0
  204. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_utils/test_proxy.py +0 -0
  205. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/test_utils/test_typing.py +0 -0
  206. {runloop_api_client-0.9.0 → runloop_api_client-0.11.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.11.0"
3
+ }
@@ -1,5 +1,131 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.0 (2024-11-28)
4
+
5
+ Full Changelog: [v0.10.0...v0.11.0](https://github.com/runloopai/api-client-python/compare/v0.10.0...v0.11.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#267](https://github.com/runloopai/api-client-python/issues/267)) ([27a2611](https://github.com/runloopai/api-client-python/commit/27a26112b3e3ba949ec93d51ba1c94886faa0d5a))
10
+ * **api:** api update ([#269](https://github.com/runloopai/api-client-python/issues/269)) ([398d7b7](https://github.com/runloopai/api-client-python/commit/398d7b722c7753f9fd739807d2102c5c5b193da2))
11
+ * **api:** api update ([#270](https://github.com/runloopai/api-client-python/issues/270)) ([79cdab5](https://github.com/runloopai/api-client-python/commit/79cdab53adf57783d0ec2c8d0034540805475e5d))
12
+ * **api:** api update ([#271](https://github.com/runloopai/api-client-python/issues/271)) ([b98e2c3](https://github.com/runloopai/api-client-python/commit/b98e2c39daa921abe3bbd420b0b4177e33254eff))
13
+ * **api:** api update ([#272](https://github.com/runloopai/api-client-python/issues/272)) ([cd352c7](https://github.com/runloopai/api-client-python/commit/cd352c7334be2b6f30a761f605075481f5f1c7fc))
14
+ * **api:** api update ([#273](https://github.com/runloopai/api-client-python/issues/273)) ([e98fc62](https://github.com/runloopai/api-client-python/commit/e98fc627b8d2e66c23c03d82625f4ae0cc74ce21))
15
+ * **api:** api update ([#274](https://github.com/runloopai/api-client-python/issues/274)) ([333d0bb](https://github.com/runloopai/api-client-python/commit/333d0bb20efe17979d3ea63b5288459b9a3c47e6))
16
+ * **api:** api update ([#275](https://github.com/runloopai/api-client-python/issues/275)) ([cccf52e](https://github.com/runloopai/api-client-python/commit/cccf52e723676a4814630b8fd4a19766d94cf185))
17
+ * **api:** api update ([#276](https://github.com/runloopai/api-client-python/issues/276)) ([1833bda](https://github.com/runloopai/api-client-python/commit/1833bda457c662c70d0630ef5eb12c97c609b0e2))
18
+ * **api:** api update ([#277](https://github.com/runloopai/api-client-python/issues/277)) ([a2e551d](https://github.com/runloopai/api-client-python/commit/a2e551d9380ee37b23ab0a58044d6cc94a020791))
19
+ * **api:** api update ([#278](https://github.com/runloopai/api-client-python/issues/278)) ([5f6bc45](https://github.com/runloopai/api-client-python/commit/5f6bc45e385d6b23613fcadc8f7bc4a74cef1583))
20
+ * **api:** api update ([#279](https://github.com/runloopai/api-client-python/issues/279)) ([93892e2](https://github.com/runloopai/api-client-python/commit/93892e2ae8db9503d99ec95676b233e9d08abc97))
21
+ * **api:** api update ([#280](https://github.com/runloopai/api-client-python/issues/280)) ([95d36c1](https://github.com/runloopai/api-client-python/commit/95d36c1cb3280e8f42d46dcdcc8df16781d60a07))
22
+ * **api:** api update ([#281](https://github.com/runloopai/api-client-python/issues/281)) ([d0e7fac](https://github.com/runloopai/api-client-python/commit/d0e7faca52892ff1c711ff3505b059c86b6452f8))
23
+ * **api:** api update ([#282](https://github.com/runloopai/api-client-python/issues/282)) ([774ba0e](https://github.com/runloopai/api-client-python/commit/774ba0e1cb1336b25e690c6541e22eefae405afa))
24
+ * **api:** api update ([#283](https://github.com/runloopai/api-client-python/issues/283)) ([302e7c3](https://github.com/runloopai/api-client-python/commit/302e7c377e769b51beeec0d42cb5a1a6b739d17f))
25
+ * **api:** api update ([#284](https://github.com/runloopai/api-client-python/issues/284)) ([aef73c2](https://github.com/runloopai/api-client-python/commit/aef73c253698f08bfd41e1ecff973a049d7c396b))
26
+ * **api:** api update ([#285](https://github.com/runloopai/api-client-python/issues/285)) ([1a6003d](https://github.com/runloopai/api-client-python/commit/1a6003d88c6a63c2fde4a0a005db61f325aa6c01))
27
+ * **api:** api update ([#286](https://github.com/runloopai/api-client-python/issues/286)) ([9037685](https://github.com/runloopai/api-client-python/commit/9037685a4878a19d019f8f7be82aaf9403a1f91a))
28
+ * **api:** api update ([#287](https://github.com/runloopai/api-client-python/issues/287)) ([8ecabea](https://github.com/runloopai/api-client-python/commit/8ecabea02eea09845fd8a95e835b1e81f727c184))
29
+ * **api:** api update ([#288](https://github.com/runloopai/api-client-python/issues/288)) ([c6ef6fc](https://github.com/runloopai/api-client-python/commit/c6ef6fcc80d222dd18deafb403da917586aa6c6e))
30
+ * **api:** api update ([#289](https://github.com/runloopai/api-client-python/issues/289)) ([72f5f56](https://github.com/runloopai/api-client-python/commit/72f5f56a91d93ae27963b3d04f7be2cac4a3407c))
31
+ * **api:** api update ([#290](https://github.com/runloopai/api-client-python/issues/290)) ([508bb3f](https://github.com/runloopai/api-client-python/commit/508bb3f4fdcea37e132daeec0ac541716a6593f0))
32
+ * **api:** api update ([#291](https://github.com/runloopai/api-client-python/issues/291)) ([2df9175](https://github.com/runloopai/api-client-python/commit/2df9175bb461c32c5a76ed022041a37ff90b884b))
33
+ * **api:** api update ([#292](https://github.com/runloopai/api-client-python/issues/292)) ([141e1f3](https://github.com/runloopai/api-client-python/commit/141e1f3280bffe4f157b75892c98f712ae743917))
34
+ * **api:** api update ([#293](https://github.com/runloopai/api-client-python/issues/293)) ([74ca2f8](https://github.com/runloopai/api-client-python/commit/74ca2f81390dce2102f7585ed7ce6a9258bc1937))
35
+ * **api:** api update ([#294](https://github.com/runloopai/api-client-python/issues/294)) ([8e69b95](https://github.com/runloopai/api-client-python/commit/8e69b957a277bd6a74efb3c597c1a1d17be1cb2f))
36
+ * **api:** api update ([#295](https://github.com/runloopai/api-client-python/issues/295)) ([9b3a76c](https://github.com/runloopai/api-client-python/commit/9b3a76cd012ead454dfc6091949cd68c16b38df7))
37
+ * **api:** api update ([#296](https://github.com/runloopai/api-client-python/issues/296)) ([4bd3edb](https://github.com/runloopai/api-client-python/commit/4bd3edb4653302caf33fc0c55ac557fb3a0fb121))
38
+ * **api:** api update ([#297](https://github.com/runloopai/api-client-python/issues/297)) ([3922954](https://github.com/runloopai/api-client-python/commit/392295465ee6e84bb89684c8695183e6fa5ce1e8))
39
+ * **api:** api update ([#298](https://github.com/runloopai/api-client-python/issues/298)) ([a4c9fb4](https://github.com/runloopai/api-client-python/commit/a4c9fb4c54499214cd4f6615d62bb14f793f234e))
40
+ * **api:** api update ([#299](https://github.com/runloopai/api-client-python/issues/299)) ([ba67b5d](https://github.com/runloopai/api-client-python/commit/ba67b5d476802b0834a0b8f0899a66763d36dea6))
41
+ * **api:** api update ([#300](https://github.com/runloopai/api-client-python/issues/300)) ([a571b57](https://github.com/runloopai/api-client-python/commit/a571b572959c4be2f650d675206bd0f01292c838))
42
+ * **api:** api update ([#301](https://github.com/runloopai/api-client-python/issues/301)) ([e8606c3](https://github.com/runloopai/api-client-python/commit/e8606c34b0e0a0045e0b936144508279386b0948))
43
+ * **api:** api update ([#302](https://github.com/runloopai/api-client-python/issues/302)) ([b7014fd](https://github.com/runloopai/api-client-python/commit/b7014fd51e57aa6c039a03c64e300a0d7fbafb12))
44
+ * **api:** api update ([#303](https://github.com/runloopai/api-client-python/issues/303)) ([4ffec44](https://github.com/runloopai/api-client-python/commit/4ffec442400cd8f5ae6e38947a0e553ba1c2d337))
45
+ * **api:** api update ([#304](https://github.com/runloopai/api-client-python/issues/304)) ([dbede4f](https://github.com/runloopai/api-client-python/commit/dbede4f50a54b1ff01ca8acc27c29a8b64be3bc9))
46
+ * **api:** api update ([#305](https://github.com/runloopai/api-client-python/issues/305)) ([d62a804](https://github.com/runloopai/api-client-python/commit/d62a8048c54c122b1f7b8bf089a4c95ee99fb0b8))
47
+ * **api:** api update ([#306](https://github.com/runloopai/api-client-python/issues/306)) ([ebf7fe1](https://github.com/runloopai/api-client-python/commit/ebf7fe15dced48ed132f58a94c90df1d3718d9f8))
48
+ * **api:** api update ([#309](https://github.com/runloopai/api-client-python/issues/309)) ([3fd934e](https://github.com/runloopai/api-client-python/commit/3fd934e52e9b19be00d28af23bb517e3a0ae3697))
49
+ * **api:** api update ([#311](https://github.com/runloopai/api-client-python/issues/311)) ([2524093](https://github.com/runloopai/api-client-python/commit/252409344c379fe9727ece4a1596f427a2ebc2e8))
50
+ * **api:** api update ([#312](https://github.com/runloopai/api-client-python/issues/312)) ([f2b4f2e](https://github.com/runloopai/api-client-python/commit/f2b4f2e2c1e0dbf7ae37d727cd1093ca5a41a46a))
51
+ * **api:** api update ([#313](https://github.com/runloopai/api-client-python/issues/313)) ([a896e14](https://github.com/runloopai/api-client-python/commit/a896e149b0fe163943e3b7f3f9dd7ddd0e60a6e4))
52
+ * **api:** api update ([#314](https://github.com/runloopai/api-client-python/issues/314)) ([3982687](https://github.com/runloopai/api-client-python/commit/3982687a256f394ea63f033fd813be7e5b31d427))
53
+ * **api:** api update ([#315](https://github.com/runloopai/api-client-python/issues/315)) ([1ee6056](https://github.com/runloopai/api-client-python/commit/1ee6056207eb7f703cb95ebe9727e622af69b3a7))
54
+ * **api:** api update ([#316](https://github.com/runloopai/api-client-python/issues/316)) ([e64ddd0](https://github.com/runloopai/api-client-python/commit/e64ddd09504b49e4242a2e9232dc8f595815851b))
55
+ * **api:** api update ([#317](https://github.com/runloopai/api-client-python/issues/317)) ([4800de8](https://github.com/runloopai/api-client-python/commit/4800de804b193396267ca7d82827c671bf07cc69))
56
+ * **api:** api update ([#318](https://github.com/runloopai/api-client-python/issues/318)) ([60ba766](https://github.com/runloopai/api-client-python/commit/60ba766d958773f72ff75eb9053f2b5c14a2bf95))
57
+ * **api:** api update ([#319](https://github.com/runloopai/api-client-python/issues/319)) ([b999876](https://github.com/runloopai/api-client-python/commit/b9998763ff2cd25e8bffa62b67cb89725ed6e3d2))
58
+ * **api:** api update ([#320](https://github.com/runloopai/api-client-python/issues/320)) ([ed99ec5](https://github.com/runloopai/api-client-python/commit/ed99ec5c2cae033e1dc9dafa008e0b671d9df34e))
59
+ * **api:** api update ([#321](https://github.com/runloopai/api-client-python/issues/321)) ([d7ce737](https://github.com/runloopai/api-client-python/commit/d7ce737ee6b7c344775f771ea2f30c2c1a784de2))
60
+ * **api:** api update ([#322](https://github.com/runloopai/api-client-python/issues/322)) ([e579ee9](https://github.com/runloopai/api-client-python/commit/e579ee9a22c83ba70c1aa10e6d9914918a75f071))
61
+ * **api:** api update ([#323](https://github.com/runloopai/api-client-python/issues/323)) ([06bb999](https://github.com/runloopai/api-client-python/commit/06bb999b0c035ed3eba2afca77d5ed8255504c8d))
62
+ * **api:** api update ([#324](https://github.com/runloopai/api-client-python/issues/324)) ([42230ec](https://github.com/runloopai/api-client-python/commit/42230ecaabbdc11a5f679f0a08ade37d20054209))
63
+ * **api:** api update ([#325](https://github.com/runloopai/api-client-python/issues/325)) ([9436f02](https://github.com/runloopai/api-client-python/commit/9436f027948774046458eabe6e944c57ffedcda9))
64
+ * **api:** api update ([#326](https://github.com/runloopai/api-client-python/issues/326)) ([2a97e59](https://github.com/runloopai/api-client-python/commit/2a97e59370c7f5e8abf401925c34467d394bc0ca))
65
+ * **api:** api update ([#327](https://github.com/runloopai/api-client-python/issues/327)) ([a6d07d7](https://github.com/runloopai/api-client-python/commit/a6d07d7c76fb9603efd16a7cacd772fee20bf00a))
66
+ * **api:** api update ([#328](https://github.com/runloopai/api-client-python/issues/328)) ([c419733](https://github.com/runloopai/api-client-python/commit/c4197333afcca88247de48454aeec3b73dc6f311))
67
+ * **api:** api update ([#329](https://github.com/runloopai/api-client-python/issues/329)) ([27e682c](https://github.com/runloopai/api-client-python/commit/27e682cc6dbb4bc26e9aff61ff15750d2a81b35f))
68
+ * **api:** api update ([#330](https://github.com/runloopai/api-client-python/issues/330)) ([4c27571](https://github.com/runloopai/api-client-python/commit/4c27571161a897fcc91ef5ed03f412b576422d7e))
69
+ * **api:** api update ([#331](https://github.com/runloopai/api-client-python/issues/331)) ([2c25235](https://github.com/runloopai/api-client-python/commit/2c2523591b58197c9b4f2bc66bf62778ec755116))
70
+ * **api:** api update ([#332](https://github.com/runloopai/api-client-python/issues/332)) ([60a1eeb](https://github.com/runloopai/api-client-python/commit/60a1eeb424ee0f98086040df97adf8d35f3de853))
71
+ * **api:** api update ([#333](https://github.com/runloopai/api-client-python/issues/333)) ([76b345c](https://github.com/runloopai/api-client-python/commit/76b345cb318a5a35843c56d9dc2bd3d8feb35332))
72
+ * **api:** api update ([#334](https://github.com/runloopai/api-client-python/issues/334)) ([e77b717](https://github.com/runloopai/api-client-python/commit/e77b717c18eb666a537e4bb8d1df8835d6f34524))
73
+ * **api:** api update ([#335](https://github.com/runloopai/api-client-python/issues/335)) ([5eb9c88](https://github.com/runloopai/api-client-python/commit/5eb9c88abe61ad81b20d8fcf98a74f28361f61f7))
74
+ * **api:** api update ([#336](https://github.com/runloopai/api-client-python/issues/336)) ([fa539cd](https://github.com/runloopai/api-client-python/commit/fa539cd278e71823e8269a1930fbca4a88d3501c))
75
+ * **api:** api update ([#337](https://github.com/runloopai/api-client-python/issues/337)) ([f9abf13](https://github.com/runloopai/api-client-python/commit/f9abf131f6fd9f55820fe752c939445814bfc7f3))
76
+ * **api:** api update ([#338](https://github.com/runloopai/api-client-python/issues/338)) ([475b693](https://github.com/runloopai/api-client-python/commit/475b693bbc0f7b33a5a5521a977034c26b0a9a1a))
77
+ * **api:** api update ([#339](https://github.com/runloopai/api-client-python/issues/339)) ([916bc6e](https://github.com/runloopai/api-client-python/commit/916bc6e1a13647c807efff4caa5154878b34f255))
78
+ * **api:** api update ([#340](https://github.com/runloopai/api-client-python/issues/340)) ([e42de98](https://github.com/runloopai/api-client-python/commit/e42de98281c8a85de94b7c73f9d4bff5bf9c06d1))
79
+ * **api:** api update ([#341](https://github.com/runloopai/api-client-python/issues/341)) ([710172d](https://github.com/runloopai/api-client-python/commit/710172d20f6b6d146e6bf162b6eb6ba23a0d8a61))
80
+ * **api:** api update ([#342](https://github.com/runloopai/api-client-python/issues/342)) ([6a3dbb2](https://github.com/runloopai/api-client-python/commit/6a3dbb21f7dec203a87a0bf107ad3c9c8639871c))
81
+ * **api:** api update ([#344](https://github.com/runloopai/api-client-python/issues/344)) ([59209ff](https://github.com/runloopai/api-client-python/commit/59209ffdf4281004001334e1c42d49d1e86e0af1))
82
+ * **api:** api update ([#345](https://github.com/runloopai/api-client-python/issues/345)) ([9a8181d](https://github.com/runloopai/api-client-python/commit/9a8181d13f619f837d314602ce386f6670b065db))
83
+ * **api:** api update ([#346](https://github.com/runloopai/api-client-python/issues/346)) ([f708cd1](https://github.com/runloopai/api-client-python/commit/f708cd15a4854ef22efd57d0c1f4a8be5fbfbd27))
84
+ * **api:** api update ([#347](https://github.com/runloopai/api-client-python/issues/347)) ([30b5ee7](https://github.com/runloopai/api-client-python/commit/30b5ee74fd1e5e7f2e46320e34fa62ed7a919703))
85
+ * **api:** api update ([#348](https://github.com/runloopai/api-client-python/issues/348)) ([782a004](https://github.com/runloopai/api-client-python/commit/782a00400b83412f825a4d444e22a367744897aa))
86
+ * **api:** api update ([#349](https://github.com/runloopai/api-client-python/issues/349)) ([acd7cfb](https://github.com/runloopai/api-client-python/commit/acd7cfb069944becb21eedaf87e7440c24b20f3a))
87
+ * **api:** api update ([#350](https://github.com/runloopai/api-client-python/issues/350)) ([9858df4](https://github.com/runloopai/api-client-python/commit/9858df4f852a7ce483c4cfe8b699f890a2ea4e22))
88
+ * **api:** api update ([#351](https://github.com/runloopai/api-client-python/issues/351)) ([c1e84ff](https://github.com/runloopai/api-client-python/commit/c1e84ff7abf538dfc679043c0daeaaa1e0f80421))
89
+ * **api:** api update ([#352](https://github.com/runloopai/api-client-python/issues/352)) ([fc60fd0](https://github.com/runloopai/api-client-python/commit/fc60fd02dd00af413821efcc785466efae9bef74))
90
+ * **api:** api update ([#353](https://github.com/runloopai/api-client-python/issues/353)) ([d29d0c4](https://github.com/runloopai/api-client-python/commit/d29d0c449ef2f7b9a907bb367e25b48268a0f52d))
91
+ * **api:** api update ([#354](https://github.com/runloopai/api-client-python/issues/354)) ([30c029d](https://github.com/runloopai/api-client-python/commit/30c029da2929112aeb9235fefe90c8214386e69d))
92
+ * **api:** api update ([#358](https://github.com/runloopai/api-client-python/issues/358)) ([c237f10](https://github.com/runloopai/api-client-python/commit/c237f108a6e821ec1d7314eae4a80f1ae2915de2))
93
+
94
+
95
+ ### Bug Fixes
96
+
97
+ * **client:** compat with new httpx 0.28.0 release ([#360](https://github.com/runloopai/api-client-python/issues/360)) ([5e16307](https://github.com/runloopai/api-client-python/commit/5e16307ebb08fca6109d091110a31ac4f4ce0c3d))
98
+
99
+
100
+ ### Chores
101
+
102
+ * **internal:** codegen related update ([#343](https://github.com/runloopai/api-client-python/issues/343)) ([68a4523](https://github.com/runloopai/api-client-python/commit/68a4523484de412f223a9fc23f7fd7c899bfac1b))
103
+ * **internal:** exclude mypy from running on tests ([#359](https://github.com/runloopai/api-client-python/issues/359)) ([8b8fe06](https://github.com/runloopai/api-client-python/commit/8b8fe069e4ad23fc135edbec1f1cf820af3051fe))
104
+ * **internal:** fix compat model_dump method when warnings are passed ([#355](https://github.com/runloopai/api-client-python/issues/355)) ([59c36a0](https://github.com/runloopai/api-client-python/commit/59c36a0f71664897f3e052b88fae4ecef1be5293))
105
+ * rebuild project due to codegen change ([#307](https://github.com/runloopai/api-client-python/issues/307)) ([6e6a696](https://github.com/runloopai/api-client-python/commit/6e6a696b3022be537883fcc8043621995a2d38e7))
106
+ * rebuild project due to codegen change ([#308](https://github.com/runloopai/api-client-python/issues/308)) ([11883c9](https://github.com/runloopai/api-client-python/commit/11883c976db1945018715995d61130d6bbb3cb32))
107
+ * remove now unused `cached-property` dep ([#357](https://github.com/runloopai/api-client-python/issues/357)) ([919b44c](https://github.com/runloopai/api-client-python/commit/919b44c00b390614192d74048b7468b00fea336a))
108
+
109
+
110
+ ### Documentation
111
+
112
+ * add info log level to readme ([#356](https://github.com/runloopai/api-client-python/issues/356)) ([8fc311d](https://github.com/runloopai/api-client-python/commit/8fc311d98d4c14ae5336b2cc21f686ce2bb414a8))
113
+
114
+ ## 0.10.0 (2024-11-08)
115
+
116
+ Full Changelog: [v0.9.0...v0.10.0](https://github.com/runloopai/api-client-python/compare/v0.9.0...v0.10.0)
117
+
118
+ ### Features
119
+
120
+ * **api:** api update ([#257](https://github.com/runloopai/api-client-python/issues/257)) ([d4d01da](https://github.com/runloopai/api-client-python/commit/d4d01da46da8bd0382c363d7fdfd07a173df258f))
121
+ * **api:** api update ([#259](https://github.com/runloopai/api-client-python/issues/259)) ([c695aa0](https://github.com/runloopai/api-client-python/commit/c695aa09be21d33c93f81ed96a03fe962f05502f))
122
+ * **api:** api update ([#260](https://github.com/runloopai/api-client-python/issues/260)) ([ac9193f](https://github.com/runloopai/api-client-python/commit/ac9193f436faab5dc5bf50b4370209c9b20e0f8f))
123
+ * **api:** api update ([#261](https://github.com/runloopai/api-client-python/issues/261)) ([5a7fce2](https://github.com/runloopai/api-client-python/commit/5a7fce220c30d8d506a476da5a04bb358d12c5b4))
124
+ * **api:** api update ([#262](https://github.com/runloopai/api-client-python/issues/262)) ([b463693](https://github.com/runloopai/api-client-python/commit/b463693a843a2e1326794f80d5392555249a82ba))
125
+ * **api:** api update ([#263](https://github.com/runloopai/api-client-python/issues/263)) ([dbd490a](https://github.com/runloopai/api-client-python/commit/dbd490a359ad8c18f6fdaa03cea217e6e7621149))
126
+ * **api:** api update ([#264](https://github.com/runloopai/api-client-python/issues/264)) ([0380eb2](https://github.com/runloopai/api-client-python/commit/0380eb25cc4f938ae4c03d5ddcaa172f3bd1bc4b))
127
+ * **api:** api update ([#265](https://github.com/runloopai/api-client-python/issues/265)) ([2827aeb](https://github.com/runloopai/api-client-python/commit/2827aeb67e07858e28752b19e1184c4479f0a73e))
128
+
3
129
  ## 0.9.0 (2024-11-07)
4
130
 
5
131
  Full Changelog: [v0.8.0...v0.9.0](https://github.com/runloopai/api-client-python/compare/v0.8.0...v0.9.0)
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.9.0
3
+ Version: 0.11.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-Expression: MIT
9
- License-File: LICENSE
8
+ License: MIT
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Operating System :: MacOS
@@ -23,7 +22,6 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
22
  Classifier: Typing :: Typed
24
23
  Requires-Python: >=3.8
25
24
  Requires-Dist: anyio<5,>=3.5.0
26
- Requires-Dist: cached-property; python_version < '3.8'
27
25
  Requires-Dist: distro<2,>=1.7.0
28
26
  Requires-Dist: httpx<1,>=0.23.0
29
27
  Requires-Dist: pydantic<3,>=1.9.0
@@ -61,8 +59,7 @@ import os
61
59
  from runloop_api_client import Runloop
62
60
 
63
61
  client = Runloop(
64
- # This is the default and can be omitted
65
- bearer_token=os.environ.get("RUNLOOP_API_KEY"),
62
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
66
63
  )
67
64
 
68
65
  devbox_view = client.devboxes.create()
@@ -84,8 +81,7 @@ import asyncio
84
81
  from runloop_api_client import AsyncRunloop
85
82
 
86
83
  client = AsyncRunloop(
87
- # This is the default and can be omitted
88
- bearer_token=os.environ.get("RUNLOOP_API_KEY"),
84
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
89
85
  )
90
86
 
91
87
 
@@ -203,12 +199,14 @@ Note that requests that time out are [retried twice by default](https://github.c
203
199
 
204
200
  We use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.
205
201
 
206
- You can enable logging by setting the environment variable `RUNLOOP_LOG` to `debug`.
202
+ You can enable logging by setting the environment variable `RUNLOOP_LOG` to `info`.
207
203
 
208
204
  ```shell
209
- $ export RUNLOOP_LOG=debug
205
+ $ export RUNLOOP_LOG=info
210
206
  ```
211
207
 
208
+ Or to `debug` for more verbose logging.
209
+
212
210
  ### How to tell whether `None` means `null` or missing
213
211
 
214
212
  In an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:
@@ -28,8 +28,7 @@ import os
28
28
  from runloop_api_client import Runloop
29
29
 
30
30
  client = Runloop(
31
- # This is the default and can be omitted
32
- bearer_token=os.environ.get("RUNLOOP_API_KEY"),
31
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
33
32
  )
34
33
 
35
34
  devbox_view = client.devboxes.create()
@@ -51,8 +50,7 @@ import asyncio
51
50
  from runloop_api_client import AsyncRunloop
52
51
 
53
52
  client = AsyncRunloop(
54
- # This is the default and can be omitted
55
- bearer_token=os.environ.get("RUNLOOP_API_KEY"),
53
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
56
54
  )
57
55
 
58
56
 
@@ -170,12 +168,14 @@ Note that requests that time out are [retried twice by default](#retries).
170
168
 
171
169
  We use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.
172
170
 
173
- You can enable logging by setting the environment variable `RUNLOOP_LOG` to `debug`.
171
+ You can enable logging by setting the environment variable `RUNLOOP_LOG` to `info`.
174
172
 
175
173
  ```shell
176
- $ export RUNLOOP_LOG=debug
174
+ $ export RUNLOOP_LOG=info
177
175
  ```
178
176
 
177
+ Or to `debug` for more verbose logging.
178
+
179
179
  ### How to tell whether `None` means `null` or missing
180
180
 
181
181
  In an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:
@@ -54,6 +54,7 @@ from runloop_api_client.types import (
54
54
  DevboxTunnelView,
55
55
  DevboxView,
56
56
  DevboxCreateSSHKeyResponse,
57
+ DevboxKeepAliveResponse,
57
58
  DevboxReadFileContentsResponse,
58
59
  DevboxUploadFileResponse,
59
60
  )
@@ -70,6 +71,7 @@ Methods:
70
71
  - <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>
71
72
  - <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>
72
73
  - <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
+ - <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>
73
75
  - <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>
74
76
  - <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>
75
77
  - <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,6 +80,88 @@ Methods:
78
80
  - <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>
79
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>
80
82
 
83
+ ## Lsp
84
+
85
+ Types:
86
+
87
+ ```python
88
+ from runloop_api_client.types.devboxes import (
89
+ BaseCodeAction,
90
+ BaseCommand,
91
+ BaseDiagnostic,
92
+ BaseLocation,
93
+ BaseMarkupContent,
94
+ BaseParameterInformation,
95
+ BaseRange,
96
+ BaseSignature,
97
+ BaseWorkspaceEdit,
98
+ CodeActionApplicationResult,
99
+ CodeActionContext,
100
+ CodeActionKind,
101
+ CodeActionsForDiagnosticRequestBody,
102
+ CodeActionsRequestBody,
103
+ CodeActionsResponse,
104
+ CodeActionTriggerKind,
105
+ CodeDescription,
106
+ CodeSegmentInfoRequestBody,
107
+ CodeSegmentInfoResponse,
108
+ Diagnostic,
109
+ DiagnosticRelatedInformation,
110
+ DiagnosticSeverity,
111
+ DiagnosticsResponse,
112
+ DiagnosticTag,
113
+ DocumentSymbol,
114
+ DocumentSymbolResponse,
115
+ DocumentUri,
116
+ FileContentsResponse,
117
+ FileDefinitionRequestBody,
118
+ FileDefinitionResponse,
119
+ FilePath,
120
+ FileRequestBody,
121
+ FileUri,
122
+ FormattingResponse,
123
+ HealthStatusResponse,
124
+ Integer,
125
+ Location,
126
+ LSpAny,
127
+ Position,
128
+ Range,
129
+ RecordStringTextEditArray,
130
+ ReferencesRequestBody,
131
+ ReferencesResponse,
132
+ SetWatchDirectoryRequestBody,
133
+ SignatureHelpRequestBody,
134
+ SignatureHelpResponse,
135
+ SymbolKind,
136
+ SymbolTag,
137
+ SymbolType,
138
+ TextEdit,
139
+ Uinteger,
140
+ URi,
141
+ WatchedFileResponse,
142
+ LspFilesResponse,
143
+ LspGetCodeActionsForDiagnosticResponse,
144
+ LspSetWatchDirectoryResponse,
145
+ )
146
+ ```
147
+
148
+ Methods:
149
+
150
+ - <code title="post /v1/devboxes/{id}/lsp/apply-code-action">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">apply_code_action</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_action_application_result.py">CodeActionApplicationResult</a></code>
151
+ - <code title="post /v1/devboxes/{id}/lsp/code-actions">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">code_actions</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_code_actions_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_actions_response.py">object</a></code>
152
+ - <code title="post /v1/devboxes/{id}/lsp/diagnostics">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">diagnostics</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/diagnostics_response.py">DiagnosticsResponse</a></code>
153
+ - <code title="post /v1/devboxes/{id}/lsp/document-symbols">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">document_symbols</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/document_symbol_response.py">object</a></code>
154
+ - <code title="post /v1/devboxes/{id}/lsp/file">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">file</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/file_contents_response.py">FileContentsResponse</a></code>
155
+ - <code title="post /v1/devboxes/{id}/lsp/file-definition">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">file_definition</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_file_definition_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/file_definition_response.py">object</a></code>
156
+ - <code title="get /v1/devboxes/{id}/lsp/files">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">files</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/lsp_files_response.py">LspFilesResponse</a></code>
157
+ - <code title="post /v1/devboxes/{id}/lsp/formatting">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">formatting</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_formatting_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/formatting_response.py">object</a></code>
158
+ - <code title="post /v1/devboxes/{id}/lsp/get-code-actions-for-diagnostic">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_code_actions_for_diagnostic</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py">LspGetCodeActionsForDiagnosticResponse</a></code>
159
+ - <code title="post /v1/devboxes/{id}/lsp/get-code-segment-info">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_code_segment_info</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_segment_info_response.py">CodeSegmentInfoResponse</a></code>
160
+ - <code title="post /v1/devboxes/{id}/lsp/get-signature-help">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_signature_help</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/signature_help_response.py">SignatureHelpResponse</a></code>
161
+ - <code title="get /v1/devboxes/{id}/lsp/health">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">health</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/health_status_response.py">HealthStatusResponse</a></code>
162
+ - <code title="post /v1/devboxes/{id}/lsp/references">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">references</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_references_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/references_response.py">object</a></code>
163
+ - <code title="post /v1/devboxes/{id}/lsp/set-watch-directory">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">set_watch_directory</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py">params</a>) -> str</code>
164
+
81
165
  ## Logs
82
166
 
83
167
  Types:
@@ -5,7 +5,10 @@ show_error_codes = True
5
5
  # Exclude _files.py because mypy isn't smart enough to apply
6
6
  # the correct type narrowing and as this is an internal module
7
7
  # it's fine to just use Pyright.
8
- exclude = ^(src/runloop_api_client/_files\.py|_dev/.*\.py)$
8
+ #
9
+ # We also exclude our `tests` as mypy doesn't always infer
10
+ # types correctly and Pyright will still catch any type errors.
11
+ exclude = ^(src/runloop_api_client/_files\.py|_dev/.*\.py|tests/.*)$
9
12
 
10
13
  strict_equality = True
11
14
  implicit_reexport = True
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.9.0"
3
+ version = "0.11.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -14,7 +14,6 @@ dependencies = [
14
14
  "anyio>=3.5.0, <5",
15
15
  "distro>=1.7.0, <2",
16
16
  "sniffio",
17
- "cached-property; python_version < '3.8'",
18
17
  ]
19
18
  requires-python = ">= 3.8"
20
19
  classifiers = [
@@ -55,6 +54,7 @@ dev-dependencies = [
55
54
  "dirty-equals>=0.6.0",
56
55
  "importlib-metadata>=6.7.0",
57
56
  "rich>=13.7.1",
57
+ "nest_asyncio==1.6.0"
58
58
  ]
59
59
 
60
60
  [tool.rye.scripts]
@@ -51,6 +51,7 @@ mdurl==0.1.2
51
51
  mypy==1.13.0
52
52
  mypy-extensions==1.0.0
53
53
  # via mypy
54
+ nest-asyncio==1.6.0
54
55
  nodeenv==1.8.0
55
56
  # via pyright
56
57
  nox==2023.4.22
@@ -792,6 +792,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
792
792
  custom_query: Mapping[str, object] | None = None,
793
793
  _strict_response_validation: bool,
794
794
  ) -> None:
795
+ kwargs: dict[str, Any] = {}
795
796
  if limits is not None:
796
797
  warnings.warn(
797
798
  "The `connection_pool_limits` argument is deprecated. The `http_client` argument should be passed instead",
@@ -804,6 +805,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
804
805
  limits = DEFAULT_CONNECTION_LIMITS
805
806
 
806
807
  if transport is not None:
808
+ kwargs["transport"] = transport
807
809
  warnings.warn(
808
810
  "The `transport` argument is deprecated. The `http_client` argument should be passed instead",
809
811
  category=DeprecationWarning,
@@ -813,6 +815,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
813
815
  raise ValueError("The `http_client` argument is mutually exclusive with `transport`")
814
816
 
815
817
  if proxies is not None:
818
+ kwargs["proxies"] = proxies
816
819
  warnings.warn(
817
820
  "The `proxies` argument is deprecated. The `http_client` argument should be passed instead",
818
821
  category=DeprecationWarning,
@@ -856,10 +859,9 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
856
859
  base_url=base_url,
857
860
  # cast to a valid type because mypy doesn't understand our type narrowing
858
861
  timeout=cast(Timeout, timeout),
859
- proxies=proxies,
860
- transport=transport,
861
862
  limits=limits,
862
863
  follow_redirects=True,
864
+ **kwargs, # type: ignore
863
865
  )
864
866
 
865
867
  def is_closed(self) -> bool:
@@ -1358,6 +1360,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1358
1360
  custom_headers: Mapping[str, str] | None = None,
1359
1361
  custom_query: Mapping[str, object] | None = None,
1360
1362
  ) -> None:
1363
+ kwargs: dict[str, Any] = {}
1361
1364
  if limits is not None:
1362
1365
  warnings.warn(
1363
1366
  "The `connection_pool_limits` argument is deprecated. The `http_client` argument should be passed instead",
@@ -1370,6 +1373,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1370
1373
  limits = DEFAULT_CONNECTION_LIMITS
1371
1374
 
1372
1375
  if transport is not None:
1376
+ kwargs["transport"] = transport
1373
1377
  warnings.warn(
1374
1378
  "The `transport` argument is deprecated. The `http_client` argument should be passed instead",
1375
1379
  category=DeprecationWarning,
@@ -1379,6 +1383,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1379
1383
  raise ValueError("The `http_client` argument is mutually exclusive with `transport`")
1380
1384
 
1381
1385
  if proxies is not None:
1386
+ kwargs["proxies"] = proxies
1382
1387
  warnings.warn(
1383
1388
  "The `proxies` argument is deprecated. The `http_client` argument should be passed instead",
1384
1389
  category=DeprecationWarning,
@@ -1422,10 +1427,9 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1422
1427
  base_url=base_url,
1423
1428
  # cast to a valid type because mypy doesn't understand our type narrowing
1424
1429
  timeout=cast(Timeout, timeout),
1425
- proxies=proxies,
1426
- transport=transport,
1427
1430
  limits=limits,
1428
1431
  follow_redirects=True,
1432
+ **kwargs, # type: ignore
1429
1433
  )
1430
1434
 
1431
1435
  def is_closed(self) -> bool:
@@ -145,7 +145,8 @@ def model_dump(
145
145
  exclude=exclude,
146
146
  exclude_unset=exclude_unset,
147
147
  exclude_defaults=exclude_defaults,
148
- warnings=warnings,
148
+ # warnings are not supported in Pydantic v1
149
+ warnings=warnings if PYDANTIC_V2 else True,
149
150
  )
150
151
  return cast(
151
152
  "dict[str, Any]",
@@ -213,9 +214,6 @@ if TYPE_CHECKING:
213
214
  # __set__ is not defined at runtime, but @cached_property is designed to be settable
214
215
  def __set__(self, instance: object, value: _T) -> None: ...
215
216
  else:
216
- try:
217
- from functools import cached_property as cached_property
218
- except ImportError:
219
- from cached_property import cached_property as cached_property
217
+ from functools import cached_property as cached_property
220
218
 
221
219
  typed_cached_property = cached_property
@@ -0,0 +1,71 @@
1
+ from __future__ import annotations
2
+
3
+ import sys
4
+ import asyncio
5
+ import functools
6
+ import contextvars
7
+ from typing import Any, TypeVar, Callable, Awaitable
8
+ from typing_extensions import ParamSpec
9
+
10
+ T_Retval = TypeVar("T_Retval")
11
+ T_ParamSpec = ParamSpec("T_ParamSpec")
12
+
13
+
14
+ if sys.version_info >= (3, 9):
15
+ to_thread = asyncio.to_thread
16
+ else:
17
+ # backport of https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread
18
+ # for Python 3.8 support
19
+ async def to_thread(
20
+ func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
21
+ ) -> Any:
22
+ """Asynchronously run function *func* in a separate thread.
23
+
24
+ Any *args and **kwargs supplied for this function are directly passed
25
+ to *func*. Also, the current :class:`contextvars.Context` is propagated,
26
+ allowing context variables from the main thread to be accessed in the
27
+ separate thread.
28
+
29
+ Returns a coroutine that can be awaited to get the eventual result of *func*.
30
+ """
31
+ loop = asyncio.events.get_running_loop()
32
+ ctx = contextvars.copy_context()
33
+ func_call = functools.partial(ctx.run, func, *args, **kwargs)
34
+ return await loop.run_in_executor(None, func_call)
35
+
36
+
37
+ # inspired by `asyncer`, https://github.com/tiangolo/asyncer
38
+ def asyncify(function: Callable[T_ParamSpec, T_Retval]) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
39
+ """
40
+ Take a blocking function and create an async one that receives the same
41
+ positional and keyword arguments. For python version 3.9 and above, it uses
42
+ asyncio.to_thread to run the function in a separate thread. For python version
43
+ 3.8, it uses locally defined copy of the asyncio.to_thread function which was
44
+ introduced in python 3.9.
45
+
46
+ Usage:
47
+
48
+ ```python
49
+ def blocking_func(arg1, arg2, kwarg1=None):
50
+ # blocking code
51
+ return result
52
+
53
+
54
+ result = asyncify(blocking_function)(arg1, arg2, kwarg1=value1)
55
+ ```
56
+
57
+ ## Arguments
58
+
59
+ `function`: a blocking regular callable (e.g. a function)
60
+
61
+ ## Return
62
+
63
+ An async function that takes the same positional and keyword arguments as the
64
+ original one, that when called runs the same original function in a thread worker
65
+ and returns the result.
66
+ """
67
+
68
+ async def wrapper(*args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs) -> T_Retval:
69
+ return await to_thread(function, *args, **kwargs)
70
+
71
+ return wrapper
@@ -316,6 +316,11 @@ async def _async_transform_recursive(
316
316
  # Iterable[T]
317
317
  or (is_iterable_type(stripped_type) and is_iterable(data) and not isinstance(data, str))
318
318
  ):
319
+ # dicts are technically iterable, but it is an iterable on the keys of the dict and is not usually
320
+ # intended as an iterable, so we don't transform it.
321
+ if isinstance(data, dict):
322
+ return cast(object, data)
323
+
319
324
  inner_type = extract_type_arg(stripped_type, 0)
320
325
  return [await _async_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
321
326
 
@@ -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.9.0" # x-release-please-version
4
+ __version__ = "0.11.0" # x-release-please-version
@@ -1,5 +1,13 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ from .lsp import (
4
+ LspResource,
5
+ AsyncLspResource,
6
+ LspResourceWithRawResponse,
7
+ AsyncLspResourceWithRawResponse,
8
+ LspResourceWithStreamingResponse,
9
+ AsyncLspResourceWithStreamingResponse,
10
+ )
3
11
  from .logs import (
4
12
  LogsResource,
5
13
  AsyncLogsResource,
@@ -26,6 +34,12 @@ from .executions import (
26
34
  )
27
35
 
28
36
  __all__ = [
37
+ "LspResource",
38
+ "AsyncLspResource",
39
+ "LspResourceWithRawResponse",
40
+ "AsyncLspResourceWithRawResponse",
41
+ "LspResourceWithStreamingResponse",
42
+ "AsyncLspResourceWithStreamingResponse",
29
43
  "LogsResource",
30
44
  "AsyncLogsResource",
31
45
  "LogsResourceWithRawResponse",