globus-cli 3.28.3__tar.gz → 3.29.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 (266) hide show
  1. {globus_cli-3.28.3/src/globus_cli.egg-info → globus_cli-3.29.0}/PKG-INFO +2 -3
  2. {globus_cli-3.28.3 → globus_cli-3.29.0}/pyproject.toml +1 -5
  3. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/list.py +20 -2
  4. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/activate.py +6 -55
  5. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/login.py +3 -1
  6. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/command_state.py +56 -37
  7. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/json_strorfile.py +10 -0
  8. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shared_options/__init__.py +2 -0
  9. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/transfer/__init__.py +0 -2
  10. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/transfer/activation.py +13 -20
  11. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/transfer/client.py +8 -3
  12. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/version.py +1 -1
  13. {globus_cli-3.28.3 → globus_cli-3.29.0/src/globus_cli.egg-info}/PKG-INFO +2 -3
  14. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli.egg-info/SOURCES.txt +0 -1
  15. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli.egg-info/requires.txt +1 -2
  16. globus_cli-3.28.3/src/globus_cli/services/transfer/delegate_proxy.py +0 -245
  17. {globus_cli-3.28.3 → globus_cli-3.29.0}/LICENSE +0 -0
  18. {globus_cli-3.28.3 → globus_cli-3.29.0}/README.rst +0 -0
  19. {globus_cli-3.28.3 → globus_cli-3.29.0}/setup.cfg +0 -0
  20. {globus_cli-3.28.3 → globus_cli-3.29.0}/setup.py +0 -0
  21. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/__init__.py +0 -0
  22. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/__main__.py +0 -0
  23. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/_warnings.py +0 -0
  24. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/__init__.py +0 -0
  25. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/_common.py +0 -0
  26. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/api.py +0 -0
  27. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  28. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  29. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  30. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  31. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  32. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  33. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  34. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  35. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/__init__.py +0 -0
  36. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/_common.py +0 -0
  37. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  38. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
  39. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  40. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/delete.py +0 -0
  41. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/show.py +0 -0
  42. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/collection/update.py +0 -0
  43. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/delete.py +0 -0
  44. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
  45. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  46. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/create.py +0 -0
  47. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
  48. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  49. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
  50. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  51. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  52. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  53. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  54. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  55. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  56. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  57. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  58. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  59. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  60. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  61. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  62. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  63. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  64. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  65. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/search.py +0 -0
  66. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
  67. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
  68. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/add.py +0 -0
  69. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
  70. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/list.py +0 -0
  71. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
  72. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/server/update.py +0 -0
  73. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
  74. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/show.py +0 -0
  75. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  76. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  77. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/update.py +0 -0
  78. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  79. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  80. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  81. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  82. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  83. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  84. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  85. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  86. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  87. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  88. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  89. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  90. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/_common.py +0 -0
  91. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/create.py +0 -0
  92. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/delete.py +0 -0
  93. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/list.py +0 -0
  94. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  95. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  96. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  97. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  98. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
  99. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  100. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  101. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  102. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  103. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/show.py +0 -0
  104. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/start.py +0 -0
  105. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/update.py +0 -0
  106. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/flows/validate.py +0 -0
  107. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/__init__.py +0 -0
  108. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  109. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  110. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
  111. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
  112. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  113. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  114. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/update/guest.py +0 -0
  115. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
  116. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
  117. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
  118. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
  119. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
  120. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
  121. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
  122. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
  123. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
  124. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
  125. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +0 -0
  126. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
  127. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/gcs/endpoint/update.py +0 -0
  128. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/get_identities.py +0 -0
  129. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/__init__.py +0 -0
  130. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/_common.py +0 -0
  131. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/create.py +0 -0
  132. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/delete.py +0 -0
  133. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
  134. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
  135. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  136. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
  137. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  138. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  139. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/join.py +0 -0
  140. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/leave.py +0 -0
  141. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/list.py +0 -0
  142. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  143. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/add.py +0 -0
  144. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  145. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/invite.py +0 -0
  146. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/list.py +0 -0
  147. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  148. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  149. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/set_policies.py +0 -0
  150. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/show.py +0 -0
  151. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/group/update.py +0 -0
  152. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/list_commands.py +0 -0
  153. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/logout.py +0 -0
  154. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/ls.py +0 -0
  155. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/mkdir.py +0 -0
  156. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/rename.py +0 -0
  157. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/rm.py +0 -0
  158. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/__init__.py +0 -0
  159. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/_common.py +0 -0
  160. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  161. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  162. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/create.py +0 -0
  163. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  164. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/list.py +0 -0
  165. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  166. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/role/create.py +0 -0
  167. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  168. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  169. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/index/show.py +0 -0
  170. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/ingest.py +0 -0
  171. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/query.py +0 -0
  172. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  173. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  174. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  175. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  176. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/task/list.py +0 -0
  177. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/search/task/show.py +0 -0
  178. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/session/__init__.py +0 -0
  179. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/session/consent.py +0 -0
  180. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/session/show.py +0 -0
  181. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/session/update.py +0 -0
  182. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/stat.py +0 -0
  183. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/__init__.py +0 -0
  184. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/_common.py +0 -0
  185. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/cancel.py +0 -0
  186. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/event_list.py +0 -0
  187. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  188. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/list.py +0 -0
  189. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  190. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/show.py +0 -0
  191. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/update.py +0 -0
  192. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/task/wait.py +0 -0
  193. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/__init__.py +0 -0
  194. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/_common.py +0 -0
  195. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  196. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/create/transfer.py +0 -0
  197. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/delete.py +0 -0
  198. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/list.py +0 -0
  199. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/pause.py +0 -0
  200. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/resume.py +0 -0
  201. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/timer/show.py +0 -0
  202. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/transfer.py +0 -0
  203. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/update.py +0 -0
  204. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/version.py +0 -0
  205. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/commands/whoami.py +0 -0
  206. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/constants.py +0 -0
  207. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/endpointish/__init__.py +0 -0
  208. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/endpointish/endpointish.py +0 -0
  209. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  210. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/endpointish/errors.py +0 -0
  211. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/exception_handling/__init__.py +0 -0
  212. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/exception_handling/hooks.py +0 -0
  213. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/exception_handling/registry.py +0 -0
  214. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/globus_cli_flake8.py +0 -0
  215. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/__init__.py +0 -0
  216. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  217. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/auth_flows.py +0 -0
  218. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/client_login.py +0 -0
  219. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/context.py +0 -0
  220. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/errors.py +0 -0
  221. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/local_server.py +0 -0
  222. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/manager.py +0 -0
  223. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/scopes.py +0 -0
  224. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/tokenstore.py +0 -0
  225. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/login_manager/utils.py +0 -0
  226. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/__init__.py +0 -0
  227. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/commands.py +0 -0
  228. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  229. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_classes.py +0 -0
  230. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
  231. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
  232. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
  233. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
  234. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/location.py +0 -0
  235. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
  236. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/nullable.py +0 -0
  237. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/task_path.py +0 -0
  238. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  239. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  240. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  241. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
  242. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
  243. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/parsing/shell_completion.py +0 -0
  244. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/reflect.py +0 -0
  245. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/__init__.py +0 -0
  246. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/auth.py +0 -0
  247. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/gcs.py +0 -0
  248. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/transfer/data.py +0 -0
  249. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  250. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/__init__.py +0 -0
  251. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/awscli_text.py +0 -0
  252. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/context.py +0 -0
  253. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/errors.py +0 -0
  254. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/field.py +0 -0
  255. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  256. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/formatters/auth.py +0 -0
  257. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/formatters/base.py +0 -0
  258. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  259. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
  260. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/printer.py +0 -0
  261. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/termio/server_timing.py +0 -0
  262. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/types.py +0 -0
  263. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli/utils.py +0 -0
  264. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  265. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  266. {globus_cli-3.28.3 → globus_cli-3.29.0}/src/globus_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: globus-cli
3
- Version: 3.28.3
3
+ Version: 3.29.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  Project-URL: homepage, https://github.com/globus/globus-cli
@@ -24,14 +24,13 @@ Requires-Dist: jmespath==1.0.1
24
24
  Requires-Dist: packaging>=17.0
25
25
  Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
26
26
  Requires-Dist: requests<3.0.0,>=2.19.1
27
- Requires-Dist: cryptography>=3.3.1
28
27
  Provides-Extra: test
29
28
  Requires-Dist: coverage>=7; extra == "test"
30
29
  Requires-Dist: pytest>=7; extra == "test"
31
30
  Requires-Dist: pytest-xdist<4; extra == "test"
32
31
  Requires-Dist: pytest-timeout<3; extra == "test"
33
32
  Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
34
- Requires-Dist: responses==0.25.2; extra == "test"
33
+ Requires-Dist: responses==0.25.3; extra == "test"
35
34
  Requires-Dist: ruamel.yaml==0.18.6; extra == "test"
36
35
  Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
37
36
 
@@ -36,7 +36,6 @@ dependencies = [
36
36
  # these are dependencies of the SDK, but they are used directly in the CLI
37
37
  # declare them here in case the underlying lib ever changes
38
38
  "requests>=2.19.1,<3.0.0",
39
- "cryptography>=3.3.1",
40
39
  ]
