Пример #1
0
 def verifyConfiguration(self, mesh):
   """
   Verify compatibility of configuration.
   """
   OutputManager.verifyConfiguration(self, mesh)
   ModuleOutputSolnSubset.verifyConfiguration(self, mesh)
   return
Пример #2
0
 def verifyConfiguration(self, mesh):
     """
 Verify compatibility of configuration.
 """
     OutputManager.verifyConfiguration(self, mesh)
     ModuleOutputSolnSubset.verifyConfiguration(self, mesh)
     return
Пример #3
0
    def _getVersionInfo(self, noteId, output=True):
        '''
        prints and returns a list of the versions of the given note
        :param noteId:
        :param output:
        :return:
        '''
        # a list with a list of objects that start with "v"
        allVersions = self._downloadAllNoteVersions()

        self._swiftMngr.downloadNotes()
        # a list with the content for each object
        noteList = self._swiftMngr.getDownloadedNotes()

        note = self._swiftMngr.getNote(noteId)
        title = note.getTitle()
        # a list of all the versions with a continuos Id
        versions = self.historyList(noteId,
                                    self.arrangeNoteVersions(allVersions),
                                    title)
        # rearanges the ids so each note's versions start counting from 1
        # rearangedVersions = self.rearangeVersionID(versions)

        if output:
            # nicely prints the versions list
            OutputManager.listPrint(versions, 3)

        return note, title, versions, noteList
Пример #4
0
def setup():
    """Setup the Connection Node"""
    log("Setup Starting")
    global discovery_service  # pylint: disable=C0103
    global output_manger  # pylint: disable=C0103
    global uid  # pylint: disable=C0103

    # Capture exit signals and run cleanup
    for sig in (signal.SIGABRT, signal.SIGILL, signal.SIGINT, \
        signal.SIGSEGV, signal.SIGTERM):
        signal.signal(sig, cleanup)

    # Generate ID
    uid = uuid.uuid4()
    log("UUID generated: " + str(uid), level=0)

    # Start Descovery Service
    discovery_service = DiscoveryService(uid, DISCOVERY_PORT)
    discovery_service.daemon = True
    discovery_service.start()
    threads.append(discovery_service)

    # Start Output Manager
    output_manger = OutputManager()
    output_manger.daemon = True
    output_manger.start()
    threads.append(output_manger)
Пример #5
0
 def searchInMushroom(self, substr):
     elementList = self._searchInMushroomImpl(substr)
     for element in elementList:
         OutputManager.searchMDPrint(
             element[0] +
             " - " +
             element[1],
             element[2])
Пример #6
0
 def _configure(self):
     """
 Set members based using inventory.
 """
     OutputManager._configure(self)
     self.vertexDataFields = self.inventory.vertexDataFields
     self.cellInfoFields = self.inventory.cellInfoFields
     return
Пример #7
0
 def searchInTitle(self, subString):
     elementList = self._searchInTitleImpl(subString)
     elementDict = {}
     for elements in elementList:
         id = elements[0]
         elementDict[id] = elements
     sorted(elementDict)
     OutputManager.listPrint(elementDict, OutputManager.HEADER_FULL)
Пример #8
0
 def _configure(self):
     """
 Set members based using inventory.
 """
     OutputManager._configure(self)
     self.vertexDataFields = self.inventory.vertexDataFields
     self.cellInfoFields = self.inventory.cellInfoFields
     return
Пример #9
0
 def _configure(self):
     """
     Set members based using inventory.
     """
     try:
         OutputManager._configure(self)
     except ValueError, err:
         aliases = ", ".join(self.aliases)
         raise ValueError("Error while configuring output over points "
                          "(%s):\n%s" % (aliases, err.message))
Пример #10
0
 def __init__(self, name="outputsoln"):
     """
 Constructor.
 """
     OutputManager.__init__(self, name)
     self.availableFields = {
         "vertex": {"info": [], "data": ["displacement", "velocity"]},
         "cell": {"info": [], "data": []},
     }
     return
Пример #11
0
 def _configure(self):
     """
 Set members based using inventory.
 """
     try:
         OutputManager._configure(self)
         ModuleOutputSolnSubset.label(self, self.label)
     except ValueError, err:
         aliases = ", ".join(self.aliases)
         raise ValueError("Error while configuring output over boundary " "(%s):\n%s" % (aliases, err.message))
Пример #12
0
 def _configure(self):
   """
   Set members based using inventory.
   """
   try:
     OutputManager._configure(self)
   except ValueError, err:
     aliases = ", ".join(self.aliases)
     raise ValueError("Error while configuring output over points "
                      "(%s):\n%s" % (aliases, err.message))
