/
add-street.py
66 lines (49 loc) · 3.01 KB
/
add-street.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, subprocess, logging, argparse, sys
import trolleway_commons
from model_wiki import Model_wiki
parser = argparse.ArgumentParser(
description="Create street entity in Wikidata and Wikimedia Commons ")
parser.add_argument('--wikidata', type=str, required=False, help='Wikidata object if already exists')
parser.add_argument('--name_en', type=str, required=False, help='English street name')
parser.add_argument('--name_ru', type=str, required=False, help='Russian street name')
parser.add_argument('--city', type=str, required=False, default=None, help='City wikidata entity. When not set, will be searched in "administrative entity" in wikidata. Can be wikidata id, wikidata url, wikidata name')
parser.add_argument('--district', type=str, required=False, help='Administrative entity wikidata entity. Can be wikidata id, wikidata url, wikidata name')
parser.add_argument('--country', type=str, required=False, help='Country name string or wikidata link')
parser.add_argument('--named_after', type=str, required=False, help='Named after string or wikidata link')
parser.add_argument('-c','--coords', type=str, required='wikidata' in sys.argv, help='WKT linestring or latlong string in EPSG:4326. Separators: " ", | ,')
parser.add_argument('--wikidata-only', action="store_const", const=True, required=False, help='Create only wikidata entity, do not create commons category ')
#parser.add_argument('--wikidata-only', action="store_const", const=True, required=False, help='Create only wikidata entity, do not create commons category ')
#required='wikidata' not in sys.argv
parser.add_argument(
"-dry", "--dry-run", action="store_const", required=False, default=False, const=True
)
args = parser.parse_args()
processor = trolleway_commons.CommonsOps()
modelwiki = Model_wiki()
street_wdid = args.wikidata
coords = args.coords
city = args.city
dry_mode = args.dry_run
# --- move to method
city_wdid = modelwiki.wikidata_input2id(args.city)
country_wdid = modelwiki.wikidata_input2id(args.country)
named_after_wdid = modelwiki.wikidata_input2id(args.named_after)
if street_wdid is None:
street_name_en = args.name_en
street_name_ru = args.name_ru
street_wdid = modelwiki.create_street_wikidata(city=city_wdid,
name_en=street_name_en,
name_ru =street_name_ru,
named_after=named_after_wdid,
country=country_wdid,
coords=coords,
dry_mode=dry_mode)
if not args.wikidata_only:
street_category_result = modelwiki.create_street_category(street_wdid, city_wdid)
print(street_category_result)
elif street_wdid is not None:
# create street category
street_category_result = modelwiki.create_street_category(street_wdid, city_wdid)
print(street_category_result)