globus-cli 3.22.0__tar.gz → 3.24.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 (261) hide show
  1. {globus-cli-3.22.0 → globus-cli-3.24.0}/PKG-INFO +11 -24
  2. globus-cli-3.24.0/pyproject.toml +79 -0
  3. globus-cli-3.24.0/setup.cfg +4 -0
  4. globus-cli-3.24.0/setup.py +3 -0
  5. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/_warnings.py +2 -7
  6. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/api.py +8 -13
  7. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/_common.py +31 -0
  8. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/create/__init__.py +1 -0
  9. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/create/guest.py +12 -20
  10. globus-cli-3.24.0/src/globus_cli/commands/collection/create/mapped.py +317 -0
  11. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/list.py +2 -8
  12. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/update.py +5 -17
  13. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/delete.py +2 -3
  14. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/create.py +3 -16
  15. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/local_id.py +0 -1
  16. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/create.py +2 -7
  17. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/update.py +3 -8
  18. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/create.py +2 -7
  19. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/search.py +2 -7
  20. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -11
  21. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/add.py +2 -7
  22. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/delete.py +2 -8
  23. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/update.py +2 -7
  24. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +10 -1
  25. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/show.py +1 -1
  26. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/update.py +5 -9
  27. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/list.py +1 -1
  28. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/list.py +4 -9
  29. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/__init__.py +1 -0
  30. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/create/_common.py +6 -4
  31. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/create/guest.py +1 -1
  32. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -1
  33. globus-cli-3.24.0/src/globus_cli/commands/gcp/set_subscription_id.py +67 -0
  34. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/update/guest.py +1 -1
  35. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -6
  36. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcs/__init__.py +4 -1
  37. globus-cli-3.24.0/src/globus_cli/commands/gcs/endpoint/__init__.py +11 -0
  38. globus-cli-3.24.0/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +72 -0
  39. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/invite/_common.py +2 -8
  40. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/add.py +2 -7
  41. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/invite.py +2 -7
  42. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/set_policies.py +3 -8
  43. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/login.py +1 -1
  44. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/ls.py +2 -8
  45. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/rm.py +1 -2
  46. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/role/create.py +2 -7
  47. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/list.py +3 -17
  48. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/__init__.py +1 -1
  49. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/_common.py +12 -8
  50. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/create/__init__.py +1 -1
  51. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/create/transfer.py +13 -19
  52. globus-cli-3.24.0/src/globus_cli/commands/timer/delete.py +27 -0
  53. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/list.py +4 -4
  54. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/pause.py +3 -3
  55. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/timer/resume.py +5 -5
  56. globus-cli-3.24.0/src/globus_cli/commands/timer/show.py +21 -0
  57. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/transfer.py +3 -10
  58. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/manager.py +6 -5
  59. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/scopes.py +2 -8
  60. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/tokenstore.py +6 -11
  61. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/__init__.py +4 -5
  62. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/command_state.py +13 -11
  63. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/commands.py +29 -37
  64. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_classes.py +14 -17
  65. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/__init__.py +1 -2
  66. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/delimited.py +1 -10
  67. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +12 -4
  68. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -3
  69. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/location.py +1 -6
  70. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/notify_param.py +2 -4
  71. globus-cli-3.24.0/src/globus_cli/parsing/param_types/nullable.py +50 -0
  72. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/task_path.py +1 -6
  73. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/timedelta.py +1 -1
  74. globus-cli-3.24.0/src/globus_cli/parsing/shared_callbacks.py +19 -0
  75. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/shared_options/__init__.py +86 -91
  76. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/shared_options/endpointish.py +40 -47
  77. globus-cli-3.24.0/src/globus_cli/parsing/shared_options/id_args.py +30 -0
  78. globus-cli-3.24.0/src/globus_cli/parsing/shared_options/transfer_task_options.py +122 -0
  79. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/shell_completion.py +8 -3
  80. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/auth.py +3 -9
  81. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/types.py +1 -16
  82. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/version.py +1 -1
  83. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli.egg-info/PKG-INFO +11 -24
  84. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli.egg-info/SOURCES.txt +6 -1
  85. globus-cli-3.24.0/src/globus_cli.egg-info/requires.txt +23 -0
  86. globus-cli-3.22.0/setup.cfg +0 -29
  87. globus-cli-3.22.0/setup.py +0 -86
  88. globus-cli-3.22.0/src/globus_cli/commands/timer/delete.py +0 -27
  89. globus-cli-3.22.0/src/globus_cli/commands/timer/show.py +0 -21
  90. globus-cli-3.22.0/src/globus_cli/parsing/param_types/nullable.py +0 -83
  91. globus-cli-3.22.0/src/globus_cli/parsing/shared_options/id_args.py +0 -45
  92. globus-cli-3.22.0/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -164
  93. globus-cli-3.22.0/src/globus_cli.egg-info/requires.txt +0 -39
  94. {globus-cli-3.22.0 → globus-cli-3.24.0}/LICENSE +0 -0
  95. {globus-cli-3.22.0 → globus-cli-3.24.0}/README.rst +0 -0
  96. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/__init__.py +0 -0
  97. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/__main__.py +0 -0
  98. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/__init__.py +0 -0
  99. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/_common.py +0 -0
  100. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  101. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  102. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  103. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  104. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  105. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  106. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  107. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  108. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/__init__.py +0 -0
  109. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/delete.py +0 -0
  110. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/collection/show.py +0 -0
  111. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
  112. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  113. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/activate.py +0 -0
  114. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
  115. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  116. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
  117. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  118. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  119. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  120. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  121. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  122. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  123. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  124. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  125. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  126. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  127. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  128. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
  129. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/list.py +0 -0
  130. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
  131. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  132. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  133. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  134. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  135. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  136. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  137. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  138. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  139. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  140. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  141. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  142. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  143. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  144. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/_common.py +0 -0
  145. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/create.py +0 -0
  146. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/delete.py +0 -0
  147. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  148. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  149. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  150. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  151. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
  152. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  153. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  154. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  155. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  156. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/show.py +0 -0
  157. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/start.py +0 -0
  158. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/flows/update.py +0 -0
  159. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  160. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  161. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/get_identities.py +0 -0
  162. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/__init__.py +0 -0
  163. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/_common.py +0 -0
  164. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/create.py +0 -0
  165. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/delete.py +0 -0
  166. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  167. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  168. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  169. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/join.py +0 -0
  170. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/leave.py +0 -0
  171. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/list.py +0 -0
  172. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  173. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  174. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/list.py +0 -0
  175. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  176. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  177. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/show.py +0 -0
  178. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/group/update.py +0 -0
  179. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/list_commands.py +0 -0
  180. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/logout.py +0 -0
  181. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/mkdir.py +0 -0
  182. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/rename.py +0 -0
  183. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/__init__.py +0 -0
  184. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/_common.py +0 -0
  185. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  186. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  187. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/create.py +0 -0
  188. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  189. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/list.py +0 -0
  190. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  191. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  192. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  193. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/index/show.py +0 -0
  194. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/ingest.py +0 -0
  195. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/query.py +0 -0
  196. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  197. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  198. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  199. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  200. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/task/list.py +0 -0
  201. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/search/task/show.py +0 -0
  202. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/session/__init__.py +0 -0
  203. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/session/consent.py +0 -0
  204. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/session/show.py +0 -0
  205. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/session/update.py +0 -0
  206. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/__init__.py +0 -0
  207. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/_common.py +0 -0
  208. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/cancel.py +0 -0
  209. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/event_list.py +0 -0
  210. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  211. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  212. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/show.py +0 -0
  213. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/update.py +0 -0
  214. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/task/wait.py +0 -0
  215. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/update.py +0 -0
  216. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/version.py +0 -0
  217. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/commands/whoami.py +0 -0
  218. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/constants.py +0 -0
  219. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/endpointish/__init__.py +0 -0
  220. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/endpointish/endpointish.py +0 -0
  221. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  222. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/endpointish/errors.py +0 -0
  223. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/exception_handling/__init__.py +0 -0
  224. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/exception_handling/hooks.py +0 -0
  225. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/exception_handling/registry.py +0 -0
  226. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/globus_cli_flake8.py +0 -0
  227. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/__init__.py +0 -0
  228. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  229. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/auth_flows.py +0 -0
  230. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/client_login.py +0 -0
  231. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/context.py +0 -0
  232. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/errors.py +0 -0
  233. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/local_server.py +0 -0
  234. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/login_manager/utils.py +0 -0
  235. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  236. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
  237. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/reflect.py +0 -0
  238. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/__init__.py +0 -0
  239. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/gcs.py +0 -0
  240. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/__init__.py +0 -0
  241. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/activation.py +0 -0
  242. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/client.py +0 -0
  243. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/data.py +0 -0
  244. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/delegate_proxy.py +0 -0
  245. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  246. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/__init__.py +0 -0
  247. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/awscli_text.py +0 -0
  248. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/context.py +0 -0
  249. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/errors.py +0 -0
  250. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/field.py +0 -0
  251. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  252. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/formatters/auth.py +0 -0
  253. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/formatters/base.py +0 -0
  254. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  255. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
  256. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/printer.py +0 -0
  257. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/termio/server_timing.py +0 -0
  258. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli/utils.py +0 -0
  259. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  260. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  261. {globus-cli-3.22.0 → globus-cli-3.24.0}/src/globus_cli.egg-info/top_level.txt +0 -0
@@ -1,52 +1,39 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: globus-cli
3
- Version: 3.22.0
3
+ Version: 3.24.0
4
4
  Summary: Globus CLI
5
- Home-page: https://github.com/globus/globus-cli
6
- Author: Stephen Rosen
7
- Author-email: sirosen@globus.org
5
+ Author-email: Stephen Rosen <sirosen@globus.org>
6
+ Project-URL: homepage, https://github.com/globus/globus-cli
8
7
  Keywords: globus,cli,command line
9
8
  Classifier: Development Status :: 5 - Production/Stable
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: License :: OSI Approved :: Apache Software License
12
11
  Classifier: Operating System :: POSIX
13
12
  Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3.7
15
13
  Classifier: Programming Language :: Python :: 3.8
16
14
  Classifier: Programming Language :: Python :: 3.9
17
15
  Classifier: Programming Language :: Python :: 3.10
18
16
  Classifier: Programming Language :: Python :: 3.11
19
17
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.7
18
+ Requires-Python: >=3.8
21
19
  Description-Content-Type: text/x-rst
22
20
  License-File: LICENSE
23
- Requires-Dist: globus-sdk==3.33.0
21
+ Requires-Dist: globus-sdk==3.34.0
24
22
  Requires-Dist: click<9,>=8.1.4
25
23
  Requires-Dist: jmespath==1.0.1
26
24
  Requires-Dist: packaging>=17.0
25
+ Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
27
26
  Requires-Dist: requests<3.0.0,>=2.19.1
28
27
  Requires-Dist: cryptography>=3.3.1
29
- Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
30
28
  Provides-Extra: test
31
29
  Requires-Dist: coverage>=7; extra == "test"
32
30
  Requires-Dist: pytest>=7; extra == "test"
33
- Requires-Dist: pytest-xdist<3; extra == "test"
34
- Requires-Dist: pytest-timeout<2; extra == "test"
35
- Requires-Dist: click-type-test==0.0.5; python_version >= "3.10" and extra == "test"
36
- Requires-Dist: responses==0.23.3; extra == "test"
37
- Requires-Dist: ruamel.yaml==0.17.32; extra == "test"
31
+ Requires-Dist: pytest-xdist<4; extra == "test"
32
+ Requires-Dist: pytest-timeout<3; extra == "test"
33
+ Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
34
+ Requires-Dist: responses==0.24.1; extra == "test"
35
+ Requires-Dist: ruamel.yaml==0.18.5; extra == "test"
38
36
  Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
39
- Provides-Extra: development
40
- Requires-Dist: coverage>=7; extra == "development"
41
- Requires-Dist: pytest>=7; extra == "development"
42
- Requires-Dist: pytest-xdist<3; extra == "development"
43
- Requires-Dist: pytest-timeout<2; extra == "development"
44
- Requires-Dist: click-type-test==0.0.5; python_version >= "3.10" and extra == "development"
45
- Requires-Dist: responses==0.23.3; extra == "development"
46
- Requires-Dist: ruamel.yaml==0.17.32; extra == "development"
47
- Requires-Dist: setuptools; python_version >= "3.12" and extra == "development"
48
- Requires-Dist: tox>=4; extra == "development"
49
- Requires-Dist: scriv==1.3.1; extra == "development"
50
37
 
51
38
  .. image:: https://github.com/globus/globus-cli/workflows/build/badge.svg?event=push
52
39
  :alt: build status
@@ -0,0 +1,79 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.2"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "globus-cli"
7
+ description = "Globus CLI"
8
+ readme = "README.rst"
9
+ authors = [
10
+ { name = "Stephen Rosen", email = "sirosen@globus.org" },
11
+ ]
12
+ keywords = [
13
+ "globus",
14
+ "cli",
15
+ "command line",
16
+ ]
17
+ classifiers = [
18
+ "Development Status :: 5 - Production/Stable",
19
+ "Intended Audience :: Developers",
20
+ "License :: OSI Approved :: Apache Software License",
21
+ "Operating System :: POSIX",
22
+ "Programming Language :: Python",
23
+ "Programming Language :: Python :: 3.8",
24
+ "Programming Language :: Python :: 3.9",
25
+ "Programming Language :: Python :: 3.10",
26
+ "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
+ ]
29
+ requires-python = ">=3.8"
30
+ dependencies = [
31
+ "globus-sdk==3.34.0",
32
+ "click>=8.1.4,<9",
33
+ "jmespath==1.0.1",
34
+ "packaging>=17.0",
35
+ "typing_extensions>=4.0;python_version<'3.11'",
36
+ # these are dependencies of the SDK, but they are used directly in the CLI
37
+ # declare them here in case the underlying lib ever changes
38
+ "requests>=2.19.1,<3.0.0",
39
+ "cryptography>=3.3.1",
40
+ ]
41
+ dynamic = ["version"]
42
+
43
+ [project.urls]
44
+ homepage = "https://github.com/globus/globus-cli"
45
+
46
+ [project.optional-dependencies]
47
+ test = [
48
+ "coverage>=7",
49
+ "pytest>=7",
50
+ "pytest-xdist<4",
51
+ "pytest-timeout<3",
52
+ "click-type-test==0.0.7;python_version>='3.10'",
53
+ "responses==0.24.1",
54
+ # loading test fixture data
55
+ "ruamel.yaml==0.18.5",
56
+ # Python 3.12 needs setuptools.
57
+ "setuptools;python_version>='3.12'",
58
+ ]
59
+
60
+ [project.scripts]
61
+ globus = "globus_cli:main"
62
+
63
+ [tool.setuptools.dynamic.version]
64
+ attr = "globus_cli.version.__version__"
65
+
66
+ [tool.isort]
67
+ profile = "black"
68
+
69
+ [tool.pytest.ini_options]
70
+ addopts = "--timeout 3"
71
+ filterwarnings = ["error"]
72
+
73
+ [tool.scriv]
74
+ version = "literal: src/globus_cli/version.py: __version__"
75
+ categories = "Bugfixes, Enhancements, Other"
76
+ # we're using adoc, we'll produce fragments as 'md' and "fix" later
77
+ format = "md"
78
+ output_file = "changelog.adoc"
79
+ entry_title_template = '{{ version }} ({{ date.strftime("%Y-%m-%d") }})'
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ from setuptools import setup
2
+
3
+ setup()
@@ -1,11 +1,6 @@
1
- import sys
1
+ import typing as t
2
2
  import warnings
3
3
 
4
- if sys.version_info >= (3, 8):
5
- from typing import Literal
6
- else:
7
- from typing_extensions import Literal
8
-
9
4
  # this bool turns off all warning controls, handing control of python
10
5
  # warnings to the testsuite
11
6
  # this ensures that `pytest --filterwarnings error` works
@@ -13,7 +8,7 @@ _TEST_WARNING_CONTROL: bool = False
13
8
 
14
9
 
15
10
  def simplefilter(
16
- filterstr: Literal["default", "error", "ignore", "always", "module", "once"]
11
+ filterstr: t.Literal["default", "error", "ignore", "always", "module", "once"]
17
12
  ) -> None:
18
13
  """
19
14
  wrap `warnings.simplefilter` with a check on `_TEST_WARNING_CONTROL`
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
- import sys
5
4
  import typing as t
6
5
  import uuid
7
6
  from collections import defaultdict
@@ -16,11 +15,6 @@ from globus_cli.parsing import command, endpoint_id_arg, group, mutex_option_gro
16
15
  from globus_cli.termio import display
17
16
  from globus_cli.types import ServiceNameLiteral
18
17
 
19
- if sys.version_info >= (3, 8):
20
- from typing import Literal
21
- else:
22
- from typing_extensions import Literal
23
-
24
18
  C = t.TypeVar("C", bound=t.Union[t.Callable, click.Command])
25
19
 
26
20
 
@@ -255,13 +249,13 @@ def _service_command_params(cmd: C) -> C:
255
249
  def _execute_service_command(
256
250
  client: globus_sdk.BaseClient,
257
251
  *,
258
- method: Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
252
+ method: t.Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
259
253
  path: str,
260
254
  query_param: tuple[tuple[str, str], ...],
261
255
  header: tuple[tuple[str, str], ...],
262
256
  body: str | None,
263
257
  body_file: t.TextIO | None,
264
- content_type: Literal["json", "form", "text", "none", "auto"],
258
+ content_type: t.Literal["json", "form", "text", "none", "auto"],
265
259
  allow_errors: bool,
266
260
  allow_redirects: bool,
267
261
  no_retry: bool,
@@ -356,7 +350,7 @@ def api_command() -> None:
356
350
 
357
351
  # note: this must be written as a separate call and not inlined into the loop body
358
352
  # this ensures that it acts as a closure over 'service_name'
359
- def build_command(service_name: ServiceNameLiteral | Literal["gcs"]) -> click.Command:
353
+ def build_command(service_name: ServiceNameLiteral | t.Literal["gcs"]) -> click.Command:
360
354
  helptext = f"""\
361
355
  Make API calls to Globus {service_name.title()}
362
356
 
@@ -377,13 +371,13 @@ sends a 'GET' request to '{_get_url(service_name)}foo/bar'
377
371
  def service_command(
378
372
  login_manager: LoginManager,
379
373
  *,
380
- method: Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
374
+ method: t.Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
381
375
  path: str,
382
376
  query_param: tuple[tuple[str, str], ...],
383
377
  header: tuple[tuple[str, str], ...],
384
378
  body: str | None,
385
379
  body_file: t.TextIO | None,
386
- content_type: Literal["json", "form", "text", "none", "auto"],
380
+ content_type: t.Literal["json", "form", "text", "none", "auto"],
387
381
  allow_errors: bool,
388
382
  allow_redirects: bool,
389
383
  no_retry: bool,
@@ -419,13 +413,13 @@ sends a 'GET' request to '{_get_url(service_name)}foo/bar'
419
413
  login_manager: LoginManager,
420
414
  *,
421
415
  endpoint_id: uuid.UUID,
422
- method: Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
416
+ method: t.Literal["HEAD", "GET", "PUT", "POST", "PATCH", "DELETE"],
423
417
  path: str,
424
418
  query_param: tuple[tuple[str, str], ...],
425
419
  header: tuple[tuple[str, str], ...],
426
420
  body: str | None,
427
421
  body_file: t.TextIO | None,
428
- content_type: Literal["json", "form", "text", "none", "auto"],
422
+ content_type: t.Literal["json", "form", "text", "none", "auto"],
429
423
  allow_errors: bool,
430
424
  allow_redirects: bool,
431
425
  no_retry: bool,
@@ -454,5 +448,6 @@ sends a 'GET' request to '{_get_url(service_name)}foo/bar'
454
448
 
455
449
  for service_name_ in CLI_SCOPE_REQUIREMENTS:
456
450
  api_command.add_command(build_command(service_name_))
451
+ del service_name_
457
452
 
458
453
  api_command.add_command(build_command("gcs"))
@@ -1,11 +1,42 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import click
3
4
  import globus_sdk
4
5
 
6
+ from globus_cli.login_manager.utils import get_current_identity_id
5
7
  from globus_cli.termio import Field, formatters
6
8
  from globus_cli.types import DATA_CONTAINER_T
7
9
 
8
10
 
11
+ class LazyCurrentIdentity:
12
+ def __init__(self, value: str | None) -> None:
13
+ self._value = value
14
+
15
+ @property
16
+ def value(self) -> str:
17
+ if self._value is None:
18
+ self._value = get_current_identity_id()
19
+ return str(self._value)
20
+
21
+
22
+ def _identity_id_callback(
23
+ ctx: click.Context | None,
24
+ param: click.Parameter | None,
25
+ value: str | None,
26
+ ) -> LazyCurrentIdentity:
27
+ return LazyCurrentIdentity(value)
28
+
29
+
30
+ # NB: this is implemented using a callback rather than a custom type because this lets
31
+ # us ensure that we convert the default of `None` to `LazyCurrentIdentity(None)`
32
+ # a custom type would still pass a default of `None` unless a callback were specified
33
+ identity_id_option = click.option(
34
+ "--identity-id",
35
+ help="User who should own the collection (defaults to the current user)",
36
+ callback=_identity_id_callback,
37
+ )
38
+
39
+
9
40
  def filter_fields(check_fields: list[Field], data: DATA_CONTAINER_T) -> list[Field]:
10
41
  return [f for f in check_fields if f.get_value(data) is not None]
11
42
 
@@ -5,6 +5,7 @@ from globus_cli.parsing import group
5
5
  "create",
6
6
  lazy_subcommands={
7
7
  "guest": (".guest", "collection_create_guest"),
8
+ "mapped": (".mapped", "collection_create_mapped"),
8
9
  },
9
10
  )
