Beispiel #1
0
    def Unzip(self, oPath):
        """
        Unzips a zip file  to a path
        If the output location does not yet exist, it creates it

        :rtype: bool
        :param cPath oPath:
        :return: True if successful
        """

        oZip = None
        try:

            Logger.debug(u'Extracting file [%s] to path [%s]' % (self.string, oPath.string))

            oZip = ZipFile(self.string, 'r')
            if not oPath.IsDir():
                oPath.Create()
            for each in oZip.namelist():
                each=ToUnicode(each)

                Logger.debug(u'Extracting ' + ToUnicode(basename(each)) + ' ...')
                # Check to see if the item was written to the zip file with an
                # archive name that includes a parent directory. If it does, create
                # the parent folder in the output workspace and then write the file,
                # otherwise, just write the file to the workspace.
                #
                if not each.endswith('/'):
                    root, name = split(each)
                    oFolder = cPath(oPath) + root
                    if not oFolder.IsDir():
                        oFolder.Create()
                    oFn = cFileName(oFolder) + name
                    uFn = oFn.string
                    Logger.debug(u'... Writing to ' + uFn)
                    oFile = open(uFn, 'wb')
                    oFile.write(oZip.read(each))
                    oFile.close()
            oZip.close()
            return True
        except Exception as e:
            LogError(u'Unzip: Fatal Error unzipping file', e)
            try:
                oZip.close()
            except Exception:
                pass
            return False
Beispiel #2
0
    def SetPageEffect(self,uEffect):
        ''' Sets the page effect for showing a page '''
        self.uCurrentEffect=uEffect
        try:
            if uEffect==u'':
                return True
            uType=ToUnicode(type(self.oRootSM.transition))
            if uEffect==u'no':
                self.oRootSM.transition = NoTransition()
            if uEffect==u'fade':
                if uType.endswith(u'FadeTransition\'>'):
                    return True
                self.oRootSM.transition = FadeTransition()
            elif uEffect==u'slide':
                if uType.endswith(u'SlideTransition\'>'):
                    return True
                self.oRootSM.transition = SlideTransition()
            elif uEffect==u'wipe':
                if uType.endswith(u'WipeTransition\'>'):
                    return True
                self.oRootSM.transition = WipeTransition()
            elif uEffect==u'swap':
                if uType.endswith(u'SwapTransition\'>'):
                    return True
                self.oRootSM.transition = SwapTransition()
            elif uEffect==u'fallout':
                if uType.endswith(u'FallOutTransition\'>'):
                    return True
                self.oRootSM.transition = FallOutTransition()
            elif uEffect==u'risein':
                if uType.endswith(u'RiseInTransition\'>'):
                    return True
                self.oRootSM.transition = RiseInTransition()

            self.oRootSM.transition.bind(on_complete=self.On_Transition_Complete)
            self.oRootSM.transition.bind(on_progress=self.On_Transition_Started)
            return True

        except Exception as e:
            uMsg=LogError(u'TheScreen: Can not set page effect:' + uEffect,e)
            ShowErrorPopUp(uMessage=uMsg)
            return False
        uMsg=u'TheScreen: Can not set page effect, wrong page effect:' + uEffect
        Logger.warning (uMsg)
        ShowErrorPopUp(uTitle='Warning',uMessage=uMsg)
        return False
Beispiel #3
0
    def SetPageEffect(self,*,uEffect:str) -> bool:
        """ Sets the page effect for showing a page """
        self.uCurrentEffect = uEffect
        try:
            if uEffect==u'':
                return True
            uType=ToUnicode(type(self.oRootSM.transition))
            if uEffect==u'no':
                self.oRootSM.transition = NoTransition()
            if uEffect==u'fade':
                if uType.endswith(u'FadeTransition\'>'):
                    return True
                self.oRootSM.transition = FadeTransition()
            elif uEffect==u'slide':
                if uType.endswith(u'SlideTransition\'>'):
                    return True
                self.oRootSM.transition = SlideTransition()
            elif uEffect==u'wipe':
                if uType.endswith(u'WipeTransition\'>'):
                    return True
                self.oRootSM.transition = WipeTransition()
            elif uEffect==u'swap':
                if uType.endswith(u'SwapTransition\'>'):
                    return True
                self.oRootSM.transition = SwapTransition()
            elif uEffect==u'fallout':
                if uType.endswith(u'FallOutTransition\'>'):
                    return True
                self.oRootSM.transition = FallOutTransition()
            elif uEffect==u'risein':
                if uType.endswith(u'RiseInTransition\'>'):
                    return True
                self.oRootSM.transition = RiseInTransition()

            # noinspection PyArgumentList
            self.oRootSM.transition.bind(on_complete=self.On_Transition_Complete)
            # noinspection PyArgumentList
            self.oRootSM.transition.bind(on_progress=self.On_Transition_Started)
            return True

        except Exception as e:
            ShowErrorPopUp(uMessage=LogError(uMsg=u'TheScreen: Can not set page effect:' + uEffect,oException=e))
            return False