use pathlib.iterdir() everywhere

This commit is contained in:
Jörg Thalheim
2025-03-18 15:34:06 +01:00
parent 89b6a84388
commit 527154070c
6 changed files with 25 additions and 27 deletions

View File

@@ -1,4 +1,3 @@
import os
import shutil
from collections.abc import Callable
from pathlib import Path
@@ -27,9 +26,9 @@ def list_objects(path: Path, is_valid: Callable[[str], bool]) -> list[str]:
objs: list[str] = []
if not path.exists():
return objs
for f in os.listdir(path):
if is_valid(f):
objs.append(f)
for f in path.iterdir():
if is_valid(f.name):
objs.append(f.name)
return objs
@@ -41,6 +40,6 @@ def remove_object(path: Path, name: str) -> list[Path]:
except FileNotFoundError as e:
msg = f"{name} not found in {path}"
raise ClanError(msg) from e
if not os.listdir(path):
if not next(path.iterdir(), None):
path.rmdir()
return paths_to_commit

View File

@@ -53,23 +53,23 @@ def list_groups(flake_dir: Path) -> list[Group]:
if not groups_dir.exists():
return groups
for group in os.listdir(groups_dir):
for group in groups_dir.iterdir():
group_folder = groups_dir / group
if not group_folder.is_dir():
continue
machines_path = machines_folder(flake_dir, group)
machines_path = machines_folder(flake_dir, group.name)
machines = []
if machines_path.is_dir():
for f in machines_path.iterdir():
if validate_hostname(f.name):
machines.append(f.name)
users_path = users_folder(flake_dir, group)
users_path = users_folder(flake_dir, group.name)
users = []
if users_path.is_dir():
for f in users_path.iterdir():
if VALID_USER_NAME.match(f.name):
users.append(f.name)
groups.append(Group(flake_dir, group, machines, users))
groups.append(Group(flake_dir, group.name, machines, users))
return groups
@@ -146,10 +146,10 @@ def remove_member(
target.unlink()
updated_files = [target]
if len(os.listdir(group_folder)) == 0:
if next(group_folder.iterdir(), None) is None:
group_folder.rmdir()
if len(os.listdir(group_folder.parent)) == 0:
if next(group_folder.parent.iterdir(), None) is None:
group_folder.parent.rmdir()
updated_files.extend(update_group_keys(flake_dir, group_name))

View File

@@ -312,10 +312,10 @@ def disallow_member(group_folder: Path, name: str) -> list[Path]:
raise ClanError(msg)
target.unlink()
if len(os.listdir(group_folder)) == 0:
if next(group_folder.iterdir(), None) is None:
group_folder.rmdir()
if len(os.listdir(group_folder.parent)) == 0:
if next(group_folder.parent.iterdir(), None) is None:
group_folder.parent.rmdir()
return update_keys(target.parent.parent, collect_keys_for_path(group_folder.parent))

View File

@@ -1,7 +1,6 @@
import argparse
import json
import logging
import os
import sys
from pathlib import Path
@@ -56,7 +55,7 @@ def remove_user(flake_dir: Path, name: str) -> None:
# Remove the user from any group where it belonged:
groups_dir = sops_groups_folder(flake_dir)
if groups_dir.exists():
for group in os.listdir(groups_dir):
for group in groups_dir.iterdir():
group_folder = groups_dir / group
if not group_folder.is_dir():
continue
@@ -65,7 +64,7 @@ def remove_user(flake_dir: Path, name: str) -> None:
continue
log.info(f"Removing user {name} from group {group}")
updated_paths.extend(
groups.remove_member(flake_dir, group, groups.users_folder, name)
groups.remove_member(flake_dir, group.name, groups.users_folder, name)
)
# Remove the user's key:
updated_paths.extend(remove_object(sops_users_folder(flake_dir), name))