689 parentItem.isPython3File() or parentItem.isCythonFile(), |
689 parentItem.isPython3File() or parentItem.isCythonFile(), |
690 ) |
690 ) |
691 except ImportError: |
691 except ImportError: |
692 return |
692 return |
693 |
693 |
694 keys = list(dictionary) |
694 if bool(dictionary): |
695 if len(keys) > 0: |
|
696 if repopulate: |
695 if repopulate: |
697 last = len(keys) - 1 |
696 last = len(dictionary) - 1 |
698 if "@@Coding@@" in keys and not Preferences.getUI("BrowserShowCoding"): |
697 if "@@Coding@@" in dictionary and not Preferences.getUI( |
|
698 "BrowserShowCoding" |
|
699 ): |
699 last -= 1 |
700 last -= 1 |
700 self.beginInsertRows( |
701 self.beginInsertRows( |
701 self.createIndex(parentItem.row(), 0, parentItem), 0, last |
702 self.createIndex(parentItem.row(), 0, parentItem), 0, last |
702 ) |
703 ) |
703 |
704 |
704 for key in keys: |
705 for key in dictionary: |
705 if key.startswith("@@"): |
706 if key.startswith("@@"): |
706 # special treatment done later |
707 # special treatment done later |
707 continue |
708 continue |
708 cl = dictionary[key] |
709 cl = dictionary[key] |
709 with contextlib.suppress(AttributeError): |
710 with contextlib.suppress(AttributeError): |
710 if cl.module == moduleName: |
711 if cl.module == moduleName: |
711 node = BrowserClassItem(parentItem, cl, fileName) |
712 if isinstance(cl, ClbrBaseClasses.Class): |
|
713 node = BrowserClassItem(parentItem, cl, fileName) |
|
714 elif isinstance(cl, ClbrBaseClasses.Function): |
|
715 node = BrowserMethodItem(parentItem, cl, fileName) |
712 self._addItem(node, parentItem) |
716 self._addItem(node, parentItem) |
713 if "@@Coding@@" in keys and Preferences.getUI("BrowserShowCoding"): |
717 if "@@Coding@@" in dictionary and Preferences.getUI("BrowserShowCoding"): |
714 node = BrowserCodingItem( |
718 node = BrowserCodingItem( |
715 parentItem, |
719 parentItem, |
716 QCoreApplication.translate("BrowserModel", "Coding: {0}").format( |
720 QCoreApplication.translate("BrowserModel", "Coding: {0}").format( |
717 dictionary["@@Coding@@"].coding |
721 dictionary["@@Coding@@"].coding |
718 ), |
722 ), |
719 dictionary["@@Coding@@"].linenumber, |
723 dictionary["@@Coding@@"].linenumber, |
720 ) |
724 ) |
721 self._addItem(node, parentItem) |
725 self._addItem(node, parentItem) |
722 if "@@Globals@@" in keys: |
726 if "@@Globals@@" in dictionary: |
723 node = BrowserGlobalsItem( |
727 node = BrowserGlobalsItem( |
724 parentItem, |
728 parentItem, |
725 dictionary["@@Globals@@"].globals, |
729 dictionary["@@Globals@@"].globals, |
726 QCoreApplication.translate("BrowserModel", "Globals"), |
730 QCoreApplication.translate("BrowserModel", "Globals"), |
727 ) |
731 ) |
728 self._addItem(node, parentItem) |
732 self._addItem(node, parentItem) |
729 if "@@Import@@" in keys or "@@ImportFrom@@" in keys: |
733 if "@@Import@@" in dictionary or "@@ImportFrom@@" in dictionary: |
730 node = BrowserImportsItem( |
734 node = BrowserImportsItem( |
731 parentItem, QCoreApplication.translate("BrowserModel", "Imports") |
735 parentItem, QCoreApplication.translate("BrowserModel", "Imports") |
732 ) |
736 ) |
733 self._addItem(node, parentItem) |
737 self._addItem(node, parentItem) |
734 if "@@Import@@" in keys: |
738 if "@@Import@@" in dictionary: |
735 for importedModule in ( |
739 for importedModule in ( |
736 dictionary["@@Import@@"].getImports().values() |
740 dictionary["@@Import@@"].getImports().values() |
737 ): |
741 ): |
738 m_node = BrowserImportItem( |
742 m_node = BrowserImportItem( |
739 node, |
743 node, |
880 keys = [] |
884 keys = [] |
881 for name in fn.classes: |
885 for name in fn.classes: |
882 keys.append((name, "c")) |
886 keys.append((name, "c")) |
883 for name in fn.methods: |
887 for name in fn.methods: |
884 keys.append((name, "m")) |
888 keys.append((name, "m")) |
|
889 for name in fn.attributes: |
|
890 keys.append((name, "a")) |
885 |
891 |
886 if len(keys) > 0: |
892 if len(keys) > 0: |
887 if repopulate: |
893 if repopulate: |
888 self.beginInsertRows( |
894 self.beginInsertRows( |
889 self.createIndex(parentItem.row(), 0, parentItem), 0, len(keys) - 1 |
895 self.createIndex(parentItem.row(), 0, parentItem), 0, len(keys) - 1 |
891 for key, kind in keys: |
897 for key, kind in keys: |
892 if kind == "c": |
898 if kind == "c": |
893 node = BrowserClassItem(parentItem, fn.classes[key], file_) |
899 node = BrowserClassItem(parentItem, fn.classes[key], file_) |
894 elif kind == "m": |
900 elif kind == "m": |
895 node = BrowserMethodItem(parentItem, fn.methods[key], file_) |
901 node = BrowserMethodItem(parentItem, fn.methods[key], file_) |
|
902 elif kind == "a": |
|
903 node = BrowserClassAttributeItem(parentItem, fn.attributes[key]) |
896 self._addItem(node, parentItem) |
904 self._addItem(node, parentItem) |
897 if repopulate: |
905 if repopulate: |
898 self.endInsertRows() |
906 self.endInsertRows() |
899 |
907 |
900 def populateClassAttributesItem(self, parentItem, repopulate=False): |
908 def populateClassAttributesItem(self, parentItem, repopulate=False): |