예제 #1
0
 def eval(self, epoch):
     assert isinstance(self.dataloader, Data)
     with self.sess.as_default():
         left_embed, right_embed = self.cause_embed_dict.eval(), self.effect_embed_dict.eval()
     acc, mrr, total = 0, [], len(self.dataloader.test)
     print('numbers of initial test set {}.'.format(total))
     for (arg1, arg2, (target_c, target_e)) in self.dataloader.test:
         if target_c not in self.dataloader.vocab_rev_left or target_e not in self.dataloader.vocab_rev_right:
             continue
         scores = dict()
         for c in arg1:
             if c not in self.dataloader.vocab_rev_left:
                 continue
             for e in arg2:
                 if e not in self.dataloader.vocab_rev_right:
                     continue
                 scores[join(c, e)] = np.dot(
                     left_embed[self.dataloader.vocab_rev_left[c]], right_embed[self.dataloader.vocab_rev_right[e]]
                 )
         if len(scores) == 0:
             continue
         res = sorted(scores.items(), key=lambda x: x[1], reverse=True)
         target = join(target_c, target_e)
         if res[0][0] == target:
             acc += 1
         for i, [k, _] in enumerate(res):
             if k == target:
                 mrr.append(1.0 / (i + 1))
     assert len(mrr) == total
     _acc, _mrr = acc / float(total), sum(mrr) / float(len(mrr))
     print('criteria in epoch {}: total {}, acc {}, mrr {}.'.format(epoch + 1, total, _acc, _mrr))
     return _acc, _mrr
예제 #2
0
    def _downloadHls(self, urls, fileName, headers={}, concat=True):
        print("-- dispatcher/downloadHls")

        tempFileBase = tools.join(self.tempFilePath, fileName)
        fileNames = tools.generateFileNames(urls, tempFileBase)
        targetFileName = tools.join(self.videoFilePath, fileName + '.mp4')

        self.downloader.downloadAll(urls, fileNames, headers,
                                    self.hlsThreadCnt)
        tools.mergePartialVideos(fileNames, targetFileName, concat=concat)

        self.saveTempFile or tools.removeFiles(fileNames)
        return targetFileName
예제 #3
0
    def handleStream(self, fileName, audioFormat, videoFormat, **desc):
        print("-- dispatcher/handleStream")

        audioName = tools.join(self.tempFilePath,
                               fileName + '.audio' + audioFormat)
        videoName = tools.join(self.tempFilePath,
                               fileName + '.video' + videoFormat)
        targetFileName = tools.join(self.videoFilePath, fileName + '.mp4')

        self.downloader.saveStream(audioName, videoName, **desc)
        tools.mergeAudio2Video([audioName], [videoName], fileName)

        self.saveTempFile or tools.removeFiles([audioName, videoName])
        print('Finish.\n')
        return targetFileName
예제 #4
0
    def _downloadPartialVideos(self, urls, fileName, headers={}):
        print("-- dispatcher/downloadPartialVideos")

        tempFileBase = tools.join(self.tempFilePath, fileName)
        fileNames = tools.generateFileNames(urls, tempFileBase)
        suffix = tools.getSuffix(urls[0])
        targetFileName = tools.join(self.videoFilePath, fileName + suffix)

        for i, url in enumerate(urls):
            self.downloader.multiThreadDownload(url, fileNames[i], headers, \
                self.fragThreadCnt, self.fragmentCnt)
        tools.mergePartialVideos(fileNames, targetFileName)

        self.saveTempFile or tools.removeFiles(fileNames)
        return targetFileName
예제 #5
0
def download_view():
    if not session.get('logged_in'):
        return Response(status=403)
    try:
        fl, name, date = decode64(request.args.get('fl')), decode64(
            request.args.get('name')), decode64(request.args.get('date'))
        if fl and name and date and is_valid_file(
                join(appData.get('rec_folder'), name, date, fl)):
            return send_from_directory(join(appData.get('rec_folder'), name,
                                            date),
                                       fl,
                                       as_attachment=True)
    except:
        pass
    return Response(status=404)
