<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def main():
 """ NAME magic_select.py DESCRIPTION picks out records and dictitem options saves to magic_special file SYNTAX magic_select.py [command line optins] OPTIONS -h prints help message and quits -f FILE: specify input magic format file -F FILE: specify output magic format file -dm : data model (default is 3.0, otherwise use 2.5) -key KEY string [T,F,has, not, eval,min,max] returns records where the value of the key either: matches exactly the string (T) does not match the string (F) contains the string (has) does not contain the string (not) the value equals the numerical value of the string (eval) the value is greater than the numerical value of the string (min) the value is less than the numerical value of the string (max) NOTES for age range: use KEY: age (converts to Ma, takes mid point of low, high if no value for age. for paleolat: use KEY: model_lat (uses lat, if age<5 Ma, else, model_lat, or attempts calculation from average_inc if no model_lat.) returns estimate in model_lat key EXAMPLE: # here I want to output all records where the site column exactly matches "MC01" magic_select.py -f samples.txt -key site MC01 T -F select_samples.txt """

    dir_path = "."
    flag = ''
    if '-WD' in sys.argv:
        ind = sys.argv.index('-WD')
        dir_path = sys.argv[ind+1]
    if '-h' in sys.argv:
        print(main.__doc__)
        sys.exit()
    if '-f' in sys.argv:
        ind = sys.argv.index('-f')
        magic_file = dir_path+'/'+sys.argv[ind+1]
    else:
        print(main.__doc__)
        print('-W- "-f" is a required option')
        sys.exit()
    if '-dm' in sys.argv:
        ind = sys.argv.index('-dm')
        data_model_num=sys.argv[ind+1]
        if data_model_num!='3':data_model_num=2.5
    else : data_model_num=3
    if '-F' in sys.argv:
        ind = sys.argv.index('-F')
        outfile = dir_path+'/'+sys.argv[ind+1]
    else:
        print(main.__doc__)
        print('-W- "-F" is a required option')
        sys.exit()
    if '-key' in sys.argv:
        ind = sys.argv.index('-key')
        grab_key = sys.argv[ind+1]
        v = sys.argv[ind+2]
        flag = sys.argv[ind+3]
    else:
        print(main.__doc__)
        print('-key is required')
        sys.exit()
    #
    # get data read in
    Data, file_type = pmag.magic_read(magic_file)
    if grab_key == 'age':
        grab_key = 'average_age'
        Data = pmag.convert_ages(Data,data_model=data_model_num)
    if grab_key == 'model_lat':
        Data = pmag.convert_lat(Data)
        Data = pmag.convert_ages(Data,data_model=data_model_num)
    #print(Data[0])
    Selection = pmag.get_dictitem(Data, grab_key, v, flag, float_to_int=True)
    if len(Selection) > 0:
        pmag.magic_write(outfile, Selection, file_type)
    else:
        print('no data matched your criteria')