From: vtn Date: Tue, 28 Jan 2014 08:12:15 +0000 (+0000) Subject: 22465: [CEA] sometimes isinstance(m, Mesh) returns False for Mesh objects X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=1988b0c15045af1dbd0d8853094afb5fd62d7cc4;p=modules%2Fsmesh.git 22465: [CEA] sometimes isinstance(m, Mesh) returns False for Mesh objects --- diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index 5e68dc230..232af01de 100644 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -93,6 +93,16 @@ import SALOME import SALOMEDS import os +class MeshMeta(type): + def __instancecheck__(cls, inst): + """Implement isinstance(inst, cls).""" + return any(cls.__subclasscheck__(c) + for c in {type(inst), inst.__class__}) + + def __subclasscheck__(cls, sub): + """Implement issubclass(sub, cls).""" + return type.__subclasscheck__(cls, sub) or (cls.__name__ == sub.__name__ and cls.__module__ == sub.__module__) + ## @addtogroup l1_auxiliary ## @{ @@ -1140,6 +1150,7 @@ def New( study, instance=None): # new nodes and elements and by changing the existing entities), to get information # about a mesh and to export a mesh into different formats. class Mesh: + __metaclass__ = MeshMeta geom = 0 mesh = 0