Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/poetry/console/commands/env_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ def __init__(self) -> None:

@property
def env(self) -> Env:
assert self._env is not None
if self._env is None:
raise AssertionError
return self._env

def set_env(self, env: Env) -> None:
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/console/commands/installer_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ def reset_poetry(self) -> None:

@property
def installer(self) -> Installer:
assert self._installer is not None
if self._installer is None:
raise AssertionError
return self._installer

def set_installer(self, installer: Installer) -> None:
Expand Down
6 changes: 4 additions & 2 deletions src/poetry/console/commands/self/self_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ def reset_env(self) -> None:
def env(self) -> Env:
if not isinstance(self._env, SystemEnv):
self.reset_env()
assert self._env is not None
if self._env is None:
raise AssertionError
return self._env

@property
Expand Down Expand Up @@ -92,7 +93,8 @@ def poetry(self) -> Poetry:
if self._poetry is None:
self.reset_poetry()

assert self._poetry is not None
if self._poetry is None:
raise AssertionError
return self._poetry

def _system_project_handle(self) -> int:
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/console/commands/self/show/plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ def _system_project_handle(self) -> int:
for entry_point in PluginManager(group).get_plugin_entry_points(
env=system_env
):
assert entry_point.dist is not None
if entry_point.dist is None:
raise AssertionError

package = packages_by_name[canonicalize_name(entry_point.dist.name)]

Expand Down
3 changes: 2 additions & 1 deletion src/poetry/console/commands/shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ def handle(self) -> int:

# Be sure that we have the right type of environment.
env = self.env
assert env.is_venv()
if not env.is_venv():
raise AssertionError
env = cast("VirtualEnv", env)

# Setting this to avoid spawning unnecessary nested shells
Expand Down
9 changes: 6 additions & 3 deletions src/poetry/installation/chooser.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ def choose_for(self, package: Package) -> Link:

def _get_links(self, package: Package) -> list[Link]:
if package.source_type:
assert package.source_reference is not None
if package.source_reference is None:
raise AssertionError
repository = self._pool.repository(package.source_reference)

elif not self._pool.has_repository("pypi"):
Expand All @@ -98,7 +99,8 @@ def _get_links(self, package: Package) -> list[Link]:
selected_links.append(link)
continue

assert link.hash_name is not None
if link.hash_name is None:
raise AssertionError
h = link.hash_name + ":" + link.hash
if (
h not in hashes
Expand Down Expand Up @@ -189,7 +191,8 @@ def _is_link_hash_allowed_for_package(self, link: Link, package: Package) -> boo
if not link.hash:
return True

assert link.hash_name is not None
if link.hash_name is None:
raise AssertionError
h = link.hash_name + ":" + link.hash

return h in {f["hash"] for f in package.files}
18 changes: 12 additions & 6 deletions src/poetry/installation/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,8 @@ def _install(self, operation: Install | Update) -> int:
archive = self._prepare_archive(operation)
cleanup_archive = True
elif package.source_type == "url":
assert package.source_url is not None
if package.source_url is None:
raise AssertionError
archive = self._download_link(operation, Link(package.source_url))
else:
archive = self._download(operation)
Expand Down Expand Up @@ -614,7 +615,8 @@ def _prepare_archive(
)
self._write(operation, message)

assert package.source_url is not None
if package.source_url is None:
raise AssertionError
archive = Path(package.source_url)
if package.source_subdirectory:
archive = archive / package.source_subdirectory
Expand All @@ -631,7 +633,8 @@ def _prepare_git_archive(self, operation: Install | Update) -> Path:
from poetry.vcs.git import Git

package = operation.package
assert package.source_url is not None
if package.source_url is None:
raise AssertionError

if package.source_resolved_reference and not package.develop:
# Only cache git archives when we know precise reference hash,
Expand Down Expand Up @@ -696,7 +699,8 @@ def _install_directory_without_wheel_installer(
)
self._write(operation, message)

assert package.source_url is not None
if package.source_url is None:
raise AssertionError
if package.root_dir:
req = package.root_dir / package.source_url
else:
Expand Down Expand Up @@ -960,7 +964,8 @@ def _create_url_url_reference(self, package: Package) -> dict[str, Any]:
def _create_file_url_reference(self, package: Package) -> dict[str, Any]:
archive_info = self._get_archive_info(package)

assert package.source_url is not None
if package.source_url is None:
raise AssertionError
return {
"url": Path(package.source_url).as_uri(),
"archive_info": archive_info,
Expand All @@ -972,7 +977,8 @@ def _create_directory_url_reference(self, package: Package) -> dict[str, Any]:
if package.develop:
dir_info["editable"] = True

assert package.source_url is not None
if package.source_url is None:
raise AssertionError
return {
"url": Path(package.source_url).as_uri(),
"dir_info": dir_info,
Expand Down
21 changes: 14 additions & 7 deletions src/poetry/mixology/incompatibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,41 +114,48 @@ def __str__(self) -> str:

depender = self._terms[0]
dependee = self._terms[1]
assert depender.is_positive()
assert not dependee.is_positive()
if not depender.is_positive():
raise AssertionError
if dependee.is_positive():
raise AssertionError

return (
f"{self._terse(depender, allow_every=True)} depends on"
f" {self._terse(dependee)}"
)
elif isinstance(self._cause, PythonCause):
assert len(self._terms) == 1
assert self._terms[0].is_positive()
if not self._terms[0].is_positive():
raise AssertionError

text = f"{self._terse(self._terms[0], allow_every=True)} requires "
text += f"Python {self._cause.python_version}"

return text
elif isinstance(self._cause, PlatformCause):
assert len(self._terms) == 1
assert self._terms[0].is_positive()
if not self._terms[0].is_positive():
raise AssertionError

text = f"{self._terse(self._terms[0], allow_every=True)} requires "
text += f"platform {self._cause.platform}"

return text
elif isinstance(self._cause, NoVersionsCause):
assert len(self._terms) == 1
assert self._terms[0].is_positive()
if not self._terms[0].is_positive():
raise AssertionError

return (
f"no versions of {self._terms[0].dependency.name} match"
f" {self._terms[0].constraint}"
)
elif isinstance(self._cause, RootCause):
assert len(self._terms) == 1
assert not self._terms[0].is_positive()
assert self._terms[0].dependency.is_root
if self._terms[0].is_positive():
raise AssertionError
if not self._terms[0].dependency.is_root:
raise AssertionError

return (
f"{self._terms[0].dependency.name} is"
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/mixology/partial_solution.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,8 @@ def satisfier(self, term: Term) -> Assignment:
if not assignment.is_positive():
continue

assert not term.is_positive()
if term.is_positive():
raise AssertionError

return assignment

Expand Down
3 changes: 2 additions & 1 deletion src/poetry/packages/locker.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,8 @@ def locked_repository(self) -> LockfileRepository:
if package.source_type == "directory":
# root dir should be the source of the package relative to the lock
# path
assert package.source_url is not None
if package.source_url is None:
raise AssertionError
root_dir = Path(package.source_url)

if isinstance(constraint, list):
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/plugins/application_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@ def commands(self) -> list[type[Command]]:

def activate(self, application: Application) -> None:
for command in self.commands:
assert command.name is not None
if command.name is None:
raise AssertionError
application.command_loader.register_factory(command.name, command)
3 changes: 2 additions & 1 deletion src/poetry/puzzle/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@ def _formatter_context(self) -> str:
return f" <c1>{Indicator.CONTEXT}</> "

def _formatter_elapsed(self) -> str:
assert self._start_time is not None
if self._start_time is None:
raise AssertionError
elapsed = time.time() - self._start_time

return f"{elapsed:.1f}s"
Expand Down
6 changes: 4 additions & 2 deletions src/poetry/utils/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,11 @@ def _get_cached_archive(
filename: str | None = None,
env: Env | None = None,
) -> Path | None:
assert strict or env is not None
if not (strict or env is not None):
raise AssertionError
# implication "strict -> filename should not be None"
assert not strict or filename is not None
if not (not strict or filename is not None):
raise AssertionError

archives = self._get_cached_archives(cache_dir)
if not archives:
Expand Down
12 changes: 8 additions & 4 deletions src/poetry/utils/dependency_specification.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,18 @@ def dependency_to_specification(
) -> BaseSpec:
if dependency.is_vcs():
dependency = cast("VCSDependency", dependency)
assert dependency.source_url is not None
if dependency.source_url is None:
raise AssertionError
specification[dependency.vcs] = dependency.source_url
if dependency.reference:
specification["rev"] = dependency.reference
elif dependency.is_file() or dependency.is_directory():
assert dependency.source_url is not None
if dependency.source_url is None:
raise AssertionError
specification["path"] = dependency.source_url
elif dependency.is_url():
assert dependency.source_url is not None
if dependency.source_url is None:
raise AssertionError
specification["url"] = dependency.source_url
elif dependency.pretty_constraint != "*" and not dependency.constraint.is_empty():
specification["version"] = dependency.pretty_constraint
Expand Down Expand Up @@ -150,7 +153,8 @@ def _parse_url(self, requirement: str) -> DependencySpec | None:

if url_parsed.scheme in ["http", "https"]:
package = self._direct_origin.get_package_from_url(requirement)
assert package.source_url is not None
if package.source_url is None:
raise AssertionError
return {"name": package.name, "url": package.source_url}

return None
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/utils/env/base_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,8 @@ def _run(self, cmd: list[str], **kwargs: Any) -> str:
**kwargs,
).stdout
elif call:
assert stderr != subprocess.PIPE
if stderr == subprocess.PIPE:
raise AssertionError
subprocess.check_call(cmd, stderr=stderr, env=env, **kwargs)
output = ""
else:
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/utils/env/env_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,8 @@ def build_venv(

@classmethod
def remove_venv(cls, path: Path) -> None:
assert path.is_dir()
if not path.is_dir():
raise AssertionError
try:
remove_directory(path)
return
Expand Down
3 changes: 2 additions & 1 deletion src/poetry/utils/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,8 @@ def get_package_version_display_string(
package: Package, root: Path | None = None
) -> str:
if package.source_type in ["file", "directory"] and root:
assert package.source_url is not None
if package.source_url is None:
raise AssertionError
path = Path(os.path.relpath(package.source_url, root)).as_posix()
return f"{package.version} {path}"

Expand Down