From 310bd35a0f40add610b5cb474a088f32be805be3 Mon Sep 17 00:00:00 2001 From: Ilya Zverev Date: Fri, 26 May 2017 14:26:53 +0300 Subject: [PATCH] [python] Update localads script --- tools/python/local_ads/mwm_to_csv_4localads.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/python/local_ads/mwm_to_csv_4localads.py b/tools/python/local_ads/mwm_to_csv_4localads.py index 384142f8db..8adecb9ed8 100755 --- a/tools/python/local_ads/mwm_to_csv_4localads.py +++ b/tools/python/local_ads/mwm_to_csv_4localads.py @@ -33,12 +33,13 @@ def generate_id_from_name_and_version(name, version): def parse_mwm(mwm_name, osm2ft_name, override_version, types_name): + region_name = os.path.splitext(os.path.basename(mwm_name))[0] + logging.info(region_name) with open(osm2ft_name, 'rb') as f: ft2osm = mwm.read_osm2ft(f, ft2osm=True, tuples=False) with open(mwm_name, 'rb') as f: mwm_file = mwm.MWM(f) version = override_version or mwm_file.read_version()['version'] - region_name = os.path.splitext(mwm_name)[0] mwm_id = generate_id_from_name_and_version(region_name, version) QUEUES['mwm'].put((mwm_id, region_name, version)) mwm_file.read_header() @@ -46,7 +47,7 @@ def parse_mwm(mwm_name, osm2ft_name, override_version, types_name): for feature in mwm_file.iter_features(metadata=True): osm_id = ft2osm.get(feature['id'], None) if osm_id is None: - if 'ref:sponsored' in feature['metadata']: + if 'metadata' in feature and 'ref:sponsored' in feature['metadata']: for t in feature['header']['types']: if t.startswith('sponsored-'): QUEUES['sponsored'].put((t[t.find('-')+1:], @@ -87,6 +88,7 @@ def main(): parser.add_argument('--types', default=types_default, help='path to omim/data/types.txt') parser.add_argument('--threads', type=int, help='number of threads to process files') parser.add_argument('--version', type=int, help='override mwm version') + parser.add_argument('--debug', action='store_true', help='debug parse_mwm call') args = parser.parse_args() if not args.osm2ft: args.osm2ft = args.mwm @@ -103,8 +105,11 @@ def main(): if not os.path.exists(osm2ft_name): logging.error('Cannot find %s', osm2ft_name) sys.exit(2) - logging.info(mwm_name) - pool.apply_async(parse_mwm, (mwm_name, osm2ft_name, args.version, args.types)) + parse_mwm_args = (os.path.join(args.mwm, mwm_name), osm2ft_name, args.version, args.types) + if args.debug: + parse_mwm(*parse_mwm_args) + else: + pool.apply_async(parse_mwm, parse_mwm_args) pool.close() pool.join() for queue in QUEUES.values():