import argparse import os from dataset.preparer import download_words from model.trainer import train import web.server import model.updater parser = argparse.ArgumentParser(prog='Antispam complex') parser.add_argument('-i', '--init', action=argparse.BooleanOptionalAction, help='Initializing, must be run beforehand, --dataset is required') parser.add_argument('-m', '--decision-maker', action=argparse.BooleanOptionalAction, help='Start as Decision maker') parser.add_argument('-d', '--dataset', required=False, help='Path to CSV (ham/spam) dataset') parser.add_argument('-u', '--model-updater', required=False, help='Start as Model updater') args = parser.parse_args() _port = 8080 if os.getenv('PORT') is None else os.getenv('PORT') if __name__ == '__main__': if args.init: assert args.dataset is not None, "Dataset is required, show --help" download_words() train(args.dataset) elif args.decision_maker: web.server.start(port=_port) elif args.model_updater: model.updater.start()