[python] Update localads script

This commit is contained in:
Ilya Zverev 2017-05-26 14:26:53 +03:00
parent b79686c731
commit 310bd35a0f

View file

@ -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():