""" util_ships.py - Ship Utilities. Copyright (c) EDCD, All Rights Reserved Licensed under the GNU General Public License. See LICENSE file. """ from pathlib import Path from edmc_data import ship_name_map def ship_file_name(ship_name: str, ship_type: str) -> str: """Return a ship name suitable for a filename.""" name = str(ship_name or ship_name_map.get(ship_type.lower(), ship_type)).strip() # Handle suffix using Pathlib's with_suffix method name = Path(name).with_suffix("").name # Check if the name is a reserved filename if Path(name).is_reserved(): name += "_" return name.translate( {ord(x): "_" for x in ("\0", "<", ">", ":", '"', "/", "\\", "|", "?", "*")} )