Files.com 1.6.498__tar.gz → 1.6.500__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 (323) hide show
  1. {files_com-1.6.498/files_com.egg-info → files_com-1.6.500}/PKG-INFO +2 -1
  2. {files_com-1.6.498 → files_com-1.6.500}/README.md +1 -0
  3. files_com-1.6.500/_VERSION +1 -0
  4. {files_com-1.6.498 → files_com-1.6.500/files_com.egg-info}/PKG-INFO +2 -1
  5. {files_com-1.6.498 → files_com-1.6.500}/files_com.egg-info/SOURCES.txt +1 -0
  6. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/__init__.py +1 -1
  7. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/error.py +15 -0
  8. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file.py +13 -1
  9. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/folder.py +1 -1
  10. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/remote_server.py +4 -4
  11. {files_com-1.6.498 → files_com-1.6.500}/pyproject.toml +1 -1
  12. files_com-1.6.500/tests/test_file_download_default_path.py +27 -0
  13. files_com-1.6.498/_VERSION +0 -1
  14. {files_com-1.6.498 → files_com-1.6.500}/LICENSE +0 -0
  15. {files_com-1.6.498 → files_com-1.6.500}/files_com.egg-info/dependency_links.txt +0 -0
  16. {files_com-1.6.498 → files_com-1.6.500}/files_com.egg-info/requires.txt +0 -0
  17. {files_com-1.6.498 → files_com-1.6.500}/files_com.egg-info/top_level.txt +0 -0
  18. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/api.py +0 -0
  19. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/api_client.py +0 -0
  20. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/list_obj.py +0 -0
  21. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/__init__.py +0 -0
  22. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/account_line_item.py +0 -0
  23. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/action.py +0 -0
  24. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/action_log.py +0 -0
  25. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/action_notification_export.py +0 -0
  26. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/action_notification_export_result.py +0 -0
  27. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/agent_node.py +0 -0
  28. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/agent_node_connection.py +0 -0
  29. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/agent_node_instance.py +0 -0
  30. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/agent_push_update.py +0 -0
  31. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/ai_assistant_personality.py +0 -0
  32. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/ai_task.py +0 -0
  33. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/api_key.py +0 -0
  34. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/api_request_log.py +0 -0
  35. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/app.py +0 -0
  36. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/as2_incoming_message.py +0 -0
  37. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/as2_outgoing_message.py +0 -0
  38. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/as2_partner.py +0 -0
  39. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/as2_station.py +0 -0
  40. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/auto.py +0 -0
  41. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/automation.py +0 -0
  42. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/automation_authoring_schema.py +0 -0
  43. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/automation_execution_node.py +0 -0
  44. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/automation_log.py +0 -0
  45. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/automation_run.py +0 -0
  46. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bandwidth_snapshot.py +0 -0
  47. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/behavior.py +0 -0
  48. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle.py +0 -0
  49. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_action.py +0 -0
  50. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_download.py +0 -0
  51. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_notification.py +0 -0
  52. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_path.py +0 -0
  53. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_recipient.py +0 -0
  54. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/bundle_registration.py +0 -0
  55. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/chat_message.py +0 -0
  56. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/chat_session.py +0 -0
  57. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/child_site_management_policy.py +0 -0
  58. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/clickwrap.py +0 -0
  59. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/custom_domain.py +0 -0
  60. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/desktop_configuration_profile.py +0 -0
  61. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/direct_connection_info.py +0 -0
  62. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/dns_record.py +0 -0
  63. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/email_incoming_message.py +0 -0
  64. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/email_log.py +0 -0
  65. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/errors.py +0 -0
  66. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/event_channel.py +0 -0
  67. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/event_delivery_attempt.py +0 -0
  68. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/event_record.py +0 -0
  69. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/event_subscription.py +0 -0
  70. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/event_target.py +0 -0
  71. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/exavault_api_request_log.py +0 -0
  72. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/expectation.py +0 -0
  73. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/expectation_evaluation.py +0 -0
  74. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/expectation_incident.py +0 -0
  75. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/external_event.py +0 -0
  76. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_action.py +0 -0
  77. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_comment.py +0 -0
  78. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_comment_reaction.py +0 -0
  79. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_migration.py +0 -0
  80. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_migration_log.py +0 -0
  81. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/file_upload_part.py +0 -0
  82. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/form_field.py +0 -0
  83. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/form_field_set.py +0 -0
  84. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/ftp_action_log.py +0 -0
  85. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/gpg_key.py +0 -0
  86. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/group.py +0 -0
  87. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/group_user.py +0 -0
  88. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/history.py +0 -0
  89. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/history_export.py +0 -0
  90. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/history_export_result.py +0 -0
  91. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/holiday_calendar.py +0 -0
  92. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/holiday_region.py +0 -0
  93. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/image.py +0 -0
  94. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/inbound_s3_log.py +0 -0
  95. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/inbox_recipient.py +0 -0
  96. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/inbox_registration.py +0 -0
  97. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/inbox_upload.py +0 -0
  98. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/integration_centric_profile.py +0 -0
  99. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/invoice.py +0 -0
  100. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/invoice_line_item.py +0 -0
  101. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/ip_address.py +0 -0
  102. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/key_lifecycle_rule.py +0 -0
  103. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/lock.py +0 -0
  104. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/metadata_category.py +0 -0
  105. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/notification.py +0 -0
  106. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/outbound_connection_log.py +0 -0
  107. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner.py +0 -0
  108. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner_channel.py +0 -0
  109. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner_channel_template.py +0 -0
  110. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner_connection.py +0 -0
  111. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner_site.py +0 -0
  112. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/partner_site_request.py +0 -0
  113. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/payment.py +0 -0
  114. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/payment_line_item.py +0 -0
  115. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/pending_work_event.py +0 -0
  116. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/permission.py +0 -0
  117. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/preview.py +0 -0
  118. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/public_hosting_request_log.py +0 -0
  119. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/public_ip_address.py +0 -0
  120. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/public_key.py +0 -0
  121. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/remote_bandwidth_snapshot.py +0 -0
  122. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/remote_mount_backend.py +0 -0
  123. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/remote_server_configuration_file.py +0 -0
  124. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/remote_server_credential.py +0 -0
  125. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/request.py +0 -0
  126. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/restore.py +0 -0
  127. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/schedule.py +0 -0
  128. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/scheduled_export.py +0 -0
  129. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/scim_log.py +0 -0
  130. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/secret.py +0 -0
  131. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/session.py +0 -0
  132. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/settings_change.py +0 -0
  133. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sftp_action_log.py +0 -0
  134. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sftp_host_key.py +0 -0
  135. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/share_group.py +0 -0
  136. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/share_group_member.py +0 -0
  137. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/siem_http_destination.py +0 -0
  138. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/siem_http_destination_event.py +0 -0
  139. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/site.py +0 -0
  140. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/site_subdomain_redirect.py +0 -0
  141. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/snapshot.py +0 -0
  142. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sso_event.py +0 -0
  143. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sso_strategy.py +0 -0
  144. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/status.py +0 -0
  145. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/style.py +0 -0
  146. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sync.py +0 -0
  147. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sync_log.py +0 -0
  148. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sync_run.py +0 -0
  149. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/sync_run_live_transfer.py +0 -0
  150. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/usage_by_top_level_dir.py +0 -0
  151. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/usage_daily_snapshot.py +0 -0
  152. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/usage_snapshot.py +0 -0
  153. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user.py +0 -0
  154. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_additional_email_recipient.py +0 -0
  155. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_cipher_use.py +0 -0
  156. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_lifecycle_rule.py +0 -0
  157. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_request.py +0 -0
  158. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_security_event.py +0 -0
  159. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/user_sftp_client_use.py +0 -0
  160. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/web_dav_action_log.py +0 -0
  161. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/webhook_test.py +0 -0
  162. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/workspace.py +0 -0
  163. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/models/zip_list_entry.py +0 -0
  164. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/path_comparison.json +0 -0
  165. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/path_util.py +0 -0
  166. {files_com-1.6.498 → files_com-1.6.500}/files_sdk/util.py +0 -0
  167. {files_com-1.6.498 → files_com-1.6.500}/setup.cfg +0 -0
  168. {files_com-1.6.498 → files_com-1.6.500}/tests/test_account_line_item.py +0 -0
  169. {files_com-1.6.498 → files_com-1.6.500}/tests/test_action.py +0 -0
  170. {files_com-1.6.498 → files_com-1.6.500}/tests/test_action_log.py +0 -0
  171. {files_com-1.6.498 → files_com-1.6.500}/tests/test_action_notification_export.py +0 -0
  172. {files_com-1.6.498 → files_com-1.6.500}/tests/test_action_notification_export_result.py +0 -0
  173. {files_com-1.6.498 → files_com-1.6.500}/tests/test_agent_node.py +0 -0
  174. {files_com-1.6.498 → files_com-1.6.500}/tests/test_agent_node_connection.py +0 -0
  175. {files_com-1.6.498 → files_com-1.6.500}/tests/test_agent_node_instance.py +0 -0
  176. {files_com-1.6.498 → files_com-1.6.500}/tests/test_agent_push_update.py +0 -0
  177. {files_com-1.6.498 → files_com-1.6.500}/tests/test_ai_assistant_personality.py +0 -0
  178. {files_com-1.6.498 → files_com-1.6.500}/tests/test_ai_task.py +0 -0
  179. {files_com-1.6.498 → files_com-1.6.500}/tests/test_api_errors.py +0 -0
  180. {files_com-1.6.498 → files_com-1.6.500}/tests/test_api_key.py +0 -0
  181. {files_com-1.6.498 → files_com-1.6.500}/tests/test_api_request_log.py +0 -0
  182. {files_com-1.6.498 → files_com-1.6.500}/tests/test_app.py +0 -0
  183. {files_com-1.6.498 → files_com-1.6.500}/tests/test_as2_incoming_message.py +0 -0
  184. {files_com-1.6.498 → files_com-1.6.500}/tests/test_as2_outgoing_message.py +0 -0
  185. {files_com-1.6.498 → files_com-1.6.500}/tests/test_as2_partner.py +0 -0
  186. {files_com-1.6.498 → files_com-1.6.500}/tests/test_as2_station.py +0 -0
  187. {files_com-1.6.498 → files_com-1.6.500}/tests/test_auto.py +0 -0
  188. {files_com-1.6.498 → files_com-1.6.500}/tests/test_automation.py +0 -0
  189. {files_com-1.6.498 → files_com-1.6.500}/tests/test_automation_authoring_schema.py +0 -0
  190. {files_com-1.6.498 → files_com-1.6.500}/tests/test_automation_execution_node.py +0 -0
  191. {files_com-1.6.498 → files_com-1.6.500}/tests/test_automation_log.py +0 -0
  192. {files_com-1.6.498 → files_com-1.6.500}/tests/test_automation_run.py +0 -0
  193. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bandwidth_snapshot.py +0 -0
  194. {files_com-1.6.498 → files_com-1.6.500}/tests/test_behavior.py +0 -0
  195. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle.py +0 -0
  196. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_action.py +0 -0
  197. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_download.py +0 -0
  198. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_notification.py +0 -0
  199. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_path.py +0 -0
  200. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_recipient.py +0 -0
  201. {files_com-1.6.498 → files_com-1.6.500}/tests/test_bundle_registration.py +0 -0
  202. {files_com-1.6.498 → files_com-1.6.500}/tests/test_chat_message.py +0 -0
  203. {files_com-1.6.498 → files_com-1.6.500}/tests/test_chat_session.py +0 -0
  204. {files_com-1.6.498 → files_com-1.6.500}/tests/test_child_site_management_policy.py +0 -0
  205. {files_com-1.6.498 → files_com-1.6.500}/tests/test_clickwrap.py +0 -0
  206. {files_com-1.6.498 → files_com-1.6.500}/tests/test_connection_adapter.py +0 -0
  207. {files_com-1.6.498 → files_com-1.6.500}/tests/test_custom_domain.py +0 -0
  208. {files_com-1.6.498 → files_com-1.6.500}/tests/test_decimal_contract.py +0 -0
  209. {files_com-1.6.498 → files_com-1.6.500}/tests/test_desktop_configuration_profile.py +0 -0
  210. {files_com-1.6.498 → files_com-1.6.500}/tests/test_direct_connection_info.py +0 -0
  211. {files_com-1.6.498 → files_com-1.6.500}/tests/test_dns_record.py +0 -0
  212. {files_com-1.6.498 → files_com-1.6.500}/tests/test_email_incoming_message.py +0 -0
  213. {files_com-1.6.498 → files_com-1.6.500}/tests/test_email_log.py +0 -0
  214. {files_com-1.6.498 → files_com-1.6.500}/tests/test_errors.py +0 -0
  215. {files_com-1.6.498 → files_com-1.6.500}/tests/test_event_channel.py +0 -0
  216. {files_com-1.6.498 → files_com-1.6.500}/tests/test_event_delivery_attempt.py +0 -0
  217. {files_com-1.6.498 → files_com-1.6.500}/tests/test_event_record.py +0 -0
  218. {files_com-1.6.498 → files_com-1.6.500}/tests/test_event_subscription.py +0 -0
  219. {files_com-1.6.498 → files_com-1.6.500}/tests/test_event_target.py +0 -0
  220. {files_com-1.6.498 → files_com-1.6.500}/tests/test_exavault_api_request_log.py +0 -0
  221. {files_com-1.6.498 → files_com-1.6.500}/tests/test_expectation.py +0 -0
  222. {files_com-1.6.498 → files_com-1.6.500}/tests/test_expectation_evaluation.py +0 -0
  223. {files_com-1.6.498 → files_com-1.6.500}/tests/test_expectation_incident.py +0 -0
  224. {files_com-1.6.498 → files_com-1.6.500}/tests/test_external_event.py +0 -0
  225. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file.py +0 -0
  226. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_action.py +0 -0
  227. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_comment.py +0 -0
  228. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_comment_reaction.py +0 -0
  229. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_migration.py +0 -0
  230. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_migration_log.py +0 -0
  231. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_underscore_destinations.py +0 -0
  232. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_upload.py +0 -0
  233. {files_com-1.6.498 → files_com-1.6.500}/tests/test_file_upload_part.py +0 -0
  234. {files_com-1.6.498 → files_com-1.6.500}/tests/test_folder.py +0 -0
  235. {files_com-1.6.498 → files_com-1.6.500}/tests/test_form_field.py +0 -0
  236. {files_com-1.6.498 → files_com-1.6.500}/tests/test_form_field_set.py +0 -0
  237. {files_com-1.6.498 → files_com-1.6.500}/tests/test_ftp_action_log.py +0 -0
  238. {files_com-1.6.498 → files_com-1.6.500}/tests/test_gpg_key.py +0 -0
  239. {files_com-1.6.498 → files_com-1.6.500}/tests/test_group.py +0 -0
  240. {files_com-1.6.498 → files_com-1.6.500}/tests/test_group_user.py +0 -0
  241. {files_com-1.6.498 → files_com-1.6.500}/tests/test_history.py +0 -0
  242. {files_com-1.6.498 → files_com-1.6.500}/tests/test_history_export.py +0 -0
  243. {files_com-1.6.498 → files_com-1.6.500}/tests/test_history_export_result.py +0 -0
  244. {files_com-1.6.498 → files_com-1.6.500}/tests/test_holiday_calendar.py +0 -0
  245. {files_com-1.6.498 → files_com-1.6.500}/tests/test_holiday_region.py +0 -0
  246. {files_com-1.6.498 → files_com-1.6.500}/tests/test_image.py +0 -0
  247. {files_com-1.6.498 → files_com-1.6.500}/tests/test_inbound_s3_log.py +0 -0
  248. {files_com-1.6.498 → files_com-1.6.500}/tests/test_inbox_recipient.py +0 -0
  249. {files_com-1.6.498 → files_com-1.6.500}/tests/test_inbox_registration.py +0 -0
  250. {files_com-1.6.498 → files_com-1.6.500}/tests/test_inbox_upload.py +0 -0
  251. {files_com-1.6.498 → files_com-1.6.500}/tests/test_integration_centric_profile.py +0 -0
  252. {files_com-1.6.498 → files_com-1.6.500}/tests/test_invoice.py +0 -0
  253. {files_com-1.6.498 → files_com-1.6.500}/tests/test_invoice_line_item.py +0 -0
  254. {files_com-1.6.498 → files_com-1.6.500}/tests/test_ip_address.py +0 -0
  255. {files_com-1.6.498 → files_com-1.6.500}/tests/test_key_lifecycle_rule.py +0 -0
  256. {files_com-1.6.498 → files_com-1.6.500}/tests/test_lock.py +0 -0
  257. {files_com-1.6.498 → files_com-1.6.500}/tests/test_metadata_category.py +0 -0
  258. {files_com-1.6.498 → files_com-1.6.500}/tests/test_notification.py +0 -0
  259. {files_com-1.6.498 → files_com-1.6.500}/tests/test_outbound_connection_log.py +0 -0
  260. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner.py +0 -0
  261. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner_channel.py +0 -0
  262. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner_channel_template.py +0 -0
  263. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner_connection.py +0 -0
  264. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner_site.py +0 -0
  265. {files_com-1.6.498 → files_com-1.6.500}/tests/test_partner_site_request.py +0 -0
  266. {files_com-1.6.498 → files_com-1.6.500}/tests/test_path_parameter_encoding.py +0 -0
  267. {files_com-1.6.498 → files_com-1.6.500}/tests/test_path_util.py +0 -0
  268. {files_com-1.6.498 → files_com-1.6.500}/tests/test_payment.py +0 -0
  269. {files_com-1.6.498 → files_com-1.6.500}/tests/test_payment_line_item.py +0 -0
  270. {files_com-1.6.498 → files_com-1.6.500}/tests/test_pending_work_event.py +0 -0
  271. {files_com-1.6.498 → files_com-1.6.500}/tests/test_permission.py +0 -0
  272. {files_com-1.6.498 → files_com-1.6.500}/tests/test_preview.py +0 -0
  273. {files_com-1.6.498 → files_com-1.6.500}/tests/test_public_hosting_request_log.py +0 -0
  274. {files_com-1.6.498 → files_com-1.6.500}/tests/test_public_ip_address.py +0 -0
  275. {files_com-1.6.498 → files_com-1.6.500}/tests/test_public_key.py +0 -0
  276. {files_com-1.6.498 → files_com-1.6.500}/tests/test_redirect_auth.py +0 -0
  277. {files_com-1.6.498 → files_com-1.6.500}/tests/test_remote_bandwidth_snapshot.py +0 -0
  278. {files_com-1.6.498 → files_com-1.6.500}/tests/test_remote_mount_backend.py +0 -0
  279. {files_com-1.6.498 → files_com-1.6.500}/tests/test_remote_server.py +0 -0
  280. {files_com-1.6.498 → files_com-1.6.500}/tests/test_remote_server_configuration_file.py +0 -0
  281. {files_com-1.6.498 → files_com-1.6.500}/tests/test_remote_server_credential.py +0 -0
  282. {files_com-1.6.498 → files_com-1.6.500}/tests/test_request.py +0 -0
  283. {files_com-1.6.498 → files_com-1.6.500}/tests/test_restore.py +0 -0
  284. {files_com-1.6.498 → files_com-1.6.500}/tests/test_schedule.py +0 -0
  285. {files_com-1.6.498 → files_com-1.6.500}/tests/test_scheduled_export.py +0 -0
  286. {files_com-1.6.498 → files_com-1.6.500}/tests/test_scim_log.py +0 -0
  287. {files_com-1.6.498 → files_com-1.6.500}/tests/test_secret.py +0 -0
  288. {files_com-1.6.498 → files_com-1.6.500}/tests/test_session.py +0 -0
  289. {files_com-1.6.498 → files_com-1.6.500}/tests/test_settings_change.py +0 -0
  290. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sftp_action_log.py +0 -0
  291. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sftp_host_key.py +0 -0
  292. {files_com-1.6.498 → files_com-1.6.500}/tests/test_share_group.py +0 -0
  293. {files_com-1.6.498 → files_com-1.6.500}/tests/test_share_group_member.py +0 -0
  294. {files_com-1.6.498 → files_com-1.6.500}/tests/test_siem_http_destination.py +0 -0
  295. {files_com-1.6.498 → files_com-1.6.500}/tests/test_siem_http_destination_event.py +0 -0
  296. {files_com-1.6.498 → files_com-1.6.500}/tests/test_site.py +0 -0
  297. {files_com-1.6.498 → files_com-1.6.500}/tests/test_site_subdomain_redirect.py +0 -0
  298. {files_com-1.6.498 → files_com-1.6.500}/tests/test_snapshot.py +0 -0
  299. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sso_event.py +0 -0
  300. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sso_strategy.py +0 -0
  301. {files_com-1.6.498 → files_com-1.6.500}/tests/test_status.py +0 -0
  302. {files_com-1.6.498 → files_com-1.6.500}/tests/test_stream_download.py +0 -0
  303. {files_com-1.6.498 → files_com-1.6.500}/tests/test_style.py +0 -0
  304. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sync.py +0 -0
  305. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sync_log.py +0 -0
  306. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sync_run.py +0 -0
  307. {files_com-1.6.498 → files_com-1.6.500}/tests/test_sync_run_live_transfer.py +0 -0
  308. {files_com-1.6.498 → files_com-1.6.500}/tests/test_transfer_privacy.py +0 -0
  309. {files_com-1.6.498 → files_com-1.6.500}/tests/test_usage_by_top_level_dir.py +0 -0
  310. {files_com-1.6.498 → files_com-1.6.500}/tests/test_usage_daily_snapshot.py +0 -0
  311. {files_com-1.6.498 → files_com-1.6.500}/tests/test_usage_snapshot.py +0 -0
  312. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user.py +0 -0
  313. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_additional_email_recipient.py +0 -0
  314. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_cipher_use.py +0 -0
  315. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_lifecycle_rule.py +0 -0
  316. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_request.py +0 -0
  317. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_security_event.py +0 -0
  318. {files_com-1.6.498 → files_com-1.6.500}/tests/test_user_sftp_client_use.py +0 -0
  319. {files_com-1.6.498 → files_com-1.6.500}/tests/test_web_dav_action_log.py +0 -0
  320. {files_com-1.6.498 → files_com-1.6.500}/tests/test_webhook_test.py +0 -0
  321. {files_com-1.6.498 → files_com-1.6.500}/tests/test_workspace.py +0 -0
  322. {files_com-1.6.498 → files_com-1.6.500}/tests/test_workspace_id.py +0 -0
  323. {files_com-1.6.498 → files_com-1.6.500}/tests/test_zip_list_entry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: files_com
3
- Version: 1.6.498
3
+ Version: 1.6.500
4
4
  Summary: Python bindings for the Files.com API
5
5
  License: MIT
6
6
  Requires-Python: >=3.5
@@ -734,6 +734,7 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
734
734
  |`TooManySharesError`| `RateLimitedError` |
735
735
  |`AutomationsUnavailableError`| `ServiceUnavailableError` |
736
736
  |`MigrationInProgressError`| `ServiceUnavailableError` |
737
+ |`SearchUnavailableError`| `ServiceUnavailableError` |
737
738
  |`SiteDisabledError`| `ServiceUnavailableError` |
738
739
  |`UploadsUnavailableError`| `ServiceUnavailableError` |
739
740
  |`AccountAlreadyExistsError`| `SiteConfigurationError` |
@@ -722,6 +722,7 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
722
722
  |`TooManySharesError`| `RateLimitedError` |
723
723
  |`AutomationsUnavailableError`| `ServiceUnavailableError` |
724
724
  |`MigrationInProgressError`| `ServiceUnavailableError` |
725
+ |`SearchUnavailableError`| `ServiceUnavailableError` |
725
726
  |`SiteDisabledError`| `ServiceUnavailableError` |
726
727
  |`UploadsUnavailableError`| `ServiceUnavailableError` |
