from pathlib import Path | |
import shutil | |
from client_server_interface import FHEDev | |
from matchers import AVAILABLE_MATCHERS, Matcher | |
print("Generating deployment files for all available filters") | |
# This repository's directory | |
REPO_DIR = Path(__file__).parent | |
# This repository's main necessary folders | |
MATCHERS_PATH = REPO_DIR / "matchers" | |
for matcher_name in AVAILABLE_MATCHERS: | |
print("Matcher:", matcher_name, "\n") | |
# Create the filter instance | |
matcher = Matcher(matcher_name) | |
# Compile the model on a representative inputset | |
matcher.compile() | |
# Define the directory path associated to this filter's deployment files | |
deployment_path = MATCHERS_PATH / (matcher_name + "/deployment") | |
# Delete the deployment folder and its content if it already exists | |
if deployment_path.is_dir(): | |
print("Delete the deployment folder and its content ...") | |
shutil.rmtree(deployment_path) | |
# Save the files needed for deployment | |
print(f"Saving the files at {deployment_path} ...") | |
fhe_dev_filter = FHEDev(matcher, deployment_path) | |
fhe_dev_filter.save() | |
print("Done !") | |