41
40
  dynamic = ["version"]
42
41
 
@@ -50,7 +49,7 @@ test = [
50
49
  "pytest-xdist<4",
51
50
  "pytest-timeout<3",
52
51
  "click-type-test==0.0.7;python_version>='3.10'",
53
- "responses==0.25.2",
52
+ "responses==0.25.3",
54
53
  # loading test fixture data
55
54
  "ruamel.yaml==0.18.6",
56
55
  # Python 3.12 needs setuptools.
@@ -114,9 +113,6 @@ disallow_untyped_defs = false
114
113
  disallow_incomplete_defs = false
115
114
  module = [
116
115
  "globus_cli.services.gcs",
117
- "globus_cli.services.transfer.activation",
118
- "globus_cli.services.transfer.client",
119
- "globus_cli.services.transfer.delegate_proxy",
120
116
  "globus_cli.services.transfer.recursive_ls",
121
117
  "globus_cli.termio",
122
118
  "globus_cli.termio.printer",
@@ -4,10 +4,12 @@ import typing as t
4
4
  import uuid
5
5
 
6
6
  import click
7
+ from globus_sdk.paging import Paginator
7
8
 
8
9
  from globus_cli.login_manager import LoginManager
9
10
  from globus_cli.parsing import command, endpoint_id_arg
10
11
  from globus_cli.termio import Field, display, formatters
12
+ from globus_cli.utils import PagingWrapper
11
13
 
12
14
 
13
15
  class ChoiceSlugified(click.Choice):
@@ -82,6 +84,14 @@ created-by-me:
82
84
  "the ID of the Mapped Collection"
83
85
  ),
84
86
  )
87
+ @click.option(
88
+ "--limit",
89
+ default=25,
90
+ show_default=True,
91
+ metavar="N",
92
+ type=click.IntRange(1),
93
+ help="The maximum number of results to return.",
94
+ )
85
95
  @LoginManager.requires_login("auth", "transfer")
86
96
  def collection_list(
87
97
  login_manager: LoginManager,
@@ -95,6 +105,7 @@ def collection_list(
95
105
  ...,
96
106
  ],
97
107
  mapped_collection_id: uuid.UUID | None,
108
+ limit: int,
98
109
  ) -> None:
99
110
  """
100
111
  List the Collections on a given Globus Connect Server v5 Endpoint
@@ -109,9 +120,15 @@ def collection_list(
109
120
  params["filter"] = ",".join(filters)
110
121
  if include_private_policies:
111
122
  params["include"] = "private_policies"
112
- res = gcs_client.get_collection_list(**params)
123
+
124
+ paginator = Paginator.wrap(gcs_client.get_collection_list)
125
+ paginated_call = paginator(**params)
126
+ paging_wrapper = PagingWrapper(
127
+ paginated_call.items(), json_conversion_key="DATA", limit=limit
128
+ )
129
+
113
130
  display(
114
- res,
131
+ paging_wrapper,
115
132
  text_mode=display.TABLE,
116
133
  fields=[
117
134
  Field("ID", "id"),
@@ -124,4 +141,5 @@ def collection_list(
124
141
  Field("Collection Type", "collection_type"),
125
142
  Field("Storage Gateway ID", "storage_gateway_id"),
126
143
  ],
144
+ json_converter=paging_wrapper.json_converter,
127
145
  )
@@ -16,7 +16,7 @@ from globus_cli.termio import display
16
16
  "--web",
17
17
  is_flag=True,
18
18
  default=False,
19
- help="Use web activation. Mutually exclusive with --myproxy and --delegate-proxy.",
19
+ help="Use web activation. Mutually exclusive with --myproxy.",
20
20
  )
21
21
  @click.option(
22
22
  "--no-browser",
@@ -32,7 +32,7 @@ from globus_cli.termio import display
32
32
  "--myproxy",
33
33
  is_flag=True,
34
34
  default=False,
35
- help="Use myproxy activation. Mutually exclusive with --web and --delegate-proxy.",
35
+ help="Use myproxy activation. Mutually exclusive with --web.",
36
36
  )
37
37
  @click.option(
38
38
  "--myproxy-username",
@@ -50,24 +50,6 @@ from globus_cli.termio import display
50
50
  "lifetime which it will use if this value is too high"
51
51
  ),
52
52
  )
53
- @click.option(
54
- "--delegate-proxy",
55
- metavar="X.509_PEM_FILE",
56
- help=(
57
- "Use delegate proxy activation, takes an X.509 "
58
- "certificate in pem format as an argument. Mutually "
59
- "exclusive with --web and --myproxy."
60
- ),
61
- )
62
- @click.option(
63
- "--proxy-lifetime",
64
- type=int,
65
- default=None,
66
- help=(
67
- "Set a lifetime in hours for the proxy generated with "
68
- "--delegate-proxy. [default: 12]"
69
- ),
70
- )
71
53
  @click.option(
72
54
  "--no-autoactivate",
73
55
  is_flag=True,
@@ -83,7 +65,7 @@ from globus_cli.termio import display
83
65
  default=False,
84
66
  help="Force activation even if endpoint is already activated.",
85
67
  )
86
- @mutex_option_group("--web", "--myproxy", "--delegate-proxy")
68
+ @mutex_option_group("--web", "--myproxy")
87
69
  @LoginManager.requires_login("transfer")
88
70
  def endpoint_activate(
89
71
  login_manager: LoginManager,
@@ -95,15 +77,13 @@ def endpoint_activate(
95
77
  myproxy_lifetime: int | None,
96
78
  web: bool,
97
79
  no_browser: bool,
98
- delegate_proxy: str | None,
99
- proxy_lifetime: int | None,
100
80
  no_autoactivate: bool,
101
81
  force: bool,
102
82
  ) -> None:
103
83
  """
104
84
  Activate an endpoint using Autoactivation, Myproxy, Delegate Proxy,
105
85
  or Web activation.
106
- Note that --web, --delegate-proxy, and --myproxy activation are mutually
86
+ Note that --web and --myproxy activation are mutually
107
87
  exclusive options.
108
88
 
109
89
  \b