예제 #6
0
    def _downloadDash(self, audioUrls, videoUrls, fileName, headers={}):
        print("-- dispatcher/downloadDash")

        tempAudioBase = tools.join(self.tempFilePath, fileName + '.audio')
        tempVideoBase = tools.join(self.tempFilePath, fileName + '.video')
        audioNames = tools.generateFileNames(audioUrls, tempAudioBase)
        videoNames = tools.generateFileNames(videoUrls, tempVideoBase)
        targetFileName = tools.join(self.videoFilePath, fileName + '.mp4')

        self.downloader.multiThreadDownloadAll(audioUrls, audioNames, headers, \
            self.fragThreadCnt, self.fragmentCnt)
        self.downloader.multiThreadDownloadAll(videoUrls, videoNames, headers, \
            self.fragThreadCnt, self.fragmentCnt)
        tools.mergeAudio2Video(audioNames, videoNames, targetFileName)

        self.saveTempFile or tools.removeFiles(audioNames + videoNames)
        return targetFileName
예제 #7
0
def uploadzone_upload():
    if not current_user.is_authenticated:
        return redirect(url_for('login_page', next=url_for('uploadzone_view')))

    fl = request.files.get('file')
    if fl and fl.filename:
        filename = secure_filename(fl.filename)
        p = join(cfg.UPLOAD_ZONE_PATH,
                 get_formatted_datetime('%d-%m-%Y %H-%M-%S'))
        if not Path(p).exists():
            create_folder(p)
        fl.save(join(p, filename))
        session['uploadzone_info'] = 'Uploaded Successfully'
        return redirect(url_for('uploadzone_view'))

    else:
        session['uploadzone_error'] = 'Upload Failed. File not found'
        return redirect(url_for('uploadzone_view'))
예제 #8
0
def downloadzone_download():
    if not current_user.is_authenticated:
        return Response(status=403)
    fl = request.args.get('fl')

    if fl and is_valid_file(join(cfg.DOWNLOAD_ZONE_PATH, fl)):
        return send_from_directory(cfg.DOWNLOAD_ZONE_PATH,
                                   fl,
                                   as_attachment=True)

    return Response(status=404)
예제 #9
0
    def run(self):
        done = 0
        fail = 0
        not_allowed = 0
        ignored = 0

        for folder in self.folders:
            for a_file in get_files(folder):
                self.startActionSignal.emit(folder, a_file)
                status = self.check_for_allow_and_ignore(a_file)
                if status == 1:
                    ignored += 1
                elif status == 2:
                    not_allowed += 1
                else:
                    try:
                        if self.action == 0:
                            copyfile(join(folder, a_file), join(self.des, a_file))
                        else:
                            move(join(folder, a_file), join(self.des, a_file))
                        done += 1
                    except:
                        fail += 1
                self.updateSignal.emit(done, fail, not_allowed, ignored)
예제 #10
0
    def handleSubtitles(self, subtitles, fileName, videoName, headers={}):
        subtitleUrls, subtitleNames = [], []
        subtitlesInfo = []

        for name, url in subtitles:
            subtitleUrls.append(url)
            subtitleName = tools.join(self.tempFilePath, '%s_%s%s' % \
                (fileName, name, tools.getSuffix(url)))
            subtitleNames.append(subtitleName)
            subtitlesInfo.append((name, subtitleName))

        self.downloader.downloadAll(subtitleUrls, subtitleNames, headers,
                                    self.hlsThreadCnt)

        for each in subtitleNames:
            tools.tryFixSrtFile(each)

        targetFileName = tools.integrateSubtitles(subtitlesInfo, videoName)
        self.saveTempFile or tools.removeFiles(subtitleNames)
        return targetFileName
예제 #11
0
def map_go_view(rec_name, rec_date=None):
    rec_name = decode64(rec_name)
    rec_date = decode64(rec_date)

    rec_folder = appData.get('rec_folder')
    if not rec_name or not rec_name in get_folders(rec_folder):
        return redirect('/')

    all_dates = sorted(get_folders(join(rec_folder, rec_name)))

    if rec_date:
        if rec_date in all_dates:
            date_index = all_dates.index(rec_date)
            old_date, next_date = None, None
            if date_index != 0:
                old_date = all_dates[date_index - 1]
            if date_index != len(all_dates) - 1:
                next_date = all_dates[date_index + 1]

            all_records = appData.get_records(rec_name, rec_date)
            all_records.sort(key=lambda i: i['call_time_object'],
                             reverse=False)

            return render_template('records.html',
                                   rec_name=rec_name,
                                   size=appData.get_files_size(all_records),
                                   records=all_records,
                                   total=len(all_records),
                                   date=rec_date,
                                   old_date=old_date,
                                   next_date=next_date)
        else:
            return redirect('/map/' + rec_name)

    return render_template('map.html',
                           rec_name=rec_name,
                           all_dates=all_dates,
                           count=len(all_dates))
