-
Notifications
You must be signed in to change notification settings - Fork 418
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
Apply repo-review suggestions #1519
base: main
Are you sure you want to change the base?
Conversation
b4cf32f
to
af783b0
Compare
@@ -38,7 +38,7 @@ def environment(value: str) -> ExitCode: | |||
"PIPX_HOME_ALLOW_SPACE": str(paths.ctx.allow_spaces_in_home_path).lower(), | |||
} | |||
if value is None: | |||
print("Environment variables (set by user):") | |||
print("Environment variables (set by user):") # type: ignore[unreachable] |
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.
value
is not Optional
, so in theory it cannot be None
.
Do we still want to defend against an actual None
?
@@ -32,7 +32,7 @@ def inject_dep( | |||
) -> bool: | |||
logger.debug("Injecting package %s", package_spec) | |||
|
|||
if not venv_dir.exists() or not next(venv_dir.iterdir()): | |||
if not venv_dir.exists() or next(venv_dir.iterdir(), None) is None: |
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.
venv_dir.iterdir()
yields Path
which does not implement __bool__
or __len__
so it will always be true in boolean context. We might want to defend against StopIteration
exceptions raised by next()
.
@@ -125,7 +125,7 @@ def uninject( | |||
) -> ExitCode: | |||
"""Returns pipx exit code""" | |||
|
|||
if not venv_dir.exists() or not next(venv_dir.iterdir()): | |||
if not venv_dir.exists() or next(venv_dir.iterdir(), None) is None: |
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.
venv_dir.iterdir()
yields Path
which does not implement __bool__
or __len__
so it will always be true in boolean context. We might want to defend against StopIteration
exceptions raised by next()
.
@@ -198,11 +198,11 @@ def run( | |||
# we can't parse this as a package | |||
package_name = app | |||
|
|||
content = None if spec is not None else maybe_script_content(app, is_path) | |||
content = None if spec is not None else maybe_script_content(app, is_path) # type: ignore[redundant-expr] |
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.
spec
is not Optional
, so in theory it cannot be None
.
Do we still want to defend against an actual None
?
if content is not None: | ||
run_script(content, app_args, python, pip_args, venv_args, verbose, use_cache) | ||
else: | ||
package_or_url = spec if spec is not None else app | ||
package_or_url = spec if spec is not None else app # type: ignore[redundant-expr] |
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.
Same.
@@ -409,7 +409,7 @@ def run_pipx_command(args: argparse.Namespace, subparsers: Dict[str, argparse.Ar | |||
python_flag_passed=python_flag_passed, | |||
) | |||
elif args.command == "runpip": | |||
if not venv_dir: | |||
if not venv_dir: # type: ignore[truthy-bool] |
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.
In theory, venv_dir
cannot be None
.
Do we still want to defend against an actual None
?
8d93445
to
766f8c4
Compare
@@ -114,7 +114,7 @@ def upgrade(self, *, pip_args: List[str], verbose: bool = False, raises: bool = | |||
return | |||
|
|||
if pip_args is None: | |||
pip_args = [] | |||
pip_args = [] # type: ignore[unreachable] |
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.
pip_args
is not Optional
, so in theory it cannot be None
.
Do we still want to defend against an actual None
?
RF003: src directory doesn't need to be specified anymore (0.6+) Ruff now (0.6+) looks in the src directory by default. The src setting doesn't need to be specified if it's just set to `["src"]`.
MY103: MyPy warn unreachable Must have `warn_unreachable` (true/false) to pass this check. There are occasionally false positives (often due to platform or Python version static checks), so it's okay to set it to false if you need to. But try it first - it can catch real bugs too. MY104: MyPy enables ignore-without-code Must have `"ignore-without-code"` in `enable_error_code = [...]`. This will force all skips in your project to include the error code, which makes them more readable, and avoids skipping something unintended. MY105: MyPy enables redundant-expr Must have `"redundant-expr"` in `enable_error_code = [...]`. This helps catch useless lines of code, like checking the same condition twice. MY106: MyPy enables truthy-bool Must have `"truthy-bool"` in `enable_error_code = []`. This catches mistakes in using a value as truthy if it cannot be falsy.
766f8c4
to
40c7227
Compare
changelog.d/
(if the patch affects the end users)Summary of changes
More verbose MyPy and resulting fixes.
Test plan
Pass CI.