コード例 #1
0
ファイル: ListUtils.py プロジェクト: sernst/PyAid
    def clone(cls, item):
        out = []
        for value in item:
            if isinstance(value, dict):
                from pyaid.dict.DictUtils import DictUtils
                out.append(DictUtils.clone(value))
            elif isinstance(value, list) or isinstance(value, tuple):
                out.append(ListUtils.clone(value))
            else:
                out.append(value)

        if isinstance(item, tuple):
            return tuple(out)
        return out
コード例 #2
0
ファイル: ListUtils.py プロジェクト: moliqingwa/PyAid
    def clone(cls, item):
        out = []
        for value in item:
            if isinstance(value, dict):
                from pyaid.dict.DictUtils import DictUtils
                out.append(DictUtils.clone(value))
            elif isinstance(value, list) or isinstance(value, tuple):
                out.append(ListUtils.clone(value))
            else:
                out.append(value)

        if isinstance(item, tuple):
            return tuple(out)
        return out
コード例 #3
0
    def _runImpl(self):
        """Doc..."""
        data = self._flexData

        self._log.write(
            '<div style="font-size:24px">Beginning distribution file upload(s)</div><hr>')

        for platformID, platformIsActive in data.platformSelection.iteritems():
            if not platformIsActive or not data.hasPlatform(platformID):
                continue

            data.setPlatform(platformID)
            if data.isPlatformUploaded:
                url = data.platformUploads[platformID]
            else:
                uploader = BuildPackageUploader(data, self._bucket)
                self._log.write(
                    'Uploading %s distribution file to: %s' % (platformID, uploader.uploadFolder))
                url = uploader.upload(platformID)
                if url is None:
                    continue

                data.platformUploads[platformID] = url

            self._log.write(
                '<div style="font-size:18px">Deployed URL:</div><br />' +
                '<a style="font-size:8px" href="%s">%s</a>' % ((url, url)))

        if self._releaseNotes:
            self._log.write('Generating release notes...')
            notes = self._createReleaseNotes()
        else:
            notes = u''

        if self._doSendEmails:
            self._log.write('Sending notification emails...')
            self._sendEmailNotifications(data.platformUploads, notes)

        self._log.write('<br /><div style="font-size:24px">Deployment Complete!</div>')
        self._output['urls'] = DictUtils.clone(data.platformUploads)
        return 0
コード例 #4
0
    def getMerged(self, key, defaultValue =None, localOnly =False):
        items = []
        sources = self.localDataSources if localOnly else self.dataSources
        for source in sources:
            if source is None:
                continue

            res = source.get(key, self.DATA_GET_NULL)
            if res != self.DATA_GET_NULL:
                items.append(res)

        if len(items) == 0:
            return defaultValue

        if len(items) == 1:
            return DictUtils.clone(items[0])

        out = items.pop()
        while len(items):
            out = DictUtils.merge(out, items.pop())
        return out