Page Menu
Home
DevCentral
Search
Configure Global Search
Log In
Files
F11690974
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/create_given_name b/create_given_name
index 3127362..2364135 100755
--- a/create_given_name
+++ b/create_given_name
@@ -1,84 +1,90 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
This script creates a new givenname on Wikidata based on input.
TODO: check no item exists, with P31:202444
"""
import argparse
import json
import os
import pywikibot
import sys
# Usage: create_givenname.py [-h] givenname
parser = argparse.ArgumentParser(
description='Creates a given name item on Wikidata.'
)
parser.add_argument(
'givenname',
metavar='givenname', nargs=1,
help='the given name to create'
)
parser.add_argument(
'genre',
metavar='genre', nargs='?', default='D',
help='M for a male, F for a female, U for an unisex given name',
choices=['M', 'F', 'U', 'D']
)
args = parser.parse_args()
givenname = args.givenname[0]
genre = args.genre[0]
# Consistency check
if givenname[0].islower():
sys.stderr.write(
"Can't create a givenname with the first letter in lower case.\n"
)
sys.exit(5)
# Creates item on Wikidata
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
data = {}
result = repo.editEntity(
{}, {},
summary="Creating empty item for given name " + givenname
)
title = result.get('entity').get('id')
item = pywikibot.ItemPage(repo, title=title)
item.get()
genre_items = {
'D': 'Q202444',
'M': 'Q12308941',
'F': 'Q11879590',
'U': 'Q3409032'
}
l10n_files = {
'D': 'l10n/givenname.json',
'M': 'l10n/givenname-m.json',
'F': 'l10n/givenname-f.json',
'U': 'l10n/givenname-u.json'
}
+# Gets whitelist latin languages to avoid create the element in other scripts.
+with open('l10n/latin-whitelist.json') as data_file:
+ latin_languages = json.load(data_file)
+
# Gets descriptions from l10n file, and fill labels for these languages.
script_directory = os.path.dirname(os.path.realpath(__file__))
l10n_file = os.path.join(script_directory, l10n_files[genre])
with open(l10n_file) as data_file:
descriptions = json.load(data_file)
-labels = {lang:givenname for lang in descriptions.keys()}
+
+labels_languages = set(descriptions.keys()).intersection(latin_languages)
+labels = {lang:givenname for lang in labels_languages}
item.editLabels(labels, summary='Adding given name labels')
item.editDescriptions(descriptions, summary='Adding given name descriptions')
claim = pywikibot.Claim(repo, 'P31')
target = pywikibot.ItemPage(repo, genre_items[genre])
claim.setTarget(target)
item.addClaim(claim)
print(title)
diff --git a/create_surname b/create_surname
index 228b510..3403f7b 100755
--- a/create_surname
+++ b/create_surname
@@ -1,60 +1,66 @@
#!/usr/bin/env python
"""
This script creates a new surname on Wikidata based on input.
TODO: check no item exists, with P31:Q101352
"""
import argparse
import json
import pywikibot
import os
# usage: create_surname.py [-h] surname
parser = argparse.ArgumentParser(
description='Creates a surname item on Wikidata.'
)
parser.add_argument(
'surname', metavar='surname',
nargs=1, help='the surname to create'
)
args = parser.parse_args()
surname = args.surname[0]
# Consistency check
# if surname[0].islower():
# sys.stderr.write(
# "Can't create a surname with the first letter in lower case.\n"
# )
# sys.exit(5);
# Creates item on Wikidata
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
data = {}
result = repo.editEntity(
{}, {},
summary="Creating empty item for surname " + surname
)
title = result.get('entity').get('id')
item = pywikibot.ItemPage(repo, title=title)
item.get()
+# Gets whitelist latin languages to avoid create the element in other scripts.
+with open('l10n/latin-whitelist.json') as data_file:
+ latin_languages = json.load(data_file)
+
# Gets descriptions from l10n file, and fill labels for these languages.
script_directory = os.path.dirname(os.path.realpath(__file__))
l10n_file = os.path.join(script_directory, 'l10n', 'surname.json')
with open(l10n_file) as data_file:
descriptions = json.load(data_file)
-labels = {lang: surname for lang in descriptions.keys()}
+
+labels_languages = set(descriptions.keys()).intersection(latin_languages)
+labels = {lang: surname for lang in latin_languages}
item.editLabels(labels, summary='Adding surname labels')
item.editDescriptions(descriptions, summary='Adding surname descriptions')
claim = pywikibot.Claim(repo, 'P31')
target = pywikibot.ItemPage(repo, 'Q101352')
claim.setTarget(target)
item.addClaim(claim)
print(title)
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Sep 12, 19:47 (12 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2978273
Default Alt Text
(4 KB)
Attached To
Mode
rDWD Dæghrefn Wikidata access layer
Attached
Detach File
Event Timeline
Log In to Comment