globus-cli 3.30.1__tar.gz → 3.32.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 (269) hide show
  1. {globus_cli-3.30.1/src/globus_cli.egg-info → globus_cli-3.32.0}/PKG-INFO +3 -3
  2. {globus_cli-3.30.1 → globus_cli-3.32.0}/pyproject.toml +4 -3
  3. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/guest.py +0 -1
  4. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/update.py +14 -15
  5. globus_cli-3.32.0/src/globus_cli/commands/endpoint/activate.py +46 -0
  6. globus_cli-3.32.0/src/globus_cli/commands/endpoint/deactivate.py +24 -0
  7. globus_cli-3.32.0/src/globus_cli/commands/endpoint/is_activated.py +33 -0
  8. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +5 -4
  9. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/show.py +0 -1
  10. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +1 -1
  11. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/resume.py +5 -9
  12. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/_common.py +1 -0
  13. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/update.py +11 -3
  14. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/list_commands.py +1 -6
  15. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/session/consent.py +2 -2
  16. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/show.py +3 -0
  17. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/create/transfer.py +42 -22
  18. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/resume.py +5 -9
  19. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/transfer.py +34 -8
  20. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/endpointish/endpointish.py +1 -1
  21. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/exception_handling/hooks.py +2 -4
  22. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/globus_cli_flake8.py +2 -2
  23. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/auth_flows.py +3 -3
  24. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/errors.py +1 -1
  25. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/manager.py +12 -15
  26. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/scopes.py +11 -18
  27. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/task_path.py +1 -1
  28. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/__init__.py +3 -5
  29. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/transfer/__init__.py +0 -3
  30. globus_cli-3.32.0/src/globus_cli/services/transfer/activation.py +28 -0
  31. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/transfer/client.py +1 -1
  32. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/field.py +1 -1
  33. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/auth.py +1 -1
  34. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/version.py +1 -1
  35. {globus_cli-3.30.1 → globus_cli-3.32.0/src/globus_cli.egg-info}/PKG-INFO +3 -3
  36. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli.egg-info/requires.txt +2 -2
  37. globus_cli-3.30.1/src/globus_cli/commands/endpoint/activate.py +0 -228
  38. globus_cli-3.30.1/src/globus_cli/commands/endpoint/deactivate.py +0 -18
  39. globus_cli-3.30.1/src/globus_cli/commands/endpoint/is_activated.py +0 -87
  40. globus_cli-3.30.1/src/globus_cli/services/transfer/activation.py +0 -66
  41. {globus_cli-3.30.1 → globus_cli-3.32.0}/LICENSE +0 -0
  42. {globus_cli-3.30.1 → globus_cli-3.32.0}/README.rst +0 -0
  43. {globus_cli-3.30.1 → globus_cli-3.32.0}/setup.cfg +0 -0
  44. {globus_cli-3.30.1 → globus_cli-3.32.0}/setup.py +0 -0
  45. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/__init__.py +0 -0
  46. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/__main__.py +0 -0
  47. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/_warnings.py +0 -0
  48. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/__init__.py +0 -0
  49. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/_common.py +0 -0
  50. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/api.py +0 -0
  51. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  52. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  53. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  54. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  55. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  56. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  57. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  58. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  59. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/__init__.py +0 -0
  60. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/_common.py +0 -0
  61. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  62. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  63. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/delete.py +0 -0
  64. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/list.py +0 -0
  65. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/collection/show.py +0 -0
  66. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/delete.py +0 -0
  67. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
  68. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  69. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/create.py +0 -0
  70. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  71. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  72. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  73. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  74. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  75. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  76. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  77. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  78. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  79. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  80. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  81. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  82. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  83. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  84. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  85. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  86. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/search.py +0 -0
  87. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
  88. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
  89. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/add.py +0 -0
  90. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
  91. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/list.py +0 -0
  92. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
  93. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/update.py +0 -0
  94. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  95. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  96. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/update.py +0 -0
  97. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  98. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  99. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  100. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  101. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  102. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  103. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  104. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  105. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  106. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  107. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  108. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/_common.py +0 -0
  109. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/create.py +0 -0
  110. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/delete.py +0 -0
  111. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/list.py +0 -0
  112. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  113. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  114. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  115. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  116. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  117. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  118. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  119. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  120. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/show.py +0 -0
  121. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/start.py +0 -0
  122. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/update.py +0 -0
  123. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/flows/validate.py +0 -0
  124. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/__init__.py +0 -0
  125. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  126. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  127. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
  128. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
  129. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  130. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  131. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/guest.py +0 -0
  132. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
  133. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
  134. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
  135. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
  136. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
  137. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
  138. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
  139. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
  140. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
  141. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
  142. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +0 -0
  143. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
  144. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/update.py +0 -0
  145. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/get_identities.py +0 -0
  146. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/__init__.py +0 -0
  147. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/create.py +0 -0
  148. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/delete.py +0 -0
  149. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
  150. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
  151. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  152. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
  153. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  154. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  155. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/join.py +0 -0
  156. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/leave.py +0 -0
  157. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/list.py +0 -0
  158. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  159. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/add.py +0 -0
  160. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  161. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/invite.py +0 -0
  162. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/list.py +0 -0
  163. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  164. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  165. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/set_policies.py +0 -0
  166. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/group/show.py +0 -0
  167. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/login.py +0 -0
  168. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/logout.py +0 -0
  169. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/ls.py +0 -0
  170. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/mkdir.py +0 -0
  171. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/rename.py +0 -0
  172. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/rm.py +0 -0
  173. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/__init__.py +0 -0
  174. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/_common.py +0 -0
  175. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  176. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  177. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/create.py +0 -0
  178. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  179. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/list.py +0 -0
  180. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  181. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/create.py +0 -0
  182. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  183. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  184. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/show.py +0 -0
  185. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/ingest.py +0 -0
  186. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/query.py +0 -0
  187. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  188. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  189. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  190. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  191. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/list.py +0 -0
  192. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/show.py +0 -0
  193. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/session/__init__.py +0 -0
  194. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/session/show.py +0 -0
  195. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/session/update.py +0 -0
  196. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/stat.py +0 -0
  197. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/__init__.py +0 -0
  198. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/_common.py +0 -0
  199. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/cancel.py +0 -0
  200. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/event_list.py +0 -0
  201. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  202. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/list.py +0 -0
  203. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  204. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/update.py +0 -0
  205. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/task/wait.py +0 -0
  206. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/__init__.py +0 -0
  207. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/_common.py +0 -0
  208. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  209. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/delete.py +0 -0
  210. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/list.py +0 -0
  211. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/pause.py +0 -0
  212. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/timer/show.py +0 -0
  213. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/update.py +0 -0
  214. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/version.py +0 -0
  215. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/commands/whoami.py +0 -0
  216. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/constants.py +0 -0
  217. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/endpointish/__init__.py +0 -0
  218. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  219. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/endpointish/errors.py +0 -0
  220. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/exception_handling/__init__.py +0 -0
  221. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/exception_handling/registry.py +0 -0
  222. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/__init__.py +0 -0
  223. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  224. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/client_login.py +0 -0
  225. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/context.py +0 -0
  226. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/local_server.py +0 -0
  227. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/tokenstore.py +0 -0
  228. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/login_manager/utils.py +0 -0
  229. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/__init__.py +0 -0
  230. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/command_state.py +0 -0
  231. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/commands.py +0 -0
  232. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  233. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_classes.py +0 -0
  234. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
  235. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
  236. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
  237. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
  238. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
  239. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/location.py +0 -0
  240. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
  241. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/nullable.py +0 -0
  242. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  243. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  244. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  245. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
  246. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
  247. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/parsing/shell_completion.py +0 -0
  248. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/reflect.py +0 -0
  249. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/__init__.py +0 -0
  250. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/auth.py +0 -0
  251. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/gcs.py +0 -0
  252. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/transfer/data.py +0 -0
  253. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  254. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/__init__.py +0 -0
  255. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/awscli_text.py +0 -0
  256. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/context.py +0 -0
  257. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/errors.py +0 -0
  258. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  259. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/base.py +0 -0
  260. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  261. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
  262. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/printer.py +0 -0
  263. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/termio/server_timing.py +0 -0
  264. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/types.py +0 -0
  265. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli/utils.py +0 -0
  266. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli.egg-info/SOURCES.txt +0 -0
  267. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  268. {globus_cli-3.30.1 → globus_cli-3.32.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  269. {globus_cli-3.30.1 → globus_cli-3.32.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.30.1
3
+ Version: 3.32.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
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
18
18
  Requires-Python: >=3.8
19
19
  Description-Content-Type: text/x-rst
20
20
  License-File: LICENSE
21
- Requires-Dist: globus-sdk==3.44.0
21
+ Requires-Dist: globus-sdk==3.46.0
22
22
  Requires-Dist: click<9,>=8.1.4
23
23
  Requires-Dist: jmespath==1.0.1
24
24
  Requires-Dist: packaging>=17.0
@@ -29,7 +29,7 @@ Requires-Dist: coverage>=7; extra == "test"
29
29
  Requires-Dist: pytest>=7; extra == "test"
30
30
  Requires-Dist: pytest-xdist<4; extra == "test"
31
31
  Requires-Dist: pytest-timeout<3; extra == "test"
32
- Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
32
+ Requires-Dist: click-type-test==1.0.0; python_version >= "3.10" and extra == "test"
33
33
  Requires-Dist: responses==0.25.3; extra == "test"
34
34
  Requires-Dist: ruamel.yaml==0.18.6; extra == "test"
35
35
  Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
@@ -28,7 +28,7 @@ classifiers = [
28
28
  ]
29
29
  requires-python = ">=3.8"
30
30
  dependencies = [
31
- "globus-sdk==3.44.0",
31
+ "globus-sdk==3.46.0",
32
32
  "click>=8.1.4,<9",
33
33
  "jmespath==1.0.1",
34
34
  "packaging>=17.0",
@@ -48,7 +48,7 @@ test = [
48
48
  "pytest>=7",
49
49
  "pytest-xdist<4",
50
50
  "pytest-timeout<3",
51
- "click-type-test==0.0.7;python_version>='3.10'",
51
+ "click-type-test==1.0.0;python_version>='3.10'",
52
52
  "responses==0.25.3",
53
53
  # loading test fixture data
54
54
  "ruamel.yaml==0.18.6",
@@ -66,7 +66,7 @@ attr = "globus_cli.version.__version__"
66
66
  profile = "black"
67
67
 
68
68
  [tool.pytest.ini_options]
69
- addopts = "--timeout 3"
69
+ addopts = "--timeout 3 --color=yes"
70
70
  filterwarnings = ["error"]
71
71
 
72
72
  [tool.scriv]
@@ -79,6 +79,7 @@ entry_title_template = '{{ version }} ({{ date.strftime("%Y-%m-%d") }})'
79
79
 
80
80
  [tool.mypy]
81
81
  strict = true
82
+ sqlite_cache = true
82
83
 
83
84
  # additional settings (not part of strict=true)
84
85
  warn_unreachable = true
@@ -5,7 +5,6 @@ import uuid
5
5
 
6
6
  import click
7
7
  import globus_sdk
8
- import globus_sdk.experimental.auth_requirements_error
9
8
 
10
9
  from globus_cli.commands.collection._common import (
11
10
  LazyCurrentIdentity,
@@ -37,14 +37,14 @@ class _FullDataField(Field):
37
37
  "--force-encryption/--no-force-encryption",
38
38
  "force_encryption",
39
39
  default=None,
40
- help="When set, all transfers to and from this collection are always encrypted",
40
+ help="When set, all transfers to and from this collection are always encrypted.",
41
41
  )
42
42
  @click.option(
43
43
  "--sharing-restrict-paths",
44
44
  type=JSONStringOrFile(null="null"),
45
45
  help=(
46
46
  "Path restrictions for sharing data on guest collections "
47
- "based on this collection. This option is only usable on Mapped Collections"
47
+ "based on this collection. This option is only usable on Mapped Collections."
48
48
  ),
49
49
  )
50
50
  @click.option(
@@ -55,7 +55,7 @@ class _FullDataField(Field):
55
55
  "Allow Guest Collections to be created on this Collection. This option "
56
56
  "is only usable on Mapped Collections. If this option is disabled on a "
57
57
  "Mapped Collection which already has associated Guest Collections, "
58
- "those collections will no longer be accessible"
58
+ "those collections will no longer be accessible."
59
59
  ),
60
60
  )
61
61
  @click.option(
@@ -66,7 +66,7 @@ class _FullDataField(Field):
66
66
  "Mapped Collection. This option is only usable on non high assurance "
67
67
  "Mapped Collections and the setting is inherited by the hosted Guest "
68
68
  "Collections. Anonymous write ACLs are enabled by default "
69
- "(requires an endpoint with API v1.8.0)"
69
+ "(requires an endpoint with API v1.8.0)."
70
70
  ),
71
71
  )
72
72
  @click.option(
@@ -74,10 +74,9 @@ class _FullDataField(Field):
74
74
  "domain_name",
75
75
  default=None,
76
76
  help=(
77
- "DNS host name for the collection (mapped "
78
- "collections only). This may be either a host name "
79
- "or a fully-qualified domain name, but if it is the latter "
80
- "it must be a subdomain of the endpoint's domain"
77
+ "DNS host name for the collection (mapped collections only). "
78
+ "This may be either a host name or a fully-qualified domain name, "
79
+ "but if it is the latter it must be a subdomain of the endpoint's domain."
81
80
  ),
82
81
  )
83
82
  @click.option(
@@ -85,8 +84,8 @@ class _FullDataField(Field):
85
84
  "enable_https",
86
85
  default=None,
87
86
  help=(
88
- "Explicitly enable or disable HTTPS support (requires a managed endpoint "
89
- "with API v1.1.0)"
87
+ "Explicitly enable or disable HTTPS support "
88
+ "(requires a managed endpoint with API v1.1.0)."
90
89
  ),
91
90
  )
92
91
  @click.option(
@@ -95,9 +94,9 @@ class _FullDataField(Field):
95
94
  multiple=True,
96
95
  callback=emptyable_opt_list_callback,
97
96
  help=(
98
- "Connector-specific username allowed to create guest collections."
97
+ "Connector-specific username allowed to create guest collections. "
99
98
  f"{_MULTI_USE_OPTION_STR} to allow multiple users. "
100
- 'Set a value of "" to clear this'
99
+ 'Set a value of "" to clear this.'
101
100
  ),
102
101
  )
103
102
  @click.option(
@@ -106,9 +105,9 @@ class _FullDataField(Field):
106
105
  multiple=True,
107
106
  callback=emptyable_opt_list_callback,
108
107
  help=(
109
- "Connector-specific username denied permission to create guest "
110
- f"collections. {_MULTI_USE_OPTION_STR} to deny multiple users. "
111
- 'Set a value of "" to clear this'
108
+ "Connector-specific username denied permission to create guest collections. "
109
+ f"{_MULTI_USE_OPTION_STR} to deny multiple users. "
110
+ 'Set a value of "" to clear this.'
112
111
  ),
113
112
  )
114
113
  @LoginManager.requires_login("auth", "transfer")
@@ -0,0 +1,46 @@
1
+ from __future__ import annotations
2
+
3
+ import uuid
4
+
5
+ import click
6
+
7
+ from globus_cli.parsing import command, endpoint_id_arg, mutex_option_group
8
+
9
+
10
+ @command("activate", deprecated=True, hidden=True)
11
+ @endpoint_id_arg
12
+ @click.option("--web", is_flag=True, default=False)
13
+ @click.option("--no-browser", is_flag=True, default=False)
14
+ @click.option("--myproxy", is_flag=True, default=False)
15
+ @click.option("--myproxy-username", "-U")
16
+ @click.option("--myproxy-password", "-P", hidden=True)
17
+ @click.option("--myproxy-lifetime", type=int)
18
+ @click.option("--no-autoactivate", is_flag=True, default=False)
19
+ @click.option("--force", is_flag=True, default=False)
20
+ @mutex_option_group("--web", "--myproxy")
21
+ def endpoint_activate(
22
+ *,
23
+ endpoint_id: uuid.UUID,
24
+ myproxy: bool,
25
+ myproxy_username: str | None,
26
+ myproxy_password: str | None,
27
+ myproxy_lifetime: int | None,
28
+ web: bool,
29
+ no_browser: bool,
30
+ no_autoactivate: bool,
31
+ force: bool,
32
+ ) -> None:
33
+ """
34
+ Activate an endpoint.
35
+
36
+ Endpoint Activation has been removed from the Globus ecosystem. This command
37
+ no longer does anything.
38
+ """
39
+ click.echo(
40
+ click.style(
41
+ "`globus endpoint activate` has been deprecated and "
42
+ "will be removed in a future release.",
43
+ fg="yellow",
44
+ ),
45
+ err=True,
46
+ )
@@ -0,0 +1,24 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.parsing import command, endpoint_id_arg
6
+
7
+
8
+ @command("deactivate", deprecated=True, hidden=True)
9
+ @endpoint_id_arg
10
+ def endpoint_deactivate(*, endpoint_id: uuid.UUID) -> None:
11
+ """
12
+ Deactivate an endpoint.
13
+
14
+ Endpoint Activation has been removed from the Globus ecosystem. This command
15
+ no longer does anything.
16
+ """
17
+ click.echo(
18
+ click.style(
19
+ "`globus endpoint deactivate` has been deprecated and "
20
+ "will be removed in a future release.",
21
+ fg="yellow",
22
+ ),
23
+ err=True,
24
+ )
@@ -0,0 +1,33 @@
1
+ from __future__ import annotations
2
+
3
+ import uuid
4
+
5
+ import click
6
+
7
+ from globus_cli.parsing import command, endpoint_id_arg
8
+
9
+
10
+ @command("is-activated", deprecated=True, hidden=True)
11
+ @endpoint_id_arg
12
+ @click.option("--until", type=int)
13
+ @click.option("--absolute-time", is_flag=True, show_default=True, default=False)
14
+ def endpoint_is_activated(
15
+ *,
16
+ endpoint_id: uuid.UUID,
17
+ until: int | None,
18
+ absolute_time: bool,
19
+ ) -> None:
20
+ """
21
+ Check if an endpoint is activated or requires activation.
22
+
23
+ Endpoint Activation has been removed from the Globus ecosystem. This command
24
+ no longer does anything.
25
+ """
26
+ click.echo(
27
+ click.style(
28
+ "`globus endpoint is-activated` has been deprecated and "
29
+ "will be removed in a future release.",
30
+ fg="yellow",
31
+ ),
32
+ err=True,
33
+ )
@@ -40,10 +40,11 @@ def set_endpoint_subscription_id(
40
40
  login_manager: LoginManager, *, endpoint_id: uuid.UUID, subscription_id: str
41
41
  ) -> None:
42
42
  """
43
- For GCS endpoints, refer to ``globus gcs endpoint set-subscription-id``. For
44
- GCP endpoints, refer to ``globus gcp set-subscription-id``.
45
-
46
- -----------------------------
43
+ [NOTE]
44
+ ====
45
+ For GCS endpoints, refer to ``globus gcs endpoint set-subscription-id``.
46
+ For GCP endpoints, refer to ``globus gcp set-subscription-id``.
47
+ ====
47
48
 
48
49
  Set an endpoint's subscription ID.
49
50
 
@@ -12,7 +12,6 @@ STANDARD_FIELDS = [
12
12
  Field("ID", "id"),
13
13
  Field("Owner", "owner_string"),
14
14
  Field("Description", "description", wrap_enabled=True),
15
- Field("Activated", "activated"),
16
15
  Field("Shareable", "shareable"),
17
16
  Field("Department", "department"),
18
17
  Field("Keywords", "keywords"),
@@ -35,7 +35,7 @@ def s3(
35
35
  gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
36
36
  auth_client = login_manager.get_auth_client()
37
37
 
38
- # TODO: replace with SDK class once available
38
+ # TODO: replace with SDK class if one becomes available
39
39
  policies = {
40
40
  "DATA_TYPE": "s3_user_credential_policies#1.0.0",
41
41
  "s3_key_id": s3_key_id,
@@ -16,9 +16,7 @@ from globus_cli.utils import CLIAuthRequirementsError
16
16
  # NB: GARE parsing requires other SDK components and therefore needs to be deferred to
17
17
  # avoid the performance impact of non-lazy imports
18
18
  if t.TYPE_CHECKING:
19
- from globus_sdk.experimental.auth_requirements_error import (
20
- GlobusAuthRequirementsError,
21
- )
19
+ from globus_sdk.gare import GARE
22
20
 
23
21
 
24
22
  @command("resume")
@@ -66,7 +64,7 @@ def resume_command(
66
64
  def check_inactive_reason(
67
65
  login_manager: LoginManager,
68
66
  run_id: uuid.UUID,
69
- gare: GlobusAuthRequirementsError | None,
67
+ gare: GARE | None,
70
68
  ) -> None:
71
69
  if gare is None:
72
70
  return
@@ -109,10 +107,8 @@ def check_inactive_reason(
109
107
 
110
108
  def _get_inactive_reason(
111
109
  run_doc: dict[str, t.Any] | globus_sdk.GlobusHTTPResponse
112
- ) -> GlobusAuthRequirementsError | None:
113
- from globus_sdk.experimental.auth_requirements_error import (
114
- to_auth_requirements_error,
115
- )
110
+ ) -> GARE | None:
111
+ from globus_sdk.gare import to_gare
116
112
 
117
113
  if not run_doc.get("status") == "INACTIVE":
118
114
  return None
@@ -121,7 +117,7 @@ def _get_inactive_reason(
121
117
  if not isinstance(details, dict):
122
118
  return None
123
119
 
124
- return to_auth_requirements_error(details)
120
+ return to_gare(details)
125
121
 
126
122
 
127
123
  def _has_required_consent(
@@ -64,6 +64,7 @@ _BASE_GROUP_RECORD_FIELDS = [
64
64
  "my_memberships[].role",
65
65
  formatter=formatters.SortedArray,
66
66
  ),
67
+ Field("Terms and Conditions", "terms_and_conditions", wrap_enabled=True),
67
68
  ]
68
69
  GROUP_FIELDS = [Field("Group ID", "id")] + _BASE_GROUP_RECORD_FIELDS
69
70
  GROUP_FIELDS_W_SUBSCRIPTION = (
@@ -15,6 +15,9 @@ from ._common import group_id_arg
15
15
  @group_id_arg
16
16
  @click.option("--name", help="Name for the group")
17
17
  @click.option("--description", help="Description for the group")
18
+ @click.option(
19
+ "--terms-and-conditions", help="Terms and conditions for group membership"
20
+ )
18
21
  @LoginManager.requires_login("groups")
19
22
  def group_update(
20
23
  login_manager: LoginManager,
@@ -22,6 +25,7 @@ def group_update(
22
25
  group_id: uuid.UUID,
23
26
  name: str | None,
24
27
  description: str | None,
28
+ terms_and_conditions: str | None,
25
29
  ) -> None:
26
30
  """Update an existing group."""
27
31
  groups_client = login_manager.get_groups_client()
@@ -30,10 +34,14 @@ def group_update(
30
34
  group = groups_client.get_group(group_id)
31
35
 
32
36
  # assemble put data using existing values for any field not given
33
- # note that the API does not accept the full group document, so we must
34
- # specify name and description instead of just iterating kwargs
37
+ # note that the API only allows modification of certain fields
38
+ # https://groups.api.globus.org/redoc#tag/groups/operation/update_group_v2_groups__group_id__put
35
39
  data = {}
36
- for attrname, argval in (("name", name), ("description", description)):
40
+ for attrname, argval in (
41
+ ("name", name),
42
+ ("description", description),
43
+ ("terms_and_conditions", terms_and_conditions),
44
+ ):
37
45
  if argval is not None:
38
46
  data[attrname] = argval
39
47
  else:
@@ -42,12 +42,7 @@ def _print_tree(
42
42
  def list_commands() -> None:
43
43
  """
44
44
  Prints the name and a short description of every command available in the globus
45
- cli. Commands are grouped by their parent commands,
46
- e.g. 'globus endpoint activate' is listed as 'activate' under 'globus endpoint'.
47
-
48
- Note that commands with the same listed name under different parent commands
49
- are distinct. e.g. 'globus task update' is a distinct command from
50
- 'globus endpoint update'.
45
+ cli. Commands are grouped by their parent commands.
51
46
  """
52
47
  # get the root context (the click context for the entire CLI tree)
53
48
  root_ctx = click.get_current_context().find_root()
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import click
4
- from globus_sdk.scopes import MutableScope
4
+ from globus_sdk.scopes import Scope
5
5
 
6
6
  from globus_cli import utils
7
7
  from globus_cli.login_manager import LoginManager, compute_timer_scope
@@ -36,7 +36,7 @@ def session_consent(
36
36
  This command is necessary when the CLI needs access to resources which require the
37
37
  user to explicitly consent to access.
38
38
  """
39
- scope_list: list[str | MutableScope] = [
39
+ scope_list: list[str | Scope] = [
40
40
  utils.unquote_cmdprompt_single_quotes(s) for s in scopes
41
41
  ]
42
42
 
@@ -53,6 +53,9 @@ TRANSFER_FIELDS = [
53
53
  SUCCESSFULL_TRANSFER_FIELDS = [
54
54
  Field("Source Path", "source_path"),
55
55
  Field("Destination Path", "destination_path"),
56
+ Field("Size", "size"),
57
+ Field("Checksum Algorithm", "checksum_algorithm"),
58
+ Field("Checksum", "checksum"),
56
59
  ]
57
60
 
58
61
  SKIPPED_PATHS_FIELDS = [
@@ -6,7 +6,7 @@ import uuid
6
6
 
7
7
  import click
8
8
  import globus_sdk
9
- from globus_sdk.scopes import GCSCollectionScopeBuilder, MutableScope
9
+ from globus_sdk.scopes import GCSCollectionScopeBuilder, Scope
10
10
 
11
11
  from globus_cli.endpointish import Endpointish
12
12
  from globus_cli.login_manager import LoginManager, is_client_login
@@ -102,11 +102,22 @@ e.g. '1h30m', '500s', '10d'
102
102
  "--delete",
103
103
  is_flag=True,
104
104
  default=False,
105
+ hidden=True,
105
106
  help=(
106
107
  "Delete any files in the destination directory not contained in the source. "
107
108
  'This results in "directory mirroring." Only valid on recursive transfers.'
108
109
  ),
109
110
  )
111
+ @click.option(
112
+ "--delete-destination-extra",
113
+ is_flag=True,
114
+ default=False,
115
+ help=(
116
+ "Delete any files in the destination directory not contained in the source. "
117
+ 'This results in "directory mirroring." Only valid on recursive transfers.'
118
+ ),
119
+ )
120
+ @mutex_option_group("--delete", "--delete-destination-extra")
110
121
  @LoginManager.requires_login("auth", "timer", "transfer")
111
122
  def transfer_command(
112
123
  login_manager: LoginManager,
@@ -122,6 +133,7 @@ def transfer_command(
122
133
  stop_after_date: datetime.datetime | None,
123
134
  stop_after_runs: int | None,
124
135
  delete: bool,
136
+ delete_destination_extra: bool,
125
137
  sync_level: t.Literal["exists", "size", "mtime", "checksum"] | None,
126
138
  encrypt_data: bool,
127
139
  verify_checksum: bool,
@@ -174,21 +186,30 @@ def transfer_command(
174
186
  source_endpoint, cmd_source_path = source
175
187
  dest_endpoint, cmd_dest_path = destination
176
188
 
177
- if recursive is not None:
178
- if batch:
179
- # avoid 'mutex_option_group', emit a custom error message
180
- option_name = "--recursive" if recursive else "--no-recursive"
181
- raise click.UsageError(
182
- f"You cannot use {option_name} in addition to --batch. "
183
- f"Instead, use {option_name} on lines of --batch input which need it."
184
- )
189
+ if delete:
190
+ msg = (
191
+ "`--delete` has been deprecated and will be removed in a future release. "
192
+ "Use `--delete-destination-extra` instead."
193
+ )
194
+ click.echo(click.style(msg, fg="yellow"), err=True)
185
195
 
186
- if delete and not recursive:
187
- msg = "The --delete option cannot be specified with --no-recursion."
188
- raise click.UsageError(msg)
196
+ # avoid 'mutex_option_group', emit a custom error message
197
+ if recursive is not None and batch:
198
+ option_name = "--recursive" if recursive else "--no-recursive"
199
+ raise click.UsageError(
200
+ f"You cannot use `{option_name}` in addition to `--batch`. "
201
+ f"Instead, use `{option_name}` on lines of `--batch` input which need it."
202
+ )
203
+ if recursive is False and (delete_destination_extra or delete):
204
+ option_name = (
205
+ "--delete-destination-extra" if delete_destination_extra else "--delete"
206
+ )
207
+ raise click.UsageError(
208
+ f"The `{option_name}` option cannot be specified with `--no-recursive`."
209
+ )
189
210
  if (cmd_source_path is None or cmd_dest_path is None) and (not batch):
190
211
  raise click.UsageError(
191
- "transfer requires either SOURCE_PATH and DEST_PATH or --batch"
212
+ "Transfer requires either `SOURCE_PATH` and `DEST_PATH` or `--batch`"
192
213
  )
193
214
 
194
215
  # Interval must be null iff the timer is 'once', i.e. stop-after-runs == 1.
@@ -197,12 +218,12 @@ def transfer_command(
197
218
  start_ = resolve_optional_local_time(start)
198
219
  if stop_after_runs == 1:
199
220
  if interval is not None:
200
- raise click.UsageError("'--interval' is invalid with `--stop-after-runs=1`")
221
+ raise click.UsageError("`--interval` is invalid with `--stop-after-runs=1`")
201
222
  schedule = globus_sdk.OnceTimerSchedule(datetime=start_)
202
223
  else:
203
224
  if interval is None:
204
225
  raise click.UsageError(
205
- "'--interval' is required unless `--stop-after-runs=1`"
226
+ "`--interval` is required unless `--stop-after-runs=1`"
206
227
  )
207
228
 
208
229
  end: dict[str, t.Any] | globus_sdk.MissingType = globus_sdk.MISSING
@@ -278,7 +299,7 @@ def transfer_command(
278
299
  encrypt_data=encrypt_data,
279
300
  skip_source_errors=skip_source_errors,
280
301
  fail_on_quota_errors=fail_on_quota_errors,
281
- delete_destination_extra=delete,
302
+ delete_destination_extra=(delete or delete_destination_extra),
282
303
  # mypy can't understand kwargs expansion very well
283
304
  **notify, # type: ignore[arg-type]
284
305
  )
@@ -314,14 +335,13 @@ def resolve_optional_local_time(
314
335
 
315
336
  def _derive_needed_scopes(
316
337
  needs_data_access: list[str],
317
- ) -> dict[str, MutableScope]:
338
+ ) -> dict[str, Scope]:
318
339
  # Render the fully nested scope strings for each target
319
340
  scopes_needed = {}
320
341
  for target in needs_data_access:
321
342
  target_scope = GCSCollectionScopeBuilder(target).data_access
322
343
  scopes_needed[target] = _ez_make_nested_scope(
323
344
  globus_sdk.TimerClient.scopes.timer,
324
- "https://auth.globus.org/scopes/actions.globus.org/transfer/transfer",
325
345
  globus_sdk.TransferClient.scopes.all,
326
346
  target_scope,
327
347
  )
@@ -330,7 +350,7 @@ def _derive_needed_scopes(
330
350
 
331
351
  def _derive_missing_scopes(
332
352
  auth_client: CustomAuthClient,
333
- scopes_needed: dict[str, MutableScope],
353
+ scopes_needed: dict[str, Scope],
334
354
  ) -> list[str]:
335
355
  # read the identity ID stored from the login flow
336
356
  user_identity_id = get_current_identity_id()
@@ -350,8 +370,8 @@ def _derive_missing_scopes(
350
370
 
351
371
 
352
372
  # shorthand helper for constructing a nested scope
353
- def _ez_make_nested_scope(*scope_strings: str) -> MutableScope:
354
- current_node = MutableScope(scope_strings[-1])
373
+ def _ez_make_nested_scope(*scope_strings: str) -> Scope:
374
+ current_node = Scope(scope_strings[-1])
355
375
  for current_scope in scope_strings[-2::-1]:
356
- current_node = MutableScope(current_scope, dependencies=[current_node])
376
+ current_node = Scope(current_scope, dependencies=[current_node])
357
377
  return current_node
@@ -16,9 +16,7 @@ from globus_cli.utils import CLIAuthRequirementsError
16
16
  # NB: GARE parsing requires other SDK components and therefore needs to be deferred to
17
17
  # avoid the performance impact of non-lazy imports
18
18
  if t.TYPE_CHECKING:
19
- from globus_sdk.experimental.auth_requirements_error import (
20
- GlobusAuthRequirementsError,
21
- )
19
+ from globus_sdk.gare import GARE
22
20
 
23
21
 
24
22
  @command("resume", short_help="Resume a timer.")
@@ -59,7 +57,7 @@ def resume_command(
59
57
  def check_inactive_reason(
60
58
  login_manager: LoginManager,
61
59
  timer_id: uuid.UUID,
62
- gare: GlobusAuthRequirementsError | None,
60
+ gare: GARE | None,
63
61
  ) -> None:
64
62
  if gare is None:
65
63
  return
@@ -102,10 +100,8 @@ def check_inactive_reason(
102
100
 
103
101
  def _get_inactive_reason(
104
102
  timer_doc: dict[str, t.Any] | globus_sdk.GlobusHTTPResponse
105
- ) -> GlobusAuthRequirementsError | None:
106
- from globus_sdk.experimental.auth_requirements_error import (
107
- to_auth_requirements_error,
108
- )
103
+ ) -> GARE | None:
104
+ from globus_sdk.gare import to_gare
109
105
 
110
106
  if timer_doc.get("status") != "inactive":
111
107
  return None
@@ -114,7 +110,7 @@ def _get_inactive_reason(
114
110
  if reason.get("cause") != "globus_auth_requirements":
115
111
  return None
116
112
 
117
- return to_auth_requirements_error(reason.get("detail", {}))
113
+ return to_gare(reason.get("detail", {}))
118
114
 
119
115
 
120
116
  def _has_required_consent(