diff --git a/src/WTF.txt b/src/WTF.txt new file mode 100644 index 0000000..e9c9c56 --- /dev/null +++ b/src/WTF.txt @@ -0,0 +1,1286 @@ +Running OwlBoard Diagram Parser in local mode +Working directory: /home/fred.boniface/git/owlboard/diagram-parser/src +Found 1 DOCX files in directory +20240221_file.docx +Reading 956 tables from 20240221_file.docx +Found 493 PIS Codes in documents +Removed 323 duplicate codes +Searching for 170 PIS codes +['testing', 'main', 'published'] +200 +Branch: testing, PIS Codes: 1244 +200 +Branch: main, PIS Codes: 1243 +200 +Branch: published, PIS Codes: 1227 +Total unique codes: 1236 +PIS Code 5924 not found in existing data +PIS Code 5216 not found in existing data +PIS Code 5257 not found in existing data +PIS Code 6229 not found in existing data +PIS Code 5124 not found in existing data +PIS Code 6062 not found in existing data +PIS Code 5179 not found in existing data +PIS Code 6231 not found in existing data +PIS Code 6129 not found in existing data +PIS Code 5181 not found in existing data +PIS Code 6287 not found in existing data +PIS Code 5449 not found in existing data +PIS Code 5870 not found in existing data +PIS Code 5803 not found in existing data +PIS Code 5232 not found in existing data +PIS Code 5126 not found in existing data +PIS Code 6220 not found in existing data +PIS Code 6150 not found in existing data +PIS Code 5866 not found in existing data +PIS Code 6153 not found in existing data +PIS Code 5793 not found in existing data +PIS Code 5055 not found in existing data +PIS Code 5704 not found in existing data +PIS Code 5278 not found in existing data +PIS Code 5318 not found in existing data +PIS Code 5305 not found in existing data +PIS Code 5307 not found in existing data +PIS Code 6270 not found in existing data +PIS Code 5281 not found in existing data +PIS Code 5310 not found in existing data +PIS Code 5290 not found in existing data +PIS Code 5274 not found in existing data +PIS Code 5315 not found in existing data +PIS Code 5272 not found in existing data +PIS Code 5316 not found in existing data +PIS Code 5314 not found in existing data +PIS Code 5273 not found in existing data +PIS Code 5334 not found in existing data +PIS Code 5304 not found in existing data +PIS Code 5306 not found in existing data +PIS Code 5283 not found in existing data +PIS Code 5792 not found in existing data +PIS Code 5286 not found in existing data +PIS Code 5607 not found in existing data +PIS Code 5346 not found in existing data +PIS Code 5675 not found in existing data +PIS Code 5674 not found in existing data +PIS Code 5300 not found in existing data +PIS Code 5728 not found in existing data +PIS Code 6238 not found in existing data +PIS Code 5214 not found in existing data +PIS Code 5208 not found in existing data +PIS Code 6272 not found in existing data +PIS Code 6067 not found in existing data +PIS Code 6167 not found in existing data +PIS Code 5248 not found in existing data +PIS Code 5215 not found in existing data +PIS Code 5149 not found in existing data +PIS Code 6269 not found in existing data +PIS Code 6216 not found in existing data +PIS Code 6222 not found in existing data +PIS Code 6288 not found in existing data +PIS Code 6070 not found in existing data +PIS Code 5776 not found in existing data +PIS Code 5775 not found in existing data +PIS Code 6193 not found in existing data +PIS Code 5127 not found in existing data +PIS Code 5237 not found in existing data +PIS Code 5165 not found in existing data +PIS Code 5238 not found in existing data +PIS Code 6273 not found in existing data +PIS Code 6250 not found in existing data +PIS Code 5205 not found in existing data +PIS Code 5189 not found in existing data +PIS Code 6232 not found in existing data +PIS Code 6069 not found in existing data +PIS Code 5502 not found in existing data +PIS Code 5523 not found in existing data +PIS Code 6079 not found in existing data +PIS Code 5151 not found in existing data +PIS Code 6083 not found in existing data +PIS Code 6084 not found in existing data +PIS Code 5128 not found in existing data +PIS Code 5809 not found in existing data +PIS Code 6085 not found in existing data +PIS Code 5101 not found in existing data +PIS Code 5245 not found in existing data +PIS Code 6225 not found in existing data +PIS Code 6257 not found in existing data +PIS Code 5243 not found in existing data +PIS Code 6081 not found in existing data +PIS Code 5438 not found in existing data +PIS Code 5056 not found in existing data +PIS Code 6274 not found in existing data +PIS Code 6267 not found in existing data +PIS Code 6230 not found in existing data +PIS Code 5242 not found in existing data +PIS Code 6289 not found in existing data +PIS Code 6221 not found in existing data +PIS Code 5703 not found in existing data +PIS Code 5765 not found in existing data +PIS Code 6068 not found in existing data +PIS Code 6226 not found in existing data +PIS Code 6236 not found in existing data +PIS Code 6253 not found in existing data +PIS Code 5640 not found in existing data +PIS Code 6208 not found in existing data +PIS Code 5225 not found in existing data +PIS Code 6233 not found in existing data +PIS Code 5180 not found in existing data +PIS Code 6277 not found in existing data +PIS Code 5032 not found in existing data +PIS Code 5254 not found in existing data +PIS Code 6278 not found in existing data +PIS Code 5719 not found in existing data +PIS Code 5824 not found in existing data +PIS Code 6182 not found in existing data +PIS Code 5429 not found in existing data +PIS Code 5075 not found in existing data +PIS Code 5718 not found in existing data +PIS Code 6184 not found in existing data +PIS Code 6189 not found in existing data +PIS Code 5380 not found in existing data +PIS Code 5417 not found in existing data +PIS Code 5418 not found in existing data +PIS Code 6262 not found in existing data +PIS Code 5821 not found in existing data +PIS Code 5822 not found in existing data +PIS Code 6258 not found in existing data +PIS Code 5724 not found in existing data +PIS Code 6052 not found in existing data +PIS Code 6046 not found in existing data +PIS Code 5293 not found in existing data +PIS Code 6051 not found in existing data +PIS Code 6050 not found in existing data +PIS Code 6047 not found in existing data +PIS Code 6089 not found in existing data +PIS Code 5351 not found in existing data +PIS Code 5829 not found in existing data +PIS Code 6152 not found in existing data +PIS Code 6293 not found in existing data +PIS Code 6260 not found in existing data +PIS Code 6285 not found in existing data +PIS Code 5426 not found in existing data +PIS Code 5003 not found in existing data +PIS Code 6266 not found in existing data +PIS Code 5431 not found in existing data +PIS Code 6264 not found in existing data +PIS Code 5376 not found in existing data +PIS Code 5330 not found in existing data +PIS Code 6283 not found in existing data +PIS Code 5362 not found in existing data +PIS Code 6243 not found in existing data +PIS Code 6187 not found in existing data +PIS Code 5379 not found in existing data +PIS Code 6205 not found in existing data +PIS Code 5381 not found in existing data +PIS Code 5832 not found in existing data +PIS Code 5394 not found in existing data +PIS Code 5352 not found in existing data +PIS Code 5408 not found in existing data +PIS Code 6159 not found in existing data +PIS Code 6292 not found in existing data +PIS Code 6048 not found in existing data +PIS Code 6053 not found in existing data +PIS Code 6158 not found in existing data +PIS Code 6160 not found in existing data +PIS Code 6161 not found in existing data +PIS Code 5488 not found in existing data +PIS Code 6091 not found in existing data +170 missing PIS codes in OwlBoard data +{'job_head': 'Fratton\t\t04.50\t2V52 55942', 'headcode': '2V52', 'pis': '5924', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V52 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v52 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t14.45\t2C15 31465', 'headcode': '2C15', 'pis': '5216', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C15 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c15 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t08.41\t2C84 47157', 'headcode': '2C84', 'pis': '5257', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c84 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t11.57\t12.03\t2O76 69142', 'headcode': '2O76', 'pis': '6229', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O76 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o76 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t15.15\t15.22\t1F21 07392', 'headcode': '1F21', 'pis': '5124', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F21 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f21 +Found 1 valid GWR Service +{'job_head': 'Pmth Hbr\t\t06.01\t1F06 82232', 'headcode': '1F06', 'pis': '6062', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F06 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f06 +Found 1 valid GWR Service +{'job_head': 'Fratton\t13.30\t13.31\t1F20 72374', 'headcode': '1F20', 'pis': '5179', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F20 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f20 +Found 1 valid GWR Service +{'job_head': 'Gloucestr\t\t18.10\t2C25 11568', 'headcode': '2C25', 'pis': '6231', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C25 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c25 +Found 1 valid GWR Service +{'job_head': 'Fratton\t18.44\t18.46\t1F23 57406', 'headcode': '1F23', 'pis': '6129', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F23 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f23 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t17.52\t17.57\t1F24 82413', 'headcode': '1F24', 'pis': '5181', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F24 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f24 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t19.02\t19.05\t1F27 67445', 'headcode': '1F27', 'pis': '6287', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F27 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f27 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t18.30\t1F29 27470', 'headcode': '1F29', 'pis': '5449', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F29 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f29 +Found 1 valid GWR Service +{'job_head': 'Warminstr\t\t18.29\t2D94 08268', 'headcode': '2D94', 'pis': '5870', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2D94 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2d94 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t18.40\t2E73 04063', 'headcode': '2E73', 'pis': '5803', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E73 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e73 +Found 1 valid GWR Service +{'job_head': 'Woster SH\t\t17.55\t2T50 43912', 'headcode': '2T50', 'pis': '5232', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T50 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t50 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t19.30\t1D91 86075', 'headcode': '1D91', 'pis': '5126', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1D91 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1d91 +Found 1 valid GWR Service +{'job_head': 'Fratton\t16.30\t16.31\t1F26 42438', 'headcode': '1F26', 'pis': '6220', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F26 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f26 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t19.25\t19.35\t2O09 13475', 'headcode': '2O09', 'pis': '6150', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O09 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o09 +Found 1 valid GWR Service +{'job_head': 'Salisbury\t\t19.13\t2V96 Wbry 76382', 'headcode': '2V96', 'pis': '5866', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V96 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v96 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t20.30\t1F33 37509', 'headcode': '1F33', 'pis': '6153', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F33 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f33 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t19D52\t19.57\t1F28 02463', 'headcode': '9D52', 'pis': '5793', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 9D52 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/9d52 +Found 0 valid GWR Service +{'job_head': 'BristolTM\t\t20.50\t2D79 83108', 'headcode': '2D79', 'pis': '5055', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2D79 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2d79 +Found 1 valid GWR Service +{'job_head': 'Btl Pkway\t\t21.21\t1F35 87523', 'headcode': '1F35', 'pis': '5704', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F35 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f35 +Found 1 valid GWR Service +{'job_head': 'Par\t\t20.29\t2N14 67513', 'headcode': '2N14', 'pis': '5278', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2N14 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2n14 +Found 2 valid GWR Service +{'job_head': 'Newquay\t\t21.26\t2N15 02531', 'headcode': '2N15', 'pis': '5318', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2N15 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2n15 +Found 1 valid GWR Service +{'job_head': 'Truro\t\t19.06\t2F90 50234', 'headcode': '2F90', 'pis': '5305', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F90 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f90 +Found 1 valid GWR Service +{'job_head': 'Falmth Dk\t\t14.45\t2T81 09228', 'headcode': '2T81', 'pis': '5307', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T81 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t81 +Found 1 valid GWR Service +{'job_head': 'Par\t\t06.19\t2P01 64394', 'headcode': '2P01', 'pis': '6270', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2P01 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2p01 +Found 2 valid GWR Service +{'job_head': 'Plymouth\t\t10.28\t2G77 66107', 'headcode': '2G77', 'pis': '5281', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2G77 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2g77 +Found 1 valid GWR Service +{'job_head': 'Gunislake\t\t11.19\t2G78 01125', 'headcode': '2G78', 'pis': '5310', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2G78 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2g78 +Found 1 valid GWR Service +{'job_head': 'PC\tPlymouth\t\t15.47\t2C29 21607', 'headcode': '2C29', 'pis': '5290', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C29 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c29 +Found 1 valid GWR Service +{'job_head': 'Liskeard\t\t21.05\t2L97 21342', 'headcode': '2L97', 'pis': '5274', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L97 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l97 +Found 1 valid GWR Service +{'job_head': 'Looe\t\t07.54\t2L72 26090', 'headcode': '2L72', 'pis': '5315', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L72 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l72 +Found 1 valid GWR Service +{'job_head': 'Liskeard\t15.46\t15.50\t2L87 41239', 'headcode': '2L87', 'pis': '5272', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L87 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l87 +Found 1 valid GWR Service +{'job_head': 'Looe\t\t21.37\t2L98 46349', 'headcode': '2L98', 'pis': '5316', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L98 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l98 +Found 1 valid GWR Service +{'job_head': 'Looe\t\t20.37\t2L96 86324', 'headcode': '2L96', 'pis': '5314', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L96 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l96 +Found 1 valid GWR Service +{'job_head': 'Liskeard\t18.55\t19.00\t2L93 11303', 'headcode': '2L93', 'pis': '5273', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L93 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l93 +Found 1 valid GWR Service +{'job_head': 'PC\tPenzance\t\t13.15\t2P16 79543', 'headcode': '2P16', 'pis': '5334', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2P16 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2p16 +Found 1 valid GWR Service +{'job_head': 'Truro\t\t15.45\t2F84 80170', 'headcode': '2F84', 'pis': '5304', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f84 +Found 1 valid GWR Service +{'job_head': 'Falmth Dk\t\t16.15\t2T84 84249', 'headcode': '2T84', 'pis': '5306', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t84 +Found 1 valid GWR Service +{'job_head': 'Plymouth\t\t17.00\t2C33 31646', 'headcode': '2C33', 'pis': '5283', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C33 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c33 +Found 1 valid GWR Service +{'job_head': 'Liskeard\t\t17.56\t2P22 49607', 'headcode': '2P22', 'pis': '5792', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2P22 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2p22 +Found 1 valid GWR Service +{'job_head': 'Par\t19.33\t19.35\t2C36 16678', 'headcode': '2C36', 'pis': '5286', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C36 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c36 +Found 2 valid GWR Service +{'job_head': 'Penzance\t\t18.15\t2E26 88580', 'headcode': '2E26', 'pis': '5607', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E26 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e26 +Found 1 valid GWR Service +{'job_head': 'St.Erth\t12.14\t12.18\t2A19 79488', 'headcode': '2A19', 'pis': '5346', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2A19 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2a19 +Found 2 valid GWR Service +{'job_head': 'St.Ives\t\t14.03\t2A26 74559', 'headcode': '2A26', 'pis': '5675', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2A26 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2a26 +Found 2 valid GWR Service +{'job_head': 'St.Erth\t\t13.48\t2A25 49552', 'headcode': '2A25', 'pis': '5674', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2A25 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2a25 +Found 2 valid GWR Service +{'job_head': 'St.Ives\t\t13.03\t2A22 64520', 'headcode': '2A22', 'pis': '5300', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2A22 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2a22 +Found 2 valid GWR Service +{'job_head': 'Falmth Dk\t\t19.41\t2P90 40292', 'headcode': '2P90', 'pis': '5728', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2P90 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2p90 +Found 2 valid GWR Service +{'job_head': 'Weymouth\t\t06.38\t2V54 15967', 'headcode': '2V54', 'pis': '6238', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V54 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v54 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t16.23\t2M21 Melk 81576', 'headcode': '2M21', 'pis': '5214', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M21 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m21 +Found 1 valid GWR Service +{'job_head': 'Swindon\t\t17.36\t2M30 Melk 36672', 'headcode': '2M30', 'pis': '5208', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M30 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m30 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t09.49\t10.07\t2V57 Charf 00999', 'headcode': '2V57', 'pis': '6272', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V57 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v57 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t14.16\t14.25\t2Y31 13753', 'headcode': '2Y31', 'pis': '6067', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2Y31 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2y31 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t15.44\t15.46\t2K42 14784', 'headcode': '2K42', 'pis': '6167', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K42 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k42 +Found 2 valid GWR Service +{'job_head': 'Weymouth\t\t20.14\t2V82 86240', 'headcode': '2V82', 'pis': '5248', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V82 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v82 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t20.50\t2O98 79362', 'headcode': '2O98', 'pis': '5215', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O98 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o98 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t05.23\t2O01 83386', 'headcode': '2O01', 'pis': '5149', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O01 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o01 +Found 1 valid GWR Service +{'job_head': 'Salisbury\t\t06.35\t2M81 52183', 'headcode': '2M81', 'pis': '6269', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M81 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m81 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t10.45\t2O08 78457', 'headcode': '2O08', 'pis': '6216', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O08 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o08 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t11.41\t2O10 38482', 'headcode': '2O10', 'pis': '6222', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O10 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o10 +Found 1 valid GWR Service +{'job_head': 'Yeovil Pe\t\t06.18\t2V69 31116', 'headcode': '2V69', 'pis': '6288', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V69 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v69 +Found 1 valid GWR Service +{'job_head': 'SevernBch\t\t22.10\t2K65 50011', 'headcode': '2K65', 'pis': '6070', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K65 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k65 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t05.01\t1F01 47186', 'headcode': '1F01', 'pis': '5776', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F01 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f01 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t06.57\t1F02 72193', 'headcode': '1F02', 'pis': '5775', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F02 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f02 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t07.18\t07.22\t1F05 57225', 'headcode': '1F05', 'pis': '6193', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F05 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f05 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t09.28\t1F11 27289', 'headcode': '1F11', 'pis': '5127', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F11 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f11 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t06.25\t2C13 71440', 'headcode': '2C13', 'pis': '5237', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C13 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c13 +Found 1 valid GWR Service +{'job_head': 'Frome\t\t06.42\t1F04 32218', 'headcode': '1F04', 'pis': '5165', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F04 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f04 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t06.50\t2O70 09089', 'headcode': '2O70', 'pis': '5238', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O70 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o70 +Found 1 valid GWR Service +{'job_head': 'Weymouth\t\t13.28\t2V68 06109', 'headcode': '2V68', 'pis': '6273', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V68 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v68 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t15.45\t2F14 39471', 'headcode': '2F14', 'pis': '6250', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F14 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f14 +Found 2 valid GWR Service +{'job_head': 'WestburyE\t06.52\t06.55\t2O19 83567', 'headcode': '2O19', 'pis': '5205', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O19 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o19 +Found 1 valid GWR Service +{'job_head': 'SthmptonC\t\t08.23\t2V58 26006', 'headcode': '2V58', 'pis': '5189', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V58 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v58 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t(14.46)\t15.08\t2E66 Charf 08992', 'headcode': '2E66', 'pis': '6232', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E66 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e66 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t21.20\t2K66 75018', 'headcode': '2K66', 'pis': '6069', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K66 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k66 +Found 2 valid GWR Service +{'job_head': 'BristolTM\t\t20.04\t2H78 72122', 'headcode': '2H78', 'pis': '5502', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2H78 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2h78 +Found 1 valid GWR Service +{'job_head': 'Filton AW\t\t20.51\t2H79 07140', 'headcode': '2H79', 'pis': '5523', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2H79 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2h79 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t21.30\t1J37 61569', 'headcode': '1J37', 'pis': '6079', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1J37 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1j37 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t15.12\t2F94 60273', 'headcode': '2F94', 'pis': '5151', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F94 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f94 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t19.14\t2K56 04926', 'headcode': '2K56', 'pis': '6083', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K56 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k56 +Found 2 valid GWR Service +{'job_head': 'Westn-s-M\t\t20.10\t2K64 25004', 'headcode': '2K64', 'pis': '6084', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K64 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k64 +Found 2 valid GWR Service +{'job_head': 'Cardiff C\t\t08.28\t1F09 67264', 'headcode': '1F09', 'pis': '5128', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F09 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f09 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t23.30\t23.36\t2M95 42325', 'headcode': '2M95', 'pis': '5809', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M95 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m95 +Found 1 valid GWR Service +{'job_head': 'Avonmouth\t\t21.13\t2K62 64979', 'headcode': '2K62', 'pis': '6085', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K62 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k62 +Found 2 valid GWR Service +{'job_head': 'BristolTM\t\t19.47\t2C30 46614', 'headcode': '2C30', 'pis': '5101', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C30 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c30 +Found 1 valid GWR Service +{'job_head': 'Frome\t\t20.58\t2A87 70173', 'headcode': '2A87', 'pis': '5245', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2A87 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2a87 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t08.06\t2E52 18850', 'headcode': '2E52', 'pis': '6225', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E52 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e52 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t14.58\t15.03\t2C17 81479', 'headcode': '2C17', 'pis': '6257', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C17 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c17 +Found 1 valid GWR Service +{'job_head': 'Frome\t\t16.26\t2C88 57196', 'headcode': '2C88', 'pis': '5243', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C88 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c88 +Found 1 valid GWR Service +{'job_head': 'SevernBch\t\t07.33\t2Y07 43508', 'headcode': '2Y07', 'pis': '6081', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2Y07 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2y07 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t05.51\t1F03 07211', 'headcode': '1F03', 'pis': '5438', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F03 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f03 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t05.53\t2U00 34416', 'headcode': '2U00', 'pis': '5056', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2U00 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2u00 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t07.28\t1F07 17250', 'headcode': '1F07', 'pis': '6274', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F07 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f07 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t08.03\t2O72 59103', 'headcode': '2O72', 'pis': '6267', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O72 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o72 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t13.51\t14.09\t2V64 86059', 'headcode': '2V64', 'pis': '6230', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V64 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v64 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t15.38\t2E69 84013', 'headcode': '2E69', 'pis': '5242', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E69 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e69 +Found 1 valid GWR Service +{'job_head': 'Bath Spa\t\t07.04\t2R54 01946', 'headcode': '2R54', 'pis': '6289', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R54 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r54 +Found 2 valid GWR Service +{'job_head': 'Warminstr\t\t09.51\t2E58 78903', 'headcode': '2E58', 'pis': '6221', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E58 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e58 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t10.38\t2E57 Charf 53896', 'headcode': '2E57', 'pis': '5703', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E57 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e57 +Found 1 valid GWR Service +{'job_head': 'Woster FS\t\t12.53\t2T45 08866', 'headcode': '2T45', 'pis': '5765', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T45 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t45 +Found 1 valid GWR Service +{'job_head': 'Westn-s-M\t\t14.10\t2K38 04745', 'headcode': '2K38', 'pis': '6068', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K38 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k38 +Found 2 valid GWR Service +{'job_head': 'Gloucestr\t\t19.12\t2T30 83706', 'headcode': '2T30', 'pis': '6226', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T30 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t30 +Found 3 valid GWR Service +{'job_head': 'Gloucestr\t\t17.10\t2O84 89220', 'headcode': '2O84', 'pis': '6236', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o84 +Found 1 valid GWR Service +{'job_head': 'WestburyE\t\t21.33\t2O21 43592', 'headcode': '2O21', 'pis': '6253', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O21 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o21 +Found 1 valid GWR Service +{'job_head': 'Pmth Hbr\t\t20.24\t1F34 62516', 'headcode': '1F34', 'pis': '5640', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F34 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f34 +Found 1 valid GWR Service +{'job_head': 'Avonmouth\t\t19.46\t2K55 69908', 'headcode': '2K55', 'pis': '6208', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K55 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k55 +Found 2 valid GWR Service +{'job_head': 'Gloucestr\t22.09\t22.13\t2T53 28944', 'headcode': '2T53', 'pis': '5225', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T53 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t53 +Found 1 valid GWR Service +{'job_head': 'Gloucestr\t\t16.10\t2O82 39206', 'headcode': '2O82', 'pis': '6233', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O82 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o82 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t21.50\t21.56\t1F32 12502', 'headcode': '1F32', 'pis': '5180', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 1F32 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/1f32 +Found 1 valid GWR Service +{'job_head': 'SevernBch\t\t17.01\t2O16 08546', 'headcode': '2O16', 'pis': '6277', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2O16 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2o16 +Found 1 valid GWR Service +{'job_head': 'Cardiff C\t\t23.30\t2C98 37299', 'headcode': '2C98', 'pis': '5032', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C98 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c98 +Found 1 valid GWR Service +{'job_head': 'Weymouth\t\t21.28\t2V84 46265', 'headcode': '2V84', 'pis': '5254', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2V84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2v84 +Found 1 valid GWR Service +{'job_head': 'Taunton\t06.16\t06.17\t2C72 17040', 'headcode': '2C72', 'pis': '6278', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C72 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c72 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t\t07.07\t2B72 36032', 'headcode': '2B72', 'pis': '5719', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B72 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b72 +Found 2 valid GWR Service +{'job_head': 'Brnstaple\t\t06.25\t2R80 22205', 'headcode': '2R80', 'pis': '5824', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R80 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r80 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t15.24\t15.29\t2T23 88635', 'headcode': '2T23', 'pis': '6182', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T23 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t23 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t13.47\t13.51\t2F19 74517', 'headcode': '2F19', 'pis': '5429', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F19 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f19 +Found 1 valid GWR Service +{'job_head': 'Taunton\t\t05.14\t2M02 WSM 56388', 'headcode': '2M02', 'pis': '5075', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M02 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m02 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t\t05.22\t2B70 76007', 'headcode': '2B70', 'pis': '5718', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B70 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b70 +Found 2 valid GWR Service +{'job_head': 'Paignton\t\t17.19\t2F28 29613', 'headcode': '2F28', 'pis': '6184', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F28 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f28 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t17.26\t2T28 33692', 'headcode': '2T28', 'pis': '6189', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T28 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t28 +Found 2 valid GWR Service +{'job_head': 'Exmouth\t\t14.23\t2T22 63628', 'headcode': '2T22', 'pis': '5380', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T22 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t22 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t\t05.20\t2F02 09354', 'headcode': '2F02', 'pis': '5417', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F02 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f02 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t\t23.40\t2F38 09716', 'headcode': '2F38', 'pis': '5418', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F38 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f38 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t09.50\t09.53\t2F11 54439', 'headcode': '2F11', 'pis': '6262', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F11 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f11 +Found 1 valid GWR Service +{'job_head': 'ExeterCtl\t\t20.19\t2B85 01167', 'headcode': '2B85', 'pis': '5821', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B85 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b85 +Found 2 valid GWR Service +{'job_head': 'Brnstaple\t\t12.35\t2R86 82258', 'headcode': '2R86', 'pis': '5822', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R86 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r86 +Found 1 valid GWR Service +{'job_head': 'Paignton\t\t18.18\t2F30 79627', 'headcode': '2F30', 'pis': '6258', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F30 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f30 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t\t06.25\t2C04 26355', 'headcode': '2C04', 'pis': '5724', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C04 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c04 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t18.27\t18.45\t2K13 09493', 'headcode': '2K13', 'pis': '6052', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K13 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k13 +Found 2 valid GWR Service +{'job_head': 'OkehamptB\t\t15.25\t2R59 36992', 'headcode': '2R59', 'pis': '6046', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R59 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r59 +Found 1 valid GWR Service +{'job_head': 'PC\tPlymouth\t\t10.42\t2C65 21969', 'headcode': '2C65', 'pis': '5293', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C65 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c65 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t13.34\t13.38\t2K08 64436', 'headcode': '2K08', 'pis': '6051', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K08 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k08 +Found 2 valid GWR Service +{'job_head': 'ExeterCtl\t\t16.32\t2K11 49468', 'headcode': '2K11', 'pis': '6050', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K11 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k11 +Found 1 valid GWR Service +{'job_head': 'OkehamptB\t\t19.31\t2R63 47031', 'headcode': '2R63', 'pis': '6047', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R63 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r63 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t17.56\t2T29 58699', 'headcode': '2T29', 'pis': '6089', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T29 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t29 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t19.19\t19.22\t2B84 66149', 'headcode': '2B84', 'pis': '5351', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B84 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b84 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t20.41\t2E94 79265', 'headcode': '2E94', 'pis': '5829', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E94 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e94 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t16.31\t2L92 76285', 'headcode': '2L92', 'pis': '6152', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2L92 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2l92 +Found 2 valid GWR Service +{'job_head': 'Exmouth\t\t18.56\t2T31 18724', 'headcode': '2T31', 'pis': '6293', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T31 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t31 +Found 2 valid GWR Service +{'job_head': 'Paignton\t\t20.55\t2F35 24684', 'headcode': '2F35', 'pis': '6260', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F35 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f35 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t19.42\t2T34 03756', 'headcode': '2T34', 'pis': '6285', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T34 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t34 +Found 2 valid GWR Service +{'job_head': 'Paignton\t\t18.50\t2E31 33637', 'headcode': '2E31', 'pis': '5426', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E31 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e31 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t\t22.00\t2C99 WSM 62306', 'headcode': '2C99', 'pis': '5003', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C99 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c99 +Found 1 valid GWR Service +{'job_head': 'Paignton\t\t23.20\t2E40 78722', 'headcode': '2E40', 'pis': '6266', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E40 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e40 +Found 1 valid GWR Service +{'job_head': 'Paignton\t\t16.40\t2F27 04606', 'headcode': '2F27', 'pis': '5431', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F27 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f27 +Found 1 valid GWR Service +{'job_head': 'Paignton\t\t20.28\t2F34 89666', 'headcode': '2F34', 'pis': '6264', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F34 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f34 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t00.19\t2E41 13740', 'headcode': '2E41', 'pis': '5376', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E41 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e41 +Found 1 valid GWR Service +{'job_head': 'Penzance\t\t21.00\t2P30 69685', 'headcode': '2P30', 'pis': '5330', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2P30 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2p30 +Found 1 valid GWR Service +{'job_head': 'Paignton\t\t21.08\t2M73 32105', 'headcode': '2M73', 'pis': '6283', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2M73 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2m73 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t\t04.58\t2T01 78415', 'headcode': '2T01', 'pis': '5362', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T01 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t01 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t05.51\t2T05 88454', 'headcode': '2T05', 'pis': '6243', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T05 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t05 +Found 3 valid GWR Service +{'job_head': 'ExeterStD\t\t05.34\t2T02 13433', 'headcode': '2T02', 'pis': '6187', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T02 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t02 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t09.24\t2T12 83525', 'headcode': '2T12', 'pis': '5379', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T12 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t12 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t\t05.58\t2T04 63447', 'headcode': '2T04', 'pis': '6205', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T04 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t04 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t1655\t17.04\t2T26 73667', 'headcode': '2T26', 'pis': '5381', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T26 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t26 +Found 2 valid GWR Service +{'job_head': 'ExeterStD\t13.14\t13.19\t2B78 06096', 'headcode': '2B78', 'pis': '5832', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B78 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b78 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t14.35\t2R88 42283', 'headcode': '2R88', 'pis': '5394', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2R88 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2r88 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t17.17\t17.19\t2B82 16135', 'headcode': '2B82', 'pis': '5352', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B82 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b82 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t18.38\t2F31 14645', 'headcode': '2F31', 'pis': '5408', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F31 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f31 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t20.55\t21.00\t2U34 WSM 74753', 'headcode': '2U34', 'pis': '6159', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2U34 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2u34 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t(20.04)\t20.15\t2F32 39652', 'headcode': '2F32', 'pis': '6292', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2F32 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2f32 +Found 1 valid GWR Service +{'job_head': 'OkehamptB\t\t22.19\t2E65 73974', 'headcode': '2E65', 'pis': '6048', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E65 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e65 +Found 1 valid GWR Service +{'job_head': 'ExeterStD\t\t21.17\t2K15 59507', 'headcode': '2K15', 'pis': '6053', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2K15 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2k15 +Found 1 valid GWR Service +{'job_head': 'Exmouth\t\t19.56\t2T33 68738', 'headcode': '2T33', 'pis': '6158', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2T33 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2t33 +Found 2 valid GWR Service +{'job_head': 'Exmouth\t\t20.54\t2B86 26174', 'headcode': '2B86', 'pis': '6160', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2B86 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2b86 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t22.41\t2E96 39290', 'headcode': '2E96', 'pis': '6161', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E96 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e96 +Found 1 valid GWR Service +{'job_head': 'BristolTM\t22.54\t23.05\t2C97 WSM 12292', 'headcode': '2C97', 'pis': '5488', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2C97 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2c97 +Found 1 valid GWR Service +{'job_head': 'Brnstaple\t\t21.41\t2E95 14283', 'headcode': '2E95', 'pis': '6091', 'source_file': '20240221_file.docx', 'date': datetime.datetime(2024, 2, 21, 0, 0)} +Finding GWR service: 2E95 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21/headcode/2e95 +Found 1 valid GWR Service +Getting GWR service details: L66920 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66920 +Getting GWR service details: L65948 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65948 +Getting GWR service details: L65980 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65980 +Getting GWR service details: L66674 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66674 +Getting GWR service details: L65468 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65468 +Getting GWR service details: L65453 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65453 +Getting GWR service details: L65467 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65467 +Getting GWR service details: L65951 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65951 +Getting GWR service details: L65470 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65470 +Getting GWR service details: L65471 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65471 +Getting GWR service details: L65474 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65474 +Getting GWR service details: L65476 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65476 +Getting GWR service details: L66006 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66006 +Getting GWR service details: L66039 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66039 +Getting GWR service details: L66853 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66853 +Getting GWR service details: L65446 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65446 +Getting GWR service details: L65473 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65473 +Getting GWR service details: L66660 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66660 +Getting GWR service details: L66942 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66942 +Getting GWR service details: L65480 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65480 +Getting GWR service details: L66002 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66002 +Getting GWR service details: L65483 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65483 +Getting GWR service details: L66628 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66628 +Getting GWR service details: L66629 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66629 +Getting GWR service details: L66630 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66630 +Getting GWR service details: L66118 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66118 +Getting GWR service details: L66878 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66878 +Getting GWR service details: L66682 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66682 +Getting GWR service details: L66681 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66681 +Getting GWR service details: L66195 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66195 +Getting GWR service details: L66196 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66196 +Getting GWR service details: L65955 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65955 +Getting GWR service details: L66575 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66575 +Getting GWR service details: L66547 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66547 +Getting GWR service details: L66563 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66563 +Getting GWR service details: L66576 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66576 +Getting GWR service details: L66574 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66574 +Getting GWR service details: L66571 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66571 +Getting GWR service details: L66691 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66691 +Getting GWR service details: L66112 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66112 +Getting GWR service details: L66881 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66881 +Getting GWR service details: L65958 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65958 +Getting GWR service details: L66695 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66695 +Getting GWR service details: L65960 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65960 +Getting GWR service details: L65959 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65959 +Getting GWR service details: L66010 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66010 +Getting GWR service details: L65766 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65766 +Getting GWR service details: L65767 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65767 +Getting GWR service details: L65780 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65780 +Getting GWR service details: L65781 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65781 +Getting GWR service details: L65778 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65778 +Getting GWR service details: L65779 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65779 +Getting GWR service details: L65772 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65772 +Getting GWR service details: L65773 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65773 +Getting GWR service details: L66728 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66728 +Getting GWR service details: L66729 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66729 +Getting GWR service details: L66922 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66922 +Getting GWR service details: L66585 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66585 +Getting GWR service details: L66593 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66593 +Getting GWR service details: L66923 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66923 +Getting GWR service details: L67009 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L67009 +Getting GWR service details: L66453 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66453 +Getting GWR service details: L66454 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66454 +Getting GWR service details: L66936 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66936 +Getting GWR service details: L66679 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66679 +Getting GWR service details: L66655 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66655 +Getting GWR service details: L66607 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66607 +Getting GWR service details: L66659 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66659 +Getting GWR service details: L66661 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66661 +Getting GWR service details: L66931 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66931 +Getting GWR service details: L66494 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66494 +Getting GWR service details: L65448 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65448 +Getting GWR service details: L65449 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65449 +Getting GWR service details: L65452 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65452 +Getting GWR service details: L65458 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65458 +Getting GWR service details: L65947 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65947 +Getting GWR service details: L65451 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65451 +Getting GWR service details: L66671 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66671 +Getting GWR service details: L66930 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66930 +Getting GWR service details: L66067 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66067 +Getting GWR service details: L66068 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66068 +Getting GWR service details: L66665 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66665 +Getting GWR service details: L66924 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66924 +Getting GWR service details: L66033 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66033 +Getting GWR service details: L66495 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66495 +Getting GWR service details: L66496 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66496 +Getting GWR service details: L66306 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66306 +Getting GWR service details: L66307 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66307 +Getting GWR service details: L65504 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65504 +Getting GWR service details: L66121 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66121 +Getting GWR service details: L66477 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66477 +Getting GWR service details: L66478 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66478 +Getting GWR service details: L66492 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66492 +Getting GWR service details: L66493 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66493 +Getting GWR service details: L65456 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65456 +Getting GWR service details: L66608 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66608 +Getting GWR service details: L66489 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66489 +Getting GWR service details: L66490 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66490 +Getting GWR service details: L65956 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65956 +Getting GWR service details: L65844 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65844 +Getting GWR service details: L66023 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66023 +Getting GWR service details: L65949 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65949 +Getting GWR service details: L65984 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65984 +Getting GWR service details: L67003 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L67003 +Getting GWR service details: L65450 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65450 +Getting GWR service details: L66892 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66892 +Getting GWR service details: L65454 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65454 +Getting GWR service details: L66672 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66672 +Getting GWR service details: L66927 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66927 +Getting GWR service details: L66035 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66035 +Getting GWR service details: L66739 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66739 +Getting GWR service details: L66740 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66740 +Getting GWR service details: L66027 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66027 +Getting GWR service details: L66026 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66026 +Getting GWR service details: L66848 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66848 +Getting GWR service details: L66446 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66446 +Getting GWR service details: L66447 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66447 +Getting GWR service details: L66827 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66827 +Getting GWR service details: L66828 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66828 +Getting GWR service details: L66829 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66829 +Getting GWR service details: L66678 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66678 +Getting GWR service details: L66664 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66664 +Getting GWR service details: L65481 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65481 +Getting GWR service details: L66474 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66474 +Getting GWR service details: L66476 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66476 +Getting GWR service details: L66856 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66856 +Getting GWR service details: L66677 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66677 +Getting GWR service details: L65478 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65478 +Getting GWR service details: L66663 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66663 +Getting GWR service details: L65994 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65994 +Getting GWR service details: L66937 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66937 +Getting GWR service details: L65973 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65973 +Getting GWR service details: L65909 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65909 +Getting GWR service details: L65910 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65910 +Getting GWR service details: L66751 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66751 +Getting GWR service details: L66752 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66752 +Getting GWR service details: L66813 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66813 +Getting GWR service details: L66814 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66814 +Getting GWR service details: L66074 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66074 +Getting GWR service details: L66577 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66577 +Getting GWR service details: L66578 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66578 +Getting GWR service details: L65906 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65906 +Getting GWR service details: L65905 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65905 +Getting GWR service details: L66083 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66083 +Getting GWR service details: L66823 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66823 +Getting GWR service details: L66824 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66824 +Getting GWR service details: L66811 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66811 +Getting GWR service details: L66812 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66812 +Getting GWR service details: L66053 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66053 +Getting GWR service details: L66092 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66092 +Getting GWR service details: L66063 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66063 +Getting GWR service details: L65927 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65927 +Getting GWR service details: L65928 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65928 +Getting GWR service details: L66761 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66761 +Getting GWR service details: L66085 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66085 +Getting GWR service details: L65938 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65938 +Getting GWR service details: L65937 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65937 +Getting GWR service details: L66408 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66408 +Getting GWR service details: L66409 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66409 +Getting GWR service details: L66745 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66745 +Getting GWR service details: C02091 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/C02091 +Getting GWR service details: L66399 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66399 +Getting GWR service details: L66400 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66400 +Getting GWR service details: L66405 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66405 +Getting GWR service details: L66748 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66748 +Getting GWR service details: L66825 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66825 +Getting GWR service details: L66826 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66826 +Getting GWR service details: L65926 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65926 +Getting GWR service details: L66048 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66048 +Getting GWR service details: L66569 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66569 +Getting GWR service details: L66570 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66570 +Getting GWR service details: L66830 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66830 +Getting GWR service details: L66832 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66832 +Getting GWR service details: L66090 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66090 +Getting GWR service details: L66839 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66839 +Getting GWR service details: L66838 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66838 +Getting GWR service details: L66013 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66013 +Getting GWR service details: L65996 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65996 +Getting GWR service details: L66017 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66017 +Getting GWR service details: L66082 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66082 +Getting GWR service details: L66089 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66089 +Getting GWR service details: L66018 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66018 +Getting GWR service details: V57268 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/V57268 +Getting GWR service details: L66603 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66603 +Getting GWR service details: L66770 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66770 +Getting GWR service details: L66776 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66776 +Getting GWR service details: L66777 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66777 +Getting GWR service details: L66775 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66775 +Getting GWR service details: L66771 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66771 +Getting GWR service details: L66791 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66791 +Getting GWR service details: L66792 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66792 +Getting GWR service details: L66774 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66774 +Getting GWR service details: L66773 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66773 +Getting GWR service details: L66819 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66819 +Getting GWR service details: L66820 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66820 +Getting GWR service details: L65920 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65920 +Getting GWR service details: L66763 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66763 +Getting GWR service details: L65924 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65924 +Getting GWR service details: L66086 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66086 +Getting GWR service details: L66909 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66909 +Getting GWR service details: L66087 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66087 +Getting GWR service details: L66032 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66032 +Getting GWR service details: L66412 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66412 +Getting GWR service details: L66836 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66836 +Getting GWR service details: L66837 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66837 +Getting GWR service details: L65929 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65929 +Getting GWR service details: L66050 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66050 +Getting GWR service details: L65993 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L65993 +Getting GWR service details: L66049 , 2024-02-21 00:00:00 +http://localhost:8460/api/v2/timetable/train/2024-02-21T00:00:00/byTrainUid/L66049 +[{'pis': '5924', 'services': [{'stops': ['FRATTON', 'COSHAM', 'PCHESTR', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5216', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW'], 'existingPis': False, 'vstp': False}]}, {'pis': '5257', 'services': [{'stops': ['WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6229', 'services': [{'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'THFORD', 'YTMNSTR', 'CHETNOL', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5124', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '6062', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'COSHAM', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5179', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'COSHAM', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'BRSTLTM', 'FILTNEW', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6231', 'services': [{'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6129', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5181', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'COSHAM', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'BRSTLTM', 'FILTNEW', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6287', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5449', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5870', 'services': [{'stops': ['WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5803', 'services': [{'stops': ['BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'DURSLEY', 'GLOSTER', 'CHLTNHM', 'ASHCHRC', 'WORCSSH', 'WORCSFS', 'MLVRNLK', 'GTMLVRN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5232', 'services': [{'stops': ['WORCSSH', 'ASHCHRC', 'CHLTNHM', 'GLOSTER', 'DURSLEY', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5126', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'SOTPKWY', 'ELGH', 'HEDGEND', 'BOTLEY', 'FAREHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '6220', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'COSHAM', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6150', 'services': [{'stops': ['GLOSTER', 'STNHSE', 'STRUD', 'KEMBLE', 'SDON', 'CHIPNHM', 'MELKSHM', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5866', 'services': [{'stops': ['SLSBRY', 'WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6153', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5793', 'services': []}, {'pis': '5055', 'services': [{'stops': ['BRSTLTM', 'LAWRNCH', 'STPLTNR', 'FILTNEW', 'BRSTPWY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5704', 'services': [{'stops': ['BRSTPWY', 'FILTNEW', 'STPLTNR', 'LAWRNCH', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'FRATTON', 'PSEA'], 'existingPis': False, 'vstp': False}]}, {'pis': '5278', 'services': [{'stops': ['PARR', 'LUXULYN', 'BUGLE', 'RCHE', 'STCLMBR', 'QNTRLDW', 'NEWQUAY'], 'existingPis': False, 'vstp': False}, {'stops': ['PADTON', 'SLOUGH', 'MDNHEAD', 'TWYFORD', 'RDNGSTN', 'TILHRST', 'PANGBRN', 'GORASTR', 'CHOLSEY', 'DIDCOTP'], 'existingPis': False, 'vstp': False}]}, {'pis': '5318', 'services': [{'stops': ['NEWQUAY', 'QNTRLDW', 'STCLMBR', 'RCHE', 'BUGLE', 'LUXULYN', 'PARR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5305', 'services': [{'stops': ['TRURO', 'PERANWL', 'PRYN', 'PENMERE', 'FALMTHT', 'FALMTHD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5307', 'services': [{'stops': ['FALMTHD', 'FALMTHT', 'PENMERE', 'PRYN', 'TRURO'], 'existingPis': False, 'vstp': False}]}, {'pis': '6270', 'services': [{'stops': ['PARR', 'LSTWTHL', 'BODMNPW', 'LISKARD', 'MENHENT', 'STGRMNS', 'SASH', 'STBDXFR', 'KEYHAM', 'DOCKYDP', 'DEVNPRT', 'PLYMTH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'TWYFORD', 'MDNHEAD', 'SLOUGH', 'WDRYTON', 'HAYESAH', 'STHALL', 'EALINGB', 'PADTON'], 'existingPis': False, 'vstp': False}]}, {'pis': '5281', 'services': [{'stops': ['PLYMTH', 'DEVNPRT', 'DOCKYDP', 'KEYHAM', 'STBDXVR', 'BEREFRS', 'BEREALS', 'CALSTCK', 'GUNISLK'], 'existingPis': False, 'vstp': False}]}, {'pis': '5310', 'services': [{'stops': ['GUNISLK', 'CALSTCK', 'BEREALS', 'BEREFRS', 'STBDXVR', 'KEYHAM', 'DOCKYDP', 'DEVNPRT', 'PLYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5290', 'services': [{'stops': ['PLYMTH', 'SASH', 'STGRMNS', 'LISKARD', 'BODMNPW', 'LSTWTHL', 'PARR', 'STAUSTL', 'TRURO', 'REDRUTH', 'CBORNE', 'HAYLE', 'STERTH', 'PENZNCE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5274', 'services': [{'stops': ['LISKARD', 'STKEYNE', 'CAUSLND', 'SDPLACE', 'LOOE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5315', 'services': [{'stops': ['LOOE', 'SDPLACE', 'CAUSLND', 'STKEYNE', 'COOMBE', 'LISKARD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5272', 'services': [{'stops': ['LISKARD', 'COOMBE', 'STKEYNE', 'CAUSLND', 'SDPLACE', 'LOOE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5316', 'services': [{'stops': ['LOOE', 'SDPLACE', 'CAUSLND', 'STKEYNE', 'LISKARD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5314', 'services': [{'stops': ['LOOE', 'LISKARD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5273', 'services': [{'stops': ['LISKARD', 'LOOE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5334', 'services': [{'stops': ['PENZNCE', 'STERTH', 'HAYLE', 'CBORNE', 'REDRUTH', 'TRURO', 'STAUSTL', 'PARR', 'LSTWTHL', 'BODMNPW', 'LISKARD', 'STGRMNS', 'SASH', 'PLYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5304', 'services': [{'stops': ['TRURO', 'PRYN', 'PENMERE', 'FALMTHT', 'FALMTHD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5306', 'services': [{'stops': ['FALMTHD', 'FALMTHT', 'PENMERE', 'PRYN', 'PERANWL', 'TRURO'], 'existingPis': False, 'vstp': False}]}, {'pis': '5283', 'services': [{'stops': ['PLYMTH', 'DEVNPRT', 'DOCKYDP', 'KEYHAM', 'STBDXFR', 'SASH', 'STGRMNS', 'MENHENT', 'LISKARD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5792', 'services': [{'stops': ['LISKARD', 'SASH', 'STBDXFR', 'PLYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5286', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW'], 'existingPis': False, 'vstp': False}, {'stops': ['PLYMTH', 'DEVNPRT', 'DOCKYDP', 'KEYHAM', 'STBDXFR', 'SASH', 'STGRMNS', 'MENHENT', 'LISKARD', 'BODMNPW', 'LSTWTHL', 'PARR', 'STAUSTL', 'TRURO', 'REDRUTH', 'CBORNE', 'HAYLE', 'STERTH', 'PENZNCE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5607', 'services': [{'stops': ['PENZNCE', 'STERTH', 'HAYLE', 'CBORNE', 'REDRUTH', 'TRURO', 'STAUSTL', 'PARR', 'LSTWTHL', 'BODMNPW', 'LISKARD', 'STGRMNS', 'SASH', 'PLYMTH', 'IVYBDGE', 'TOTNES', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5346', 'services': [{'stops': ['STERTH', 'LELANT', 'CARBISB', 'STIVES'], 'existingPis': False, 'vstp': False}, {'stops': ['WINDSEC', 'SLOUGH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5675', 'services': [{'stops': ['STIVES', 'CARBISB', 'STERTH'], 'existingPis': False, 'vstp': False}, {'stops': ['WINDSEC', 'SLOUGH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5674', 'services': [{'stops': ['STERTH', 'CARBISB', 'STIVES'], 'existingPis': False, 'vstp': False}, {'stops': ['WINDSEC', 'SLOUGH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5300', 'services': [{'stops': ['STIVES', 'CARBISB', 'LELANT', 'STERTH'], 'existingPis': False, 'vstp': False}, {'stops': ['WINDSEC', 'SLOUGH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5728', 'services': [{'stops': ['FALMTHD', 'FALMTHT', 'PENMERE', 'PRYN', 'PERANWL', 'TRURO', 'STAUSTL', 'PARR'], 'existingPis': False, 'vstp': False}, {'stops': ['DIDCOTP', 'CHOLSEY', 'GORASTR', 'PANGBRN', 'TILHRST', 'RDNGSTN', 'TWYFORD', 'MDNHEAD', 'SLOUGH', 'PADTON'], 'existingPis': False, 'vstp': False}]}, {'pis': '6238', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '5214', 'services': [{'stops': ['WSTBRYW', 'TRWBRDG', 'MELKSHM', 'CHIPNHM', 'SDON'], 'existingPis': False, 'vstp': False}]}, {'pis': '5208', 'services': [{'stops': ['SDON', 'CHIPNHM', 'MELKSHM', 'TRWBRDG', 'WSTBRYW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6272', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '6067', 'services': [{'stops': ['AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM', 'BDMNSTR', 'PARSNST', 'NAILSEA', 'YATTON', 'WORLE', 'WMILTON', 'WSMARE'], 'existingPis': False, 'vstp': False}]}, {'pis': '6167', 'services': [{'stops': ['WSMARE', 'WMILTON', 'WORLE', 'YATTON', 'NAILSEA', 'PARSNST', 'BDMNSTR', 'BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN', 'SEMILLS', 'SHAMPTN', 'PTWYPR', 'AVONMTH', 'SADWRD', 'SVRNBCH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5248', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5215', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'THFORD', 'YTMNSTR', 'CHETNOL', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5149', 'services': [{'stops': ['WSTBRYW', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6269', 'services': [{'stops': ['SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'MELKSHM', 'CHIPNHM', 'SDON', 'KEMBLE', 'STRUD', 'STNHSE', 'GLOSTER', 'CHLTNHM', 'ASHCHRC', 'WORCSSH', 'WORCSFS'], 'existingPis': False, 'vstp': False}]}, {'pis': '6216', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6222', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6288', 'services': [{'stops': ['YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'LAWRNCH', 'STPLTNR', 'FILTNEW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6070', 'services': [{'stops': ['SVRNBCH', 'SADWRD', 'AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5776', 'services': [{'stops': ['BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5775', 'services': [{'stops': ['WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'LAWRNCH', 'STPLTNR', 'FILTNEW', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6193', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'PATCHWY', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5127', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5237', 'services': [{'stops': ['WSTBRYW', 'FROME'], 'existingPis': False, 'vstp': False}]}, {'pis': '5165', 'services': [{'stops': ['FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'PATCHWY', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5238', 'services': [{'stops': ['WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'THFORD', 'YTMNSTR', 'CHETNOL', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6273', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '6250', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'MSBTN', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}, {'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5205', 'services': [{'stops': ['GLOSTER', 'STNHSE', 'STRUD', 'KEMBLE', 'SDON', 'CHIPNHM', 'MELKSHM', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON'], 'existingPis': False, 'vstp': False}]}, {'pis': '5189', 'services': [{'stops': ['SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6232', 'services': [{'stops': ['WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '6069', 'services': [{'stops': ['BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN', 'SEMILLS', 'SHAMPTN', 'PTWYPR', 'AVONMTH', 'SADWRD', 'SVRNBCH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5502', 'services': [{'stops': ['BRSTLTM', 'LAWRNCH', 'STPLTNR', 'FILTNEW'], 'existingPis': False, 'vstp': False}]}, {'pis': '5523', 'services': [{'stops': ['FILTNEW', 'STPLTNR', 'LAWRNCH', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6079', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME'], 'existingPis': False, 'vstp': False}]}, {'pis': '5151', 'services': [{'stops': ['WSTBRYW', 'DILTONM', 'WRMNSTR'], 'existingPis': False, 'vstp': False}]}, {'pis': '6083', 'services': [{'stops': ['BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN', 'SEMILLS', 'SHAMPTN', 'PTWYPR', 'AVONMTH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6084', 'services': [{'stops': ['WSMARE', 'WMILTON', 'WORLE', 'YATTON', 'NAILSEA', 'PARSNST', 'BDMNSTR', 'BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5128', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5809', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'FAREHAM', 'ELGH', 'SOTPKWY', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6085', 'services': [{'stops': ['AVONMTH', 'SADWRD', 'SVRNBCH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5101', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME'], 'existingPis': False, 'vstp': False}]}, {'pis': '5245', 'services': [{'stops': ['FROME', 'WSTBRYW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6225', 'services': [{'stops': ['BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '6257', 'services': [{'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME'], 'existingPis': False, 'vstp': False}]}, {'pis': '5243', 'services': [{'stops': ['FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'AVNCLFF', 'FRESHFD', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6081', 'services': [{'stops': ['SVRNBCH', 'SADWRD', 'AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM', 'BDMNSTR', 'PARSNST', 'NAILSEA', 'YATTON', 'WORLE', 'WMILTON', 'WSMARE'], 'existingPis': False, 'vstp': False}]}, {'pis': '5438', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5056', 'services': [{'stops': ['BRSTLTM', 'FILTNEW', 'PATCHWY', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6274', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'WRMNSTR', 'SLSBRY', 'ROMSEY', 'SOTON', 'FAREHAM', 'COSHAM', 'FRATTON', 'PSEA', 'PHBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '6267', 'services': [{'stops': ['BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'THFORD', 'YTMNSTR', 'CHETNOL', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6230', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '5242', 'services': [{'stops': ['BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'DURSLEY', 'GLOSTER', 'CHLTNHM', 'ASHCHRC', 'WORCSSH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6289', 'services': [{'stops': ['OKHMPTN', 'CREDITN', 'NSTCYRE', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}, {'stops': ['BATHSPA', 'OLDFLDP', 'KEYNSHM', 'LAWRNCH', 'STPLTNR', 'FILTNEW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6221', 'services': [{'stops': ['WRMNSTR', 'DILTONM', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'OLDFLDP', 'KEYNSHM', 'BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'GLOSTER'], 'existingPis': False, 'vstp': False}]}, {'pis': '5703', 'services': [{'stops': ['BRSTLTM', 'FILTNEW', 'BRSTPWY', 'YATE', 'DURSLEY', 'GLOSTER', 'CHLTNHM', 'ASHCHRC', 'WORCSSH', 'WORCSFS'], 'existingPis': False, 'vstp': False}]}, {'pis': '5765', 'services': [{'stops': ['WORCSFS', 'WORCSSH', 'ASHCHRC', 'CHLTNHM', 'GLOSTER', 'DURSLEY', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6068', 'services': [{'stops': ['WSMARE', 'WMILTON', 'WORLE', 'YATTON', 'NAILSEA', 'PARSNST', 'BDMNSTR', 'BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN', 'SEMILLS', 'SHAMPTN', 'PTWYPR', 'AVONMTH'], 'existingPis': False, 'vstp': False}, {'stops': ['RDNGSTN', 'REDGWST', 'THEALE', 'ALDMSTN', 'MIDGHAM', 'THATCHM', 'NEWBRYR', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6226', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}, {'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6236', 'services': [{'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'THFORD', 'YTMNSTR', 'CHETNOL', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6253', 'services': [{'stops': ['WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5640', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'BRSTLTM', 'FILTNEW', 'PATCHWY', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6208', 'services': [{'stops': ['AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM'], 'existingPis': False, 'vstp': False}, {'stops': ['NEWBURY', 'NEWBRYR', 'THATCHM', 'MIDGHAM', 'ALDMSTN', 'THEALE', 'REDGWST', 'RDNGSTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5225', 'services': [{'stops': ['GTMLVRN', 'MLVRNLK', 'WORCSFS', 'WORCSSH', 'ASHCHRC', 'CHLTNHM', 'GLOSTER', 'DURSLEY', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '6233', 'services': [{'stops': ['GLOSTER', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'FROME', 'BRUTON', 'CCARY', 'YOVILPM', 'YTMNSTR', 'MDNNWTN', 'DRCHW', 'UPWEY', 'WEYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5180', 'services': [{'stops': ['PHBR', 'PSEA', 'FRATTON', 'COSHAM', 'FAREHAM', 'SOTON', 'ROMSEY', 'SLSBRY', 'WRMNSTR', 'WSTBRYW', 'TRWBRDG', 'BRDFDOA', 'BATHSPA', 'BRSTLTM', 'FILTNEW', 'PATCHWY', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6277', 'services': [{'stops': ['SVRNBCH', 'SADWRD', 'AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW', 'DILTONM', 'WRMNSTR', 'SLSBRY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5032', 'services': [{'stops': ['CRDFCEN', 'NWPTRTG', 'SEVTNLJ', 'PATCHWY', 'FILTNEW', 'STPLTNR', 'LAWRNCH', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5254', 'services': [{'stops': ['WEYMTH', 'UPWEY', 'DRCHW', 'MDNNWTN', 'CHETNOL', 'YTMNSTR', 'THFORD', 'YOVILPM', 'CCARY', 'BRUTON', 'FROME', 'WSTBRYW'], 'existingPis': False, 'vstp': False}]}, {'pis': '6278', 'services': [{'stops': ['BRSTLTM', 'WSMARE', 'HGHBRDG', 'BRDGWTR', 'TAUNTON', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5719', 'services': [{'stops': ['EXETRSD', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'LAPFORD', 'EGGESFD', 'KNYMPTN', 'PRTSMTA', 'UMBRLGH', 'CHAPLTN', 'BRNSTPL'], 'existingPis': False, 'vstp': False}, {'stops': ['MDNHEAD', 'FURZEP', 'COOKHAM', 'BORNEND', 'MARLOW'], 'existingPis': False, 'vstp': False}]}, {'pis': '5824', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'EGGESFD', 'LAPFORD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}, {'stops': ['PADTON', 'EALINGB', 'STHALL', 'HAYESAH', 'WDRYTON', 'IVER', 'LANGLEY', 'SLOUGH', 'BNHAM', 'TAPLOW', 'MDNHEAD', 'TWYFORD', 'RDNGSTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6182', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['NEWBURY', 'KNTBRY', 'HUNGRFD', 'BEDYN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5429', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'EXETRST', 'EXETRSD', 'EXETERC', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5075', 'services': [{'stops': ['TAUNTON', 'BRDGWTR', 'HGHBRDG', 'WSMARE', 'WMILTON', 'WORLE', 'YATTON', 'NAILSEA', 'PARSNST', 'BDMNSTR', 'BRSTLTM'], 'existingPis': False, 'vstp': False}, {'stops': ['OXFD', 'TACKLEY', 'HEYFORD', 'KINSSTN', 'BNBR'], 'existingPis': False, 'vstp': False}]}, {'pis': '5718', 'services': [{'stops': ['MDNHEAD', 'FURZEP', 'COOKHAM', 'BORNEND', 'MARLOW'], 'existingPis': False, 'vstp': False}, {'stops': ['EXETRSD', 'CREDITN', 'EGGESFD', 'UMBRLGH', 'BRNSTPL'], 'existingPis': False, 'vstp': False}]}, {'pis': '6184', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'MSBTN', 'EXETRST', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6189', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5380', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5417', 'services': [{'stops': ['EXETRSD', 'EXETERC', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5418', 'services': [{'stops': ['EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6262', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'MSBTN', 'EXETRSD', 'EXETERC', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5821', 'services': [{'stops': ['EXETERC', 'EXETRSD', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'EGGESFD', 'UMBRLGH', 'BRNSTPL'], 'existingPis': False, 'vstp': False}, {'stops': ['MDNHEAD', 'FURZEP', 'COOKHAM', 'BORNEND', 'MARLOW'], 'existingPis': False, 'vstp': False}]}, {'pis': '5822', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'KNYMPTN', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}]}, {'pis': '6258', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'MSBTN', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5724', 'services': [{'stops': ['BRSTPWY', 'FILTNEW', 'STPLTNR', 'LAWRNCH', 'BRSTLTM', 'KEYNSHM', 'OLDFLDP', 'BATHSPA', 'FRESHFD', 'AVNCLFF', 'BRDFDOA', 'TRWBRDG', 'WSTBRYW'], 'existingPis': False, 'vstp': False}, {'stops': ['EXETRSD', 'DAWLISH', 'TEINMTH', 'NABT', 'TOTNES', 'IVYBDGE', 'PLYMTH', 'SASH', 'STGRMNS', 'LISKARD', 'BODMNPW', 'LSTWTHL', 'PARR', 'STAUSTL', 'TRURO', 'REDRUTH', 'CBORNE', 'HAYLE', 'STERTH', 'PENZNCE'], 'existingPis': False, 'vstp': False}]}, {'pis': '6052', 'services': [{'stops': ['SVRNBCH', 'SADWRD', 'AVONMTH', 'PTWYPR', 'SHAMPTN', 'SEMILLS', 'CLFDOWN', 'REDLAND', 'MONPELR', 'STPLTNR', 'LAWRNCH', 'BRSTLTM'], 'existingPis': False, 'vstp': False}, {'stops': ['EXETRSD', 'CREDITN', 'OKHMPTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6046', 'services': [{'stops': ['OKHMPTN', 'CREDITN', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}]}, {'pis': '5293', 'services': [{'stops': ['PLYMTH', 'STBDXFR', 'SASH', 'STGRMNS', 'LISKARD', 'BODMNPW', 'LSTWTHL', 'PARR', 'STAUSTL', 'TRURO', 'REDRUTH', 'CBORNE', 'HAYLE', 'STERTH', 'PENZNCE'], 'existingPis': False, 'vstp': False}]}, {'pis': '6051', 'services': [{'stops': ['BRSTLTM', 'LAWRNCH', 'STPLTNR', 'MONPELR', 'REDLAND', 'CLFDOWN', 'SEMILLS', 'SHAMPTN', 'PTWYPR', 'AVONMTH', 'SADWRD', 'SVRNBCH'], 'existingPis': False, 'vstp': False}, {'stops': ['EXETERC', 'EXETRSD', 'NSTCYRE', 'CREDITN', 'OKHMPTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6050', 'services': [{'stops': ['EXETERC', 'EXETRSD', 'CREDITN', 'OKHMPTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6047', 'services': [{'stops': ['OKHMPTN', 'CREDITN', 'NSTCYRE', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}]}, {'pis': '6089', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'EXETRST', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['NEWBURY', 'KNTBRY', 'HUNGRFD', 'BEDYN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5351', 'services': [{'stops': ['EXETERC', 'EXETRSD', 'NSTCYRE', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'EGGESFD', 'UMBRLGH', 'BRNSTPL'], 'existingPis': False, 'vstp': False}]}, {'pis': '5829', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'PRTSMTA', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'NSTCYRE', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '6152', 'services': [{'stops': ['LOOE', 'LISKARD'], 'existingPis': False, 'vstp': False}, {'stops': ['BRNSTPL', 'UMBRLGH', 'KNYMPTN', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'EXETRSD', 'EXETERC', 'PINHOE', 'CBRK', 'FENITON', 'HONITON', 'AXMNSTR'], 'existingPis': False, 'vstp': False}]}, {'pis': '6293', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['NEWBURY', 'KNTBRY', 'HUNGRFD', 'BEDYN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6260', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'MSBTN', 'EXETRST', 'EXETRSD', 'EXETERC', 'STJAMSP', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6285', 'services': [{'stops': [], 'existingPis': False, 'vstp': False}, {'stops': ['BRNSTPL', 'UMBRLGH', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'NSTCYRE', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5426', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'EXETRST', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5003', 'services': [{'stops': ['BRSTLTM', 'BDMNSTR', 'PARSNST', 'NAILSEA', 'YATTON', 'WORLE', 'WMILTON', 'WSMARE', 'HGHBRDG', 'BRDGWTR', 'TAUNTON', 'TIVIPW', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '6266', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'MSBTN', 'EXETRST', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5431', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'EXETRST', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6264', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'MSBTN', 'EXETRSD', 'EXETERC', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '5376', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5330', 'services': [{'stops': ['PENZNCE', 'STERTH', 'HAYLE', 'CBORNE', 'REDRUTH', 'TRURO', 'STAUSTL', 'PARR', 'LSTWTHL', 'BODMNPW', 'LISKARD', 'MENHENT', 'STGRMNS', 'SASH', 'PLYMTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6283', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'STRCROS', 'EXETRST', 'EXETRSD', 'TIVIPW', 'TAUNTON', 'BRSTLTM'], 'existingPis': False, 'vstp': False}]}, {'pis': '5362', 'services': [{'stops': ['EXETRSD', 'EXETRST', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6243', 'services': [{'stops': ['NEWBURY', 'KNTBRY', 'HUNGRFD', 'BEDYN'], 'existingPis': False, 'vstp': False}, {'stops': ['CHLTNHM', 'GLOSTER', 'DURSLEY', 'YATE', 'BRSTPWY', 'FILTNEW', 'BRSTLTM'], 'existingPis': False, 'vstp': False}, {'stops': ['EXMOUTH', 'LYMPSTN', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6187', 'services': [{'stops': ['EXETRSD', 'MSBTN', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5379', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '6205', 'services': [{'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}, {'stops': ['EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '5381', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'EXETRST', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}, {'stops': ['BEDYN', 'HUNGRFD', 'KNTBRY', 'NEWBURY'], 'existingPis': False, 'vstp': False}]}, {'pis': '5832', 'services': [{'stops': ['EXETERC', 'EXETRSD', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'EGGESFD', 'KNYMPTN', 'UMBRLGH', 'BRNSTPL'], 'existingPis': False, 'vstp': False}]}, {'pis': '5394', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'EXETRSD', 'EXETERC'], 'existingPis': False, 'vstp': False}]}, {'pis': '5352', 'services': [{'stops': ['EXETERC', 'EXETRSD', 'NSTCYRE', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'LAPFORD', 'EGGESFD', 'KNYMPTN', 'PRTSMTA', 'UMBRLGH', 'CHAPLTN', 'BRNSTPL'], 'existingPis': False, 'vstp': False}]}, {'pis': '5408', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'KNYMPTN', 'EGGESFD', 'LAPFORD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6159', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'TAUNTON', 'BRDGWTR', 'HGHBRDG', 'WSMARE', 'WORLE', 'YATTON', 'NAILSEA', 'BRSTLTM', 'FILTNEW', 'SEVTNLJ', 'NWPTRTG', 'CRDFCEN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6292', 'services': [{'stops': ['PAIGNTN', 'TORQUAY', 'TORRE', 'NABT', 'TEINMTH', 'DAWLISH', 'DAWLSHW', 'MSBTN', 'EXETRSD', 'EXETERC', 'STJAMSP', 'POLSBDG', 'DIGBY', 'NWCOURT', 'TOPSHAM', 'EXTON', 'LYMPSTC', 'LYMPSTN', 'EXMOUTH'], 'existingPis': False, 'vstp': False}]}, {'pis': '6048', 'services': [{'stops': ['OKHMPTN', 'CREDITN', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '6053', 'services': [{'stops': ['EXETRSD', 'NSTCYRE', 'CREDITN', 'OKHMPTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6158', 'services': [{'stops': [], 'existingPis': False, 'vstp': False}, {'stops': ['EXMOUTH', 'LYMPSTN', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'EXETRST', 'MSBTN', 'STRCROS', 'DAWLSHW', 'DAWLISH', 'TEINMTH', 'NABT', 'TORRE', 'TORQUAY', 'PAIGNTN'], 'existingPis': False, 'vstp': False}]}, {'pis': '6160', 'services': [{'stops': ['EXMOUTH', 'LYMPSTN', 'LYMPSTC', 'EXTON', 'TOPSHAM', 'NWCOURT', 'DIGBY', 'POLSBDG', 'STJAMSP', 'EXETERC', 'EXETRSD', 'NSTCYRE', 'CREDITN', 'YEOFORD', 'COPLSTN', 'MOCHARD', 'LAPFORD', 'EGGESFD', 'KNYMPTN', 'UMBRLGH', 'BRNSTPL'], 'existingPis': False, 'vstp': False}]}, {'pis': '6161', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'EGGESFD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'NSTCYRE', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '5488', 'services': [{'stops': ['BRSTLTM', 'BDMNSTR', 'PARSNST', 'NAILSEA', 'YATTON', 'WORLE', 'WMILTON', 'WSMARE', 'HGHBRDG', 'BRDGWTR', 'TAUNTON', 'TIVIPW', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}, {'pis': '6091', 'services': [{'stops': ['BRNSTPL', 'UMBRLGH', 'KNYMPTN', 'EGGESFD', 'MOCHARD', 'COPLSTN', 'YEOFORD', 'CREDITN', 'NSTCYRE', 'EXETRSD'], 'existingPis': False, 'vstp': False}]}] diff --git a/src/local_mode.py b/src/local_mode.py index 674a53a..9bb1c8a 100644 --- a/src/local_mode.py +++ b/src/local_mode.py @@ -30,9 +30,31 @@ def start(): print(f"Found {len(results)} PIS Codes in documents") missing_pis = pis_find.run(results) + get_detail = [] for code in missing_pis: + print(code) services = owlboard_connector.get_services(code['headcode'], code['date']) - print(services) + get_detail.append({ + 'pis': code['pis'], + 'services': services, + 'date': code['date'] + }) + + details = [] + for item in get_detail: + detail = { + 'pis': item['pis'], + 'services': [], + } + for service in item['services']: + service_detail = owlboard_connector.get_service_detail(service['trainUid'], item['date']) + detail['services'].append(service_detail) + + details.append(detail) + + print(details) + + diff --git a/src/owlboard_connector.py b/src/owlboard_connector.py index 1342fb2..ed037f1 100644 --- a/src/owlboard_connector.py +++ b/src/owlboard_connector.py @@ -32,24 +32,10 @@ def check_connection(): return False return True -def find_pis_code(code): - print("Searching for PIS Code: ", code) - url = OB_PIS_BASE_URL + code - res = requests.get(url, headers=HEADERS) - if res.status_code == 200: - json_response = res.json() - if json_response and isinstance(json_response, list): - return json_response - else: - return False - else: - print("Unable to reach OwlBoard. STATUS: ", res.status_code) - return True - def get_services(headcode, date): print("Finding GWR service: ", headcode, ", ", date) results = [] - url = OB_TRN_BASE_URL + f"now/headcode/{headcode.lower()}" + url = OB_TRN_BASE_URL + f"{date.strftime('%Y-%m-%d')}/headcode/{headcode.lower()}" print(url) res = requests.get(url, headers=HEADERS) if res.status_code == 200: @@ -67,11 +53,11 @@ def get_service_detail(trainUid, date): res = requests.get(url, headers=HEADERS) if res.status_code == 200: json_res = res.json() - if json_res and isinstance(dict, json_res): + if json_res: svc_detail = { 'stops': json_res['stops'], - 'existing_pis': json_res['pis'], - 'vstp': json_res['vstp'] + 'existing_pis': json_res.get('pis', None), + 'vstp': json_res.get('vstp', False) } return organise_svc(svc_detail) @@ -84,7 +70,8 @@ def organise_svc(input): if stop['isPublic']: stop_tiplocs.append(stop['tiploc']) - if input['pis']['skipCount'] == 0: + existingPis = False + if 'pis' in input and input['pis'].get('skipCount', 0) == 0: existingPis = True - return {'stops': stop_tiplocs, 'vstp': vstp, 'existingPis': existingPis} \ No newline at end of file + return {'stops': stop_tiplocs, 'existingPis': existingPis, 'vstp': vstp} \ No newline at end of file diff --git a/src/parse_docx.py b/src/parse_docx.py index fc7a313..3c154a6 100644 --- a/src/parse_docx.py +++ b/src/parse_docx.py @@ -3,19 +3,6 @@ from docx import Document from datetime import datetime import re -### This can parse each table. What needs to happen next -### is to parse all tables, then check for a PIS code. -### If PIS code exists, then find the associated headcode, -### Then an API request can be made to OwlBoard to try -### and find a service with valid stopping pattern, -### then the PIS codes can be generated for review. - -### I think that I need to match each page. I need to search each page for the -### days of week the diagram is valid for, eg FSX, FO. Then I need to find the -### dates the diagram is valid for. Then use that to search for trains. - -### Alternatively, I could ensure that only daily diagrams are sent and the date -### is contained within the body/subject of the email. PIS_PATTERN = re.compile(r'PIS code\s*:\s*(\d{4})') HEADCODE_PATTERN = re.compile(r'(\d{1}[A-Z]\d{2})') diff --git a/src/pis_fetch.py b/src/pis_fetch.py new file mode 100644 index 0000000..182468a --- /dev/null +++ b/src/pis_fetch.py @@ -0,0 +1,57 @@ +import os, requests, yaml + +API_KEY = os.environ.get('DGP_GITEA_KEY') + +## TESTING +GIT_URL = 'https://git.fjla.uk' + +GIT_API = GIT_URL + '/api/v1' + +def load_existing_pis(): + all_pis_data = [] + branches = get_branch_list() + for branch in branches: + branch_pis_data = get_branch_pis(branch) + if branch_pis_data is not None: + all_pis_data.append(branch_pis_data) + print(f"Branch: {branch}, PIS Codes: {len(branch_pis_data['pis'])}") + + # Merging data and removing duplicates based on 'code' key + merged_pis_data = {} ### THIS BIT DOESN'T COMPARE PROPERLY... PRINT EACH TYPE TO SEE STRUCTURE + for branch_data in all_pis_data: + for item in branch_data['pis']: + code = item['code'] + # Only keep the first occurrence of each 'code' + if code not in merged_pis_data: + merged_pis_data[code] = item + + # Convert the dictionary back to a list of dictionaries + merged_pis_list = [{'code': code, 'stops': value['stops']} for code, value in merged_pis_data.items()] + + print(f"Total unique codes: {len(merged_pis_list)}") + return merged_pis_list + + + +def get_branch_list(): + get_branches_endpoint = GIT_API + '/repos/owlboard/data/branches' + res = requests.get(get_branches_endpoint) + branches_json = res.json() + + branches = [] + for repo in branches_json: + branches.append(repo['name']) + + print(branches) + return branches + +def get_branch_pis(branch_name): + get_file_url = GIT_API + f'/repos/owlboard/data/raw/%2Fpis%2Fgw.yaml?ref={branch_name}' + res = requests.get(get_file_url) + print(res.status_code) + pis_yaml = res.text + dic = yaml.safe_load(pis_yaml) + return dic + +if __name__ == "__main__": + print(load_existing_pis()) \ No newline at end of file diff --git a/src/pis_find.py b/src/pis_find.py index 8b1c621..35ab90c 100644 --- a/src/pis_find.py +++ b/src/pis_find.py @@ -1,4 +1,4 @@ -import owlboard_connector +import pis_fetch import requests, sys def run(data_list): @@ -15,17 +15,20 @@ def dedup(data_list): return unique_list_of_dicts -## AUTH REQUIRED!!! Move to owlboard_connector.py def find_missing(data_list): - BASEURL = 'http://localhost:8460/api/v2/pis/byCode/' - #BASEURL = 'https://owlboard.info/api/v2/pis/byCode/' + existing_pis_list = pis_fetch.load_existing_pis() missing_data = [] for item in data_list: pis_code = item.get('pis') if pis_code: - pis_code_res = owlboard_connector.find_pis_code(pis_code) - if not pis_code_res: - print("PIS Code ", pis_code, " not found in existing data") + code_exists = False + for existing_pis in existing_pis_list: + if existing_pis['code'] == pis_code: + code_exists = True + break + if not code_exists: + print("PIS Code", pis_code, "not found in existing data") missing_data.append(item) + return missing_data \ No newline at end of file