10
11
  def collection_create() -> None:
@@ -8,14 +8,15 @@ import globus_sdk
8
8
  import globus_sdk.experimental.auth_requirements_error
9
9
 
10
10
  from globus_cli.commands.collection._common import (
11
+ LazyCurrentIdentity,
11
12
  filter_fields,
13
+ identity_id_option,
12
14
  standard_collection_fields,
13
15
  )
14
16
  from globus_cli.constants import ExplicitNullType
15
17
  from globus_cli.endpointish import EntityType
16
18
  from globus_cli.login_manager import LoginManager, MissingLoginError
17
19
  from globus_cli.login_manager.context import LoginContext
18
- from globus_cli.login_manager.utils import get_current_identity_id
19
20
  from globus_cli.parsing import command, endpointish_params, mutex_option_group
20
21
  from globus_cli.services.gcs import CustomGCSClient
21
22
  from globus_cli.termio import TextMode, display
@@ -41,17 +42,7 @@ from globus_cli.termio import TextMode, display
41
42
  )
42
43
  @mutex_option_group("--user-credential-id", "--local-username")
43
44
  @endpointish_params.create(name="collection")
44
- @click.option(
45
- "--identity-id",
46
- default=None,
47
- help="User who should own the collection (defaults to the current user)",
48
- )
49
- @click.option(
50
- "--public/--private",
51
- "public",
52
- default=True,
53
- help="Set the collection to be public or private",
54
- )
45
+ @identity_id_option
55
46
  @click.option(
56
47
  "--enable-https/--disable-https",
57
48
  "enable_https",
@@ -77,7 +68,7 @@ def collection_create_guest(
77
68
  display_name: str,
78
69
  enable_https: bool | None,
79
70
  force_encryption: bool | None,
80
- identity_id: str | None,
71
+ identity_id: LazyCurrentIdentity,
81
72
  info_link: str | None | ExplicitNullType,
82
73
  keywords: list[str] | None,
83
74
  public: bool,
@@ -101,7 +92,7 @@ def collection_create_guest(
101
92
 
102
93
  if not user_credential_id:
103
94
  user_credential_id = _select_user_credential_id(
104
- gcs_client, mapped_collection_id, local_username, identity_id
95
+ gcs_client, mapped_collection_id, local_username, identity_id.value
105
96
  )
106
97
 
107
98
  converted_kwargs: dict[str, t.Any] = ExplicitNullType.nullify_dict(
@@ -115,7 +106,7 @@ def collection_create_guest(
115
106
  "display_name": display_name,
116
107
  "enable_https": enable_https,
117
108
  "force_encryption": force_encryption,
118
- "identity_id": identity_id,
109
+ "identity_id": identity_id.value,
119
110
  "info_link": info_link,
120
111
  "keywords": keywords,
121
112
  "mapped_collection_id": mapped_collection_id,
@@ -155,7 +146,7 @@ def _select_user_credential_id(
155
146
  gcs_client: CustomGCSClient,
156
147
  mapped_collection_id: uuid.UUID,
157
148
  local_username: str | None,
158
- identity_id: str | None,
149
+ identity_id: str,
159
150
  ) -> uuid.UUID:
160
151
  """
161
152
  In the case that the user didn't specify a user credential id, see if we can select
@@ -167,9 +158,6 @@ def _select_user_credential_id(
167
158
  mapped_collection = gcs_client.get_collection(mapped_collection_id)
168
159
  storage_gateway_id = mapped_collection["storage_gateway_id"]
169
160
 
170
- if not identity_id:
171
- identity_id = get_current_identity_id()
172
-
173
161
  # Grab the list of user credentials which match the endpoint, storage gateway,
174
162
  # identity id, and local username (if specified)
175
163
  user_creds = [
@@ -209,7 +197,11 @@ def _is_session_timeout_error(e: globus_sdk.GCSAPIError) -> bool:
209
197
  Detect session timeouts related to HA collections.
210
198
  This is a hacky workaround until we have better GARE support across the CLI.
211
199
  """
212
- detail_type = getattr(e, "detail", {}).get("DATA_TYPE")
200
+ detail = getattr(e, "detail", {})
201
+ if not isinstance(detail, dict):
202
+ return False
203
+
204
+ detail_type = detail.get("DATA_TYPE")
213
205
  return (
214
206
  e.http_status == 403
215
207
  and isinstance(detail_type, str)