Prevent installation failure with custom install_package using pip#210
Prevent installation failure with custom install_package using pip#210ssbarnea wants to merge 1 commit intotox-dev:mainfrom
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.
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.
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.
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.
@ssbarnea can you also explain the use case for this?
There was a problem hiding this comment.
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.
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.