727
728
  |`AccountAlreadyExistsError`| `SiteConfigurationError` |
@@ -0,0 +1 @@
1
+ 1.6.500
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: files_com
3
- Version: 1.6.498
3
+ Version: 1.6.500
4
4
  Summary: Python bindings for the Files.com API
5
5
  License: MIT
6
6
  Requires-Python: >=3.5
@@ -734,6 +734,7 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
734
734
  |`TooManySharesError`| `RateLimitedError` |
735
735
  |`AutomationsUnavailableError`| `ServiceUnavailableError` |
736
736
  |`MigrationInProgressError`| `ServiceUnavailableError` |
737
+ |`SearchUnavailableError`| `ServiceUnavailableError` |
737
738
  |`SiteDisabledError`| `ServiceUnavailableError` |
738
739
  |`UploadsUnavailableError`| `ServiceUnavailableError` |
739
740
  |`AccountAlreadyExistsError`| `SiteConfigurationError` |
@@ -223,6 +223,7 @@ tests/test_file.py
223
223
  tests/test_file_action.py
224
224
  tests/test_file_comment.py
225
225
  tests/test_file_comment_reaction.py
226
+ tests/test_file_download_default_path.py
226
227
  tests/test_file_migration.py
227
228
  tests/test_file_migration_log.py
228
229
  tests/test_file_underscore_destinations.py
@@ -320,7 +320,7 @@ source_ip = None
320
320
  workspace_id = None
321
321
  base_url = "https://app.files.com"
322
322
  base_path = "api/rest/v1"
323
- version = "1.6.498"
323
+ version = "1.6.500"
324
324
 
325
325
  __version__ = version
326
326
 
@@ -3197,6 +3197,21 @@ class MigrationInProgressError(ServiceUnavailableError):
3197
3197
  )
3198
3198
 
3199
3199
 
3200
+ class SearchUnavailableError(ServiceUnavailableError):
3201
+ def __init__(
3202
+ self,
3203
+ message=None,
3204
+ http_body=None,
3205
+ http_status=None,
3206
+ json_body=None,
3207
+ headers=None,
3208
+ code=None,
3209
+ ):
3210
+ super().__init__(
3211
+ message, http_body, http_status, json_body, headers, code
3212
+ )
3213
+
3214
+
3200
3215
  class SiteDisabledError(ServiceUnavailableError):
3201
3216
  def __init__(
3202
3217
  self,
@@ -3,6 +3,7 @@ from urllib.parse import quote
3
3
  from builtins import open as builtin_open
4
4
  from datetime import datetime
5
5
  import io
6
+ import os
6
7
  from pathlib import Path
7
8
  import files_sdk.path_util as path_util
8
9
  from files_sdk.models.zip_list_entry import ZipListEntry
@@ -1590,11 +1591,22 @@ def move_to_child_site(path, site_id, destination, params=None, options=None):
1590
1591
  return move(path, params, options)
1591
1592
 
1592
1593
 
1594
+ def _default_local_path(path):
1595
+ name = path_util.normalize(path).split("/")[-1]
1596
+ # On Windows a colon makes the name a drive-relative path or an NTFS
1597
+ # stream, which can write outside the working directory or onto another file.
1598
+ if os.name == "nt" and ":" in name:
1599
+ raise InvalidParameterError(
1600
+ f"Bad parameter: local_path is required because {name!r} is not a valid local file name"
1601
+ )
1602
+ return name
1603
+
1604
+
1593
1605
  def download_file(path, local_path=None, options=None):
1594
1606
  if not isinstance(options, dict):
1595
1607
  options = {}
1596
1608
  if local_path is None:
1597
- local_path = Path(path).name
1609
+ local_path = _default_local_path(path)
1598
1610
  return File(path, {}, options).download_file(local_path)
1599
1611
 
1600
1612
 
@@ -84,7 +84,7 @@ class Folder:
84
84
  # path (required) - string - Path to operate on.
85
85
  # preview_size - string - Request a preview size. Can be `small` (default), `large`, `xlarge`, or `pdf`.
86
86
  # sort_by - object - Search by field and direction. Valid fields are `path`, `size`, `modified_at_datetime`, `provided_modified_at`. Valid directions are `asc` and `desc`. Defaults to `{"path":"asc"}`.
87
- # search - string - If specified, will search the folders/files list by name. Ignores text before last `/`. This is the same API used by the search bar in the web UI when running 'Search This Folder'. Search results are a best effort, not real time, and not guaranteed to perfectly match the latest folder listing. Results may be truncated if more than 1,000 possible matches exist. This field should only be used for ad-hoc (human) searching, and not as part of an automated process.
87
+ # search - string - If specified, will search the folders/files list by name. Ignores text before last `/`. This is the same API used by the search bar in the web UI when running 'Search This Folder'. Search results are a best effort, not real time, and not guaranteed to perfectly match the latest folder listing. Results may be truncated if more than 1,000 possible matches exist. This field should only be used for ad-hoc (human) searching, and not as part of an automated process. During scheduled search maintenance, indexed searches return HTTP 422 with error type `service-unavailable/search-unavailable`; retry after maintenance ends. Folder listing without `search` remains available.
88
88
  # search_custom_metadata_key - string - If provided, the search string in `search` will search for files where this custom metadata key matches the value sent in `search`. Set this to `*` to allow any metadata key to match the value sent in `search`.
89
89
  # search_all - boolean - Search entire site? If true, we will search the entire site. Do not provide a path when using this parameter. This is the same API used by the search bar in the web UI when running 'Search All Files'. Search results are a best effort, not real time, and not guaranteed to match every file. This field should only be used for ad-hoc (human) searching, and not as part of an automated process.
90
90
  # with_previews - boolean - Include file previews?
@@ -38,7 +38,7 @@ class RemoteServer:
38
38
  "s3_assume_role_duration_seconds": None, # int64 - Session duration in seconds for AssumeRole authentication (900-43200).
39
39
  "s3_assume_role_external_id": None, # string - External ID for AssumeRole authentication.
40
40
  "server_certificate": None, # string - Remote server certificate
41
- "server_host_key": None, # string - Pinned plain SSH host key for SFTP, in OpenSSH public key format. If omitted, Files.com detects and stores the server's plain host key, including when the server offers an OpenSSH host certificate. With `server_certificate=require_match` (the default), the server must present the pinned key and prove it holds the matching private key. The pin remains in force until an administrator updates `server_host_key`. Files.com does not authenticate remote hosts through SSH certificates and does not check their CA signatures, principals, or validity periods. Certificate expiration does not end the pin; update `server_host_key` to retire a host key.
41
+ "server_host_key": None, # string - Pinned SSH host key or OpenSSH host certificate for SFTP. If omitted, Files.com detects and stores a host key, preferring plain keys over certificates. With `server_certificate=require_match` (the default), the server must present the exact pinned key or certificate and prove it holds the matching private key. A pinned certificate is compared in full, so renewal can require updating `server_host_key` even when its underlying key is unchanged. Files.com does not check certificate CA signatures, principals, or validity periods. Certificate expiration alone does not end the pin. Update `server_host_key` to replace the pin.
42
42
  "server_type": None, # string - Remote server type.
43
43
  "workspace_id": None, # int64 - Workspace ID (0 for default workspace)
44
44
  "ssl": None, # string - Should we require SSL?
@@ -264,7 +264,7 @@ class RemoteServer:
264
264
  # s3_compatible_virtual_hosted_style - boolean - S3-compatible: If true, use virtual-hosted-style URLs instead of path-style URLs
265
265
  # s3_region - string - S3 region
266
266
  # server_certificate - string - Remote server certificate
267
- # server_host_key - string - Pinned plain SSH host key for SFTP, in OpenSSH public key format. If omitted, Files.com detects and stores the server's plain host key, including when the server offers an OpenSSH host certificate. With `server_certificate=require_match` (the default), the server must present the pinned key and prove it holds the matching private key. The pin remains in force until an administrator updates `server_host_key`. Files.com does not authenticate remote hosts through SSH certificates and does not check their CA signatures, principals, or validity periods. Certificate expiration does not end the pin; update `server_host_key` to retire a host key.
267
+ # server_host_key - string - Pinned SSH host key or OpenSSH host certificate for SFTP. If omitted, Files.com detects and stores a host key, preferring plain keys over certificates. With `server_certificate=require_match` (the default), the server must present the exact pinned key or certificate and prove it holds the matching private key. A pinned certificate is compared in full, so renewal can require updating `server_host_key` even when its underlying key is unchanged. Files.com does not check certificate CA signatures, principals, or validity periods. Certificate expiration alone does not end the pin. Update `server_host_key` to replace the pin.
268
268
  # server_type - string - Remote server type.
269
269
  # sharepoint_client_id - string - SharePoint: Microsoft Entra application client ID for app-only authentication.
270
270
  # sharepoint_site_url - string - SharePoint: Site URL to scope app-only authentication to a single site. Leave blank to browse all sites.
@@ -957,7 +957,7 @@ def find_configuration_file(id, params=None, options=None):
957
957
  # s3_compatible_virtual_hosted_style - boolean - S3-compatible: If true, use virtual-hosted-style URLs instead of path-style URLs
958
958
  # s3_region - string - S3 region
959
959
  # server_certificate - string - Remote server certificate
960
- # server_host_key - string - Pinned plain SSH host key for SFTP, in OpenSSH public key format. If omitted, Files.com detects and stores the server's plain host key, including when the server offers an OpenSSH host certificate. With `server_certificate=require_match` (the default), the server must present the pinned key and prove it holds the matching private key. The pin remains in force until an administrator updates `server_host_key`. Files.com does not authenticate remote hosts through SSH certificates and does not check their CA signatures, principals, or validity periods. Certificate expiration does not end the pin; update `server_host_key` to retire a host key.
960
+ # server_host_key - string - Pinned SSH host key or OpenSSH host certificate for SFTP. If omitted, Files.com detects and stores a host key, preferring plain keys over certificates. With `server_certificate=require_match` (the default), the server must present the exact pinned key or certificate and prove it holds the matching private key. A pinned certificate is compared in full, so renewal can require updating `server_host_key` even when its underlying key is unchanged. Files.com does not check certificate CA signatures, principals, or validity periods. Certificate expiration alone does not end the pin. Update `server_host_key` to replace the pin.
961
961
  # server_type - string - Remote server type.
962
962
  # sharepoint_client_id - string - SharePoint: Microsoft Entra application client ID for app-only authentication.
963
963
  # sharepoint_site_url - string - SharePoint: Site URL to scope app-only authentication to a single site. Leave blank to browse all sites.
@@ -1555,7 +1555,7 @@ def agent_push_update(id, params=None, options=None):
1555
1555
  # s3_compatible_virtual_hosted_style - boolean - S3-compatible: If true, use virtual-hosted-style URLs instead of path-style URLs
1556
1556
  # s3_region - string - S3 region
1557
1557
  # server_certificate - string - Remote server certificate
1558
- # server_host_key - string - Pinned plain SSH host key for SFTP, in OpenSSH public key format. If omitted, Files.com detects and stores the server's plain host key, including when the server offers an OpenSSH host certificate. With `server_certificate=require_match` (the default), the server must present the pinned key and prove it holds the matching private key. The pin remains in force until an administrator updates `server_host_key`. Files.com does not authenticate remote hosts through SSH certificates and does not check their CA signatures, principals, or validity periods. Certificate expiration does not end the pin; update `server_host_key` to retire a host key.
1558
+ # server_host_key - string - Pinned SSH host key or OpenSSH host certificate for SFTP. If omitted, Files.com detects and stores a host key, preferring plain keys over certificates. With `server_certificate=require_match` (the default), the server must present the exact pinned key or certificate and prove it holds the matching private key. A pinned certificate is compared in full, so renewal can require updating `server_host_key` even when its underlying key is unchanged. Files.com does not check certificate CA signatures, principals, or validity periods. Certificate expiration alone does not end the pin. Update `server_host_key` to replace the pin.
1559
1559
  # server_type - string - Remote server type.
1560
1560
  # sharepoint_client_id - string - SharePoint: Microsoft Entra application client ID for app-only authentication.
1561
1561
  # sharepoint_site_url - string - SharePoint: Site URL to scope app-only authentication to a single site. Leave blank to browse all sites.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "files_com"
7
- version = "1.6.498"
7
+ version = "1.6.500"
8
8
  description = "Python bindings for the Files.com API"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -0,0 +1,27 @@
1
+ import unittest
2
+ from unittest import mock
3
+
4
+ import files_sdk
5
+ from files_sdk.error import InvalidParameterError
6
+ from files_sdk.models import file as file_model
7
+
8
+
9
+ class TestFileDownloadDefaultPath(unittest.TestCase):
10
+ def test_download_without_local_path_uses_the_remote_file_name(self):
11
+ with mock.patch.object(file_model.os, "name", "posix"), mock.patch.object(file_model.File, "download_file") as mock_download_file:
12
+ files_sdk.file.download_file("folder/report:2026.txt")
13
+
14
+ mock_download_file.assert_called_once_with("report:2026.txt")
15
+
16
+ def test_windows_download_without_local_path_rejects_drive_and_stream_names(self):
17
+ for remote_path in ("folder/C:victim.txt", "C:victim.txt", "folder/victim.txt::$DATA"):
18
+ with self.subTest(remote_path=remote_path):
19
+ with mock.patch.object(file_model.os, "name", "nt"), mock.patch.object(file_model.File, "download_file") as mock_download_file:
20
+ with self.assertRaises(InvalidParameterError):
21
+ files_sdk.file.download_file(remote_path)
22
+
23
+ mock_download_file.assert_not_called()
24
+
25
+
26
+ if __name__ == '__main__':
27
+ unittest.main()
@@ -1 +0,0 @@
1
- 1.6.498
File without changes