imagekitio 5.1.2__tar.gz → 5.2.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 (253) hide show
  1. imagekitio-5.2.0/.release-please-manifest.json +3 -0
  2. {imagekitio-5.1.2 → imagekitio-5.2.0}/CHANGELOG.md +14 -0
  3. {imagekitio-5.1.2 → imagekitio-5.2.0}/PKG-INFO +1 -1
  4. {imagekitio-5.1.2 → imagekitio-5.2.0}/pyproject.toml +1 -1
  5. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_base_client.py +5 -2
  6. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_compat.py +3 -3
  7. imagekitio-5.2.0/src/imagekitio/_utils/_json.py +35 -0
  8. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_version.py +1 -1
  9. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file.py +18 -0
  10. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder.py +7 -1
  11. imagekitio-5.2.0/tests/test_utils/test_json.py +126 -0
  12. imagekitio-5.1.2/.release-please-manifest.json +0 -3
  13. {imagekitio-5.1.2 → imagekitio-5.2.0}/.gitignore +0 -0
  14. {imagekitio-5.1.2 → imagekitio-5.2.0}/CONTRIBUTING.md +0 -0
  15. {imagekitio-5.1.2 → imagekitio-5.2.0}/LICENSE +0 -0
  16. {imagekitio-5.1.2 → imagekitio-5.2.0}/README.md +0 -0
  17. {imagekitio-5.1.2 → imagekitio-5.2.0}/SECURITY.md +0 -0
  18. {imagekitio-5.1.2 → imagekitio-5.2.0}/api.md +0 -0
  19. {imagekitio-5.1.2 → imagekitio-5.2.0}/bin/check-release-environment +0 -0
  20. {imagekitio-5.1.2 → imagekitio-5.2.0}/bin/publish-pypi +0 -0
  21. {imagekitio-5.1.2 → imagekitio-5.2.0}/examples/.keep +0 -0
  22. {imagekitio-5.1.2 → imagekitio-5.2.0}/noxfile.py +0 -0
  23. {imagekitio-5.1.2 → imagekitio-5.2.0}/release-please-config.json +0 -0
  24. {imagekitio-5.1.2 → imagekitio-5.2.0}/requirements-dev.lock +0 -0
  25. {imagekitio-5.1.2 → imagekitio-5.2.0}/requirements.lock +0 -0
  26. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekit/lib/.keep +0 -0
  27. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/__init__.py +0 -0
  28. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_client.py +0 -0
  29. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_constants.py +0 -0
  30. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_exceptions.py +0 -0
  31. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_files.py +0 -0
  32. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_models.py +0 -0
  33. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_qs.py +0 -0
  34. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_resource.py +0 -0
  35. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_response.py +0 -0
  36. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_streaming.py +0 -0
  37. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_types.py +0 -0
  38. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/__init__.py +0 -0
  39. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_compat.py +0 -0
  40. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_datetime_parse.py +0 -0
  41. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_logs.py +0 -0
  42. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_proxy.py +0 -0
  43. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_reflection.py +0 -0
  44. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_resources_proxy.py +0 -0
  45. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_streams.py +0 -0
  46. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_sync.py +0 -0
  47. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_transform.py +0 -0
  48. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_typing.py +0 -0
  49. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/_utils/_utils.py +0 -0
  50. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/lib/.keep +0 -0
  51. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/lib/__init__.py +0 -0
  52. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/lib/helper.py +0 -0
  53. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/lib/serialization_utils.py +0 -0
  54. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/py.typed +0 -0
  55. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/__init__.py +0 -0
  56. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/accounts/__init__.py +0 -0
  57. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/accounts/accounts.py +0 -0
  58. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/accounts/origins.py +0 -0
  59. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/accounts/url_endpoints.py +0 -0
  60. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/accounts/usage.py +0 -0
  61. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/assets.py +0 -0
  62. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/beta/__init__.py +0 -0
  63. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/beta/beta.py +0 -0
  64. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/beta/v2/__init__.py +0 -0
  65. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/beta/v2/files.py +0 -0
  66. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/beta/v2/v2.py +0 -0
  67. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/cache/__init__.py +0 -0
  68. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/cache/cache.py +0 -0
  69. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/cache/invalidation.py +0 -0
  70. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/custom_metadata_fields.py +0 -0
  71. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/dummy.py +0 -0
  72. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/files/__init__.py +0 -0
  73. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/files/bulk.py +0 -0
  74. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/files/files.py +0 -0
  75. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/files/metadata.py +0 -0
  76. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/files/versions.py +0 -0
  77. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/folders/__init__.py +0 -0
  78. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/folders/folders.py +0 -0
  79. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/folders/job.py +0 -0
  80. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/saved_extensions.py +0 -0
  81. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/resources/webhooks.py +0 -0
  82. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/__init__.py +0 -0
  83. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/__init__.py +0 -0
  84. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/origin_create_params.py +0 -0
  85. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/origin_list_response.py +0 -0
  86. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/origin_request_param.py +0 -0
  87. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/origin_response.py +0 -0
  88. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/origin_update_params.py +0 -0
  89. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/url_endpoint_create_params.py +0 -0
  90. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/url_endpoint_list_response.py +0 -0
  91. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/url_endpoint_response.py +0 -0
  92. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/url_endpoint_update_params.py +0 -0
  93. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/usage_get_params.py +0 -0
  94. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/accounts/usage_get_response.py +0 -0
  95. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/asset_list_params.py +0 -0
  96. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/asset_list_response.py +0 -0
  97. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/base_webhook_event.py +0 -0
  98. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/beta/__init__.py +0 -0
  99. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/beta/v2/__init__.py +0 -0
  100. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/beta/v2/file_upload_params.py +0 -0
  101. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/beta/v2/file_upload_response.py +0 -0
  102. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/cache/__init__.py +0 -0
  103. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/cache/invalidation_create_params.py +0 -0
  104. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/cache/invalidation_create_response.py +0 -0
  105. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/cache/invalidation_get_response.py +0 -0
  106. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field.py +0 -0
  107. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field_create_params.py +0 -0
  108. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field_delete_response.py +0 -0
  109. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field_list_params.py +0 -0
  110. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field_list_response.py +0 -0
  111. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/custom_metadata_field_update_params.py +0 -0
  112. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/dummy_create_params.py +0 -0
  113. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_copy_params.py +0 -0
  114. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_copy_response.py +0 -0
  115. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_move_params.py +0 -0
  116. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_move_response.py +0 -0
  117. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_rename_params.py +0 -0
  118. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_rename_response.py +0 -0
  119. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_update_params.py +0 -0
  120. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_update_response.py +0 -0
  121. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_upload_params.py +0 -0
  122. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/file_upload_response.py +0 -0
  123. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/__init__.py +0 -0
  124. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_add_tags_params.py +0 -0
  125. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_add_tags_response.py +0 -0
  126. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_delete_params.py +0 -0
  127. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_delete_response.py +0 -0
  128. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_remove_ai_tags_params.py +0 -0
  129. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_remove_ai_tags_response.py +0 -0
  130. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_remove_tags_params.py +0 -0
  131. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/bulk_remove_tags_response.py +0 -0
  132. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/metadata_get_from_url_params.py +0 -0
  133. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/version_delete_response.py +0 -0
  134. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/files/version_list_response.py +0 -0
  135. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_copy_params.py +0 -0
  136. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_copy_response.py +0 -0
  137. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_create_params.py +0 -0
  138. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_create_response.py +0 -0
  139. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_delete_params.py +0 -0
  140. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_delete_response.py +0 -0
  141. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_move_params.py +0 -0
  142. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_move_response.py +0 -0
  143. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_rename_params.py +0 -0
  144. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folder_rename_response.py +0 -0
  145. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folders/__init__.py +0 -0
  146. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/folders/job_get_response.py +0 -0
  147. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/metadata.py +0 -0
  148. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/saved_extension_create_params.py +0 -0
  149. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/saved_extension_list_response.py +0 -0
  150. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/saved_extension_update_params.py +0 -0
  151. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/__init__.py +0 -0
  152. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/base_overlay.py +0 -0
  153. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/extension_config.py +0 -0
  154. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/extensions.py +0 -0
  155. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/get_image_attributes_options.py +0 -0
  156. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/image_overlay.py +0 -0
  157. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/overlay.py +0 -0
  158. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/overlay_position.py +0 -0
  159. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/overlay_timing.py +0 -0
  160. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/responsive_image_attributes.py +0 -0
  161. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/saved_extension.py +0 -0
  162. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/solid_color_overlay.py +0 -0
  163. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/solid_color_overlay_transformation.py +0 -0
  164. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/src_options.py +0 -0
  165. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/streaming_resolution.py +0 -0
  166. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/subtitle_overlay.py +0 -0
  167. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/subtitle_overlay_transformation.py +0 -0
  168. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/text_overlay.py +0 -0
  169. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/text_overlay_transformation.py +0 -0
  170. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/transformation.py +0 -0
  171. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/transformation_position.py +0 -0
  172. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared/video_overlay.py +0 -0
  173. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/__init__.py +0 -0
  174. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/base_overlay.py +0 -0
  175. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/extension_config.py +0 -0
  176. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/extensions.py +0 -0
  177. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/get_image_attributes_options.py +0 -0
  178. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/image_overlay.py +0 -0
  179. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/overlay.py +0 -0
  180. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/overlay_position.py +0 -0
  181. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/overlay_timing.py +0 -0
  182. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/responsive_image_attributes.py +0 -0
  183. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/saved_extension.py +0 -0
  184. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/solid_color_overlay.py +0 -0
  185. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/solid_color_overlay_transformation.py +0 -0
  186. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/src_options.py +0 -0
  187. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/streaming_resolution.py +0 -0
  188. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/subtitle_overlay.py +0 -0
  189. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/subtitle_overlay_transformation.py +0 -0
  190. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/text_overlay.py +0 -0
  191. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/text_overlay_transformation.py +0 -0
  192. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/transformation.py +0 -0
  193. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/transformation_position.py +0 -0
  194. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/shared_params/video_overlay.py +0 -0
  195. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/unsafe_unwrap_webhook_event.py +0 -0
  196. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/unwrap_webhook_event.py +0 -0
  197. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/update_file_request_param.py +0 -0
  198. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/upload_post_transform_error_event.py +0 -0
  199. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/upload_post_transform_success_event.py +0 -0
  200. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/upload_pre_transform_error_event.py +0 -0
  201. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/upload_pre_transform_success_event.py +0 -0
  202. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/video_transformation_accepted_event.py +0 -0
  203. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/video_transformation_error_event.py +0 -0
  204. {imagekitio-5.1.2 → imagekitio-5.2.0}/src/imagekitio/types/video_transformation_ready_event.py +0 -0
  205. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/__init__.py +0 -0
  206. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/__init__.py +0 -0
  207. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/accounts/__init__.py +0 -0
  208. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/accounts/test_origins.py +0 -0
  209. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/accounts/test_url_endpoints.py +0 -0
  210. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/accounts/test_usage.py +0 -0
  211. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/beta/__init__.py +0 -0
  212. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/beta/v2/__init__.py +0 -0
  213. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/beta/v2/test_files.py +0 -0
  214. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/cache/__init__.py +0 -0
  215. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/cache/test_invalidation.py +0 -0
  216. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/files/__init__.py +0 -0
  217. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/files/test_bulk.py +0 -0
  218. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/files/test_metadata.py +0 -0
  219. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/files/test_versions.py +0 -0
  220. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/folders/__init__.py +0 -0
  221. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/folders/test_job.py +0 -0
  222. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_assets.py +0 -0
  223. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_custom_metadata_fields.py +0 -0
  224. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_dummy.py +0 -0
  225. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_files.py +0 -0
  226. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_folders.py +0 -0
  227. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_saved_extensions.py +0 -0
  228. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/api_resources/test_webhooks.py +0 -0
  229. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/conftest.py +0 -0
  230. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/__init__.py +0 -0
  231. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/test_helper_authentication.py +0 -0
  232. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/test_serialization_utils.py +0 -0
  233. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/__init__.py +0 -0
  234. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/test_advanced_url_generation.py +0 -0
  235. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/test_basic_url_generation.py +0 -0
  236. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/test_build_transformation_string.py +0 -0
  237. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/test_overlay.py +0 -0
  238. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/custom/url_generation/test_signing.py +0 -0
  239. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/sample_file.txt +0 -0
  240. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_client.py +0 -0
  241. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_deepcopy.py +0 -0
  242. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_extract_files.py +0 -0
  243. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_files.py +0 -0
  244. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_models.py +0 -0
  245. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_qs.py +0 -0
  246. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_required_args.py +0 -0
  247. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_response.py +0 -0
  248. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_streaming.py +0 -0
  249. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_transform.py +0 -0
  250. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_utils/test_datetime_parse.py +0 -0
  251. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_utils/test_proxy.py +0 -0
  252. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/test_utils/test_typing.py +0 -0
  253. {imagekitio-5.1.2 → imagekitio-5.2.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "5.2.0"
3
+ }
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.2.0 (2026-02-02)
4
+
5
+ Full Changelog: [v5.1.2...v5.2.0](https://github.com/imagekit-developer/imagekit-python/compare/v5.1.2...v5.2.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add customMetadata property to folder schema ([9b8597b](https://github.com/imagekit-developer/imagekit-python/commit/9b8597b8d8b4f11eb4c9e93ddbd924169fe9b0ea))
10
+ * **client:** add custom JSON encoder for extended type support ([2d7dd40](https://github.com/imagekit-developer/imagekit-python/commit/2d7dd4063992e7c49518ea8bca1bbf9dfec7aa9c))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **api:** add missing embeddedMetadata and video properties to FileDetails ([b1ffb23](https://github.com/imagekit-developer/imagekit-python/commit/b1ffb235b3f6dae292af80bd99d965db44db47f9))
16
+
3
17
  ## 5.1.2 (2026-01-29)
4
18
 
5
19
  Full Changelog: [v5.1.1...v5.1.2](https://github.com/imagekit-developer/imagekit-python/compare/v5.1.1...v5.1.2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: imagekitio
3
- Version: 5.1.2
3
+ Version: 5.2.0
4
4
  Summary: The official Python library for the ImageKit API
5
5
  Project-URL: Homepage, https://github.com/imagekit-developer/imagekit-python
6
6
  Project-URL: Repository, https://github.com/imagekit-developer/imagekit-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "imagekitio"
3
- version = "5.1.2"
3
+ version = "5.2.0"
4
4
  description = "The official Python library for the ImageKit API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -86,6 +86,7 @@ from ._exceptions import (
86
86
  APIConnectionError,
87
87
  APIResponseValidationError,
88
88
  )
89
+ from ._utils._json import openapi_dumps
89
90
 
90
91
  log: logging.Logger = logging.getLogger(__name__)
91
92
 
@@ -554,8 +555,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
554
555
  kwargs["content"] = options.content
555
556
  elif isinstance(json_data, bytes):
556
557
  kwargs["content"] = json_data
557
- else:
558
- kwargs["json"] = json_data if is_given(json_data) else None
558
+ elif not files:
559
+ # Don't set content when JSON is sent as multipart/form-data,
560
+ # since httpx's content param overrides other body arguments
561
+ kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None
559
562
  kwargs["files"] = files
560
563
  else:
561
564
  headers.pop("Content-Type", None)
@@ -139,6 +139,7 @@ def model_dump(
139
139
  exclude_defaults: bool = False,
140
140
  warnings: bool = True,
141
141
  mode: Literal["json", "python"] = "python",
142
+ by_alias: bool | None = None,
142
143
  ) -> dict[str, Any]:
143
144
  if (not PYDANTIC_V1) or hasattr(model, "model_dump"):
144
145
  return model.model_dump(
@@ -148,13 +149,12 @@ def model_dump(
148
149
  exclude_defaults=exclude_defaults,
149
150
  # warnings are not supported in Pydantic v1
150
151
  warnings=True if PYDANTIC_V1 else warnings,
152
+ by_alias=by_alias,
151
153
  )
152
154
  return cast(
153
155
  "dict[str, Any]",
154
156
  model.dict( # pyright: ignore[reportDeprecated, reportUnnecessaryCast]
155
- exclude=exclude,
156
- exclude_unset=exclude_unset,
157
- exclude_defaults=exclude_defaults,
157
+ exclude=exclude, exclude_unset=exclude_unset, exclude_defaults=exclude_defaults, by_alias=bool(by_alias)
158
158
  ),
159
159
  )
160
160
 
@@ -0,0 +1,35 @@
1
+ import json
2
+ from typing import Any
3
+ from datetime import datetime
4
+ from typing_extensions import override
5
+
6
+ import pydantic
7
+
8
+ from .._compat import model_dump
9
+
10
+
11
+ def openapi_dumps(obj: Any) -> bytes:
12
+ """
13
+ Serialize an object to UTF-8 encoded JSON bytes.
14
+
15
+ Extends the standard json.dumps with support for additional types
16
+ commonly used in the SDK, such as `datetime`, `pydantic.BaseModel`, etc.
17
+ """
18
+ return json.dumps(
19
+ obj,
20
+ cls=_CustomEncoder,
21
+ # Uses the same defaults as httpx's JSON serialization
22
+ ensure_ascii=False,
23
+ separators=(",", ":"),
24
+ allow_nan=False,
25
+ ).encode()
26
+
27
+
28
+ class _CustomEncoder(json.JSONEncoder):
29
+ @override
30
+ def default(self, o: Any) -> Any:
31
+ if isinstance(o, datetime):
32
+ return o.isoformat()
33
+ if isinstance(o, pydantic.BaseModel):
34
+ return model_dump(o, exclude_unset=True, mode="json", by_alias=True)
35
+ return super().default(o)
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "imagekitio"
4
- __version__ = "5.1.2" # x-release-please-version
4
+ __version__ = "5.2.0" # x-release-please-version
@@ -95,6 +95,12 @@ class File(BaseModel):
95
95
  ai_tags: Optional[List[AITag]] = FieldInfo(alias="AITags", default=None)
96
96
  """An array of tags assigned to the file by auto tagging."""
97
97
 
98
+ audio_codec: Optional[str] = FieldInfo(alias="audioCodec", default=None)
99
+ """The audio codec used in the video (only for video/audio)."""
100
+
101
+ bit_rate: Optional[int] = FieldInfo(alias="bitRate", default=None)
102
+ """The bit rate of the video in kbps (only for video)."""
103
+
98
104
  created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
99
105
  """Date and time when the file was uploaded.
100
106
 
@@ -113,6 +119,15 @@ class File(BaseModel):
113
119
  Can be set by the user or the ai-auto-description extension.
114
120
  """
115
121
 
122
+ duration: Optional[int] = None
123
+ """The duration of the video in seconds (only for video)."""
124
+
125
+ embedded_metadata: Optional[Dict[str, object]] = FieldInfo(alias="embeddedMetadata", default=None)
126
+ """Consolidated embedded metadata associated with the file.
127
+
128
+ It includes exif, iptc, and xmp data.
129
+ """
130
+
116
131
  file_id: Optional[str] = FieldInfo(alias="fileId", default=None)
117
132
  """Unique identifier of the asset."""
118
133
 
@@ -188,5 +203,8 @@ class File(BaseModel):
188
203
  version_info: Optional[VersionInfo] = FieldInfo(alias="versionInfo", default=None)
189
204
  """An object with details of the file version."""
190
205
 
206
+ video_codec: Optional[str] = FieldInfo(alias="videoCodec", default=None)
207
+ """The video codec used in the video (only for video)."""
208
+
191
209
  width: Optional[float] = None
192
210
  """Width of the file."""
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
@@ -18,6 +18,12 @@ class Folder(BaseModel):
18
18
  The date and time is in ISO8601 format.
19
19
  """
20
20
 
21
+ custom_metadata: Optional[Dict[str, object]] = FieldInfo(alias="customMetadata", default=None)
22
+ """An object with custom metadata for the folder.
23
+
24
+ Returns empty object if no custom metadata is set.
25
+ """
26
+
21
27
  folder_id: Optional[str] = FieldInfo(alias="folderId", default=None)
22
28
  """Unique identifier of the asset."""
23
29
 
@@ -0,0 +1,126 @@
1
+ from __future__ import annotations
2
+
3
+ import datetime
4
+ from typing import Union
5
+
6
+ import pydantic
7
+
8
+ from imagekitio import _compat
9
+ from imagekitio._utils._json import openapi_dumps
10
+
11
+
12
+ class TestOpenapiDumps:
13
+ def test_basic(self) -> None:
14
+ data = {"key": "value", "number": 42}
15
+ json_bytes = openapi_dumps(data)
16
+ assert json_bytes == b'{"key":"value","number":42}'
17
+
18
+ def test_datetime_serialization(self) -> None:
19
+ dt = datetime.datetime(2023, 1, 1, 12, 0, 0)
20
+ data = {"datetime": dt}
21
+ json_bytes = openapi_dumps(data)
22
+ assert json_bytes == b'{"datetime":"2023-01-01T12:00:00"}'
23
+
24
+ def test_pydantic_model_serialization(self) -> None:
25
+ class User(pydantic.BaseModel):
26
+ first_name: str
27
+ last_name: str
28
+ age: int
29
+
30
+ model_instance = User(first_name="John", last_name="Kramer", age=83)
31
+ data = {"model": model_instance}
32
+ json_bytes = openapi_dumps(data)
33
+ assert json_bytes == b'{"model":{"first_name":"John","last_name":"Kramer","age":83}}'
34
+
35
+ def test_pydantic_model_with_default_values(self) -> None:
36
+ class User(pydantic.BaseModel):
37
+ name: str
38
+ role: str = "user"
39
+ active: bool = True
40
+ score: int = 0
41
+
42
+ model_instance = User(name="Alice")
43
+ data = {"model": model_instance}
44
+ json_bytes = openapi_dumps(data)
45
+ assert json_bytes == b'{"model":{"name":"Alice"}}'
46
+
47
+ def test_pydantic_model_with_default_values_overridden(self) -> None:
48
+ class User(pydantic.BaseModel):
49
+ name: str
50
+ role: str = "user"
51
+ active: bool = True
52
+
53
+ model_instance = User(name="Bob", role="admin", active=False)
54
+ data = {"model": model_instance}
55
+ json_bytes = openapi_dumps(data)
56
+ assert json_bytes == b'{"model":{"name":"Bob","role":"admin","active":false}}'
57
+
58
+ def test_pydantic_model_with_alias(self) -> None:
59
+ class User(pydantic.BaseModel):
60
+ first_name: str = pydantic.Field(alias="firstName")
61
+ last_name: str = pydantic.Field(alias="lastName")
62
+
63
+ model_instance = User(firstName="John", lastName="Doe")
64
+ data = {"model": model_instance}
65
+ json_bytes = openapi_dumps(data)
66
+ assert json_bytes == b'{"model":{"firstName":"John","lastName":"Doe"}}'
67
+
68
+ def test_pydantic_model_with_alias_and_default(self) -> None:
69
+ class User(pydantic.BaseModel):
70
+ user_name: str = pydantic.Field(alias="userName")
71
+ user_role: str = pydantic.Field(default="member", alias="userRole")
72
+ is_active: bool = pydantic.Field(default=True, alias="isActive")
73
+
74
+ model_instance = User(userName="charlie")
75
+ data = {"model": model_instance}
76
+ json_bytes = openapi_dumps(data)
77
+ assert json_bytes == b'{"model":{"userName":"charlie"}}'
78
+
79
+ model_with_overrides = User(userName="diana", userRole="admin", isActive=False)
80
+ data = {"model": model_with_overrides}
81
+ json_bytes = openapi_dumps(data)
82
+ assert json_bytes == b'{"model":{"userName":"diana","userRole":"admin","isActive":false}}'
83
+
84
+ def test_pydantic_model_with_nested_models_and_defaults(self) -> None:
85
+ class Address(pydantic.BaseModel):
86
+ street: str
87
+ city: str = "Unknown"
88
+
89
+ class User(pydantic.BaseModel):
90
+ name: str
91
+ address: Address
92
+ verified: bool = False
93
+
94
+ if _compat.PYDANTIC_V1:
95
+ # to handle forward references in Pydantic v1
96
+ User.update_forward_refs(**locals()) # type: ignore[reportDeprecated]
97
+
98
+ address = Address(street="123 Main St")
99
+ user = User(name="Diana", address=address)
100
+ data = {"user": user}
101
+ json_bytes = openapi_dumps(data)
102
+ assert json_bytes == b'{"user":{"name":"Diana","address":{"street":"123 Main St"}}}'
103
+
104
+ address_with_city = Address(street="456 Oak Ave", city="Boston")
105
+ user_verified = User(name="Eve", address=address_with_city, verified=True)
106
+ data = {"user": user_verified}
107
+ json_bytes = openapi_dumps(data)
108
+ assert (
109
+ json_bytes == b'{"user":{"name":"Eve","address":{"street":"456 Oak Ave","city":"Boston"},"verified":true}}'
110
+ )
111
+
112
+ def test_pydantic_model_with_optional_fields(self) -> None:
113
+ class User(pydantic.BaseModel):
114
+ name: str
115
+ email: Union[str, None]
116
+ phone: Union[str, None]
117
+
118
+ model_with_none = User(name="Eve", email=None, phone=None)
119
+ data = {"model": model_with_none}
120
+ json_bytes = openapi_dumps(data)
121
+ assert json_bytes == b'{"model":{"name":"Eve","email":null,"phone":null}}'
122
+
123
+ model_with_values = User(name="Frank", email="frank@example.com", phone=None)
124
+ data = {"model": model_with_values}
125
+ json_bytes = openapi_dumps(data)
126
+ assert json_bytes == b'{"model":{"name":"Frank","email":"frank@example.com","phone":null}}'
@@ -1,3 +0,0 @@
1
- {
2
- ".": "5.1.2"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes