From 72ff4a98a31c44bad5c65e5ee684187a229fba2b Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Mon, 17 Feb 2020 18:14:02 +0800 Subject: [PATCH] assembly: fix backward compability --- freecad/asm3/assembly.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/freecad/asm3/assembly.py b/freecad/asm3/assembly.py index 8bc20d2..7b1968c 100644 --- a/freecad/asm3/assembly.py +++ b/freecad/asm3/assembly.py @@ -29,8 +29,22 @@ def hasProperty(obj,prop): try: obj.getPropertyByName(prop,1) return True - except Exception: + except AttributeError: return False + except Exception: + # work around for older FC where getPropertyByName() only accepts one + # argument + try: + obj.getPropertyByName(prop) + except Exception: + return False + if obj.isDerivedFrom('App::DocumentObject'): + linked = obj.getLinkedObject(True) + elif obj.isDerivedFrom('Gui::ViewProviderDocumentObject'): + linked = obj.Object.getLinkedObject(True).ViewObject + else: + return True + return linked == obj or not hasattr(linked,prop) def getLinkProperty(obj,name,default=None,writable=False): try: