Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
]
app_paths = apps_linking_to_venv_bin_dir
for file in local_bin_dir.iterdir():
if WINDOWS:
for b in app_paths:
if file.name == b.name:
file.unlink()
else:
symlink = file
for b in app_paths:
if symlink.exists() and b.exists() and symlink.samefile(b):
logging.info(f"removing symlink {str(symlink)}")
symlink.unlink()
rmdir(venv_dir)
print(f"uninstalled {package}! {stars}")
local_bin_dir: Path, app_paths: List[Path], package: str, *, force: bool
):
for app_path in app_paths:
app_name = app_path.name
symlink_path = Path(local_bin_dir / app_name)
if not symlink_path.parent.is_dir():
mkdir(symlink_path.parent)
if force:
logging.info(f"Force is true. Removing {str(symlink_path)}.")
try:
symlink_path.unlink()
except FileNotFoundError:
pass
except IsADirectoryError:
rmdir(symlink_path)
exists = symlink_path.exists()
is_symlink = symlink_path.is_symlink()
if exists:
if symlink_path.samefile(app_path):
logging.info(f"Same path {str(symlink_path)} and {str(app_path)}")
else:
logging.warning(
f"{hazard} File exists at {str(symlink_path)} and points "
f"to {symlink_path.resolve()}, not {str(app_path)}. Not modifying."
)
continue
if is_symlink and not exists:
logging.info(
f"Removing existing symlink {str(symlink_path)} since it "
"pointed non-existent location"
def remove_venv(self) -> None:
if self.safe_to_remove():
rmdir(self.root)
else:
logging.warning(
f"Not removing existing venv {self.root} because "
"it was not created in this session"