globus-cli 3.34.0__tar.gz → 3.35.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. {globus_cli-3.34.0/src/globus_cli.egg-info → globus_cli-3.35.1}/PKG-INFO +3 -16
  2. globus_cli-3.35.1/README.rst +14 -0
  3. {globus_cli-3.34.0 → globus_cli-3.35.1}/pyproject.toml +37 -4
  4. globus_cli-3.35.1/src/globus_cli/_click_compat.py +55 -0
  5. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/api.py +5 -2
  6. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/create/guest.py +4 -0
  7. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/list.py +16 -1
  8. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/update.py +4 -6
  9. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/create.py +38 -0
  10. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/list.py +24 -6
  11. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/list.py +34 -2
  12. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/show.py +17 -1
  13. globus_cli-3.35.1/src/globus_cli/commands/flows/start.py +310 -0
  14. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/update.py +36 -0
  15. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/create/guest.py +4 -0
  16. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/update/guest.py +4 -0
  17. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/update.py +3 -1
  18. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/list_commands.py +2 -5
  19. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/login.py +3 -1
  20. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/commands.py +18 -13
  21. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/__init__.py +6 -0
  22. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/delimited.py +59 -5
  23. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +4 -1
  24. globus_cli-3.35.1/src/globus_cli/parsing/param_types/guest_activity_notify_param.py +200 -0
  25. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/identity_type.py +4 -1
  26. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/json_strorfile.py +3 -1
  27. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/notify_param.py +4 -1
  28. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/nullable.py +7 -3
  29. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shared_options/__init__.py +42 -1
  30. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/reflect.py +4 -4
  31. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/utils.py +1 -4
  32. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/version.py +1 -1
  33. {globus_cli-3.34.0 → globus_cli-3.35.1/src/globus_cli.egg-info}/PKG-INFO +3 -16
  34. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli.egg-info/SOURCES.txt +2 -0
  35. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli.egg-info/requires.txt +1 -1
  36. globus_cli-3.34.0/README.rst +0 -27
  37. globus_cli-3.34.0/src/globus_cli/commands/flows/start.py +0 -154
  38. {globus_cli-3.34.0 → globus_cli-3.35.1}/LICENSE +0 -0
  39. {globus_cli-3.34.0 → globus_cli-3.35.1}/setup.cfg +0 -0
  40. {globus_cli-3.34.0 → globus_cli-3.35.1}/setup.py +0 -0
  41. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/__init__.py +0 -0
  42. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/__main__.py +0 -0
  43. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/_warnings.py +0 -0
  44. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/__init__.py +0 -0
  45. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/_common.py +0 -0
  46. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  47. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/_common.py +0 -0
  48. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/create.py +0 -0
  49. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/delete.py +0 -0
  50. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/list.py +0 -0
  51. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/rename.py +0 -0
  52. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/bookmark/show.py +0 -0
  53. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/cli_profile_list.py +0 -0
  54. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/__init__.py +0 -0
  55. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/_common.py +0 -0
  56. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  57. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  58. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/delete.py +0 -0
  59. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/collection/show.py +0 -0
  60. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/delete.py +0 -0
  61. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/__init__.py +0 -0
  62. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/_common.py +0 -0
  63. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/activate.py +0 -0
  64. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/create.py +0 -0
  65. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
  66. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/delete.py +0 -0
  67. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
  68. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  69. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  70. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  71. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  72. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  73. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  74. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  75. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  76. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  77. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  78. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  79. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  80. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  81. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  82. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  83. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/search.py +0 -0
  84. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
  85. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
  86. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/add.py +0 -0
  87. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
  88. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/list.py +0 -0
  89. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/show.py +0 -0
  90. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/server/update.py +0 -0
  91. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
  92. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/show.py +0 -0
  93. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  94. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  95. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/update.py +0 -0
  96. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  97. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  98. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  99. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  100. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  101. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  102. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  103. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  104. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  105. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  106. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  107. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/__init__.py +0 -0
  108. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/_common.py +0 -0
  109. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/delete.py +0 -0
  110. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  111. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  112. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/delete.py +0 -0
  113. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/resume.py +0 -0
  114. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/show.py +0 -0
  115. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  116. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  117. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/run/update.py +0 -0
  118. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/flows/validate.py +0 -0
  119. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/__init__.py +0 -0
  120. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  121. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  122. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
  123. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  124. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  125. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
  126. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/__init__.py +0 -0
  127. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
  128. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
  129. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
  130. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
  131. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
  132. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
  133. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
  134. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
  135. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +0 -0
  136. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
  137. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/get_identities.py +0 -0
  138. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/__init__.py +0 -0
  139. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/_common.py +0 -0
  140. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/create.py +0 -0
  141. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/delete.py +0 -0
  142. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
  143. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
  144. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  145. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/invite/_common.py +0 -0
  146. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/invite/accept.py +0 -0
  147. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/invite/decline.py +0 -0
  148. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/join.py +0 -0
  149. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/leave.py +0 -0
  150. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/list.py +0 -0
  151. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/__init__.py +0 -0
  152. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/add.py +0 -0
  153. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/approve.py +0 -0
  154. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/invite.py +0 -0
  155. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/list.py +0 -0
  156. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/reject.py +0 -0
  157. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/member/remove.py +0 -0
  158. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/set_policies.py +0 -0
  159. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/show.py +0 -0
  160. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/group/update.py +0 -0
  161. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/logout.py +0 -0
  162. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/ls.py +0 -0
  163. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/mkdir.py +0 -0
  164. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/rename.py +0 -0
  165. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/rm.py +0 -0
  166. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/__init__.py +0 -0
  167. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/_common.py +0 -0
  168. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  169. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/__init__.py +0 -0
  170. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/create.py +0 -0
  171. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/delete.py +0 -0
  172. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/list.py +0 -0
  173. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  174. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/role/create.py +0 -0
  175. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  176. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/role/list.py +0 -0
  177. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/index/show.py +0 -0
  178. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/ingest.py +0 -0
  179. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/query.py +0 -0
  180. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  181. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/subject/delete.py +0 -0
  182. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/subject/show.py +0 -0
  183. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/task/__init__.py +0 -0
  184. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/task/list.py +0 -0
  185. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/search/task/show.py +0 -0
  186. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/session/__init__.py +0 -0
  187. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/session/consent.py +0 -0
  188. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/session/show.py +0 -0
  189. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/session/update.py +0 -0
  190. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/stat.py +0 -0
  191. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/__init__.py +0 -0
  192. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/_common.py +0 -0
  193. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/cancel.py +0 -0
  194. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/event_list.py +0 -0
  195. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  196. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/list.py +0 -0
  197. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/pause_info.py +0 -0
  198. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/show.py +0 -0
  199. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/update.py +0 -0
  200. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/task/wait.py +0 -0
  201. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/__init__.py +0 -0
  202. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/_common.py +0 -0
  203. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  204. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/create/transfer.py +0 -0
  205. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/delete.py +0 -0
  206. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/list.py +0 -0
  207. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/pause.py +0 -0
  208. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/resume.py +0 -0
  209. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/timer/show.py +0 -0
  210. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/transfer.py +0 -0
  211. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/update.py +0 -0
  212. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/version.py +0 -0
  213. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/commands/whoami.py +0 -0
  214. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/constants.py +0 -0
  215. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/endpointish/__init__.py +0 -0
  216. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/endpointish/endpointish.py +0 -0
  217. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/endpointish/entity_type.py +0 -0
  218. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/endpointish/errors.py +0 -0
  219. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/__init__.py +0 -0
  220. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/__init__.py +0 -0
  221. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/auth_requirements.py +0 -0
  222. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/authapi_hooks.py +0 -0
  223. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/endpoint_types.py +0 -0
  224. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/flows_hooks.py +0 -0
  225. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/generic_hooks.py +0 -0
  226. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/search_hooks.py +0 -0
  227. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/hooks/transfer_hooks.py +0 -0
  228. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/messages.py +0 -0
  229. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/exception_handling/registry.py +0 -0
  230. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/globus_cli_flake8.py +0 -0
  231. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/__init__.py +0 -0
  232. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/_old_config.py +0 -0
  233. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/auth_flows.py +0 -0
  234. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/client_login.py +0 -0
  235. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/context.py +0 -0
  236. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/errors.py +0 -0
  237. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/local_server.py +0 -0
  238. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/manager.py +0 -0
  239. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/scopes.py +0 -0
  240. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/storage.py +0 -0
  241. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/login_manager/utils.py +0 -0
  242. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/__init__.py +0 -0
  243. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/command_state.py +0 -0
  244. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/mutex_group.py +0 -0
  245. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_classes.py +0 -0
  246. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/location.py +0 -0
  247. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/task_path.py +0 -0
  248. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  249. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  250. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  251. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
  252. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
  253. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/parsing/shell_completion.py +0 -0
  254. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/__init__.py +0 -0
  255. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/auth.py +0 -0
  256. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/gcs.py +0 -0
  257. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/transfer/__init__.py +0 -0
  258. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/transfer/activation.py +0 -0
  259. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/transfer/client.py +0 -0
  260. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/transfer/data.py +0 -0
  261. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  262. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/__init__.py +0 -0
  263. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/_display.py +0 -0
  264. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/context.py +0 -0
  265. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/errors.py +0 -0
  266. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/field.py +0 -0
  267. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/formatters/__init__.py +0 -0
  268. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/formatters/auth.py +0 -0
  269. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/formatters/base.py +0 -0
  270. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/formatters/compound.py +0 -0
  271. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/formatters/primitive.py +0 -0
  272. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/__init__.py +0 -0
  273. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/base.py +0 -0
  274. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/custom_printer.py +0 -0
  275. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/json_printer.py +0 -0
  276. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/record_printer.py +0 -0
  277. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/table_printer.py +0 -0
  278. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/unix_printer/__init__.py +0 -0
  279. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/unix_printer/awscli_text.py +0 -0
  280. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/printers/unix_printer/unix_printer.py +0 -0
  281. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/termio/server_timing.py +0 -0
  282. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli/types.py +0 -0
  283. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  284. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli.egg-info/entry_points.txt +0 -0
  285. {globus_cli-3.34.0 → globus_cli-3.35.1}/src/globus_cli.egg-info/top_level.txt +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: globus-cli
3
- Version: 3.34.0
3
+ Version: 3.35.1
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
+ License-Expression: Apache-2.0
6
7
  Project-URL: homepage, https://github.com/globus/globus-cli
7
8
  Keywords: globus,cli,command line
8
9
  Classifier: Development Status :: 5 - Production/Stable
9
10
  Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved :: Apache Software License
11
11
  Classifier: Operating System :: POSIX
12
12
  Classifier: Programming Language :: Python
13
13
  Classifier: Programming Language :: Python :: 3.8
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.13
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
- Requires-Dist: globus-sdk==3.55.0
22
+ Requires-Dist: globus-sdk==3.56.1
23
23
  Requires-Dist: click<9,>=8.1.4
24
24
  Requires-Dist: jmespath==1.0.1
25
25
  Requires-Dist: packaging>=17.0
@@ -27,19 +27,6 @@ Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
27
27
  Requires-Dist: requests<3.0.0,>=2.32.3
28
28
  Dynamic: license-file
29
29
 
30
- .. image:: https://github.com/globus/globus-cli/workflows/build/badge.svg?event=push
31
- :alt: build status
32
- :target: https://github.com/globus/globus-cli/actions?query=workflow%3Abuild
33
-
34
- .. image:: https://img.shields.io/pypi/v/globus-cli.svg
35
- :alt: Latest Released Version
36
- :target: https://pypi.org/project/globus-cli/
37
-
38
- .. image:: https://img.shields.io/pypi/pyversions/globus-cli.svg
39
- :alt: Supported Python Versions
40
- :target: https://img.shields.io/pypi/pyversions/globus-cli.svg
41
-
42
-
43
30
  Globus CLI
