Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add optional
typer
subcommands (#723)
* Bump version number * Update the CHANGELOG.md * Fix bug: Manually handle sys.argv to allow proper handling of all CLI options and args * Use pytest-mock to spy calls to binstar_main and ensure arguments are processed correctly * Add test to ensure top-level CLI options are passed through to binstar_main. * Fix whitespace linting errors * Satisfy pycodestyle, pylint, and mypy * Exclude conda environment and coverage report * Implement way to optionally define a new subcommand using typer * Pass the common args via ctx.obj * Remove commented context_settings from main callback * This allows token to be passed either before or after "org" subcommand * Depend on upcoming changes to anaconda-cli-base * Remove debug statement * Start work on upload subcommand * Start mapping arguments for upload subcommand, enhance tests * Copy in defaults for Namespace and tests * Refactor the test to be parametrized * Add more tests around label and no-progress args * Extend testing for multiple label options * Add test and handling for deprecated --channel option * Add -u/--user option * Add parametrization to test with and without org prefix * Add keep_basename option * Add package option * Add support for package version option * Add support for package summary option * Add support for package_type option * Add support for description option * Add support for thumbnail * Add support for private * Add support for register/auto_register * Fix interactive flag * Add fail option * Add force option * Add handling of mutually-exclusive options * Fix the exclusivity callback to handle False values * Add skip-existing option * Add force-metadata-update option * Add build-id option * Add note about --json-help option * Add testing around top-level options too * Show help if no args provided * Clean up help text * Files are required * Don't exit on first failed test * Move test up * Start adding copy command * Add to_owner option * Add from-label and to-label options * Add replace and update options * Parse spec instead of using raw string * Add new subcommand for move * Support token and site options in copy * Start creating channel and label subcommands * Add test for organization option * Add handling of --copy option * Add handling of --list option * Add handling of --show option * Add handling of --lock and --unlock options * Add handling of --remove option * Start adding exclusivity to the actions * Finish adding exclusivity to the actions * Add handling of required exclusive option group * Parametrize command name * Renamed from ctx.obj to ctx.obj.params * Start adding update subcommand * Add tests for --token and --site * Add package_type option * Add --release option * Add search subcommand * Select --platform from a list of choices * Add boilerplate for new groups subcommand definition * Add handling of action argument * Add group spec argument * Add --perms option * Clean up imports * Add new show subcommand * Start implementing remove subcommand * Add --force option * Start adding auth subcommand * Add default handling of token name, and tests * Add --organization option * Add flag-like options * Add --remove option * Add handling of required and mutually exclusive action options * Add handling of token strength options * Add --url option * Add --max-age option * Add --scopes option * Add the --out option * Add basic boilerplate for config subcommand * Improve handling of type option * Add --set option * Add --get option * Add --remove option * Add flag options --show, --files, --show-sources * Add --user and --system options * Add boilerplate for package command * Add required spec argument * Add default values * Add actions flags * Add required exclusive option callback * Fix test * Add options for --summary, --license, --license-url * Add options for --private and --personal * Move all mount_subcommand functions to bottom of modules * Alphabetize import * Add a new test and fixture that runs each CLI entrypoint combination the same and checks the arg parsing * Move sys.argv monkeypatch to fixture * Extend fixture to cover with and without "org" prefix * Refactor mocking into an encapsulating class * Move fixture to top and refactor package command test * Add fixture IDs and use assertion methods for better comparison output * Use new fixture and fix a bug! * Refactor copy and move commands * Migrate update command and get parity * Migrate search command and get parity * Migrate channel/label command and get parity * Migrate groups command and get parity * Migrate show command and get parity * Migrate remove command and get parity * Migrate auth command and get parity with TODO * Migrate config command and get parity with TODO * Fix whitespace and line-too-long issues * Ignore bandit alerts for test TOKEN values * Update imports to use typing_extensions * Fix type hints * Resolve type errors in config.py * Fix types in channel.py * Fix tests by moving class definition above usage as type * Fix types in authorizations.py * Format code * Fix pylint errors * Remove intermediate callback function (we get args from parent) * Remove unused imports * Fix comment syntax * Bump dependency to anaconda-cli-base>=0.4.0 * Try to set _TYPER_FORCE_DISABLE_TERMINAL * Fix python 3.8 type to use typing.List
- Loading branch information