fal 1.20.0__tar.gz → 1.20.1__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.

Potentially problematic release.


This version of fal might be problematic. Click here for more details.

Files changed (183) hide show
  1. {fal-1.20.0/fal.egg-info → fal-1.20.1}/PKG-INFO +1 -1
  2. {fal-1.20.0 → fal-1.20.1/fal.egg-info}/PKG-INFO +1 -1
  3. {fal-1.20.0 → fal-1.20.1}/src/fal/_fal_version.py +2 -2
  4. {fal-1.20.0 → fal-1.20.1}/src/fal/api.py +3 -0
  5. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/files.py +30 -4
  6. {fal-1.20.0 → fal-1.20.1}/.gitignore +0 -0
  7. {fal-1.20.0 → fal-1.20.1}/Makefile +0 -0
  8. {fal-1.20.0 → fal-1.20.1}/README.md +0 -0
  9. {fal-1.20.0 → fal-1.20.1}/docs/conf.py +0 -0
  10. {fal-1.20.0 → fal-1.20.1}/docs/index.rst +0 -0
  11. {fal-1.20.0 → fal-1.20.1}/fal.egg-info/SOURCES.txt +0 -0
  12. {fal-1.20.0 → fal-1.20.1}/fal.egg-info/dependency_links.txt +0 -0
  13. {fal-1.20.0 → fal-1.20.1}/fal.egg-info/entry_points.txt +0 -0
  14. {fal-1.20.0 → fal-1.20.1}/fal.egg-info/requires.txt +0 -0
  15. {fal-1.20.0 → fal-1.20.1}/fal.egg-info/top_level.txt +0 -0
  16. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/README.md +0 -0
  17. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/__init__.py +0 -0
  18. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/__init__.py +0 -0
  19. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/applications/__init__.py +0 -0
  20. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/applications/app_metadata.py +0 -0
  21. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/billing/__init__.py +0 -0
  22. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/billing/get_user_details.py +0 -0
  23. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/__init__.py +0 -0
  24. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/create_workflow.py +0 -0
  25. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/delete_workflow.py +0 -0
  26. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/get_workflow.py +0 -0
  27. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/list_user_workflows.py +0 -0
  28. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/comfy/update_workflow.py +0 -0
  29. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/files/__init__.py +0 -0
  30. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/files/check_dir_hash.py +0 -0
  31. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/files/upload_local_file.py +0 -0
  32. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/users/__init__.py +0 -0
  33. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/users/get_current_user.py +0 -0
  34. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/__init__.py +0 -0
  35. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/create_workflow.py +0 -0
  36. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/delete_workflow.py +0 -0
  37. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/get_workflow.py +0 -0
  38. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/list_user_workflows.py +0 -0
  39. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/api/workflows/update_workflow.py +0 -0
  40. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/client.py +0 -0
  41. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/errors.py +0 -0
  42. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/__init__.py +0 -0
  43. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/app_metadata_response_app_metadata.py +0 -0
  44. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/body_upload_local_file.py +0 -0
  45. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_detail.py +0 -0
  46. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_item.py +0 -0
  47. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema.py +0 -0
  48. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_extra_data.py +0 -0
  49. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs.py +0 -0
  50. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_fal_inputs_dev_info.py +0 -0
  51. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/comfy_workflow_schema_prompt.py +0 -0
  52. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/current_user.py +0 -0
  53. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/customer_details.py +0 -0
  54. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/hash_check.py +0 -0
  55. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/http_validation_error.py +0 -0
  56. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/lock_reason.py +0 -0
  57. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/page_comfy_workflow_item.py +0 -0
  58. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/page_workflow_item.py +0 -0
  59. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/team_role.py +0 -0
  60. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow.py +0 -0
  61. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/typed_comfy_workflow_update.py +0 -0
  62. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow.py +0 -0
  63. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/typed_workflow_update.py +0 -0
  64. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/user_member.py +0 -0
  65. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/validation_error.py +0 -0
  66. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents.py +0 -0
  67. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_metadata.py +0 -0
  68. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_nodes.py +0 -0
  69. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_contents_output.py +0 -0
  70. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail.py +0 -0
  71. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_detail_contents.py +0 -0
  72. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_item.py +0 -0
  73. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node.py +0 -0
  74. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_node_type.py +0 -0
  75. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema.py +0 -0
  76. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_input.py +0 -0
  77. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/models/workflow_schema_output.py +0 -0
  78. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/py.typed +0 -0
  79. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/openapi_fal_rest/types.py +0 -0
  80. {fal-1.20.0 → fal-1.20.1}/openapi-fal-rest/pyproject.toml +0 -0
  81. {fal-1.20.0 → fal-1.20.1}/openapi_rest.config.yaml +0 -0
  82. {fal-1.20.0 → fal-1.20.1}/pyproject.toml +0 -0
  83. {fal-1.20.0 → fal-1.20.1}/setup.cfg +0 -0
  84. {fal-1.20.0 → fal-1.20.1}/src/fal/__init__.py +0 -0
  85. {fal-1.20.0 → fal-1.20.1}/src/fal/__main__.py +0 -0
  86. {fal-1.20.0 → fal-1.20.1}/src/fal/_serialization.py +0 -0
  87. {fal-1.20.0 → fal-1.20.1}/src/fal/_version.py +0 -0
  88. {fal-1.20.0 → fal-1.20.1}/src/fal/app.py +0 -0
  89. {fal-1.20.0 → fal-1.20.1}/src/fal/apps.py +0 -0
  90. {fal-1.20.0 → fal-1.20.1}/src/fal/auth/__init__.py +0 -0
  91. {fal-1.20.0 → fal-1.20.1}/src/fal/auth/auth0.py +0 -0
  92. {fal-1.20.0 → fal-1.20.1}/src/fal/auth/local.py +0 -0
  93. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/__init__.py +0 -0
  94. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/_utils.py +0 -0
  95. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/api.py +0 -0
  96. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/apps.py +0 -0
  97. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/auth.py +0 -0
  98. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/cli_nested_json.py +0 -0
  99. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/create.py +0 -0
  100. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/debug.py +0 -0
  101. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/deploy.py +0 -0
  102. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/doctor.py +0 -0
  103. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/keys.py +0 -0
  104. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/main.py +0 -0
  105. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/parser.py +0 -0
  106. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/profile.py +0 -0
  107. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/run.py +0 -0
  108. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/runners.py +0 -0
  109. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/secrets.py +0 -0
  110. {fal-1.20.0 → fal-1.20.1}/src/fal/cli/teams.py +0 -0
  111. {fal-1.20.0 → fal-1.20.1}/src/fal/config.py +0 -0
  112. {fal-1.20.0 → fal-1.20.1}/src/fal/console/__init__.py +0 -0
  113. {fal-1.20.0 → fal-1.20.1}/src/fal/console/icons.py +0 -0
  114. {fal-1.20.0 → fal-1.20.1}/src/fal/console/ux.py +0 -0
  115. {fal-1.20.0 → fal-1.20.1}/src/fal/container.py +0 -0
  116. {fal-1.20.0 → fal-1.20.1}/src/fal/exceptions/__init__.py +0 -0
  117. {fal-1.20.0 → fal-1.20.1}/src/fal/exceptions/_base.py +0 -0
  118. {fal-1.20.0 → fal-1.20.1}/src/fal/exceptions/_cuda.py +0 -0
  119. {fal-1.20.0 → fal-1.20.1}/src/fal/exceptions/auth.py +0 -0
  120. {fal-1.20.0 → fal-1.20.1}/src/fal/files.py +0 -0
  121. {fal-1.20.0 → fal-1.20.1}/src/fal/flags.py +0 -0
  122. {fal-1.20.0 → fal-1.20.1}/src/fal/logging/__init__.py +0 -0
  123. {fal-1.20.0 → fal-1.20.1}/src/fal/logging/isolate.py +0 -0
  124. {fal-1.20.0 → fal-1.20.1}/src/fal/logging/style.py +0 -0
  125. {fal-1.20.0 → fal-1.20.1}/src/fal/logging/trace.py +0 -0
  126. {fal-1.20.0 → fal-1.20.1}/src/fal/logging/user.py +0 -0
  127. {fal-1.20.0 → fal-1.20.1}/src/fal/project.py +0 -0
  128. {fal-1.20.0 → fal-1.20.1}/src/fal/py.typed +0 -0
  129. {fal-1.20.0 → fal-1.20.1}/src/fal/rest_client.py +0 -0
  130. {fal-1.20.0 → fal-1.20.1}/src/fal/sdk.py +0 -0
  131. {fal-1.20.0 → fal-1.20.1}/src/fal/sync.py +0 -0
  132. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/__init__.py +0 -0
  133. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/audio/__init__.py +0 -0
  134. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/audio/audio.py +0 -0
  135. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/exceptions.py +0 -0
  136. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/__init__.py +0 -0
  137. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/file.py +0 -0
  138. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/providers/fal.py +0 -0
  139. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/providers/gcp.py +0 -0
  140. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/providers/r2.py +0 -0
  141. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/providers/s3.py +0 -0
  142. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/file/types.py +0 -0
  143. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/__init__.py +0 -0
  144. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/image.py +0 -0
  145. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/nsfw_filter/__init__.py +0 -0
  146. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/nsfw_filter/env.py +0 -0
  147. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/nsfw_filter/inference.py +0 -0
  148. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/nsfw_filter/model.py +0 -0
  149. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/nsfw_filter/requirements.txt +0 -0
  150. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/image/safety_checker.py +0 -0
  151. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/optimize.py +0 -0
  152. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/types.py +0 -0
  153. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/utils/__init__.py +0 -0
  154. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/utils/download_utils.py +0 -0
  155. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/utils/endpoint.py +0 -0
  156. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/utils/retry.py +0 -0
  157. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/video/__init__.py +0 -0
  158. {fal-1.20.0 → fal-1.20.1}/src/fal/toolkit/video/video.py +0 -0
  159. {fal-1.20.0 → fal-1.20.1}/src/fal/utils.py +0 -0
  160. {fal-1.20.0 → fal-1.20.1}/src/fal/workflows.py +0 -0
  161. {fal-1.20.0 → fal-1.20.1}/tests/__init__.py +0 -0
  162. {fal-1.20.0 → fal-1.20.1}/tests/assets/cat.png +0 -0
  163. {fal-1.20.0 → fal-1.20.1}/tests/cli/__init__.py +0 -0
  164. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_apps.py +0 -0
  165. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_auth.py +0 -0
  166. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_deploy.py +0 -0
  167. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_keys.py +0 -0
  168. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_run.py +0 -0
  169. {fal-1.20.0 → fal-1.20.1}/tests/cli/test_secrets.py +0 -0
  170. {fal-1.20.0 → fal-1.20.1}/tests/conftest.py +0 -0
  171. {fal-1.20.0 → fal-1.20.1}/tests/integration_test.py +0 -0
  172. {fal-1.20.0 → fal-1.20.1}/tests/mainify_package/__init__.py +0 -0
  173. {fal-1.20.0 → fal-1.20.1}/tests/mainify_package/impl.py +0 -0
  174. {fal-1.20.0 → fal-1.20.1}/tests/mainify_package/utils.py +0 -0
  175. {fal-1.20.0 → fal-1.20.1}/tests/mainify_target.py +0 -0
  176. {fal-1.20.0 → fal-1.20.1}/tests/test_apps.py +0 -0
  177. {fal-1.20.0 → fal-1.20.1}/tests/test_stability.py +0 -0
  178. {fal-1.20.0 → fal-1.20.1}/tests/toolkit/file/providers/test_fal_retry.py +0 -0
  179. {fal-1.20.0 → fal-1.20.1}/tests/toolkit/file_test.py +0 -0
  180. {fal-1.20.0 → fal-1.20.1}/tests/toolkit/image_test.py +0 -0
  181. {fal-1.20.0 → fal-1.20.1}/tests/toolkit/test_types.py +0 -0
  182. {fal-1.20.0 → fal-1.20.1}/tests/toolkit/utils/retry.py +0 -0
  183. {fal-1.20.0 → fal-1.20.1}/tools/demo_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.20.0
3
+ Version: 1.20.1
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <support@fal.ai>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.20.0
3
+ Version: 1.20.1
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <support@fal.ai>
6
6
  Requires-Python: >=3.8
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.20.0'
21
- __version_tuple__ = version_tuple = (1, 20, 0)
20
+ __version__ = version = '1.20.1'
21
+ __version_tuple__ = version_tuple = (1, 20, 1)
@@ -1183,6 +1183,9 @@ class BaseServable:
1183
1183
  app_info.labels(version=self.version).set(1)
1184
1184
 
1185
1185
  app = self._build_app()
1186
+
1187
+ # We use the default workers=1 config because setup function can be heavy
1188
+ # and it runs once per worker.
1186
1189
  server = Server(
1187
1190
  config=Config(app, host="0.0.0.0", port=8080, timeout_keep_alive=300)
1188
1191
  )
@@ -48,11 +48,19 @@ def add_parser(main_subparsers, parents):
48
48
  subparsers = parser.add_subparsers(
49
49
  title="Commands",
50
50
  metavar="command",
51
+ dest="cmd",
51
52
  required=True,
52
53
  parser_class=FalClientParser,
53
54
  )
54
55
 
55
- list_parser = subparsers.add_parser("list", aliases=["ls"], parents=parents)
56
+ list_help = "List files."
57
+ list_parser = subparsers.add_parser(
58
+ "list",
59
+ aliases=["ls"],
60
+ description=list_help,
61
+ help=list_help,
62
+ parents=parents,
63
+ )
56
64
  list_parser.add_argument(
57
65
  "path",
58
66
  nargs="?",
@@ -62,7 +70,13 @@ def add_parser(main_subparsers, parents):
62
70
  )