@@ -130,28 +110,13 @@ def endpoint_activate(
130
110
  prompted to hide your inputs and keep your password out of your
131
111
  command history, but you may pass your password with the hidden
132
112
  --myproxy-password or -P options.
133
-
134
- \b
135
- To use Delegate Proxy activation use the --delegate-proxy option with a
136
- file containing an X.509 certificate as an argument (e.g. an X.509
137
- gotten from the myproxy-logon command). This certificate must
138
- be a valid credential or proxy credential for the user from an identity
139
- provider accepted by the endpoint being activated, and the endpoint must be
140
- configured with a gridmap that will match the globus user using this
141
- command with the local user the certificate was made to. Note if the X.509
142
- is valid, but the endpoint does not recognize the identity provider or the
143
- user the error will not be detected until the user attempts to perform an
144
- operation on the endpoint.
145
113
  """
146
- from globus_cli.services.transfer import (
147
- activation_requirements_help_text,
148
- fill_delegate_proxy_activation_requirements,
149
- )
114
+ from globus_cli.services.transfer import activation_requirements_help_text
150
115
 
151
116
  transfer_client = login_manager.get_transfer_client()
152
117
 
153
118
  # validate options
154
- if no_autoactivate and not (myproxy or web or delegate_proxy):
119
+ if no_autoactivate and not (myproxy or web):
155
120
  raise click.UsageError(
156
121
  "--no-autoactivate requires another activation method be given."
157
122
  )
@@ -166,8 +131,6 @@ def endpoint_activate(
166
131
  raise click.UsageError("--myproxy-lifetime requires --myproxy.")
167
132
  if no_browser and not web:
168
133
  raise click.UsageError("--no-browser requires --web.")
169
- if proxy_lifetime and not delegate_proxy:
170
- raise click.UsageError("--proxy-lifetime requires --delegate-proxy.")
171
134
 
172
135
  # check if endpoint is already activated unless --force
173
136
  if not force:
@@ -261,17 +224,5 @@ def endpoint_activate(
261
224
  webbrowser.open(url, new=1)
262
225
  res = {"message": "Browser opened to web activation page", "url": url}
263
226
 
264
- # delegate proxy activation
265
- elif delegate_proxy:
266
- requirements_data = transfer_client.endpoint_get_activation_requirements(
267
- endpoint_id
268
- ).data
269
- filled_requirements_data = fill_delegate_proxy_activation_requirements(
270
- requirements_data, delegate_proxy, lifetime_hours=proxy_lifetime or 12
271
- )
272
- res = transfer_client.endpoint_activate(
273
- endpoint_id, requirements_data=filled_requirements_data
274
- )
275
-
276
227
  # output
277
228
  display(res, text_mode=display.RAW, response_key="message")
@@ -10,6 +10,7 @@ from globus_sdk.services.flows import SpecificFlowClient
10
10
 
11
11
  from globus_cli.login_manager import LoginManager, is_client_login
12
12
  from globus_cli.parsing import command, no_local_server_option
13
+ from globus_cli.termio import verbosity
13
14
 
14
15
  _SHARED_EPILOG = """\
15
16
 
@@ -184,7 +185,8 @@ def login_command(
184
185
 
185
186
  # if not forcing, stop if user already logged in
186
187
  if not force and manager.is_logged_in():
187
- click.echo(_LOGGED_IN_RESPONSE)
188
+ if verbosity() >= 0:
189
+ click.echo(_LOGGED_IN_RESPONSE)
188
190
  return
189
191
 
190
192
  manager.run_login_flow(
@@ -66,6 +66,35 @@ class CommandState:
66
66
  def is_verbose(self) -> bool:
67
67
  return self.verbosity > 0
68
68
 
69
+ def is_quiet(self) -> bool:
70
+ return self.verbosity < 0
71
+
72
+ def set_verbosity(self, value: int) -> None:
73
+ # short-circuit if verbosity is already below 0 -- this makes `--quiet` higher
74
+ # precedence than `--verbose` regardless of the order of application
75
+ if self.verbosity < 0:
76
+ return
77
+
78
+ self.verbosity = value
79
+
80
+ # min verbosity level: never warn, never log normal events
81
+ # (covers quiet modes, e.g. `--quiet`)
82
+ if value <= 0:
83
+ _warnings.simplefilter("ignore")
84
+ _setup_logging(level="CRITICAL")
85
+ # verbosity level 1: warn minimally, log errors
86
+ elif value == 1:
87
+ _warnings.simplefilter("once")
88
+ _setup_logging(level="ERROR")
89
+ # verbosity level 2: warn once per usage, log info
90
+ elif value == 2:
91
+ _warnings.simplefilter("default")
92
+ _setup_logging(level="INFO")
93
+ # verbosity level 3+: warn always, log debug
94
+ elif value >= 3:
95
+ _warnings.simplefilter("always")
96
+ _setup_logging(level="DEBUG")
97
+
69
98
 
70
99
  def format_option(f: F) -> F:
71
100
  def callback(ctx: click.Context, param: click.Parameter, value: t.Any) -> None:
@@ -118,16 +147,13 @@ def format_option(f: F) -> F:
118
147
 
119
148
 
120
149
  def debug_option(f: F) -> F:
121
- def callback(ctx: click.Context, param: click.Parameter, value: t.Any) -> None:
122
- if not value or ctx.resilient_parsing:
123
- # turn off warnings altogether
124
- _warnings.simplefilter("ignore")
150
+ def callback(ctx: click.Context, param: click.Parameter, value: bool) -> None:
151
+ if not value:
125
152
  return
126
153
 
127
- _warnings.simplefilter("default")
128
154
  state = ctx.ensure_object(CommandState)
155
+ state.set_verbosity(max(state.verbosity, 3))
129
156
  state.debug = True
130
- _setup_logging(level="DEBUG")
131
157
 
132
158
  return click.option(
133
159
  "--debug",
@@ -140,48 +166,41 @@ def debug_option(f: F) -> F:
140
166
 
141
167
 
142
168
  def verbose_option(f: F) -> F:
143
- def callback(ctx: click.Context, param: click.Parameter, value: t.Any) -> None:
169
+ def callback(ctx: click.Context, param: click.Parameter, value: int) -> None:
144
170
  # set state verbosity value from option
145
171
  state = ctx.ensure_object(CommandState)
146
- state.verbosity = value
172
+ state.set_verbosity(state.verbosity + value)
147
173
 
148
- # no verbosity
149
- # all warnings are ignored
150
- # logging is not turned on
151
- if value == 0:
152
- _warnings.simplefilter("ignore")
174
+ return click.option(
175
+ "--verbose",
176
+ "-v",
177
+ count=True,
178
+ expose_value=False,
179
+ callback=callback,
180
+ is_eager=True,
181
+ help="Control level of output, make it more verbose.",
182
+ )(f)
153
183
 
154
- # verbosity level 1
155
- # warnings set to once
156
- # logging set to error
157
- if value == 1:
158
- _warnings.simplefilter("once")
159
- _setup_logging(level="ERROR")
160
184
 
161
- # verbosity level 2
162
- # warnings set to default
163
- # logging set to info
164
- if value == 2:
165
- _warnings.simplefilter("default")
166
- _setup_logging(level="INFO")
185
+ def quiet_option(f: F) -> F:
186
+ def callback(ctx: click.Context, param: click.Parameter, value: bool) -> None:
187
+ if not value:
188
+ return
167
189
 
168
- # verbosity level 3+
169
- # warnings set to always
170
- # logging set to debug
171
- # sets debug flag to true
172
- if value >= 3:
173
- _warnings.simplefilter("always")
174
- state.debug = True
175
- _setup_logging(level="DEBUG")
190
+ # set state verbosity value from option
191
+ state = ctx.ensure_object(CommandState)
192
+ state.set_verbosity(-1)
176
193
 
177
194
  return click.option(
178
- "--verbose",
179
- "-v",
180
- count=True,
195
+ "--quiet",
181
196
  expose_value=False,
182
197
  callback=callback,
198
+ is_flag=True,
183
199
  is_eager=True,
184
- help="Control level of output.",
200
+ help=(
201
+ "Suppress non-essential output. "
202
+ "This is higher precedence than `--verbose`."
203
+ ),
185
204
  )(f)
186
205
 
187
206
 
@@ -11,6 +11,9 @@ import click
11
11
  from globus_cli.constants import EXPLICIT_NULL, ExplicitNullType
12
12
  from globus_cli.types import JsonValue
13
13
 
14
+ if t.TYPE_CHECKING:
15
+ from click.shell_completion import CompletionItem
16
+
14
17
 
15
18
  @dataclasses.dataclass
16
19
  class ParsedJSONData:
@@ -57,6 +60,13 @@ class JSONStringOrFile(click.ParamType):
57
60
  def get_metavar(self, param: click.Parameter) -> str:
58
61
  return "[JSON_FILE|JSON|file:JSON_FILE]"
59
62
 
63
+ def shell_complete(
64
+ self, ctx: click.Context, param: click.Parameter, incomplete: str
65
+ ) -> list[CompletionItem]:
66
+ from click.shell_completion import CompletionItem
67
+
68
+ return [CompletionItem(incomplete, type="file")]
69
+
60
70
  def get_type_annotation(self, param: click.Parameter) -> type:
61
71
  if self.null is not None:
62
72
  return t.cast(type, t.Union[ParsedJSONData, ExplicitNullType])
@@ -11,6 +11,7 @@ from globus_cli.parsing.command_state import (
11
11
  debug_option,
12
12
  format_option,
13
13
  map_http_status_option,
14
+ quiet_option,
14
15
  show_server_timing_option,
15
16
  verbose_option,
16
17
  )
@@ -46,6 +47,7 @@ def common_options(*, disable_options: list[str] | None = None) -> t.Callable[[C
46
47
  f = debug_option(f)
47
48
  f = show_server_timing_option(f)
48
49
  f = verbose_option(f)
50
+ f = quiet_option(f)
49
51
  f = click.help_option("-h", "--help")(f)
50
52
 
51
53
  # if the format option is being allowed, it needs to be applied to `f`
@@ -10,7 +10,6 @@ from .data import (
10
10
  display_name_or_cname,
11
11
  iterable_response_to_dict,
12
12
  )
13
- from .delegate_proxy import fill_delegate_proxy_activation_requirements
14
13
  from .recursive_ls import RecursiveLsResponse
15
14
 
16
15
 
@@ -34,7 +33,6 @@ __all__ = (
34
33
  "RecursiveLsResponse",
35
34
  "supported_activation_methods",
36
35
  "activation_requirements_help_text",
37
- "fill_delegate_proxy_activation_requirements",
38
36
  "display_name_or_cname",
39
37
  "iterable_response_to_dict",
40
38
  "assemble_generic_doc",
@@ -1,4 +1,13 @@
1
- def supported_activation_methods(res):
1
+ from __future__ import annotations
2
+
3
+ import uuid
4
+
5
+ import globus_sdk
6
+
7
+
8
+ def supported_activation_methods(
9
+ res: globus_sdk.GlobusHTTPResponse,
10
+ ) -> list[str]:
2
11
  """
3
12
  Given an activation_requirements document
4
13
  returns a list of activation methods supported by this endpoint.
@@ -18,14 +27,12 @@ def supported_activation_methods(res):
18
27
  ):
19
28
  supported.append("myproxy")
20
29
 
21
- # delegate_proxy
22
- if req["type"] == "delegate_proxy" and req["name"] == "public_key":
23
- supported.append("delegate_proxy")
24
-
25
30
  return supported
26
31
 
27
32
 
28
- def activation_requirements_help_text(res, ep_id):
33
+ def activation_requirements_help_text(
34
+ res: globus_sdk.GlobusHTTPResponse, ep_id: str | uuid.UUID
35
+ ) -> str:
29
36
  """
30
37
  Given an activation requirements document and an endpoint_id
31
38
  returns a string of help text for how to activate the endpoint
@@ -54,20 +61,6 @@ def activation_requirements_help_text(res, ep_id):
54
61
  if "oauth" in methods
55
62
  else ""
56
63
  ),
57
- (
58
- "For delegate proxy activation use:\n"
59
- "'globus endpoint activate --delegate-proxy "
60
- "X.509_PEM_FILE {}'\n".format(ep_id)
61
- if "delegate_proxy" in methods
62
- else ""
63
- ),
64
- (
65
- "Delegate proxy activation requires an additional dependency on "
66
- "cryptography. See the docs for details:\n"
67
- "https://docs.globus.org/cli/reference/endpoint_activate/\n"
68
- if "delegate_proxy" in methods
69
- else ""
70
- ),
71
64
  ]
72
65
 
73
66
  return "".join(lines)
@@ -44,8 +44,13 @@ def _retry_client_consent(ctx: RetryContext) -> RetryCheckResult:
44
44
 
45
45
 
46
46
  class CustomTransferClient(globus_sdk.TransferClient):
47
- def __init__(self, *args, **kwargs):
48
- super().__init__(*args, **kwargs)
47
+ def __init__(
48
+ self,
49
+ *,
50
+ authorizer: globus_sdk.GlobusAuthorizer,
51
+ app_name: str,
52
+ ) -> None:
53
+ super().__init__(authorizer=authorizer, app_name=app_name)
49
54
  self.transport.register_retry_check(_retry_client_consent)
50
55
 
51
56
  # TODO: Remove this function when endpoints natively support recursive ls
@@ -78,7 +83,7 @@ class CustomTransferClient(globus_sdk.TransferClient):
78
83
  return RecursiveLsResponse(self, endpoint_id, params, max_depth=depth)
79
84
 
80
85
  def get_endpoint_w_server_list(
81
- self, endpoint_id
86
+ self, endpoint_id: str | uuid.UUID
82
87
  ) -> tuple[
83
88
  globus_sdk.GlobusHTTPResponse, str | globus_sdk.IterableTransferResponse
84
89
  ]:
@@ -7,7 +7,7 @@ if t.TYPE_CHECKING:
7
7
 
8
8
  # single source of truth for package version,
9
9
  # see https://packaging.python.org/en/latest/single_source_version/
10
- __version__ = "3.28.3"
10
+ __version__ = "3.29.0"
11
11
 
12
12
  # app name to send as part of SDK requests
13
13
  app_name = f"Globus CLI v{__version__}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: globus-cli
3
- Version: 3.28.3
3
+ Version: 3.29.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  Project-URL: homepage, https://github.com/globus/globus-cli
@@ -24,14 +24,13 @@ Requires-Dist: jmespath==1.0.1
24
24
  Requires-Dist: packaging>=17.0
25
25
  Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
26
26
  Requires-Dist: requests<3.0.0,>=2.19.1
27
- Requires-Dist: cryptography>=3.3.1
28
27
  Provides-Extra: test
29
28
  Requires-Dist: coverage>=7; extra == "test"
30
29
  Requires-Dist: pytest>=7; extra == "test"
31
30
  Requires-Dist: pytest-xdist<4; extra == "test"
32
31
  Requires-Dist: pytest-timeout<3; extra == "test"
33
32
  Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
34
- Requires-Dist: responses==0.25.2; extra == "test"
33
+ Requires-Dist: responses==0.25.3; extra == "test"
35
34
  Requires-Dist: ruamel.yaml==0.18.6; extra == "test"
36
35
  Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
37
36
 
@@ -248,7 +248,6 @@ src/globus_cli/services/transfer/__init__.py
248
248
  src/globus_cli/services/transfer/activation.py
249
249
  src/globus_cli/services/transfer/client.py
250
250
  src/globus_cli/services/transfer/data.py
251
- src/globus_cli/services/transfer/delegate_proxy.py
252
251
  src/globus_cli/services/transfer/recursive_ls.py
253
252
  src/globus_cli/termio/__init__.py
254
253
  src/globus_cli/termio/awscli_text.py
@@ -3,7 +3,6 @@ click<9,>=8.1.4
3
3
  jmespath==1.0.1
4
4
  packaging>=17.0
5
5
  requests<3.0.0,>=2.19.1
6
- cryptography>=3.3.1
7
6
 
8
7
  [:python_version < "3.11"]
9
8
  typing_extensions>=4.0
@@ -13,7 +12,7 @@ coverage>=7
13
12
  pytest>=7
14
13
  pytest-xdist<4
15
14
  pytest-timeout<3
16
- responses==0.25.2
15
+ responses==0.25.3
17
16
  ruamel.yaml==0.18.6
18
17
 
19
18
  [test:python_version >= "3.10"]