Skip to content

Commit 52806b7

Browse files
committed
Reset environment with permenant deps
1 parent 78e4b84 commit 52806b7

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

conda_self/cli/main_reset.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,31 @@ def configure_parser(parser: argparse.ArgumentParser) -> None:
1414

1515

1616
def execute(args: argparse.Namespace) -> int:
17+
import sys
18+
19+
from conda.core.prefix_data import PrefixData
20+
from conda.core.link import PrefixSetup, UnlinkLinkTransaction
21+
from conda.base.context import context
22+
23+
from ..query import permanent_dependencies
24+
1725
print("Resetting 'base' environment...")
26+
27+
installed = sorted(PrefixData(sys.prefix).iter_records(), key=lambda x: x.name)
28+
uninstallable_packages = permanent_dependencies()
29+
packages_to_remove = [pkg for pkg in installed if pkg.name not in uninstallable_packages]
30+
31+
stp = PrefixSetup(
32+
target_prefix=sys.prefix,
33+
unlink_precs=packages_to_remove,
34+
link_precs=(),
35+
remove_specs=(),
36+
update_specs=(),
37+
neutered_specs=(),
38+
)
39+
40+
txn = UnlinkLinkTransaction(stp)
41+
if not context.json and not context.quiet:
42+
txn.print_transaction_summary()
43+
txn.execute()
1844
return 0

0 commit comments

Comments
 (0)