63
71
  list_parser.set_defaults(func=_list)
64
72
 
65
- download_parser = subparsers.add_parser("download", parents=parents)
73
+ download_help = "Download files."
74
+ download_parser = subparsers.add_parser(
75
+ "download",
76
+ description=download_help,
77
+ help=download_help,
78
+ parents=parents,
79
+ )
66
80
  download_parser.add_argument(
67
81
  "remote_path", type=str, help="Remote path to download"
68
82
  )
@@ -71,12 +85,24 @@ def add_parser(main_subparsers, parents):
71
85
  )
72
86
  download_parser.set_defaults(func=_download)
73
87
 
74
- upload_parser = subparsers.add_parser("upload", parents=parents)
88
+ upload_help = "Upload files."
89
+ upload_parser = subparsers.add_parser(
90
+ "upload",
91
+ description=upload_help,
92
+ help=upload_help,
93
+ parents=parents,
94
+ )
75
95
  upload_parser.add_argument("local_path", type=str, help="Local path to upload")
76
96
  upload_parser.add_argument("remote_path", type=str, help="Remote path to upload to")
77
97
  upload_parser.set_defaults(func=_upload)
78
98
 
79
- upload_url_parser = subparsers.add_parser("upload-url", parents=parents)
99
+ upload_url_help = "Upload file from URL."
100
+ upload_url_parser = subparsers.add_parser(
101
+ "upload-url",
102
+ description=upload_url_help,
103
+ help=upload_url_help,
104
+ parents=parents,
105
+ )
80
106
  upload_url_parser.add_argument("url", type=str, help="URL to upload")
81
107
  upload_url_parser.add_argument(
82
108
  "remote_path", type=str, help="Remote path to upload to"
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
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
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
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
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
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes