Source code for scribe_data.cli.contracts.export

# SPDX-License-Identifier: GPL-3.0-or-later
"""
Export functionality for Scribe-Data contracts.
"""

import shutil
from pathlib import Path

from scribe_data.utils import DEFAULT_CONTRACTS_EXPORT_DIR


[docs] def export_contracts(output_dir: Path = DEFAULT_CONTRACTS_EXPORT_DIR) -> None: """ Export Scribe-Data contracts to the given directory. Parameters ---------- output_dir : str, default=DEFAULT_CONTRACTS_EXPORT_DIR The directory to export contracts to. Returns ------- None Contracts are exported to the given directory. """ contracts_source = ( Path(__file__).parent.parent.parent / "resources" / "data_contracts" ) assert contracts_source.exists(), ( f"Contracts source directory not found at {contracts_source}." ) if output_dir.exists(): response = ( input( f"A '{output_dir}' folder already exists with the Scribe-Data contracts. " "Do you want to overwrite it? (y/[n]): " ) .strip() .lower() ) if response != "y": print("Export cancelled.") return shutil.rmtree(output_dir) shutil.copytree(contracts_source, output_dir) print(f"Contracts successfully exported to {output_dir}.")