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
As it stated in the documentation, pip-tools look for the configuration file “in the same directory as your requirements input files”. However, due to the way click works, it's not true:
But since callbacks of eager options are called before other options are processed, src_files is always empty. From the click documentation: “All eager parameters are evaluated before all non-eager parameters, but again in the order as they were provided on the command line by the user.”
Thanks for raising this issue! Note this was already discovered and the same fix suggested in #1902.
I proposed it in #2048 some time ago, unfortunately it seems to have been forgotten. Thanks for providing the tests though, I might transfer them there.
As it stated in the documentation, pip-tools look for the configuration file “in the same directory as your requirements input files”. However, due to the way click works, it's not true:
--config
(and--no-config
) is declared as eager: https://github.com/jazzband/pip-tools/blob/7.4.1/piptools/scripts/options.py#L317-L333--config
's callbackoverride_defaults_from_config_file
tries to get thesrc_files
param value to compute the config path relative to the source files: https://github.com/jazzband/pip-tools/blob/7.4.1/piptools/utils.py#L543src_files
is always empty. From the click documentation: “All eager parameters are evaluated before all non-eager parameters, but again in the order as they were provided on the command line by the user.”select_config_file
falls back to the current working dir as a config file location: https://github.com/jazzband/pip-tools/blob/7.4.1/piptools/utils.py#L627-L630Environment Versions
Python 3.12.3
pip 24.0
pip-compile, version 7.4.1
Steps to replicate
requirements/
withrequirements.in
..pip-tools.toml
orpyproject.toml
withgenerate-hashes = true
.pip compile requirements/requirements.in
.Expected result
requirements/requirements.txt
contains hashes.Actual result
requirements/requirements.txt
has no hashes; the configuration file is ignored.The text was updated successfully, but these errors were encountered: