globus-cli 3.31.0__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.
- {globus_cli-3.31.0/src/globus_cli.egg-info → globus_cli-3.32.0}/PKG-INFO +3 -3
- {globus_cli-3.31.0 → globus_cli-3.32.0}/pyproject.toml +4 -3
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/resume.py +5 -12
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/show.py +3 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/create/transfer.py +36 -16
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/resume.py +5 -12
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/transfer.py +34 -8
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/endpointish/endpointish.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/exception_handling/hooks.py +2 -4
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/globus_cli_flake8.py +2 -2
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/errors.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/manager.py +3 -12
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/scopes.py +3 -10
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/task_path.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/transfer/client.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/field.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/auth.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/version.py +1 -1
- {globus_cli-3.31.0 → globus_cli-3.32.0/src/globus_cli.egg-info}/PKG-INFO +3 -3
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli.egg-info/requires.txt +2 -2
- {globus_cli-3.31.0 → globus_cli-3.32.0}/LICENSE +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/README.rst +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/setup.cfg +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/setup.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/__main__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/_warnings.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/api.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/bookmark/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/activate.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/search.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/add.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/server/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/run/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/start.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/flows/validate.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/guest.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/gcs/endpoint/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/get_identities.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/join.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/leave.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/add.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/approve.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/invite.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/reject.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/member/remove.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/set_policies.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/group/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/list_commands.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/login.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/logout.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/ls.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/mkdir.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/rename.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/rm.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/create.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/index/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/ingest.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/query.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/subject/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/search/task/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/session/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/session/consent.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/session/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/session/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/stat.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/cancel.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/event_list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/pause_info.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/task/wait.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/_common.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/delete.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/list.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/pause.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/timer/show.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/update.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/version.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/whoami.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/constants.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/endpointish/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/endpointish/entity_type.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/endpointish/errors.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/exception_handling/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/exception_handling/registry.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/_old_config.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/auth_flows.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/client_login.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/context.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/local_server.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/tokenstore.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/login_manager/utils.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/command_state.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/commands.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/mutex_group.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_classes.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/location.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/nullable.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/parsing/shell_completion.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/reflect.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/auth.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/gcs.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/transfer/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/transfer/activation.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/transfer/data.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/awscli_text.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/context.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/errors.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/base.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/compound.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/printer.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/termio/server_timing.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/types.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/utils.py +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli.egg-info/SOURCES.txt +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
- {globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
- {globus_cli-3.31.0 → 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.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
@@ -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
|
|
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.
|
|
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:
|
|
67
|
+
gare: GARE | None,
|
|
70
68
|
) -> None:
|
|
71
69
|
if gare is None:
|
|
72
70
|
return
|
|
@@ -109,13 +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
|
-
) ->
|
|
113
|
-
|
|
114
|
-
from globus_sdk.gare import to_gare # type: ignore[import-not-found]
|
|
115
|
-
except ImportError:
|
|
116
|
-
from globus_sdk.experimental.auth_requirements_error import (
|
|
117
|
-
to_auth_requirements_error as to_gare,
|
|
118
|
-
)
|
|
110
|
+
) -> GARE | None:
|
|
111
|
+
from globus_sdk.gare import to_gare
|
|
119
112
|
|
|
120
113
|
if not run_doc.get("status") == "INACTIVE":
|
|
121
114
|
return None
|
|
@@ -124,7 +117,7 @@ def _get_inactive_reason(
|
|
|
124
117
|
if not isinstance(details, dict):
|
|
125
118
|
return None
|
|
126
119
|
|
|
127
|
-
return to_gare(details)
|
|
120
|
+
return to_gare(details)
|
|
128
121
|
|
|
129
122
|
|
|
130
123
|
def _has_required_consent(
|
|
@@ -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 = [
|
|
@@ -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
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|
-
"
|
|
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("
|
|
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
|
-
"
|
|
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
|
)
|
|
@@ -321,7 +342,6 @@ def _derive_needed_scopes(
|
|
|
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
|
)
|
|
@@ -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.
|
|
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:
|
|
60
|
+
gare: GARE | None,
|
|
63
61
|
) -> None:
|
|
64
62
|
if gare is None:
|
|
65
63
|
return
|
|
@@ -102,13 +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
|
-
) ->
|
|
106
|
-
|
|
107
|
-
from globus_sdk.gare import to_gare # type: ignore[import-not-found]
|
|
108
|
-
except ImportError:
|
|
109
|
-
from globus_sdk.experimental.auth_requirements_error import (
|
|
110
|
-
to_auth_requirements_error as to_gare,
|
|
111
|
-
)
|
|
103
|
+
) -> GARE | None:
|
|
104
|
+
from globus_sdk.gare import to_gare
|
|
112
105
|
|
|
113
106
|
if timer_doc.get("status") != "inactive":
|
|
114
107
|
return None
|
|
@@ -117,7 +110,7 @@ def _get_inactive_reason(
|
|
|
117
110
|
if reason.get("cause") != "globus_auth_requirements":
|
|
118
111
|
return None
|
|
119
112
|
|
|
120
|
-
return to_gare(reason.get("detail", {}))
|
|
113
|
+
return to_gare(reason.get("detail", {}))
|
|
121
114
|
|
|
122
115
|
|
|
123
116
|
def _has_required_consent(
|
|
@@ -140,11 +140,22 @@ fi
|
|
|
140
140
|
"--delete",
|
|
141
141
|
is_flag=True,
|
|
142
142
|
default=False,
|
|
143
|
+
hidden=True,
|
|
143
144
|
help=(
|
|
144
145
|
"Delete any files in the destination directory not contained in the source. "
|
|
145
146
|
'This results in "directory mirroring." Only valid on recursive transfers.'
|
|
146
147
|
),
|
|
147
148
|
)
|
|
149
|
+
@click.option(
|
|
150
|
+
"--delete-destination-extra",
|
|
151
|
+
is_flag=True,
|
|
152
|
+
default=False,
|
|
153
|
+
help=(
|
|
154
|
+
"Delete any files in the destination directory not contained in the source. "
|
|
155
|
+
'This results in "directory mirroring." Only valid on recursive transfers.'
|
|
156
|
+
),
|
|
157
|
+
)
|
|
158
|
+
@mutex_option_group("--delete", "--delete-destination-extra")
|
|
148
159
|
@click.option(
|
|
149
160
|
"--external-checksum",
|
|
150
161
|
help=(
|
|
@@ -227,6 +238,7 @@ def transfer_command(
|
|
|
227
238
|
submission_id: str | None,
|
|
228
239
|
dry_run: bool,
|
|
229
240
|
delete: bool,
|
|
241
|
+
delete_destination_extra: bool,
|
|
230
242
|
deadline: str | None,
|
|
231
243
|
skip_activation_check: bool,
|
|
232
244
|
notify: dict[str, bool],
|
|
@@ -326,18 +338,32 @@ def transfer_command(
|
|
|
326
338
|
source_endpoint, cmd_source_path = source
|
|
327
339
|
dest_endpoint, cmd_dest_path = destination
|
|
328
340
|
|
|
341
|
+
if delete:
|
|
342
|
+
msg = (
|
|
343
|
+
"`--delete` has been deprecated and will be removed in a future release. "
|
|
344
|
+
"Use `--delete-destination-extra` instead."
|
|
345
|
+
)
|
|
346
|
+
click.echo(click.style(msg, fg="yellow"), err=True)
|
|
347
|
+
|
|
329
348
|
# avoid 'mutex_option_group', emit a custom error message
|
|
330
349
|
if recursive is not None and batch:
|
|
331
350
|
option_name = "--recursive" if recursive else "--no-recursive"
|
|
332
351
|
raise click.UsageError(
|
|
333
|
-
f"You cannot use {option_name} in addition to
|
|
334
|
-
f"Instead, use {option_name} on lines of
|
|
352
|
+
f"You cannot use `{option_name}` in addition to `--batch`. "
|
|
353
|
+
f"Instead, use `{option_name}` on lines of `--batch` input which need it."
|
|
354
|
+
)
|
|
355
|
+
if recursive is False and (delete_destination_extra or delete):
|
|
356
|
+
option_name = (
|
|
357
|
+
"--delete-destination-extra" if delete_destination_extra else "--delete"
|
|
358
|
+
)
|
|
359
|
+
raise click.UsageError(
|
|
360
|
+
f"The `{option_name}` option cannot be specified with `--no-recursive`."
|
|
335
361
|
)
|
|
336
|
-
|
|
337
362
|
if external_checksum and batch:
|
|
338
363
|
raise click.UsageError(
|
|
339
|
-
"You cannot use
|
|
340
|
-
"Instead, use
|
|
364
|
+
"You cannot use `--external-checksum` in addition to `--batch`. "
|
|
365
|
+
"Instead, use `--external-checksum` on lines of `--batch` input which "
|
|
366
|
+
"need it."
|
|
341
367
|
)
|
|
342
368
|
|
|
343
369
|
# the performance options (of which there are a few), have elements which should be
|
|
@@ -367,7 +393,7 @@ def transfer_command(
|
|
|
367
393
|
skip_source_errors=skip_source_errors,
|
|
368
394
|
fail_on_quota_errors=fail_on_quota_errors,
|
|
369
395
|
skip_activation_check=skip_activation_check,
|
|
370
|
-
delete_destination_extra=delete,
|
|
396
|
+
delete_destination_extra=(delete or delete_destination_extra),
|
|
371
397
|
source_local_user=source_local_user,
|
|
372
398
|
destination_local_user=destination_local_user,
|
|
373
399
|
additional_fields={**perf_opts, **notify},
|
|
@@ -384,7 +410,7 @@ def transfer_command(
|
|
|
384
410
|
else:
|
|
385
411
|
if cmd_source_path is None or cmd_dest_path is None:
|
|
386
412
|
raise click.UsageError(
|
|
387
|
-
"
|
|
413
|
+
"Transfer requires either `SOURCE_PATH` and `DEST_PATH` or `--batch`"
|
|
388
414
|
)
|
|
389
415
|
transfer_data.add_item(
|
|
390
416
|
cmd_source_path,
|
|
@@ -403,7 +429,7 @@ def transfer_command(
|
|
|
403
429
|
|
|
404
430
|
if filter_rules and not has_recursive_items:
|
|
405
431
|
raise click.UsageError(
|
|
406
|
-
"
|
|
432
|
+
"`--include` and `--exclude` can only be used with `--recursive` transfers"
|
|
407
433
|
)
|
|
408
434
|
|
|
409
435
|
if dry_run:
|
|
@@ -272,8 +272,7 @@ def transferapi_hook(exception: globus_sdk.TransferAPIError) -> None:
|
|
|
272
272
|
def searchapi_validationerror_hook(exception: globus_sdk.SearchAPIError) -> None:
|
|
273
273
|
fields = [
|
|
274
274
|
PrintableErrorField("HTTP status", exception.http_status),
|
|
275
|
-
|
|
276
|
-
PrintableErrorField("request_id", (exception.raw_json or {}).get("request_id")),
|
|
275
|
+
PrintableErrorField("request_id", exception.request_id),
|
|
277
276
|
PrintableErrorField("code", exception.code),
|
|
278
277
|
PrintableErrorField("message", exception.message, multiline=True),
|
|
279
278
|
]
|
|
@@ -298,8 +297,7 @@ def searchapi_validationerror_hook(exception: globus_sdk.SearchAPIError) -> None
|
|
|
298
297
|
def searchapi_hook(exception: globus_sdk.SearchAPIError) -> None:
|
|
299
298
|
fields = [
|
|
300
299
|
PrintableErrorField("HTTP status", exception.http_status),
|
|
301
|
-
|
|
302
|
-
PrintableErrorField("request_id", (exception.raw_json or {}).get("request_id")),
|
|
300
|
+
PrintableErrorField("request_id", exception.request_id),
|
|
303
301
|
PrintableErrorField("code", exception.code),
|
|
304
302
|
PrintableErrorField("message", exception.message, multiline=True),
|
|
305
303
|
]
|
|
@@ -27,7 +27,7 @@ class Plugin:
|
|
|
27
27
|
|
|
28
28
|
# args to init determine plugin behavior. see:
|
|
29
29
|
# https://flake8.pycqa.org/en/latest/internal/utils.html#flake8.utils.parameters_for
|
|
30
|
-
def __init__(self, tree):
|
|
30
|
+
def __init__(self, tree) -> None:
|
|
31
31
|
self.tree = tree
|
|
32
32
|
|
|
33
33
|
# Plugin.run() is how checks will run. For detail, see implementation of:
|
|
@@ -40,7 +40,7 @@ class Plugin:
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class ErrorRecordingVisitor(ast.NodeVisitor):
|
|
43
|
-
def __init__(self):
|
|
43
|
+
def __init__(self) -> None:
|
|
44
44
|
super().__init__()
|
|
45
45
|
self.collect = []
|
|
46
46
|
|
|
@@ -18,14 +18,7 @@ from globus_sdk.scopes import (
|
|
|
18
18
|
TimersScopes,
|
|
19
19
|
TransferScopes,
|
|
20
20
|
)
|
|
21
|
-
|
|
22
|
-
# TODO: remove this after an SDK release provides scopes.consents
|
|
23
|
-
try:
|
|
24
|
-
from globus_sdk.scopes.consents import ( # type: ignore[import-not-found]
|
|
25
|
-
ConsentForest,
|
|
26
|
-
)
|
|
27
|
-
except ImportError:
|
|
28
|
-
from globus_sdk.experimental.consents import ConsentForest
|
|
21
|
+
from globus_sdk.scopes.consents import ConsentForest
|
|
29
22
|
|
|
30
23
|
from globus_cli.endpointish import Endpointish, EntityType
|
|
31
24
|
from globus_cli.types import ServiceNameLiteral
|
|
@@ -183,9 +176,7 @@ class LoginManager:
|
|
|
183
176
|
else:
|
|
184
177
|
# If there are dependent scopes all required scope paths are present in the
|
|
185
178
|
# user's cached consent forest.
|
|
186
|
-
return (
|
|
187
|
-
self._cached_consent_forest.meets_scope_requirements(required_scopes)
|
|
188
|
-
)
|
|
179
|
+
return self._cached_consent_forest.meets_scope_requirements(required_scopes)
|
|
189
180
|
|
|
190
181
|
@property
|
|
191
182
|
@functools.lru_cache(maxsize=1) # noqa: B019
|
|
@@ -304,7 +295,7 @@ class LoginManager:
|
|
|
304
295
|
|
|
305
296
|
def _get_client_authorizer(
|
|
306
297
|
self, resource_server: str, *, no_tokens_msg: str | None = None
|
|
307
|
-
) -> globus_sdk.
|
|
298
|
+
) -> globus_sdk.ClientCredentialsAuthorizer | globus_sdk.RefreshTokenAuthorizer:
|
|
308
299
|
tokens = self._token_storage.get_token_data(resource_server)
|
|
309
300
|
|
|
310
301
|
if is_client_login():
|
|
@@ -15,10 +15,6 @@ from globus_sdk.scopes import (
|
|
|
15
15
|
|
|
16
16
|
from globus_cli.types import ServiceNameLiteral
|
|
17
17
|
|
|
18
|
-
TRANSFER_AP_SCOPE_STR: str = (
|
|
19
|
-
"https://auth.globus.org/scopes/actions.globus.org/transfer/transfer"
|
|
20
|
-
)
|
|
21
|
-
|
|
22
18
|
|
|
23
19
|
def compute_timer_scope(
|
|
24
20
|
*, data_access_collection_ids: t.Sequence[str] | None = None
|
|
@@ -29,11 +25,8 @@ def compute_timer_scope(
|
|
|
29
25
|
Scope(GCSCollectionScopeBuilder(cid).data_access, optional=True)
|
|
30
26
|
)
|
|
31
27
|
|
|
32
|
-
transfer_ap_scope = Scope(TRANSFER_AP_SCOPE_STR)
|
|
33
|
-
transfer_ap_scope.add_dependency(transfer_scope)
|
|
34
|
-
|
|
35
28
|
timer_scope = Scope(TimersScopes.timer)
|
|
36
|
-
timer_scope.add_dependency(
|
|
29
|
+
timer_scope.add_dependency(transfer_scope)
|
|
37
30
|
return timer_scope
|
|
38
31
|
|
|
39
32
|
|
|
@@ -87,7 +80,7 @@ class _CLIScopeRequirements(t.Dict[ServiceNameLiteral, _ServiceRequirement]):
|
|
|
87
80
|
],
|
|
88
81
|
}
|
|
89
82
|
self["timer"] = {
|
|
90
|
-
"min_contract_version":
|
|
83
|
+
"min_contract_version": 2,
|
|
91
84
|
"resource_server": TimersScopes.resource_server,
|
|
92
85
|
"nice_server_name": "Globus Timers",
|
|
93
86
|
"scopes": [
|
|
@@ -125,4 +118,4 @@ CLI_SCOPE_REQUIREMENTS = _CLIScopeRequirements()
|
|
|
125
118
|
# version we were at when we got a token
|
|
126
119
|
# it should be the max of the version numbers required by the various different
|
|
127
120
|
# services
|
|
128
|
-
CURRENT_SCOPE_CONTRACT_VERSION: t.Final[int] =
|
|
121
|
+
CURRENT_SCOPE_CONTRACT_VERSION: t.Final[int] = 2
|
|
@@ -66,7 +66,7 @@ class TaskPath(click.ParamType):
|
|
|
66
66
|
coerce_to_dir: bool = False,
|
|
67
67
|
normalize: bool = True,
|
|
68
68
|
require_absolute: bool = False,
|
|
69
|
-
):
|
|
69
|
+
) -> None:
|
|
70
70
|
"""
|
|
71
71
|
Task Paths are paths for passing into Transfer or Delete tasks.
|
|
72
72
|
They're only slightly more than string types: they can join themselves
|
|
@@ -47,7 +47,7 @@ class CustomTransferClient(globus_sdk.TransferClient):
|
|
|
47
47
|
def __init__(
|
|
48
48
|
self,
|
|
49
49
|
*,
|
|
50
|
-
authorizer: globus_sdk.GlobusAuthorizer,
|
|
50
|
+
authorizer: globus_sdk.authorizers.GlobusAuthorizer,
|
|
51
51
|
app_name: str,
|
|
52
52
|
) -> None:
|
|
53
53
|
super().__init__(authorizer=authorizer, app_name=app_name)
|
|
@@ -27,7 +27,7 @@ class PrincipalFormatter(FieldFormatter[t.Tuple[str, str]]):
|
|
|
27
27
|
- fallback
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
|
-
def __init__(self, auth_client: globus_sdk.AuthClient):
|
|
30
|
+
def __init__(self, auth_client: globus_sdk.AuthClient) -> None:
|
|
31
31
|
self.auth_client = auth_client
|
|
32
32
|
self.resolved_ids = globus_sdk.IdentityMap(auth_client)
|
|
33
33
|
|
|
@@ -7,7 +7,7 @@ if t.TYPE_CHECKING:
|
|
|
7
7
|
|
|
8
8
|
# single source of truth for package version,
|
|
9
9
|
# see https://packaging.python.org/en/latest/single_source_version/
|
|
10
|
-
__version__ = "3.
|
|
10
|
+
__version__ = "3.32.0"
|
|
11
11
|
|
|
12
12
|
# app name to send as part of SDK requests
|
|
13
13
|
app_name = f"Globus CLI v{__version__}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: globus-cli
|
|
3
|
-
Version: 3.
|
|
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.
|
|
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
|
|
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"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
globus-sdk==3.
|
|
1
|
+
globus-sdk==3.46.0
|
|
2
2
|
click<9,>=8.1.4
|
|
3
3
|
jmespath==1.0.1
|
|
4
4
|
packaging>=17.0
|
|
@@ -16,7 +16,7 @@ responses==0.25.3
|
|
|
16
16
|
ruamel.yaml==0.18.6
|
|
17
17
|
|
|
18
18
|
[test:python_version >= "3.10"]
|
|
19
|
-
click-type-test==0.0
|
|
19
|
+
click-type-test==1.0.0
|
|
20
20
|
|
|
21
21
|
[test:python_version >= "3.12"]
|
|
22
22
|
setuptools
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{globus_cli-3.31.0 → globus_cli-3.32.0}/src/globus_cli/commands/collection/create/__init__.py
RENAMED
|
File without changes
|