def test_extend_with_tuple(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.extend((9, 10, 11, 12)) self.assertSequenceEqual(D1, DistinctList( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), seq_type=DistinctList)
def __init__(self, brush=None, inputs=None, **kwargs): """ Initialize the node. :type brush: QBrush """ super().__init__(brush=QtGui.QBrush(QtGui.QColor(252, 252, 252, 255)), **kwargs) self.inputs = inputs or DistinctList() self.label = NodeLabel('key', pos=self.center, editable=False, movable=False, parent=self)
def run(self, path): """ Perform CSV file generation. :type path: str """ if self.diagrams is None: dialog = DiagramSelectionDialog(self.session) if not dialog.exec_(): return self.diagrams = dialog.selectedDiagrams() LOGGER.info( 'Exporting selected diagrams in project %s in CSV format: %s', self.project.name, path) collection = {x: {} for x in self.Types} for diagram in self.diagrams: nodes = self.project.predicates(diagram=diagram) for node in nodes: if node.type() in collection: if not node.text() in collection[node.type()]: meta = self.project.meta(node.type(), node.text()) collection[node.type()][node.text()] = { CsvExporter.KeyName: node.text().replace('\n', ''), CsvExporter.KeyType: node.shortName, CsvExporter.KeyDescription: self.plainText(meta.get(K_DESCRIPTION, '')), CsvExporter.KeyDiagrams: DistinctList() } collection[node.type()][node.text()][self.KeyDiagrams] += [ node.diagram.name ] buffer = io.StringIO() writer = csv.writer(buffer, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL) writer.writerow((self.KeyName, self.KeyType, self.KeyDescription, self.KeyDiagrams)) for i, j in sorted(((v, k) for k in collection for v in collection[k]), key=itemgetter(0)): writer.writerow(( collection[j][i][self.KeyName], collection[j][i][self.KeyType], collection[j][i][self.KeyDescription], sorted(collection[j][i][self.KeyDiagrams]), )) fwrite(buffer.getvalue(), path) if self.open: openPath(path)
def run(self, path): """ Perform CSV file generation. :type path: str """ diagrams_selection_dialog = DiagramsSelectionDialog( self.project, self.session) diagrams_selection_dialog.exec_() self.selected_diagrams = diagrams_selection_dialog.diagrams_selected LOGGER.info( 'Exporting selected diagrams in project %s in CSV format: %s', self.project.name, path) collection = {x: {} for x in self.Types} for diag in self.selected_diagrams: nodes = self.project.predicates(diagram=diag) for node in nodes: if node.type() in collection: if not node.text() in collection[node.type()]: meta = self.project.meta(node.type(), node.text()) collection[node.type()][node.text()] = { #CsvExporter.KeyName: lstrip(OWLShortIRI('', node.text()), ':'), CsvExporter.KeyName: node.text().replace('\n', ''), CsvExporter.KeyType: node.shortName, #CsvExporter.KeyDescription: meta.get(K_DESCRIPTION, ''), CsvExporter.KeyDescription: QtWidgets.QTextEdit(meta.get(K_DESCRIPTION, '')).toPlainText(), CsvExporter.KeyDiagrams: DistinctList() } collection[node.type()][node.text()][self.KeyDiagrams] += [ node.diagram.name ] buffer = io.StringIO() writer = csv.writer(buffer) writer.writerow((self.KeyName, self.KeyType, self.KeyDescription, self.KeyDiagrams)) for i, j in sorted(((v, k) for k in collection for v in collection[k]), key=itemgetter(0)): writer.writerow(( collection[j][i][self.KeyName], collection[j][i][self.KeyType], collection[j][i][self.KeyDescription], sorted(collection[j][i][self.KeyDiagrams]), )) fwrite(buffer.getvalue(), path) openPath(path)
def orderingChanged(self): """ Change the order of inputs edges. :rtype: QUndoCommand """ if self.node.inputs: inputs = DistinctList() for i in range(0, self.list.count()): item = self.list.item(i) inputs.append(item.data(QtCore.Qt.UserRole)) if self.node.inputs != inputs: return CommandNodeChangeInputsOrder(self.diagram, self.node, inputs) return None
def __init__(self, width=52, height=30, brush=None, inputs=None, **kwargs): """ Initialize the node. :type width: int :type height: int :type brush: QBrush :type inputs: DistinctList """ super().__init__(**kwargs) brush = PropertyAssertionNode.DefaultBrush pen = PropertyAssertionNode.DefaultPen self.inputs = inputs or DistinctList() self.background = Polygon(QtCore.QRectF(-34, -19, 68, 38)) self.selection = Polygon(QtCore.QRectF(-34, -19, 68, 38)) self.polygon = Polygon(QtCore.QRectF(-26, -15, 52, 30), brush, pen)
def onSessionClosed(self): """ Quit Eddy. """ ## SAVE SESSION STATE session = self.sender() if session: session.save() self.sessions.remove(session) ## CLEANUP POSSIBLE LEFTOVERS self.sessions = DistinctList(filter(None, self.sessions)) ## SWITCH TO AN ACTIVE WINDOW OR WELCOME PANEL if self.sessions: session = self.sessions[-1] session.show() else: self.welcome = Welcome(self) self.welcome.show()
def run(self, path): """ Perform CSV file generation. :type path: str """ LOGGER.info('Exporting project %s in CSV format: %s', self.project.name, path) collection = {x: {} for x in self.Types} for node in self.project.predicates(): if node.type() in collection: if not node.text() in collection[node.type()]: meta = self.project.meta(node.type(), node.text()) collection[node.type()][node.text()] = { CsvExporter.KeyName: lstrip(OWLShortIRI('', node.text()), ':'), CsvExporter.KeyType: node.shortName, CsvExporter.KeyDescription: meta.get(K_DESCRIPTION, ''), CsvExporter.KeyDiagrams: DistinctList() } collection[node.type()][node.text()][self.KeyDiagrams] += [ node.diagram.name ] buffer = io.StringIO() writer = csv.writer(buffer) writer.writerow((self.KeyName, self.KeyType, self.KeyDescription, self.KeyDiagrams)) for i, j in sorted(((v, k) for k in collection for v in collection[k]), key=itemgetter(0)): writer.writerow(( collection[j][i][self.KeyName], collection[j][i][self.KeyType], collection[j][i][self.KeyDescription], sorted(collection[j][i][self.KeyDiagrams]), )) fwrite(buffer.getvalue(), path) openPath(path)
def __init__(self, options, argv): """ Initialize Eddy. :type options: Namespace :type argv: list """ super().__init__(argv) self.server = None self.socket = QtNetwork.QLocalSocket() self.socket.connectToServer(APPID) self.running = self.socket.waitForConnected() self.sessions = DistinctList() self.welcome = None if not self.isRunning() or options.tests: self.server = QtNetwork.QLocalServer() self.server.listen(APPID) self.socket = None connect(self.sgnCreateSession, self.doCreateSession)
def __init__(self, argv): """ Initialize Eddy. :type argv: list """ super().__init__(argv) self.openFilePath = None self.server = None self.sessions = DistinctList() self.started = False self.welcome = None # APPLICATION INFO self.setDesktopFileName('{}.{}'.format(ORGANIZATION_REVERSE_DOMAIN, APPNAME)) self.setOrganizationName(ORGANIZATION) self.setOrganizationDomain(ORGANIZATION_DOMAIN) self.setApplicationName(APPNAME) self.setApplicationDisplayName(APPNAME) self.setApplicationVersion(VERSION) # PARSE COMMAND LINE ARGUMENTS self.options = CommandLineParser() self.options.process(argv) # CHECK FOR A RUNNING INSTANCE self.socket = QtNetwork.QLocalSocket() self.socket.connectToServer(APPID) self.running = self.socket.waitForConnected() if not self.isRunning(): QtNetwork.QLocalServer.removeServer(APPID) self.server = QtNetwork.QLocalServer() self.server.listen(APPID) self.socket = None connect(self.sgnCreateSession, self.doCreateSession) connect(self.aboutToQuit, self.onAboutToQuit)
def test_remove_with_no_match(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.remove(9) self.assertSequenceEqual(D1, DistinctList([1, 2, 3, 4, 5, 6, 7, 8]), seq_type=DistinctList)
def test_constructor_with_list(self): D1 = DistinctList([1, 2, 3, 3, 4, 1, 4, 5, 6, 7, 7, 8, 2]) assert D1 == DistinctList([1, 2, 3, 4, 5, 6, 7, 8])
def test_insert(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.insert(5, 9) self.assertSequenceEqual(D1, DistinctList([1, 2, 3, 4, 5, 9, 6, 7, 8]), seq_type=DistinctList)
def test_append(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.append(9) self.assertSequenceEqual(D1, DistinctList([1, 2, 3, 4, 5, 6, 7, 8, 9]), seq_type=DistinctList)
def test_constructor_with_set(self): self.assertEqual(8, len(DistinctList({1, 2, 3, 4, 5, 6, 7, 8})))
def test_constructor_with_tuple(self): D1 = DistinctList((1, 2, 3, 3, 4, 1, 4, 5, 6, 7, 7, 8, 2)) self.assertSequenceEqual(D1, DistinctList((1, 2, 3, 4, 5, 6, 7, 8)), seq_type=DistinctList)
def test_constructor_with_list(self): D1 = DistinctList([1, 2, 3, 3, 4, 1, 4, 5, 6, 7, 7, 8, 2]) self.assertSequenceEqual(D1, DistinctList([1, 2, 3, 4, 5, 6, 7, 8]), seq_type=DistinctList)
def test_constructor_with_tuple(self): D1 = DistinctList((1, 2, 3, 3, 4, 1, 4, 5, 6, 7, 7, 8, 2)) assert D1 == DistinctList((1, 2, 3, 4, 5, 6, 7, 8))
def test_constructor_with_set(self): assert 8 == len(DistinctList({1, 2, 3, 4, 5, 6, 7, 8}))
def test_append(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.append(9) assert D1 == DistinctList([1, 2, 3, 4, 5, 6, 7, 8, 9])
def test_insert(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.insert(5, 9) assert D1 == DistinctList([1, 2, 3, 4, 5, 9, 6, 7, 8])
def test_remove_with_no_match(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.remove(9) assert D1 == DistinctList([1, 2, 3, 4, 5, 6, 7, 8])
def test_extend_with_tuple(self): D1 = DistinctList([1, 2, 3, 4, 5, 6, 7, 8]) D1.extend((9, 10, 11, 12)) assert D1 == DistinctList([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])