-
-
Notifications
You must be signed in to change notification settings - Fork 24
Prevent installation failure with custom install_package using pip #210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
e1a9586
to
7ebff3b
Compare
Nice! This should be able to address my pain with defaulting to |
7ebff3b
to
991ab70
Compare
Can you add tests with only some envs having a custom install command? |
991ab70
to
51e8d40
Compare
Done. Modified that test to include all 3 cases. |
if len(install_cmd) < 1 or not isinstance(install_cmd[0], str): # pragma: no cover | ||
msg = f"Unable to determine install command. {install_cmd}" | ||
raise RuntimeError(msg) | ||
self._pkg_manager = "uv" if install_cmd[0].endswith("uv") else "pip" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say custom install commands are not supported with tox-uv
🤔 I'd rather raise an error than support it..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I disagree: people may want a different installer for some of the envs but not the others. Is there an alternative workaround? Can I force a different installer for a specific env?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why, what's the use case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have own lock files integrated like this, for example. And when tox-uv is installed in the env, it interferes with everything and breaks stuff in the end.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please expand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ssbarnea can you also explain the use case for this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did have few isolated cases where I wanted to use pip instead of uv installer. In these cases it was because uv installer was buggy (or it could also be because the problematic package happened to install with pip and fail with uv for their own internal assumptions). I think that we should allow users to have custom installers to allow them to implement workarounds.
On the other hand, if you want I can change the rewrite logic to do nothing if the case is unable to detect either pip or uv as being inside the install_cmd.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did have few isolated cases where I wanted to use pip instead of uv installer. In these cases it was because uv installer was buggy (or it could also be because the problematic package happened to install with pip and fail with uv for their own internal assumptions).
In those cases you can just set the runner to be not the uv one, no?
As some users might still use install_package and point to original pip, we want to use correct arguments names to this one.
51e8d40
to
73d44d7
Compare
As some users might still use install_package and point to original pip, we want to use correct arguments names to this one.