data.py 1.71 KB
import argparse
import sys

from utils import SubCommandRunner

import core.data





def filter_file(file, filter, outfile):
    file_path = file
    filter_path = filter
    file_data = core.data.read_id_values(file_path)
    filter_data = core.data.read_lst(filter_path)

    with open(outfile, "w") as out:
        for id_ in filter_data:
            core.data.write_line(id_, file_data[id_], out)
        
    

    

def convert(file, type_from, type):
    pass


if __name__ == "__main__":
    # Main parser
    parser = argparse.ArgumentParser(description="manage files")
    subparsers = parser.add_subparsers(title="actions")

    # Filter ids
    parser_filter = subparsers.add_parser("filter", help="filter a file")
    parser_filter.add_argument("--file", type=str, help="path of the file to filter", required=True)
    parser_filter.add_argument("--filter", type=str, help="filter file [id_from] [id_to]", required=True)
    parser_filter.add_argument("--outfile", type=str, help="output file", required=True)
    parser_filter.set_defaults(which="filter")

    # Convert
    parser_convert = subparsers.add_parser("convert", help="convert a file")
    parser_convert.add_argument("--file", type=str, help="...", required=True)
    parser_convert.add_argument("--type-from", type=str, choices=["old-masseffect", "new-masseffect"], help="...", required=True)
    parser_convert.add_argument("--type", choices=["old-masseffect", "new-masseffect"], required=True)
    parser_convert.set_defaults(which="convert")

    # Parse
    args = parser.parse_args()

    # Run commands
    runner = SubCommandRunner({
        "convert" : convert,
        "filter": filter_file,
    })

    runner.run(args.which, args.__dict__, remove="which")