41 lines
961 B
Python
41 lines
961 B
Python
import logging
|
|
|
|
from clan_lib.api import API
|
|
from clan_lib.errors import ClanError
|
|
from clan_lib.flake import Flake
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
@API.register
|
|
def check_clan_valid(flake: Flake) -> bool:
|
|
"""Check if a clan is valid by verifying if it has the clanInternals attribute.
|
|
|
|
Args:
|
|
flake: The Flake instance representing the clan.
|
|
|
|
Returns:
|
|
bool: True if the clan exists, False otherwise.
|
|
|
|
"""
|
|
try:
|
|
flake.prefetch()
|
|
except ClanError as e:
|
|
msg = f"Flake {flake} is not valid: {e}"
|
|
log.info(msg)
|
|
return False
|
|
|
|
if flake.is_local and not flake.path.exists():
|
|
msg = f"Path {flake} does not exist"
|
|
log.info(msg)
|
|
return False
|
|
|
|
try:
|
|
flake.select("clanInternals.inventoryClass.directory")
|
|
except ClanError as e:
|
|
msg = f"Flake {flake} is not a valid clan directory: {e}"
|
|
log.info(msg)
|
|
return False
|
|
|
|
return True
|