else: retval += s[0] + "-" retval = retval[:-1] + " " duty_time = col[1][1] - col[1][0] if len(col) == 3 and len(col[2]) == 1 and col[2][0][0:3] == "HCT": duty_time = "00:00" #exception for High Contactable retval += str(block_time)[:-3] + "/" + str(duty_time)[:-3] return retval if __name__ == "__main__": #decide which file to use rosters = glob.glob(roster_directory) rosters.sort() if len(sys.argv) == 2: roster_file = "" for f in rosters: if f.find(sys.argv[1]) != -1: roster_file = f break if not roster_file: print("Usage: " + sys.argv[0] + " [YYYYMM]") sys.exit(1) else: roster_file = rosters[-1] #extract the table and the year table = process_roster.extract_table(open(roster_file).read()) #output to stdout for t in table: print(convert_to_roster(t))
duty[1].time().strftime("%H%M"), duty[4].time().strftime("%H%M"), night)) if __name__ == "__main__": if len(sys.argv) != 4: print("Usage: ", sys.argv[0], "YYYYMM DD DD") sys.exit() #find the relevant roster file rosters = glob.glob(roster_directory) rosters.sort() roster_file = "" for f in rosters: if f.find(sys.argv[1]) != -1: roster_file = f break if not roster_file: print("Filename containing ", sys.argv[1], "not found") sys.exit(1) roster = open(roster_file).read() table = process_roster.extract_table(roster) crewlist = process_roster.extract_crew(roster) fromdate = datetime.date(int(sys.argv[1][:4]), int(sys.argv[1][4:]), int(sys.argv[2])) todate = datetime.date(int(sys.argv[1][:4]), int(sys.argv[1][4:]), int(sys.argv[3])) for t in table: if t[1][0] == None or t[0] < fromdate or t[0] > todate: continue #no duty or not in the band we are interested in print_data(t, crewlist)