44
31
  ==========
45
32
 
@@ -0,0 +1,14 @@
1
+ Globus CLI
2
+ ==========
3
+
4
+ A Command Line Interface to `Globus <https://www.globus.org/>`_.
5
+
6
+ Source Code: https://github.com/globus/globus-cli
7
+
8
+ Installation, Running, Other Documentation: https://docs.globus.org/cli
9
+
10
+ Bugs and Feature Requests
11
+ -------------------------
12
+
13
+ Bugs reports and feature requests are open submission, and should be filed at
14
+ https://github.com/globusonline/globus-cli/issues
@@ -9,6 +9,7 @@ readme = "README.rst"
9
9
  authors = [
10
10
  { name = "Stephen Rosen", email = "sirosen@globus.org" },
11
11
  ]
12
+ license = "Apache-2.0"
12
13
  keywords = [
13
14
  "globus",
14
15
  "cli",
@@ -17,7 +18,6 @@ keywords = [
17
18
  classifiers = [
18
19
  "Development Status :: 5 - Production/Stable",
19
20
  "Intended Audience :: Developers",
20
- "License :: OSI Approved :: Apache Software License",
21
21
  "Operating System :: POSIX",
22
22
  "Programming Language :: Python",
23
23
  "Programming Language :: Python :: 3.8",
@@ -29,7 +29,7 @@ classifiers = [
29
29
  ]
30
30
  requires-python = ">=3.8"
31
31
  dependencies = [
32
- "globus-sdk==3.55.0",
32
+ "globus-sdk==3.56.1",
33
33
  "click>=8.1.4,<9",
34
34
  "jmespath==1.0.1",
35
35
  "packaging>=17.0",
@@ -88,8 +88,41 @@ attr = "globus_cli.version.__version__"
88
88
  profile = "black"
89
89
 
90
90
  [tool.pytest.ini_options]
91
- addopts = "--timeout 3 --color=yes"
92
- filterwarnings = ["error"]
91
+ addopts = "-n auto --maxprocesses 4 --dist loadscope --timeout 3 --color=yes"
92
+ filterwarnings = [
93
+ "error",
94
+ # ignore SDK warnings for 'filter_role' until
95
+ # 'filter_roles' update is applied
96
+ "ignore:The `filter_role` parameter is deprecated.:globus_sdk.exc.RemovedInV4Warning:",
97
+ ]
98
+
99
+ [tool.coverage.run]
100
+ parallel = true
101
+ source = ["globus_cli"]
102
+ [tool.coverage.paths]
103
+ source = [
104
+ "src/",
105
+ "*/site-packages/",
106
+ ]
107
+ [tool.coverage.report]
108
+ show_missing = true
109
+ skip_covered = true
110
+ fail_under = 87
111
+ exclude_lines =[
112
+ # the pragma to disable coverage
113
+ "pragma: no cover",
114
+ # don't complain if tests don't hit unimplemented methods/modes
115
+ "raise NotImplementedError",
116
+ "assert_never()",
117
+ # don't check on executable components of importable modules
118
+ "if __name__ == .__main__.:",
119
+ # don't check coverage on type checking conditionals
120
+ "if t.TYPE_CHECKING:",
121
+ # skip overloads
122
+ "@t.overload",
123
+ # skip abstract methods
124
+ "@abc.abstractmethod",
125
+ ]
93
126
 
94
127
  [tool.scriv]
95
128
  version = "literal: src/globus_cli/version.py: __version__"
@@ -0,0 +1,55 @@
1
+ """
2
+ A compatibility module for handling click v8.2.0+ and 8.1.x API differences.
3
+ """
4
+
5
+ import functools
6
+ import importlib.metadata
7
+ import typing as t
8
+
9
+ import click
10
+
11
+ C = t.TypeVar("C", bound=t.Callable[..., t.Any])
12
+
13
+ CLICK_VERSION = importlib.metadata.version("click")
14
+
15
+ OLDER_CLICK_API = CLICK_VERSION.startswith("8.1.")
16
+ NEWER_CLICK_API = not OLDER_CLICK_API
17
+
18
+
19
+ def shim_get_metavar(f: C) -> C:
20
+ """
21
+ Make a ParamType.get_metavar function compatible with both the 8.1.x and
22
+ the 8.2.0+ APIs.
23
+
24
+ Under 8.2.0, `ctx: click.Context` is passed, while older versions do not.
25
+ Therefore, do nothing on 8.2.0+ and pass `ctx=None' if the older click
26
+ version is in use.
27
+
28
+ NOTE: we pass `ctx=None` which violates the declared types (but works at
29
+ runtime) because when running under older click versions, there may not be
30
+ a current click context.
31
+ """
32
+ if OLDER_CLICK_API:
33
+
34
+ @functools.wraps(f)
35
+ def wrapper(*args: t.Any, **kwargs: t.Any) -> t.Any:
36
+ return f(*args, **kwargs, ctx=None)
37
+
38
+ return wrapper # type: ignore[return-value]
39
+
40
+ return f
41
+
42
+
43
+ def shim_get_missing_message(f: C) -> C:
44
+ """
45
+ Shim `get_missing_message` in a similar way to `get_metavar` above.
46
+ """
47
+ if OLDER_CLICK_API:
48
+
49
+ @functools.wraps(f)
50
+ def wrapper(*args: t.Any, **kwargs: t.Any) -> t.Any:
51
+ return f(*args, **kwargs, ctx=click.get_current_context())
52
+
53
+ return wrapper # type: ignore[return-value]
54
+
55
+ return f
@@ -9,6 +9,7 @@ import click
9
9
  import globus_sdk
10
10
 
11
11
  from globus_cli import termio, version
12
+ from globus_cli._click_compat import shim_get_metavar
12
13
  from globus_cli.login_manager import LoginManager, is_client_login
13
14
  from globus_cli.login_manager.scopes import CLI_SCOPE_REQUIREMENTS
14
15
  from globus_cli.parsing import command, endpoint_id_arg, group, mutex_option_group
@@ -19,7 +20,8 @@ C = t.TypeVar("C", bound=AnyCommand)
19
20
 
20
21
 
21
22
  class QueryParamType(click.ParamType):
22
- def get_metavar(self, param: click.Parameter) -> str:
23
+ @shim_get_metavar
24
+ def get_metavar(self, param: click.Parameter, ctx: click.Context) -> str:
23
25
  return "Key=Value"
24
26
 
25
27
  def get_type_annotation(self, param: click.Parameter) -> type:
@@ -44,7 +46,8 @@ class QueryParamType(click.ParamType):
44
46
 
45
47
 
46
48
  class HeaderParamType(click.ParamType):
47
- def get_metavar(self, param: click.Parameter) -> str:
49
+ @shim_get_metavar
50
+ def get_metavar(self, param: click.Parameter, ctx: click.Context) -> str:
48
51
  return "Key:Value"
49
52
 
50
53
  def get_type_annotation(self, param: click.Parameter) -> type:
@@ -17,6 +17,7 @@ from globus_cli.endpointish import EntityType
17
17
  from globus_cli.login_manager import LoginManager, MissingLoginError
18
18
  from globus_cli.login_manager.context import LoginContext
19
19
  from globus_cli.parsing import command, endpointish_params, mutex_option_group
20
+ from globus_cli.parsing.shared_options import activity_notifications_option
20
21
  from globus_cli.services.gcs import CustomGCSClient
21
22
  from globus_cli.termio import display
22
23
 
@@ -42,6 +43,7 @@ from globus_cli.termio import display
42
43
  @mutex_option_group("--user-credential-id", "--local-username")
43
44
  @endpointish_params.create(name="collection")
44
45
  @identity_id_option
46
+ @activity_notifications_option("GCS")
45
47
  @click.option(
46
48
  "--enable-https/--disable-https",
47
49
  "enable_https",
@@ -74,6 +76,7 @@ def collection_create_guest(
74
76
  organization: str | None | ExplicitNullType,
75
77
  user_message: str | None | ExplicitNullType,
76
78
  user_message_link: str | None | ExplicitNullType,
79
+ activity_notifications: dict[str, list[str]] | None | ExplicitNullType,
77
80
  verify: dict[str, bool],
78
81
  ) -> None:
79
82
  """
@@ -99,6 +102,7 @@ def collection_create_guest(
99
102
 
100
103
  converted_kwargs: dict[str, t.Any] = ExplicitNullType.nullify_dict(
101
104
  {
105
+ "activity_notification_policy": activity_notifications,
102
106
  "collection_base_path": collection_base_path,
103
107
  "contact_info": contact_info,
104
108
  "contact_email": contact_email,
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import sys
3
4
  import typing as t
4
5
  import uuid
5
6
 
@@ -11,8 +12,22 @@ from globus_cli.parsing import command, endpoint_id_arg
11
12
  from globus_cli.termio import Field, display, formatters
12
13
  from globus_cli.utils import PagingWrapper
13
14
 
15
+ if sys.version_info >= (3, 10):
16
+ from typing import TypeAlias
17
+ else:
18
+ from typing_extensions import TypeAlias
14
19
 
15
- class ChoiceSlugified(click.Choice):
20
+ # until our minimum click version is 8.2.0+ , we need to handle the fact that
21
+ # click.Choice became a generic in 8.2.0
22
+ # we cannot leave it without a defined type parameter, as we have
23
+ # "no-any-generics" set for mypy
24
+ if t.TYPE_CHECKING:
25
+ ChoiceType: TypeAlias = click.Choice[str]
26
+ else:
27
+ ChoiceType = click.Choice
28
+
29
+
30
+ class ChoiceSlugified(ChoiceType):
16
31
  """
17
32
  Allow either hyphens or underscores, e.g. both 'mapped-collections' or
18
33
  'mapped_collections'
@@ -18,6 +18,7 @@ from globus_cli.parsing import (
18
18
  emptyable_opt_list_callback,
19
19
  endpointish_params,
20
20
  )
21
+ from globus_cli.parsing.shared_options import activity_notifications_option
21
22
  from globus_cli.termio import Field, display
22
23
 
23
24
  _MULTI_USE_OPTION_STR = "Give this option multiple times in a single command"
@@ -33,12 +34,6 @@ class _FullDataField(Field):
33
34
  @command("update", short_help="Update a Collection definition.")
34
35
  @collection_id_arg
35
36
  @endpointish_params.update(name="collection")
36
- @click.option(
37
- "--force-encryption/--no-force-encryption",
38
- "force_encryption",
39
- default=None,
40
- help="When set, all transfers to and from this collection are always encrypted.",
41
- )
42
37
  @click.option(
43
38
  "--sharing-restrict-paths",
44
39
  type=JSONStringOrFile(null="null"),
@@ -110,10 +105,12 @@ class _FullDataField(Field):
110
105
  'Set a value of "" to clear this.'
111
106
  ),
112
107
  )
108
+ @activity_notifications_option("GCS")
113
109
  @LoginManager.requires_login("auth", "transfer")
114
110
  def collection_update(
115
111
  login_manager: LoginManager,
116
112
  *,
113
+ activity_notifications: dict[str, list[str]] | None | ExplicitNullType,
117
114
  collection_id: uuid.UUID,
118
115
  display_name: str | None,
119
116
  description: str | None | ExplicitNullType,
@@ -181,6 +178,7 @@ def collection_update(
181
178
  "user_message_link": user_message_link,
182
179
  "sharing_users_allow": sharing_users_allow,
183
180
  "sharing_users_deny": sharing_users_deny,
181
+ "activity_notification_policy": activity_notifications,
184
182
  }
185
183
  )
186
184
  converted_kwargs.update(verify)
@@ -38,6 +38,30 @@ ROLE_TYPES = ("flow_viewer", "flow_starter", "flow_administrator", "flow_owner")
38
38
  @starters_option
39
39
  @viewers_option
40
40
  @keywords_option
41
+ @click.option(
42
+ "--run-manager",
43
+ "run_managers",
44
+ type=str,
45
+ multiple=True,
46
+ help="""
47
+ A principal that may manage the flow's runs.
48
+
49
+ This option can be specified multiple times
50
+ to create a list of run managers.
51
+ """,
52
+ )
53
+ @click.option(
54
+ "--run-monitor",
55
+ "run_monitors",
56
+ type=str,
57
+ multiple=True,
58
+ help="""
59
+ A principal that may monitor the flow's runs.
60
+
61
+ This option can be specified multiple times
62
+ to create a list of run monitors.
63
+ """,
64
+ )
41
65
  @click.option(
42
66
  "--subscription-id",
43
67
  help="Set a subscription_id for the flow, marking it as subscription tier.",
@@ -56,6 +80,8 @@ def create_command(
56
80
  starters: tuple[str, ...],
57
81
  viewers: tuple[str, ...],
58
82
  keywords: tuple[str, ...],
83
+ run_managers: tuple[str, ...],
84
+ run_monitors: tuple[str, ...],
59
85
  subscription_id: uuid.UUID | None,
60
86
  ) -> None:
61
87
  """
@@ -106,6 +132,8 @@ def create_command(
106
132
  flow_starters=list(starters),
107
133
  flow_administrators=list(administrators),
108
134
  keywords=list(keywords),
135
+ run_managers=list(run_managers),
136
+ run_monitors=list(run_monitors),
109
137
  subscription_id=subscription_id,
110
138
  )
111
139
 
@@ -141,6 +169,16 @@ def create_command(
141
169
  "flow_starters",
142
170
  formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
143
171
  ),
172
+ Field(
173
+ "Run Managers",
174
+ "run_managers",
175
+ formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
176
+ ),
177
+ Field(
178
+ "Run Monitors",
179
+ "run_monitors",
180
+ formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
181
+ ),
144
182
  ]
145
183
 
146
184
  display(res, fields=fields, text_mode=display.RECORD)
@@ -10,7 +10,14 @@ from globus_cli.parsing import ColonDelimitedChoiceTuple, command
10
10
  from globus_cli.termio import Field, display, formatters
11
11
  from globus_cli.utils import PagingWrapper
12
12
 
13
- ROLE_TYPES = ("flow_viewer", "flow_starter", "flow_administrator", "flow_owner")
13
+ ROLE_TYPES = (
14
+ "flow_viewer",
15
+ "flow_starter",
16
+ "flow_administrator",
17
+ "flow_owner",
18
+ "run_manager",
19
+ "run_monitor",
20
+ )
14
21
  ORDER_BY_FIELDS = (
15
22
  "id",
16
23
  "scope_string",
@@ -29,8 +36,10 @@ ORDER_BY_FIELDS = (
29
36
  @command("list")
30
37
  @click.option(
31
38
  "--filter-role",
39
+ "filter_roles",
32
40
  type=click.Choice(ROLE_TYPES),
33
41
  help="Filter results by the flow's role type associated with the caller",
42
+ multiple=True,
34
43
  )
35
44
  @click.option(
36
45
  "--filter-fulltext",
@@ -71,10 +80,17 @@ ORDER_BY_FIELDS = (
71
80
  def list_command(
72
81
  login_manager: LoginManager,
73
82
  *,
74
- filter_role: (
75
- t.Literal["flow_viewer", "flow_starter", "flow_administrator", "flow_owner"]
76
- | None
77
- ),
83
+ filter_roles: tuple[
84
+ t.Literal[
85
+ "flow_viewer",
86
+ "flow_starter",
87
+ "flow_administrator",
88
+ "flow_owner",
89
+ "run_manager",
90
+ "run_monitor",
91
+ ],
92
+ ...,
93
+ ],
78
94
  orderby: tuple[
79
95
  tuple[
80
96
  t.Literal[
@@ -98,7 +114,9 @@ def list_command(
98
114
  paginator = Paginator.wrap(flows_client.list_flows)
99
115
  flow_iterator = PagingWrapper(
100
116
  paginator(
101
- filter_role=filter_role,
117
+ # `filter_roles=()` results in an API error
118
+ # the query param sent by the SDK would be `filter_roles=` (empty string)
119
+ filter_roles=filter_roles or None,
102
120
  filter_fulltext=filter_fulltext,
103
121
  orderby=",".join(f"{field} {order}" for field, order in orderby),
104
122
  ).items(),
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import typing as t
3
4
  import uuid
4
5
 
5
6
  import click
@@ -10,6 +11,14 @@ from globus_cli.parsing import command
10
11
  from globus_cli.termio import Field, display
11
12
  from globus_cli.utils import PagingWrapper
12
13
 
14
+ ROLE_TYPES = (
15
+ "run_owner",
16
+ "run_manager",
17
+ "run_monitor",
18
+ "flow_run_manager",
19
+ "flow_run_monitor",
20
+ )
21
+
13
22
 
14
23
  @command("list")
15
24
  @click.option(
@@ -22,6 +31,13 @@ from globus_cli.utils import PagingWrapper
22
31
  multiple=True,
23
32
  type=click.UUID,
24
33
  )
34
+ @click.option(
35
+ "--filter-role",
36
+ "filter_roles",
37
+ type=click.Choice(ROLE_TYPES),
38
+ help="Filter results by the run's role type associated with the caller",
39
+ multiple=True,
40
+ )
25
41
  @click.option(
26
42
  "--limit",
27
43
  default=25,
@@ -32,7 +48,20 @@ from globus_cli.utils import PagingWrapper
32
48
  )
33
49
  @LoginManager.requires_login("flows")
34
50
  def list_command(
35
- login_manager: LoginManager, *, limit: int, filter_flow_id: tuple[uuid.UUID, ...]
51
+ login_manager: LoginManager,
52
+ *,
53
+ limit: int,
54
+ filter_flow_id: tuple[uuid.UUID, ...],
55
+ filter_roles: tuple[
56
+ t.Literal[
57
+ "run_owner",
58
+ "run_manager",
59
+ "run_monitor",
60
+ "flow_run_manager",
61
+ "flow_run_monitor",
62
+ ],
63
+ ...,
64
+ ],
36
65
  ) -> None:
37
66
  """
38
67
  List runs.
@@ -45,7 +74,10 @@ def list_command(
45
74
 
46
75
  paginator = Paginator.wrap(flows_client.list_runs)
47
76
  run_iterator = PagingWrapper(
48
- paginator(filter_flow_id=filter_flow_id).items(),
77
+ paginator(
78
+ filter_flow_id=filter_flow_id,
79
+ filter_roles=filter_roles,
80
+ ).items(),
49
81
  json_conversion_key="runs",
50
82
  limit=limit,
51
83
  )
@@ -20,7 +20,13 @@ def show_command(login_manager: LoginManager, *, flow_id: uuid.UUID) -> None:
20
20
  res = flows_client.get_flow(flow_id)
21
21
 
22
22
  principal_formatter = formatters.auth.PrincipalURNFormatter(auth_client)
23
- for principal_set_name in ("flow_administrators", "flow_viewers", "flow_starters"):
23
+ for principal_set_name in (
24
+ "flow_administrators",
25
+ "flow_viewers",
26
+ "flow_starters",
27
+ "run_managers",
28
+ "run_monitors",
29
+ ):
24
30
  for value in res.get(principal_set_name, ()):
25
31
  principal_formatter.add_item(value)
26
32
  principal_formatter.add_item(res.get("flow_owner"))
@@ -48,6 +54,16 @@ def show_command(login_manager: LoginManager, *, flow_id: uuid.UUID) -> None:
48
54
  "flow_starters",
49
55
  formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
50
56
  ),
57
+ Field(
58
+ "Run Managers",
59
+ "run_managers",
60
+ formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
61
+ ),
62
+ Field(
63
+ "Run Monitors",
64
+ "run_monitors",
65
+ formatter=formatters.ArrayFormatter(element_formatter=principal_formatter),
66
+ ),
51
67
  ]
52
68
 
53
69
  display(res, fields=fields, text_mode=display.RECORD)