예제 #12
0
 def select_folder(self, multiple=False, drag=False, folders=None):
     if multiple:
         file_dialog = QtWidgets.QFileDialog(directory=self.last_selected_dir)
         file_dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
         file_dialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, True)
         file_dialog.setWindowTitle("Select Folders")
         file_dialog.setWindowIcon(QtGui.QIcon(self.main_icon))
         f_tree_view = file_dialog.findChild(QtWidgets.QTreeView)
         if f_tree_view:
             f_tree_view.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
         if not file_dialog.exec():
             return
         folders = file_dialog.selectedFiles()
     elif drag:
         folders = [f for f in folders if is_valid_dir(f)]
     else:
         folder = str(QtWidgets.QFileDialog.getExistingDirectory(self, "Select Directory", directory=self.last_selected_dir))
         if folder == '':
             return
         folder = str(Path(folder))
         self.last_selected_dir = join(*folder.split('\\')[:len(folder.split('\\'))-1])
         folders = [folder]
     self.FILEDATA.select_dirs(folders)
     self.ui.txt_stat.setText(self.FILEDATA.get_status_txt())
예제 #13
0
 def select_output_folder(self):
     folder = str(QtWidgets.QFileDialog.getExistingDirectory(self, "Select Output Directory", directory=self.last_selected_out_dir))
     if folder != '':
         folder = str(Path(folder))
         self.last_selected_out_dir = join(*folder.split('\\')[:len(folder.split('\\'))-1])
         self.ui.input_2.setText(folder)
예제 #14
0
    except ValueError:
        print("Error password")
        raise SystemExit(1)

    try:
        passwords = data.decode()

    except UnicodeDecodeError:
        print('Error password')
        raise SystemExit(1)

    path = namespace.sourcefile
    name = namespace.name

    try:
        # open or create file via path
        file = open(path, 'w')
    except IsADirectoryError:
        # if path with out name, try to create or open file with name
        file = open(join(path, name), 'w')
    except FileNotFoundError:
        # can not fined dir with file
        print('No such file or dir')
        raise SystemExit(1)
    except:
        print('Path error')
        raise SystemExit(1)

    file.write(passwords)
    file.close()
예제 #15
0
파일: setup.py 프로젝트: zergmk2/tr
#!/usr/bin/env python
# coding=utf-8

from setuptools import setup, find_packages
import os

import tools

for big_file in tools.BIG_FILES:
    tools.join(big_file)

appname = "tr"
version = "1.3.0"

with open("README.md", "r", encoding="utf-8") as f:
    readme = f.read()

packages = ["tr", "libtorch"]

setup(name=appname,
      version=version,
      description=('''%s''' % appname),
      author='anycode',
      author_email='*****@*****.**',
      maintainer='anycode',
      maintainer_email='*****@*****.**',
      packages=packages,
      platforms=["all"],
      url='https://pypi.org/project/%s/' % appname,
      classifiers=[
          'Operating System :: OS Independent',
예제 #16
0
파일: setup.py 프로젝트: phybrain/tr
#!/usr/bin/env python
# coding=utf-8

from setuptools import setup, find_packages
import os

import tools

_BASEDIR = os.path.dirname(os.path.abspath(__file__))
for big_file in tools.BIG_FILES:
    tools.join(os.path.join(_BASEDIR, big_file))

appname = "tr"
version = "1.0.0.5"

with open("README.md", "r") as f:
    readme = f.read()

packages = ["tr", "libtorch"]

setup(name=appname,
      version=version,
      description=('''%s''' % appname),
      author='anycode',
      author_email='*****@*****.**',
      maintainer='anycode',
      maintainer_email='*****@*****.**',
      packages=packages,
      platforms=["all"],
      url='https://pypi.org/project/%s/' % appname,
      classifiers=[