TypeError: metaclass conflict:

Posted by Aleftina on
URL: http://owlready.306.s1.nabble.com/TypeError-metaclass-conflict-tp420.html

Hello,

I use you library to create a toll for semantically annotation and search with a web frontend.
Since last version 0.9 I get an error. Independent of which database I use, PostgreSQL or SQLite.
I create a database using your library from existing ontology, which I create with Protege. Everything's going perfectly. Databases contain all datasets. However, when I try to open it/create a World, I get the following error:

Traceback (most recent call last):
  File "<input>", line 2, in <module>
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 241, in __init__
    self.set_backend(backend, filename, dbname, **kargs)
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 283, in set_backend
    self.get_ontology(iri) # Create all possible ontologies if not yet done
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 315, in get_ontology
    return Ontology(self, base_iri)
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 445, in __init__
    self._load_properties()
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 541, in _load_properties
    Prop = self.world._get_by_storid(prop_storid)
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 332, in _get_by_storid
    return self._get_by_storid2(storid, full_iri, main_type, main_onto)
  File "C:\Users\...\venv\lib\site-packages\owlready2\namespace.py", line 396, in _get_by_storid2
    entity = ObjectPropertyClass(name, tuple(types) or (ObjectProperty,), { "namespace" : namespace, "is_a" : is_a_entities, "storid" : storid } )
  File "C:\Users\...\venv\lib\site-packages\owlready2\prop.py", line 51, in __new__
    return EntityClass.__new__(MetaClass, name, superclasses, obj_dict)
  File "C:\Users\...\venv\lib\site-packages\owlready2\entity.py", line 120, in __new__
    Class = namespace.world._entities[storid] = _is_a._obj = type.__new__(MetaClass, name, superclasses, obj_dict)

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

I didn't have any errors with earlier versions.
Do you know what it could be?

Many thanks