62546ec666
Replace the custom oslo.config/argparse CLI wrapper with a typer application. typer (over its vendored click) now owns the whole CLI surface (help, validation, strict rejection of unknown arguments); oslo.config and oslo.log are used only as libraries for config-file loading and logging setup. - Global options are generated at runtime from the live oslo Opt objects and appended to the root callback signature, then translated back into an argv slice for rally.api.API, so they stay in sync with oslo.log. - The six command groups become plain module-level functions on per-group sub-apps; the API instance is injected through a ContextVar instead of a parameter, keeping it out of the generated help and completion. - Each command's primary identifier is an ArgumentOrKeyword: it is accepted both positionally (rally task status <uuid>) and via its historical flag (--uuid), which is registered on the parser and hidden from help. - task start/validate accept "-" to read the input task from stdin. - The bash completion script is generated from the command tree (rally/cli/bashcomplete.py) and guarded by tests/unit/test_resources. - The cli_reference sphinx extension and the CHANGELOG are updated to match. Backward-incompatible: documented usage is preserved, but help and error messages are now rendered by typer/click (different wording and layout), and bash completion no longer suggests the primary-id flags (--uuid, --id, --env, --deployment, --task) -- they still work, and the identifiers can now also be passed positionally. Change-Id: I99341a53d8f79c2afa382f977bbddd9202eb6d09 Signed-off-by: Andriy Kurilin <andr.kurilin@gmail.com>
23 lines
998 B
Plaintext
23 lines
998 B
Plaintext
|
|
# Rally core dependencies
|
|
alembic!=1.2.0,!=1.6.3
|
|
Jinja2 # BSD
|
|
jsonschema
|
|
markupsafe
|
|
oslo.config!=4.3.0,!=4.4.0
|
|
# do not forget to remove `testresources` from test-requirements. it is a
|
|
# dependency of oslo.db for tests
|
|
oslo.db # Apache-2.0
|
|
oslo.log!=3.44.2,!=4.1.2,!=4.2.0,!=5.0.1,!=5.0.2,!=5.1.0
|
|
packaging!=20.5,!=20.6,!=20.7
|
|
paramiko>=4.0.0
|
|
pbr!=2.1.0 # Apache-2.0
|
|
PrettyTable!=3.4.0
|
|
pyOpenSSL # Apache License, Version 2.0
|
|
PyYAML # MIT
|
|
python-subunit # Apache-2.0 or BSD
|
|
requests!=2.20.0,!=2.24.0 # Apache-2.0
|
|
SQLAlchemy>=2 # MIT
|
|
typer>=0.26.0 # MIT
|
|
virtualenv!=16.3.0 # MIT
|