Amire80 created this task.
Amire80 added projects: Pywikibot, Pywikibot-Wikidata.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.

TASK DESCRIPTION
  I am running this code:
  
    import pywikibot
    
    site = pywikibot.Site("wikidata", "wikidata")
    repo = site.data_repository()
    item_id = "Q64835" # Özcan Arkoç
    
    item = pywikibot.ItemPage(repo, item_id)
    if item.exists():
        print(f"{item_id} exists")
    else:
        print(f"{item_id} doesn't exist")
  
  It crashes on `item.exists()`:
  
    Traceback (most recent call last):
      File "/home/amir/devel/pywikibot-core/pywikibot/tools/__init__.py", line 
771, in wrapper
        return getattr(obj, cache_name)
               ^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'Claim' object has no attribute '_type'. Did you mean: 
'type'?
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/amir/devel/pywikibot-core/exists.py", line 8, in <module>
        if item.exists():
           ^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
698, in exists
        self.get(get_redirect=True)
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
1165, in get
        data = super().get(force, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
737, in get
        data = WikibaseEntity.get(self, force=force)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
285, in get
        value = cls.fromJSON(self._content.get(key, {}), self.repo)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_collections.py", 
line 218, in fromJSON
        this[key] = [pywikibot.page.Claim.fromJSON(repo, claim)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
1753, in fromJSON
        claim.sources.append(cls.referenceFromJSON(site, source))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
1777, in referenceFromJSON
        claim = cls.fromJSON(site, {'mainsnak': claimsnak,
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
1742, in fromJSON
        if claim.type in cls.types:
           ^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/tools/__init__.py", line 
773, in wrapper
        val = fn(obj)
              ^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/page/_wikibase.py", line 
1427, in type
        return self.repo.getPropertyType(self)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/amir/devel/pywikibot-core/pywikibot/site/_datasite.py", line 
278, in getPropertyType
        raise KeyError(f'{prop} does not exist')
    KeyError: "Claim(DataSite('wikidata', 'wikidata'), 'P6615') does not exist"
    CRITICAL: Exiting due to uncaught exception KeyError: 
"Claim(DataSite('wikidata', 'wikidata'), 'P6615') does not exist"
  
  The same code outputs "Q64834 exists", "Q64836 exists", and "Q7 doesn't 
exist" when running with these Q numbers, but Q64835 
<https://www.wikidata.org/wiki/Q64835> causes it to crash.
  
  Maybe it happens because property 6615 
<https://www.wikidata.org/wiki/Property:P6615>, which was used in a statement 
on that item, was deleted a couple of months ago. The statement was deleted, 
too 
<https://www.wikidata.org/w/index.php?title=Q64835&diff=prev&oldid=2190834717>, 
and it's not even the latest edit on the item. In any case, such a thing 
probably shouldn't cause the whole script to crash.

TASK DETAIL
  https://phabricator.wikimedia.org/T374681

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Amire80
Cc: Aklapper, Amire80, pywikibot-bugs-list, mevo, PotsdamLamb, Jyoo1011, 
JohnsonLee01, SHEKH, Dijkstra, Khutuck, Zkhalido, Aram, Viztor, Wenyi, Tbscho, 
KimKelting, MayS, Mdupont, JJMC89, Dvorapa, Altostratus, Avicennasis, 
mys_721tx, Xqt, jayvdb, Ricordisamoa, Masti, Alchimista
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to