Skip to content

Fish completions raise errors but still works #437

Closed

Description

@AxZxP
  • I am on the latest Poetry version.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).
  • macOS 10.15.7:
  • 1.2.0b2:
  • fish 3.5:

Issue

I installed the completions as explained in the doc, and completions are working. But there is an error when triggering autocomplete with TAB key :

~/.config/fish/completions/poetry.fish (line 57):
complete -c poetry -f -n '__fish_poetry_e3d63c4129b80bf7_complete_no_subcommand' -a source show -d 'Show information about sources configured for the project.'
^
from sourcing file ~/.config/fish/completions/poetry.fish

I put the last error only, but the console print this error for almost every line of this file.

Screencast if needed
poetry-fish-completions.mp4

Activity

  1. jfroy commented on Sep 4, 2022

    @jfroy

    The -a flag takes a single string argument. The completions emitted by poetry need to quote the argument to -a.

    For example, -a "source show".

  2. Secrus commented on Sep 4, 2022

    @Secrus
    Member

    This is known and I am working on fixing completions in cleo right now.

  3. neersighted commented on Sep 4, 2022

    @neersighted
    Member

    Please feel free to open a Cleo bug and link back here.

  4. Dragon1573 commented on Oct 12, 2022

    @Dragon1573

    Summary

    The problem still exists, but it only occurs when Poetry autocompletion is activated for the first time.

    Environments

    image

    Steps to reproduce

    image

    image


    How should I fix this problem? Shall I upgrade poetry to a preview version? Or just simply edit
    and fix ~/.config/fish/completions/poetry.fish as follows on our own?

    Click to expand
    # commands
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'about' -d 'Shows information about Poetry.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'add' -d 'Adds a new dependency to pyproject.toml.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'build' -d 'Builds a package, as a tarball and a wheel by default.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'cache clear' -d "Clears Poetry's cache."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'cache list' -d "List Poetry's caches."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'check' -d 'Checks the validity of the pyproject.toml file.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'config' -d 'Manages configuration settings.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'debug info' -d 'Shows debug information.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'debug resolve' -d 'Debugs dependency resolution.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'env info' -d 'Displays information about the current environment.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'env list' -d 'Lists all virtualenvs associated with the current project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'env remove' -d 'Remove virtual environments associated with the project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'env use' -d 'Activates or creates a new virtualenv for the current project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'export' -d 'Exports the lock file to alternative formats.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'help' -d 'Displays help for a command.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'init' -d 'Creates a basic pyproject.toml file in the current directory.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'install' -d 'Installs the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'list' -d 'Lists commands.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'lock' -d 'Locks the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'new' -d 'Creates a new Python project at <path>.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'publish' -d 'Publishes a package to a remote repository.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'remove' -d 'Removes a package from the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'run' -d 'Runs a command in the appropriate environment.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'search' -d 'Searches for packages on remote repositories.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self add' -d "Add additional packages to Poetry's runtime environment."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self install' -d 'Install locked packages (incl. addons) required by this Poetry installation.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self lock' -d "Lock the Poetry installation's system requirements."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self remove' -d "Remove additional packages from Poetry's runtime environment."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self show' -d "Show packages from Poetry's runtime environment."
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self show plugins' -d 'Shows information about the currently installed plugins.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'self update' -d 'Updates Poetry to the latest version.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'shell' -d 'Spawns a shell within the virtual environment.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'show' -d 'Shows information about packages.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'source add' -d 'Add source configuration for project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'source remove' -d 'Remove source configured for the project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'source show' -d 'Show information about sources configured for the project.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'update' -d 'Update the dependencies as according to the pyproject.toml file.'
    complete -c poetry -f -n '__fish_poetry_b892c35f425489c6_complete_no_subcommand' -a 'version' -d 'Shows the version of the project or bumps it when a valid bump rule is provided.'
  5. neersighted commented on Oct 12, 2022

    @neersighted
    Member

    The Cleo release has not made it into Poetry yet -- @Secrus is working on getting a release out this week. Due to neglect/bit rot, Cleo is in a pretty rough state release-wise and is difficult to release. The hope is to reset the board here (and there has been a lot of work to that end) so Cleo can release early and often with Poetry's needs.

  6. Dragon1573 commented on Oct 12, 2022

    @Dragon1573

    Now I get it. I'll try to edit ~/.config/fish/completions/poetry.fish as a walkaround.

    After the patch is released in Cleo and applied to Poetry, I should remove my own poetry.fish and re-generate one for an "official fix"?

  7. Secrus commented on Oct 12, 2022

    @Secrus
    Member

    Now I get it. I'll try to edit ~/.config/fish/completions/poetry.fish as a walkaround.

    After the patch is released in Cleo and applied to Poetry, I should remove my own poetry.fish and re-generate one for an "official fix"?

    If everything goes according to our plan, update for Cleo should be a part of next minor release of Poetry (1.3 at the moment of writing this). The info will be in the release notes for sure and it will state the need for re-generation of completion files

  8. neersighted commented on Nov 11, 2022

    @neersighted
    Member

    Damn, closed by mistake as well.

  9. Secrus commented on Nov 22, 2022

    @Secrus
    Member

    Completion bugs are now fixed with the incoming release.

  10. nbys commented on Dec 11, 2022

    @nbys

    I still get an error using autocomplete in fish.

    Poetry (version 1.3.0)
    fish, version 3.5.1

    log
    poetry addcomplete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 83):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'cache clear'' -l all -d 'Clear all entries in the cache.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 97):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'debug resolve'' -l extras -d 'Extras to activate for the dependency.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 98):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'debug resolve'' -l install -d 'Show what would be installed for the current system.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 99):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'debug resolve'' -l python -d 'Python version(s) to use for resolution.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 100):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'debug resolve'' -l tree -d 'Display the dependency tree.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 103):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'env info'' -l path -d 'Only display the environment\'s path.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 106):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'env list'' -l full-path -d 'Output the full paths of the virtualenvs.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 109):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'env remove'' -l all -d 'Remove all managed virtual environments associated with the project.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 180):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self add'' -l allow-prereleases -d 'Accept prereleases.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 181):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self add'' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 182):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self add'' -l editable -d 'Add vcs/path dependencies as editable.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 183):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self add'' -l extras -d 'Extras to activate for the dependency.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 184):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self add'' -l source -d 'Name of the source to use to install the package.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 187):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self install'' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 188):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self install'' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 191):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self lock'' -l check -d 'Check that the poetry.lock file corresponds to the current version of pyproject.toml.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 192):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self lock'' -l no-update -d 'Do not update locked versions, only refresh lock file.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 195):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self remove'' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 198):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self show'' -l addons -d 'List only add-on packages installed.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 199):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self show'' -l latest -d 'Show the latest version.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 200):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self show'' -l outdated -d 'Show the latest version but only for packages that are outdated.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 201):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self show'' -l tree -d 'List the dependencies as a tree.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 206):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self update'' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 207):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'self update'' -l preview -d 'Allow the installation of pre-release versions.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 223):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'source add'' -l default -d 'Set this source as the default (disable PyPI). A default source will also be the fallback source if you add other sources.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
    complete: too many arguments
    
    ~/.config/fish/completions/poetry.fish (line 224):
    complete -c poetry -A -n '__fish_seen_subcommand_from 'source add'' -l secondary -d 'Set this source as secondary.'
    ^
    from sourcing file ~/.config/fish/completions/poetry.fish
    
    (Type 'help complete' for related documentation)
  11. 30 remaining items

  12. Asseel-Naji commented on Jun 14, 2023

    @Asseel-Naji

    For anyone just looking for the file, here you go:
    Valid on poetry 1.5.1

    ~/.config/fish/completions/poetry.fish

    function __fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand
        for i in (commandline -opc)
            if contains -- $i about add build 'cache clear' 'cache list' check config 'debug info' 'debug resolve' 'env info' 'env list' 'env remove' 'env use' export help init install list lock new publish remove run search 'self add' 'self install' 'self lock' 'self remove' 'self show' 'self show plugins' 'self update' shell show 'source add' 'source remove' 'source show' update version
                return 1
            end
        end
        return 0
    end
    
    # global options
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l ansi -d 'Force ANSI output.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l directory -d 'The working directory for the Poetry command (defaults to the current working directory).'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l help -d 'Display help for the given command. When no command is given display help for the list command.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l no-ansi -d 'Disable ANSI output.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l no-cache -d 'Disables Poetry source caches.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l no-interaction -d 'Do not ask any interactive question.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l no-plugins -d 'Disables plugins.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l quiet -d 'Do not output any message.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l verbose -d 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.'
    complete -c poetry -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -l version -d 'Display this application version.'
    
    # commands
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a about -d 'Shows information about Poetry.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a add -d 'Adds a new dependency to pyproject.toml.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a build -d 'Builds a package, as a tarball and a wheel by default.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'cache clear' -d 'Clears a Poetry cache by name.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'cache list' -d 'List Poetry\'s caches.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a check -d 'Checks the validity of the pyproject.toml file.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a config -d 'Manages configuration settings.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'debug info' -d 'Shows debug information.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'debug resolve' -d 'Debugs dependency resolution.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'env info' -d 'Displays information about the current environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'env list' -d 'Lists all virtualenvs associated with the current project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'env remove' -d 'Remove virtual environments associated with the project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'env use' -d 'Activates or creates a new virtualenv for the current project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a export -d 'Exports the lock file to alternative formats.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a help -d 'Displays help for a command.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a init -d 'Creates a basic pyproject.toml file in the current directory.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a install -d 'Installs the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a list -d 'Lists commands.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a lock -d 'Locks the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a new -d 'Creates a new Python project at <path>.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a publish -d 'Publishes a package to a remote repository.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a remove -d 'Removes a package from the project dependencies.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a run -d 'Runs a command in the appropriate environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a search -d 'Searches for packages on remote repositories.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self add' -d 'Add additional packages to Poetry\'s runtime environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self install' -d 'Install locked packages (incl. addons) required by this Poetry installation.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self lock' -d 'Lock the Poetry installation\'s system requirements.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self remove' -d 'Remove additional packages from Poetry\'s runtime environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self show' -d 'Show packages from Poetry\'s runtime environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self show plugins' -d 'Shows information about the currently installed plugins.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'self update' -d 'Updates Poetry to the latest version.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a shell -d 'Spawns a shell within the virtual environment.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a show -d 'Shows information about packages.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'source add' -d 'Add source configuration for project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'source remove' -d 'Remove source configured for the project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a 'source show' -d 'Show information about sources configured for the project.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a update -d 'Update the dependencies as according to the pyproject.toml file.'
    complete -c poetry -f -n '__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand' -a version -d 'Shows the version of the project or bumps it when a valid bump rule is provided.'
    
    # command options
    
    # about
    
    # add
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l allow-prereleases -d 'Accept prereleases.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l dev -d 'Add as a development dependency. (Deprecated) Use --group=dev instead.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l editable -d 'Add vcs/path dependencies as editable.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l extras -d 'Extras to activate for the dependency.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l group -d 'The group to add the dependency to.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l lock -d 'Do not perform operations (only update the lockfile).'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l optional -d 'Add as an optional dependency.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l platform -d 'Platforms for which the dependency must be installed.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l python -d 'Python version for which the dependency must be installed.'
    complete -c poetry -A -n '__fish_seen_subcommand_from add' -l source -d 'Name of the source to use to install the package.'
    
    # build
    complete -c poetry -A -n '__fish_seen_subcommand_from build' -l format -d 'Limit the format to either sdist or wheel.'
    
    # 'cache clear'
    complete -c poetry -A -n '__fish_seen_subcommand_from "cache clear"' -l all -d 'Clear all entries in the cache.'
    
    # 'cache list'
    
    # check
    
    # config
    complete -c poetry -A -n '__fish_seen_subcommand_from config' -l list -d 'List configuration settings.'
    complete -c poetry -A -n '__fish_seen_subcommand_from config' -l local -d 'Set/Get from the project\'s local configuration.'
    complete -c poetry -A -n '__fish_seen_subcommand_from config' -l unset -d 'Unset configuration setting.'
    
    # 'debug info'
    
    # 'debug resolve'
    complete -c poetry -A -n '__fish_seen_subcommand_from "debug resolve"' -l extras -d 'Extras to activate for the dependency.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "debug resolve"' -l install -d 'Show what would be installed for the current system.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "debug resolve"' -l python -d 'Python version(s) to use for resolution.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "debug resolve"' -l tree -d 'Display the dependency tree.'
    
    # 'env info'
    complete -c poetry -A -n '__fish_seen_subcommand_from "env info"' -l executable -d 'Only display the environment\'s python executable path.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "env info"' -l path -d 'Only display the environment\'s path.'
    
    # 'env list'
    complete -c poetry -A -n '__fish_seen_subcommand_from "env list"' -l full-path -d 'Output the full paths of the virtualenvs.'
    
    # 'env remove'
    complete -c poetry -A -n '__fish_seen_subcommand_from "env remove"' -l all -d 'Remove all managed virtual environments associated with the project.'
    
    # 'env use'
    
    # export
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l dev -d 'Include development dependencies. (Deprecated)'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l extras -d 'Extra sets of dependencies to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l format -d 'Format to export to. Currently, only constraints.txt and requirements.txt are supported.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l only -d 'The only dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l output -d 'The name of the output file.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l with -d 'The optional dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l with-credentials -d 'Include credentials for extra indices.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l without -d 'The dependency groups to ignore.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l without-hashes -d 'Exclude hashes from the exported file.'
    complete -c poetry -A -n '__fish_seen_subcommand_from export' -l without-urls -d 'Exclude source repository urls from the exported file.'
    
    # help
    
    # init
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l author -d 'Author name of the package.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l dependency -d 'Package to require, with an optional version constraint, e.g. requests:^2.10.0 or requests=2.11.1.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l description -d 'Description of the package.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l dev-dependency -d 'Package to require for development, with an optional version constraint, e.g. requests:^2.10.0 or requests=2.11.1.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l license -d 'License of the package.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l name -d 'Name of the package.'
    complete -c poetry -A -n '__fish_seen_subcommand_from init' -l python -d 'Compatible Python versions.'
    
    # install
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l all-extras -d 'Install all extra dependencies.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l compile -d 'Compile Python source files to bytecode. (This option has no effect if modern-installation is disabled because the old installer always compiles.)'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l extras -d 'Extra sets of dependencies to install.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l no-dev -d 'Do not install the development dependencies. (Deprecated)'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l no-directory -d 'Do not install any directory path dependencies; useful to install dependencies without source code, e.g. for caching of Docker layers)'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l no-root -d 'Do not install the root package (the current project).'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l only -d 'The only dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l only-root -d 'Exclude all dependencies.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l remove-untracked -d 'Removes packages not present in the lock file. (Deprecated)'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l with -d 'The optional dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from install' -l without -d 'The dependency groups to ignore.'
    
    # list
    
    # lock
    complete -c poetry -A -n '__fish_seen_subcommand_from lock' -l check -d 'Check that the poetry.lock file corresponds to the current version of pyproject.toml.'
    complete -c poetry -A -n '__fish_seen_subcommand_from lock' -l no-update -d 'Do not update locked versions, only refresh lock file.'
    
    # new
    complete -c poetry -A -n '__fish_seen_subcommand_from new' -l name -d 'Set the resulting package name.'
    complete -c poetry -A -n '__fish_seen_subcommand_from new' -l readme -d 'Specify the readme file format. One of md (default) or rst'
    complete -c poetry -A -n '__fish_seen_subcommand_from new' -l src -d 'Use the src layout for the project.'
    
    # publish
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l build -d 'Build the package before publishing.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l cert -d 'Certificate authority to access the repository.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l client-cert -d 'Client certificate to access the repository.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l dry-run -d 'Perform all actions except upload the package.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l password -d 'The password to access the repository.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l repository -d 'The repository to publish the package to.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l skip-existing -d 'Ignore errors from files already existing in the repository.'
    complete -c poetry -A -n '__fish_seen_subcommand_from publish' -l username -d 'The username to access the repository.'
    
    # remove
    complete -c poetry -A -n '__fish_seen_subcommand_from remove' -l dev -d 'Remove a package from the development dependencies. (Deprecated) Use --group=dev instead.'
    complete -c poetry -A -n '__fish_seen_subcommand_from remove' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from remove' -l group -d 'The group to remove the dependency from.'
    complete -c poetry -A -n '__fish_seen_subcommand_from remove' -l lock -d 'Do not perform operations (only update the lockfile).'
    
    # run
    
    # search
    
    # 'self add'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self add"' -l allow-prereleases -d 'Accept prereleases.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self add"' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self add"' -l editable -d 'Add vcs/path dependencies as editable.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self add"' -l extras -d 'Extras to activate for the dependency.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self add"' -l source -d 'Name of the source to use to install the package.'
    
    # 'self install'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self install"' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self install"' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.'
    
    # 'self lock'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self lock"' -l check -d 'Check that the poetry.lock file corresponds to the current version of pyproject.toml.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self lock"' -l no-update -d 'Do not update locked versions, only refresh lock file.'
    
    # 'self remove'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self remove"' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    
    # 'self show'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self show"' -l addons -d 'List only add-on packages installed.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self show"' -l latest -d 'Show the latest version.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self show"' -l outdated -d 'Show the latest version but only for packages that are outdated.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self show"' -l tree -d 'List the dependencies as a tree.'
    
    # 'self show plugins'
    
    # 'self update'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self update"' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from "self update"' -l preview -d 'Allow the installation of pre-release versions.'
    
    # shell
    
    # show
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l all -d 'Show all packages (even those not compatible with current system).'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l latest -d 'Show the latest version.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l no-dev -d 'Do not list the development dependencies. (Deprecated)'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l only -d 'The only dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l outdated -d 'Show the latest version but only for packages that are outdated.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l top-level -d 'Show only top-level dependencies.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l tree -d 'List the dependencies as a tree.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l why -d 'When showing the full list, or a --tree for a single package, also display why it\'s included.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l with -d 'The optional dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from show' -l without -d 'The dependency groups to ignore.'
    
    # 'source add'
    complete -c poetry -A -n '__fish_seen_subcommand_from "source add"' -l default -d 'Set this source as the default (disable PyPI). A default source will also be the fallback source if you add other sources. (Deprecated, use --priority)'
    complete -c poetry -A -n '__fish_seen_subcommand_from "source add"' -l priority -d 'Set the priority of this source. One of: default, primary, secondary, supplemental, explicit. Defaults to primary.'
    complete -c poetry -A -n '__fish_seen_subcommand_from "source add"' -l secondary -d 'Set this source as secondary. (Deprecated, use --priority)'
    
    # 'source remove'
    
    # 'source show'
    
    # update
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).'
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l lock -d 'Do not perform operations (only update the lockfile).'
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l no-dev -d 'Do not update the development dependencies. (Deprecated)'
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l only -d 'The only dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l with -d 'The optional dependency groups to include.'
    complete -c poetry -A -n '__fish_seen_subcommand_from update' -l without -d 'The dependency groups to ignore.'
    
    # version
    complete -c poetry -A -n '__fish_seen_subcommand_from version' -l dry-run -d 'Do not update pyproject.toml file'
    complete -c poetry -A -n '__fish_seen_subcommand_from version' -l short -d 'Output the version number only'
  13. mrmeszaros commented on Jun 14, 2023

    @mrmeszaros

    @Asseel-Naji Sadly this does not work under fish, version 3.6.1. Care to share your working setup?

    Here is what I tried:

    1. Tried poetry env info --e[TAB] and it did not complete.

    2. Tried inverting the quotes (double to single and vice versa - as seen below), but it does not work either.

      complete -c poetry -A -n "__fish_seen_subcommand_from 'env info'" -l executable -d 'Only display the environment\'s python executable path.'
    3. Tried using without the any quotes (as seen below), and it did the autocomplete.
      HOWEVER, that way poetry env use --e[TAB] also completes to --executable which is wrong (the option does not exist).

      complete -c poetry -A -n '__fish_seen_subcommand_from env info' -l executable -d 'Only display the environment\'s python executable path.'

    After some digging, it seems to me that the fish-shell/fish-shell#7107 issue is tackling a similar problem (nested subcommand and option parsing), might be worth looking into once it's resolved.

  14. Asseel-Naji commented on Jun 14, 2023

    @Asseel-Naji
    1. Tried poetry env info --e[TAB] and it did not complete.

    I just tried the same, poetry env info can only be followed by :

    --ansi                                                                                      (Force ANSI output.)
    --directory          (The working directory for the Poetry command (defaults to the current working directory).)
    --help         (Display help for the given command. When no command is given display help for the list command.)
    --no-ansi                                                                                 (Disable ANSI output.)
    --no-cache                                                                      (Disables Poetry source caches.)
    --no-interaction                                                          (Do not ask any interactive question.)
    --no-plugins                                                                                 (Disables plugins.)
    --quiet                                                                             (Do not output any message.)
    --verbose  (Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.)
    --version                                                                    (Display this application version.)
    

    That's said, if it's indeed doesn't work on intended command. Could you make sure the content of the file are pasted in ~/.config/fish/completions/poetry.fish and after that restart fish.

  15. mrmeszaros commented on Jul 3, 2023

    @mrmeszaros

    Did all that - same results.

    Let me explain my issue: here is the help page for poetry env info

    $ poetry env info --help
    
    Description:
      Displays information about the current environment.
    
    Usage:
      env info [options]
    
    Options:
      -p, --path                 Only display the environment's path.
      -e, --executable           Only display the environment's python executable path.
      -h, --help                 Display help for the given command. When no command is given display help for the list command.
      -q, --quiet                Do not output any message.
      -V, --version              Display this application version.
          --ansi                 Force ANSI output.
          --no-ansi              Disable ANSI output.
      -n, --no-interaction       Do not ask any interactive question.
          --no-plugins           Disables plugins.
          --no-cache             Disables Poetry source caches.
      -C, --directory=DIRECTORY  The working directory for the Poetry command (defaults to the current working directory).
      -v|vv|vvv, --verbose       Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.

    As You can see the help page clearly notes the -e, --executable option.
    The completions script - as You also see on Your system - fails to provide that option when asking for completions.

    However I see that the subcommand specific options might not be in the scope of this issue, and might need a separate one.

  16. drin commented on Jul 18, 2023

    @drin

    It takes time, to do things right. At the moment, I am the only person actively working on Cleo maintenance.

    @Secrus I know it takes time, but just share the list of issues you want addressed before cutting a release of cleo and I suspect people will help. You don't even have to document them, just list them and see if we can do the rest. Or perhaps just let us know how you'd like us to cherry-pick the commit and cut a new release and we can move on.

    It's one thing for there to be enhancements or bug fixes you want to get around to, but this issue requires manual intervention everytime there's an update and the amount of work required for someone to help seems trivial. I'm not sure why this has to drag on any longer than it has.

    Edit: oh, actually maybe this milestone is what you want to have complete before the next release?
    https://github.com/python-poetry/cleo/milestone/9

  17. drin commented on Jul 18, 2023

    @drin

    However I see that the subcommand specific options might not be in the scope of this issue, and might need a separate one.

    @mrmeszaros I agree that would be a separate issue, since this one was just focused on the errors/warnings produced by quoting errors. I'm not sure if a related issue already exists, though.

  18. added a commit that references this issue on Sep 8, 2023
  19. Anselmoo commented on Jan 6, 2024

    @Anselmoo

    @Asseel-Naji Sadly this does not work under fish, version 3.6.1. Care to share your working setup?

    Here is what I tried:

    1. Tried poetry env info --e[TAB] and it did not complete.
    2. Tried inverting the quotes (double to single and vice versa - as seen below), but it does not work either.
      complete -c poetry -A -n "__fish_seen_subcommand_from 'env info'" -l executable -d 'Only display the environment\'s python executable path.'
    3. Tried using without the any quotes (as seen below), and it did the autocomplete.
      HOWEVER, that way poetry env use --e[TAB] also completes to --executable which is wrong (the option does not exist).
      complete -c poetry -A -n '__fish_seen_subcommand_from env info' -l executable -d 'Only display the environment\'s python executable path.'

    After some digging, it seems to me that the fish-shell/fish-shell#7107 issue is tackling a similar problem (nested subcommand and option parsing), might be worth looking into once it's resolved.

    Could it be that

    image

    without \' for 'List Poetry\'s caches.'

    image

    that the backslash is actually not working?

  20. added a commit that references this issue on Mar 30, 2024
  21. added this to the 3.0 milestone on Nov 28, 2024
  22. added
    bugSomething isn't working as expected
    on Jan 3, 2025
  23. branchv commented on Feb 8, 2025

    @branchv
    Member

    This was fixed for fish a while back with f2b8075, released in 2.1.0 (zsh still has the same issue however, that is tracked in #360)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions