Page MenuHomeDevCentral

No OneTemporary

diff --git a/create_given_name b/create_given_name
index b9420dc..b25e14f 100755
--- a/create_given_name
+++ b/create_given_name
@@ -1,77 +1,82 @@
#!/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 sys
+import json
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()
-labels = {
- 'fr': givenname,
- 'en': givenname
-}
-item.editLabels(labels, summary='Adding given name labels')
-
-description = {
- 'en': 'given name',
- 'fr': 'prénom'
-}
-item.editDescriptions(description, summary='Adding given name descriptions')
-
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 descriptions from l10n file, and fill labels for these languages.
+l10n_file = l10n_files[genre]
+with open(l10n_file) as data_file:
+ descriptions = json.load(data_file)
+labels = {lang:givenname for lang in descriptions.keys()}
+
+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 78d6a22..b7c8dba 100755
--- a/create_surname
+++ b/create_surname
@@ -1,60 +1,57 @@
#!/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
# 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()
-labels = {
- 'fr': surname,
- 'en': surname
-}
-item.editLabels(labels, summary='Adding surname labels')
+# Gets descriptions from l10n file, and fill labels for these languages.
+with open('l10n/surname.json') as data_file:
+ descriptions = json.load(data_file)
+labels = {lang: surname for lang in descriptions.keys()}
-description = {
- 'en': 'family name',
- 'fr': 'nom de famille'
-}
-item.editDescriptions(description, summary='Adding surname descriptions')
+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

Mime Type
text/x-diff
Expires
Sat, Nov 1, 18:06 (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3116532
Default Alt Text
(4 KB)

Event Timeline