You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fish completions raise errors but still works #437
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 neededpoetry-fish-completions.mp4
Reacted by Max Nordlund, Jan Pfister, aulonsal, Nicolas K., Christopher Krailo, Shawn Anderson, Christoffer Moesgaard, Carlos Eduardo Moreira dos Santos, Nicolas Budyn, Shahriar and 23 more
The problem still exists, but it only occurs when Poetry autocompletion is activated for the first time.
Environments
Steps to reproduce
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
# commandscomplete-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.'
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.
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
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 sourceif 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)
Reacted by Firegem, pinkfrog9, David Gidwani, Charitarth Chugh, dalgarno, Rémi Ferrand, Julien Chappuis, ❤是纱雾酱哟~, ashrkv, Sondre Aasemoen and 10 more
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)
ifcontains -- $i about add build 'cache clear''cache list' check config 'debug info''debug resolve''env info''env list''env remove''env use'exporthelp 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
endendreturn 0
end# global optionscomplete-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'-lhelp-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.'# commandscomplete-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'-aexport-d'Exports the lock file to alternative formats.'complete-c poetry -f-n'__fish_poetry_8d3a3a77ea0412bb_complete_no_subcommand'-ahelp-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# addcomplete-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.'# buildcomplete-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# configcomplete-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'-lunset-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'# exportcomplete-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# initcomplete-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.'# installcomplete-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# lockcomplete-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.'# newcomplete-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.'# publishcomplete-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.'# removecomplete-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# showcomplete-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'# updatecomplete-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.'# versioncomplete-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'
Reacted by Flamescion, cxvj, Vinicius Miradouro, kaisiemek, monsieurTut, Eugene Morozov, Filipe Marchesini and Alexander Petrosyan
Reacted by Mark E. Haase, Patricio Serrano, Michael Vellines, kaisiemek, Jan Hicken, Martin Zaťko, Nick Brisebois and Filipe Marchesini
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).
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.
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.
Let me explain my issue: here is the help page for poetry env info
$ poetry env info --helpDescription: 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.
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.
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.
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).
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.
Activity
jfroy commentedon Sep 4, 2022
The
-aflag takes a single string argument. The completions emitted by poetry need to quote the argument to-a.For example,
-a "source show".Secrus commentedon Sep 4, 2022
This is known and I am working on fixing completions in
cleoright now.neersighted commentedon Sep 4, 2022
Please feel free to open a Cleo bug and link back here.
Dragon1573 commentedon Oct 12, 2022
Summary
The problem still exists, but it only occurs when Poetry autocompletion is activated for the first time.
Environments
Steps to reproduce
How should I fix this problem? Shall I upgrade
poetryto a preview version? Or just simply editand fix
~/.config/fish/completions/poetry.fishas follows on our own?Click to expand
neersighted commentedon Oct 12, 2022
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.
Dragon1573 commentedon Oct 12, 2022
Now I get it. I'll try to edit
~/.config/fish/completions/poetry.fishas a walkaround.After the patch is released in Cleo and applied to Poetry, I should remove my own
poetry.fishand re-generate one for an "official fix"?Secrus commentedon Oct 12, 2022
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
neersighted commentedon Nov 11, 2022
Damn, closed by mistake as well.
Secrus commentedon Nov 22, 2022
Completion bugs are now fixed with the incoming release.
nbys commentedon Dec 11, 2022
I still get an error using autocomplete in fish.
Poetry (version 1.3.0)
fish, version 3.5.1
log
feat: Add option to 'command with space in name' in fixtures
feat: Add option to 'command with space in name' in fixtures
30 remaining items
Asseel-Naji commentedon Jun 14, 2023
For anyone just looking for the file, here you go:
Valid on poetry 1.5.1
~/.config/fish/completions/poetry.fishmrmeszaros commentedon Jun 14, 2023
@Asseel-Naji Sadly this does not work under
fish, version 3.6.1. Care to share your working setup?Here is what I tried:
Tried
poetry env info --e[TAB] and it did not complete.Tried inverting the quotes (double to single and vice versa - as seen below), but it does not work either.
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--executablewhich is wrong (the option does not exist).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.
Asseel-Naji commentedon Jun 14, 2023
I just tried the same,
poetry env infocan only be followed by :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.fishand after that restart fish.mrmeszaros commentedon Jul 3, 2023
Did all that - same results.
Let me explain my issue: here is the help page for
poetry env infoAs You can see the help page clearly notes the
-e, --executableoption.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.
drin commentedon Jul 18, 2023
@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
drin commentedon Jul 18, 2023
@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.
[overlays/poetry] fix completions
poetry: fix completion errors
Anselmoo commentedon Jan 6, 2024
Could it be that
without
\'for'List Poetry\'s caches.'that the backslash is actually not working?
add(fish): poetry completion support
branchv commentedon Feb 8, 2025
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)