Пример #13
0
 def _configure(self):
   """
   Set members based using inventory.
   """
   try:
     OutputManager._configure(self)
     ModuleOutputSolnSubset.label(self, self.label)
   except ValueError, err:
     aliases = ", ".join(self.aliases)
     raise ValueError("Error while configuring output over boundary "
                      "(%s):\n%s" % (aliases, err.message))
Пример #14
0
    def initialize(self, mesh, normalizer):
        """
    Initialize output manager.
    """
        logEvent = "%sinit" % self._loggingPrefix
        self._eventLogger.eventBegin(logEvent)

        self.submesh = self.subdomainMesh(mesh)
        OutputManager.initialize(self, normalizer)

        self._eventLogger.eventEnd(logEvent)
        return
Пример #15
0
  def initialize(self, mesh, normalizer):
    """
    Initialize output manager.
    """
    logEvent = "%sinit" % self._loggingPrefix
    self._eventLogger.eventBegin(logEvent)    

    self.submesh = self.subdomainMesh(mesh)
    OutputManager.initialize(self, normalizer)

    self._eventLogger.eventEnd(logEvent)
    return
Пример #16
0
 def __init__(self, name="outputsolnpoints"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   self.availableFields = \
       {'vertex': \
          {'info': [],
           'data': ["displacement","velocity"]},
        'cell': \
          {'info': [],
           'data': []}}
   return
Пример #17
0
  def initialize(self, mesh, normalizer):
    """
    Initialize output manager.
    """
    logEvent = "%sinit" % self._loggingPrefix
    self._eventLogger.eventBegin(logEvent)    

    import weakref
    self.mesh = weakref.ref(mesh)
    OutputManager.initialize(self, normalizer)

    self._eventLogger.eventEnd(logEvent)
    return
Пример #18
0
    def initialize(self, mesh, normalizer):
        """
    Initialize output manager.
    """
        logEvent = "%sinit" % self._loggingPrefix
        self._eventLogger.eventBegin(logEvent)

        import weakref
        self.mesh = weakref.ref(mesh)
        OutputManager.initialize(self, normalizer)

        self._eventLogger.eventEnd(logEvent)
        return
Пример #19
0
 def __init__(self, name="outputsolnsubset"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   self.availableFields = \
       {'vertex': \
          {'info': [],
           'data': ["displacement","velocity"]},
        'cell': \
          {'info': [],
           'data': []}}
   return
Пример #20
0
    def listNotesAndMeta(self):
        list = self._swiftManager.downloadObjectIds()
        soDict = {}
        sort = Configuration.entriessort
        for element in list:
            # exclude versions and deleted notes, that always begin with 'v'
            if VersionManager.isVersionOrDeleted(element):
                continue

            id = SwiftManager.objIdToId(element)
            if id is None:
                raise RuntimeError(
                    "Can not get the ID from " +
                    element +
                    " ... should not happen, really")
            metamngr = self._swiftManager.metaManagerFactory(element)
            id = int(id)
            crdate = metamngr.getCreateDate()
            lastmod = metamngr.getLastModifiedDate()
            tags = metamngr.getTags()
            name = SwiftManager.objIdToTitle(element)
            soDict[id] = [id, name, crdate, lastmod, tags]

        if sort == "name":
            soDict = OrderedDict(
                sorted(
                    soDict.items(),
                    key=lambda k_v: k_v[1][1]))

        elif sort == "crdate":
            soDict = OrderedDict(
                sorted(
                    soDict.items(),
                    key=lambda k_v1: datetime.strptime(
                        k_v1[1][2],
                        "%H:%M:%S, %d/%m/%Y").isoformat(),
                    reverse=True))

        elif sort == "id":
            sorted(soDict)

        else:
            soDict = OrderedDict(
                sorted(
                    soDict.items(),
                    key=lambda k_v2: datetime.strptime(
                        k_v2[1][3],
                        "%H:%M:%S, %d/%m/%Y").isoformat(),
                    reverse=True))

        OutputManager.listPrint(soDict, OutputManager.HEADER_FULL)
Пример #21
0
    def diffVersions(self, noteId):
        '''
        creates the diff of two versions of a note
        :param noteId:
        :return:
        '''

        if self._swiftManager.doesNoteExist(noteId) == True:
            note, title, versions, noteList = self._versionMngr._getVersionInfo(
                noteId)

            # user input for id, if the input is not an integer the error
            # message will be displayed
            try:
                diff1 = int(
                    raw_input("ID of base version? (0 is the current version) > "))
                diff2 = int(
                    raw_input("ID of target version? (0 is the current version) > "))
            except (ValueError):
                print "invalid input"
                sys.exit(1)

            # check if the user wants to diff with the current note
            if diff1 == 0:
                diff1Content = self._swiftManager.getNote(noteId).getContent()
            elif diff2 == 0:
                diff2Content = self._swiftManager.getNote(noteId).getContent()

            # append 0, because it's valid but not a key
            self._keyList.append(0)

            for key, value in versions.iteritems():
                self._keyList.append(key)
                diffTitle = versions[key][1]
                # check which input is which note
                if key == diff1:
                    diff1Content = noteList[diffTitle]
                elif key == diff2:
                    diff2Content = noteList[diffTitle]

            # as an information for the user, that the version doesn't exist
            if diff1 not in self._keyList:
                print str(diff1) + " doesn't exist"
            elif diff2 not in self._keyList:
                print str(diff2) + " doesn't exist"

            OutputManager.printDiff(diff1Content, diff2Content)
        # as an information for the user
        else:
            print "Note #" + str(noteId) + " doesn't exist"
Пример #22
0
    def searchInTags(self, substr):
        '''
        for every object in list check for tags
        check if tags are the same
        if tags in element meta
        print element name
        '''

        elementList = self._searchInTagsImpl(substr)
        dict = {}
        for elements in elementList:
            id = elements[0]
            dict[id] = elements
        sorted(dict)
        OutputManager.listPrint(dict, OutputManager.HEADER_TAG)
Пример #23
0
    def printMeta(self, metaId):
        '''
        prints the metadata of a single note
        :param metaId:
        :return:
        '''
        dict = {}
        note = self.getNote(metaId)
        mm = self.metaManagerFactory(note.getObjectId())
        name = SwiftManager.objIdToTitle(note.getObjectId())
        crDate = mm.getCreateDate()
        lastmod = mm.getLastModifiedDate()
        tags = mm.getTags()
        dict[metaId] = [metaId, name, crDate, lastmod, tags]
        sorted(dict)

        OutputManager.listPrint(dict, OutputManager.HEADER_FULL)
Пример #24
0
    def printMeta(self, metaId):
        '''
        prints the metadata of a single note
        :param metaId:
        :return:
        '''
        dict = {}
        note = self.getNote(metaId)
        mm = self.metaManagerFactory(note.getObjectId())
        name = SwiftManager.objIdToTitle(note.getObjectId())
        crDate = mm.getCreateDate()
        lastmod = mm.getLastModifiedDate()
        tags = mm.getTags()
        dict[metaId] = [metaId, name, crDate, lastmod, tags]
        sorted(dict)

        OutputManager.listPrint(dict, OutputManager.HEADER_FULL)
Пример #25
0
    def searchEverything(self, substr):
        '''
        this function searches for a substring, it doesn't matter if it is in title, content or tags, if there are results
        they will be printed.
        :param substr:
        :return:
        '''
        titleMatch = self._searchInTitleImpl(substr)
        tagMatch = self._searchInTagsImpl(substr)
        contentMatch = self._searchInMushroomImpl(substr)
        generalMatch = []

        title = {}
        tag = {}
        content = {}

        for element in titleMatch:
            title[str(element[0])] = str(element[1])

        for element in tagMatch:
            tag[str(element[0])] = [str(element[1]), element[2]]

        for element in contentMatch:
            content[str(element[0])] = [str(element[1]), element[2]]

        generalMatch = set(title.keys() + tag.keys() + content.keys())

        for element in generalMatch:
            if element in tag.keys() and element in content.keys():
                OutputManager.searchEverythingPrint(
                    element,
                    content[element][0],
                    tag,
                    content[element][1])

            elif element in content.keys():
                OutputManager.searchEverythingPrint(
                    element,
                    content[element][0],
                    None,
                    content[element][1])

            elif element in tag.keys():
                OutputManager.searchEverythingPrint(
                    element,
                    tag.values()[0][0],
                    tag.values()[0][1])

            elif element in title.keys():
                OutputManager.searchEverythingPrint(element, title.values()[0])

            else:
                print "nothing found"
Пример #26
0
    def getDeletedInfo(self, output=True):
        '''
        prints and returns a list of backed up notes
        :param output:
        :return:
        '''
        allDeleted = self._downloadAllDeleted()

        deletedList = {}
        deletedId = 0

        for element in allDeleted:
            # assign an id to all objects and save it in a dict
            deletedId = deletedId + 1
            deletedList[deletedId] = [deletedId, element]

        if output:
            # nicely prints the backed up notes list
            OutputManager.listPrint(deletedList, 4)

        return deletedList
Пример #27
0
    def deleteList(self, idList):
        nameList = []
        for id in idList:
            if self._swiftManager.doesNoteExist(id):
                note = self._swiftManager.getNote(id)
                title = str(note.getTitle())
                nameList.append((str(id), title))
            else:
                print "Note #" + str(id) + " doesn't exist."
                sys.exit(1)

        action = "delete note(s)"
        OutputManager.printListedNotes(nameList)
        if self._swiftManager.confirmation(action):
            for id, title in nameList:
                # deleted versions are created here
                self._versionMngr.deleteVersionCreator(id, title)
                self._swiftManager.deleteNote(id, force=True)
            print "Ok"
        else:
            print "Abort"
Пример #28
0
  def initialize(self, mesh, normalizer):
    """
    Initialize output manager.
    """
    logEvent = "%sinit" % self._loggingPrefix
    self._eventLogger.eventBegin(logEvent)    

    OutputManager.initialize(self, normalizer)

    # Read points
    self.stations,points = self.reader.read()
    
    # Convert to mesh coordinate system
    from spatialdata.geocoords.Converter import convert
    convert(points, mesh.coordsys(), self.coordsys)

    ModuleOutputSolnPoints.setupInterpolator(self, mesh, points, normalizer)
    self.mesh = ModuleOutputSolnPoints.pointsMesh(self)

    self._eventLogger.eventEnd(logEvent)
    return
Пример #29
0
    def readVersion(self, noteId):
        '''
        outputs the content of a note version
        :param noteId:
        :return:
        '''
        if self._swiftManager.doesNoteExist(noteId) == True:
            note, title, versions, noteList = self._versionMngr._getVersionInfo(
                noteId)

            # user input for id, if the input is not an integer the error
            # message will be displayed
            try:
                readingVersion = int(
                    raw_input("Which version do you wish to read (id)? >"))
            except (ValueError):
                print "invalid input"
                sys.exit(1)

            for key, value in versions.iteritems():
                self._keyList.append(key)
                if key == readingVersion:
                    versionTitle = versions[key][1]
                    # get the content of the object
                    content = noteList[versionTitle]
                    # create the note title, composing from "vTIMESTAMP-id -
                    # title"
                    noteTitle = versionTitle + \
                        OutputManager.ID_TITLE_SEPERATOR + title

                    OutputManager.markdownPrint(noteTitle, content)
                else:
                    continue
            # as an information for the user, that the version doesn't exist
            if readingVersion not in self._keyList:
                print str(readingVersion) + " doesn't exist"
        # as an information for the user, that the note doesn't exist
        else:
            print "Note #" + str(noteId) + " doesn't exist"
Пример #30
0
    def initialize(self, mesh, normalizer):
        """
        Initialize output manager.
        """
        logEvent = "%sinit" % self._loggingPrefix
        self._eventLogger.eventBegin(logEvent)

        OutputManager.initialize(self, normalizer)

        # Read points
        stations, points = self.reader.read()

        # Convert to mesh coordinate system
        from spatialdata.geocoords.Converter import convert
        convert(points, mesh.coordsys(), self.coordsys)

        ModuleOutputSolnPoints.setupInterpolator(self, mesh, points, stations,
                                                 normalizer)
        self.mesh = ModuleOutputSolnPoints.pointsMesh(self)

        self._eventLogger.eventEnd(logEvent)
        return
Пример #31
0
 def __init__(self, name="outputfaultimpulses"):
     """
 Constructor.
 """
     OutputManager.__init__(self, name)
     return
Пример #32
0
 def __init__(self, name="outputfaultkin"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   return
Пример #33
0
 def __init__(self, name="outputmatelastic"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   return
Пример #34
0
 def __init__(self, name="outputdirichlet"):
     """
 Constructor.
 """
     OutputManager.__init__(self, name)
     return
Пример #35
0
 def _readNote(self, note):
     OutputManager.markdownPrint(note.getTitle(), note.getContent())
Пример #36
0
 def preinitialize(self):
   """
   Do
   """
   OutputManager.preinitialize(self, dataProvider=self)
   return
Пример #37
0
 def __init__(self, name="outputneumann"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   return
Пример #38
0
 def __init__(self, name="outputdirichlet"):
   """
   Constructor.
   """
   OutputManager.__init__(self, name)
   return
Пример #39
0
 def preinitialize(self):
     """
 Do
 """
     OutputManager.preinitialize(self, dataProvider=self)
     return