"""Implementation of anonymizer service."""
import argparse
from src.worker import Worker


from src.anonymizers.polish_anonymizer import PolishAnonymizer
from src.anonymizers.english_anonymizer import EnglishAnonymizer
from src.anonymizers.russian_anonymizer import RussianAnonymizer


def get_args():
    """Gets command line arguments."""
    parser = argparse.ArgumentParser(description="anonymizer")

    parser.add_argument(
        "-l", "--language", help="Language of the input text", default="pl"
    )
    parser.add_argument("-m", "--method", help="Anonymization method", default="tag", choices=["delete", "tag", "pseudo"])
    parser.add_argument("input_file", help="Path to input file")
    parser.add_argument("output_file", help="Path to output file")

    return parser.parse_args()


def main():
    """Runs the program."""
    args = get_args()

    task_options = {
        "method": args.method,
    }

    anonymizers = {
        "pl": PolishAnonymizer,
        "en": EnglishAnonymizer,
        "ru": RussianAnonymizer,
    }
    anon = anonymizers.get(args.language, PolishAnonymizer)(task_options)
    anon.process(args.input_file, args.output_file)


if __name__ == "__main__":
    main()