ArthurPSmith has uploaded a new change for review.
https://gerrit.wikimedia.org/r/271551
Change subject: Fixes for nuclides to handle problem of duplicate (and some
wrong) returns from SPARQL query
......................................................................
Fixes for nuclides to handle problem of duplicate (and some wrong) returns from
SPARQL query
Change-Id: Ie27c4b8009273a3860fb836862c8a834bd2caa3b
---
M nuclides.py
1 file changed, 25 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/labs/tools/ptable
refs/changes/51/271551/1
diff --git a/nuclides.py b/nuclides.py
index 76d4622..8e3c586 100644
--- a/nuclides.py
+++ b/nuclides.py
@@ -171,10 +171,15 @@
query_result = self.get_sparql(hl_query)
for nuclide_result in query_result:
nuclide_uri = nuclide_result['nuclide']['value']
+ if nuclide_result['half_life']['value'] == '0':
+ continue # WDQS bug: values sometimes zero - skip
if nuclide_uri in nuclides:
- nuclides[nuclide_uri].half_life = time_in_seconds(
- nuclide_result['half_life']['value'],
- nuclide_result['half_life_unit']['value'])
+ if nuclides[nuclide_uri].half_life is not None:
+ print("Warning: half life already set for
{0}?".format(nuclide_uri))
+ else:
+ nuclides[nuclide_uri].half_life = time_in_seconds(
+ nuclide_result['half_life']['value'],
+ nuclide_result['half_life_unit']['value'])
decay_query = "PREFIX ps: <http://www.wikidata.org/prop/statement/> \
PREFIX pq: <http://www.wikidata.org/prop/qualifier/> \
@@ -199,6 +204,21 @@
for item_id, nuclide in nuclides.items():
yield nuclide
+
+ def get_magic_numbers(self):
+ magic_query = "PREFIX wdt: <http://www.wikidata.org/prop/direct/> \
+PREFIX wd: <http://www.wikidata.org/entity/> \
+SELECT ?magic_number WHERE {{ \
+ ?number wdt:P{0} wd:Q{1} ; \
+ wdt:P{2} ?magic_number . \
+}} ORDER by ?magic_number".format(Nuclide.instance_pid, Nuclide.magic_qid,
+ Nuclide.numeric_pid)
+ query_result = self.get_sparql(magic_query)
+ magic_numbers = []
+ for magic_result in query_result:
+ magic_number = magic_result['magic_number']['value']
+ magic_numbers.append(int(magic_number))
+ return magic_numbers
class WdqNuclideProvider(WdqBase, NuclideProvider):
@@ -305,6 +325,8 @@
isotope_qid = 25276 # top-level class under which all isotopes to be found
stable_qid = 878130 # id for stable isotope
isomer_qid = 846110 # metastable isomers all instances of this
+ magic_qid = 11606 # magic number of nucleons for stability
+ numeric_pid = 1181
def __init__(self, **kwargs):
self.decay_modes = []
--
To view, visit https://gerrit.wikimedia.org/r/271551
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie27c4b8009273a3860fb836862c8a834bd2caa3b
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/ptable
Gerrit-Branch: master
Gerrit-Owner: ArthurPSmith <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits