def __init__(self, x=0.0, y=0.0, w=0.0, h=0.0): Translator.__init__(self) Node.__init__(self) self.x = x self.y = y self.w = w self.h = h
class Box(QTabWidget): def __init__(self, parent=None): QTabWidget.__init__(self, parent) self.Parent = parent self.tr = Translator("Thrifty") self.setMovable(True) self.setIconSize(QSize(32, 32)) self.checkFile = CheckFile(self) self.backUp = BackUp(self) self.cleanUp = CleanUp(self) self.broken = Broken(self) self.addTab(self.checkFile, QIcon("/usr/share/thrifty/icons/file.png"), QString(self.tr._translate("File"))) self.setTabToolTip(0, self.tr._translate("Checks file belonging to a rpmdb")) self.addTab(self.backUp, QIcon("/usr/share/thrifty/icons/backup.png"), QString(self.tr._translate("BackUp"))) self.setTabToolTip(1, self.tr._translate('Back up "rpmdb-out" files <b>(User\Root Mode)</b>.')) self.addTab(self.cleanUp, QIcon("/usr/share/thrifty/icons/cleanup.png"), QString(self.tr._translate("CleanUp"))) self.setTabToolTip(2, self.tr._translate('Clean up "rpmdb-out" files <b>(Root Mode only)</b> or test.')) self.addTab(self.broken, QIcon("/usr/share/thrifty/icons/file.png"), QString(self.tr._translate("Broken"))) self.setTabToolTip(3, self.tr._translate("Search broken packages <b>(Root Mode only)</b>.")) def setTabsState(self, state): self.checkFile.setState(state) self.backUp.setState(state) self.cleanUp.setState(state) self.broken.setState(state) self.Parent.stopProcess.setEnabled(not state)
def __init__(self, filename, compile=True, buffer=None): VisibleNode.__init__(self) Translator.__init__(self) self.rotX = 0.0 self.rotY = 0.0 self.rotZ = 0.0 self.scale = 1.0 if Model.dlcache.has_key(filename): self._displayList = Model.dlcache[filename] bb = Model.bbcache[filename] else: if buffer is None: self._dom = dom3ds.read_3ds_file(filename) else: self._dom = dom3ds.read_3ds_mem(buffer) self._model = glmodel.GLModel(self._dom, self._loadTexture) bb = self._model.bounding_box() Model.bbcache[filename] = bb if compile: self._displayList = self._model.create_dl() Model.dlcache[filename] = self._displayList else: self._displayList = None self._center = (bb[0] + bb[1]) / 2 self._modelScale = 1.0 / max(abs(bb[0] - bb[1]))
def test(model, dataloader, target_lang='chinese', max_steps=None, verbose=True): dataloader.shuffle(1024) translator = Translator(model, 'no-bpe') preds, refs = [], [] if target_lang == 'chinese': source_lang = 'english' else: source_lang = 'chinese' for i, (src, tgt) in tqdm(enumerate(dataloader)): if max_steps and i >= max_steps: break x = src.tolist()[0] y = tgt.tolist()[0] try: pred = translator.translate(x) src_sentence = index2sentence(x, source_lang) tgt_sentence = index2sentence(y, target_lang) pred_sentence = index2sentence(pred, target_lang) preds.append(pred_sentence) refs.append(tgt_sentence) if verbose: print() print('src', src_sentence) print('tgt', tgt_sentence) print('pred', pred_sentence) except Exception as e: print('failed to predict due to error:', e) bleu = sacrebleu.corpus_bleu(preds, [refs]) return bleu
def process_input(): request = input("Please enter instruction: (X to exit)\n").upper() if request == "X": print("Exiting program.") return False if request != '': line_type, line = Parser.single_line(request) if line_type == config.query_type: queries = Translator.literalize(line) for query in queries: if config.verbose: query.solve() else: print(query.solve()) elif line_type == config.fact_type: facts = Translator.literalize(line) for fact in facts: if fact.val == False and fact.locked == True: fact.locked = False fact.wipe() fact.secure(True) elif request == '.': Literal.display_all_info() elif request == '!': Literal.display_all_info_solve() elif request == 'V': config.verbose = not config.verbose print("Verbose is now {}".format(config.verbose)) else: print('Try again.') else: print('Try again.') return True
def setConfig(self, config): if len(config) > 10: print( "Error, number of pairs in configuration must be at most 10 paris" ) sys.exit(0) elif len(config) > 0 and len(config) <= 10: #checks if there are only 2 letters in each switch for pair in config: if len(pair) != 2: print("plugboard configuration isn't legal") sys.exit(0) #checks if each letter appear only once in the configuration for pair in config: for pair2 in config: if pair != pair2: if pair2.count(pair[0]) != 0 or pair2.count( pair[1]) != 0: print( "illegal plugboard configuration, each pair of letters must contain different letters" ) sys.exit(0) for pair in config: f_letter = pair[0] s_letter = pair[1] f_index = Translator.letterToindex(f_letter) s_index = Translator.letterToindex(s_letter) self.permutation[f_index] = s_letter self.permutation[s_index] = f_letter
def main(): tran = Translator( targetLang='zh-CN', host="https://translate.google.cn/", proxy=None, timeout=2, ) while True: try: #基目录为家目录,pic2char参数为home下的文件夹 print('Waiting...') data = tran.pic2char("Pictures/pic/") except Exception as e: print('Exception: ', e) sys.exit() data = data.replace('\n', ' ') if not data.isspace() and not len(data) == 0: pass #cprint(data, 'yellow') else: print('No string found') print('Wait for another...') continue os.system('/usr/bin/tranen ' + data)
def evaluate(self, symbol_table): var_id = self.children[0].value var_type = self.children[1].evaluate(symbol_table) if var_id in symbol_table.table: raise Exception(f'Variable {var_id} already exists!') Translator.insert('PUSH DWORD 0; \n') symbol_table.alloc(var_id, var_type) return
def translate(self): glPushMatrix() Translator.translate(self) glTranslate(*-self._center) rs = self._rs = self.scale * self._modelScale glScale(rs, rs, rs) glRotate(self.rotX, 1, 0, 0) glRotate(self.rotY, 0, 1, 0) glRotate(self.rotZ, 0, 0, 1)
def run(self): ''' invokes the config parser, generates the sql statements and runs optimizer ''' Parser=ConfigParser(self.filename) config=Parser.configContent translator=Translator(config) translator.translate() self.blocks=translator.getBlocks()
def run(self): ''' invokes the config parser, generates the sql statements and runs optimizer ''' Parser = ConfigParser(self.filename) config = Parser.configContent translator = Translator(config) translator.translate() self.blocks = translator.getBlocks()
def __init__(self): self._classifier = Classifier() self._translator = Translator() # Create a TCP/IP socket self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._socket.bind((SERVER_NAME, PORT)) return
def translateTweet(self, sentence): try: translator = Translator() replaced_tweet = self.replaceAbbsWords(sentence) temp_tweet = translator.toChinese(replaced_tweet) temp_tweet = self.replaceStationWords(temp_tweet) translated_tweet = self.replaceTrainLineWords(temp_tweet) return replaced_tweet, translated_tweet except Exception as e: print("Error in translateTweet: {}".format(e))
def btn_clicked(self, text, cbox, outBox): outBox.clear() lang = '' if cbox.currentIndex() is 0: lang = 'eng' elif cbox.currentIndex() is 1: lang = 'fr' trans = Translator(text, lang, self.dict) t_text = trans.translate() outBox.append(t_text)
def main(sequence, input_file=None): if input_file: with open(input_file) as f: lines = f.readlines() print_protein = lambda seq: print(Translator(seq).to_protein) [print_protein(line.strip()) for line in lines] elif sequence: print(Translator(sequence).to_protein) else: click.echo('Missing argument. Please run --help.')
def main(): '''Main Function''' parser = argparse.ArgumentParser(description='translate.py') parser.add_argument('-model', required=True, help='Path to model .pt file') parser.add_argument('-src', required=True, help='Source sequence to decode (one line per sequence)') parser.add_argument('-vocab', required=True, help='Source sequence to decode (one line per sequence)') parser.add_argument('-output', default='pred.txt', help="""Path to output the predictions (each line will be the decoded sequence""") parser.add_argument('-beam_size', type=int, default=5, help='Beam size') parser.add_argument('-batch_size', type=int, default=30, help='Batch size') parser.add_argument('-n_best', type=int, default=1, help="""If verbose is set, will output the n_best decoded sentences""") parser.add_argument('-no_cuda', action='store_true') opt = parser.parse_args() opt.cuda = not opt.no_cuda # Prepare DataLoader preprocess_data = torch.load(opt.vocab) preprocess_settings = preprocess_data['settings'] test_src_word_insts = read_instances_from_file( opt.src, preprocess_settings.max_word_seq_len, preprocess_settings.keep_case) test_src_insts = convert_instance_to_idx_seq( test_src_word_insts, preprocess_data['dict']['src']) test_loader = torch.utils.data.DataLoader( TranslationDataset( src_word2idx=preprocess_data['dict']['src'], tgt_word2idx=preprocess_data['dict']['tgt'], src_insts=test_src_insts), num_workers=2, batch_size=opt.batch_size, collate_fn=collate_fn) translator = Translator(opt) with open(opt.output, 'w') as f: for batch in tqdm(test_loader, mininterval=2, desc=' - (Test)', leave=False): all_hyp, all_scores = translator.translate_batch(*batch) for idx_seqs in all_hyp: for idx_seq in idx_seqs: pred_line = ' '.join([test_loader.dataset.tgt_idx2word[idx] for idx in idx_seq]) f.write(pred_line + '\n') print('[Info] Finished.')
def evaluate(self, symbol_table): _, var_type, displac = symbol_table.table[self.left.value] var_value, var_type2 = self.right.evaluate(symbol_table) if var_type != var_type2: raise Exception( f'Variable type ({var_type}) do not match with expression type ({var_type2})' ) disp = symbol_table.table[self.left.value][2] Translator.insert(f'MOV [EBP {disp}], EBX; \n') symbol_table.set_value(self.left.value, var_value) return
def translate(dict_content): content = {} translator = Translator() for index, con in dict_content.items(): if len(con) < 7: content[index] = con else: con1 = translator.translate(con) print('Translate para %s/%s' % (index, len(dict_content))) content[index] = con1 return content
def expertsystem(file): parser = Parser(file) lexer = Lexer(parser.raw_rules) if lexer.check(): translator = Translator(parser.raw_rules, parser.raw_facts, parser.raw_queries) translator.translate() for query in translator.queries: print(query.solve()) if config.interactive: while process_input(): _ = 1
def evaluate(self, symbol_table): Translator.insert(f'LOOP_{self.id}; \n') self.children[0].evaluate(symbol_table) Translator.insert('CMP EBX, False; \n') Translator.insert(f'JE EXIT_{self.id}; \n') self.children[1].evaluate(symbol_table) Translator.insert(f'JMP LOOP_{self.id}; \n') Translator.insert(f'EXIT_{self.id}; \n') # while self.children[0].evaluate(symbol_table)[0] == True: # self.children[1].evaluate(symbol_table) return
def translate(dict_content): content = {} translator = Translator() for index, con in dict_content.items(): if len(con) < 7: content[index] = con else: con1 = translator.translate(con) # print('size = ', len(con1)) content[index] = con1 return content
def test_translate_shouldEmitEmptyStringIfNoHintInPatternReplacement(self): pattern = 'show (\d+)' configline = 'show 11' pattern_replacement = \ PatternReplacement(pattern, r'show \1') tlr = Translator([pattern_replacement]) transl = tlr.translate(configline) self.assertEqual(configline, transl.get_xos()) self.assertEqual('', transl.get_hint())
def test_translate_shouldAllowNewlineInReplacement(self): pattern_replacement = PatternReplacement('set timeout (\d+)', r'configure timeout \1\n' 'enable timeout') tlr = Translator(pattern_replacements=[pattern_replacement]) configline = 'set timeout 10' expected = 'configure timeout 10\nenable timeout' transl = tlr.translate(configline) self.assertEqual(expected, transl.get_xos())
def main(): file_name = "".join(sys.argv[1].split(".")[:-1]) ext = ".asm" with open(file_name + ext, "w") as write_file: with open(sys.argv[1], encoding="UTF-8") as read_file: translator = Translator(file_name.split("\\")[-1].split("/")[-1]) for line in read_file: print(f'Line {line}') value = translator.interpret(line[:-1]) print(value) write_file.write(value) write_file.write(translator.finish())
def setConfiguration(self, pbConfiguration): if 0 < len(pbConfiguration) <= 10: for pair in pbConfiguration: firstLetter = pair[0] firstIndex = Translator.letterToIndex(firstLetter) secondLetter = pair[1] secondIndex = Translator.letterToIndex(secondLetter) self.permutation[firstIndex] = secondLetter self.permutation[secondIndex] = firstLetter elif len(pbConfiguration) > 10: print "Error, Only 10 Paris Of Plugboard is allow. Bay-Bay" sys.exit(0)
def translation(self, letter): toEncrypt1 = self.circularShifts(letter, self.offset - self.setting) if self.direction == 'REVERSE': toEncrypt2 = self.reversePermutation[Translator.letterToIndex( toEncrypt1)] else: toEncrypt2 = self.permutation[Translator.letterToIndex(toEncrypt1)] encrypted = self.circularShifts(toEncrypt2, (self.setting - 1) - (self.offset - 1)) return encrypted
def translateTextIntoUserLanguage(self, text, userLanguage="en"): # Use IBM Watson service to translate text translator = Translator() if translator.language_translator is not None: translation = translator.translate(text, None, userLanguage) self.openPopover(html=translation) else: self.parent.parent.displayMessage( config.thisTranslation["ibmWatsonNotEnalbed"]) config.mainWindow.openWebsite( "https://github.com/eliranwong/UniqueBible/wiki/IBM-Watson-Language-Translator" )
def translation(self, letter): message = self.circularshift(self.offset - self.settings, letter) if self.dir == "FW": newmessage = self.permutation[Translator.letterToindex(message)] else: newmessage = self.reversepermutation[Translator.letterToindex( message)] return self.circularshift((self.settings - 1) - (self.offset - 1), newmessage)
def test_translate_shouldEmitHintInPatternReplacement(self): pattern = 'show (\d+)' hint = 'silly hint' configline = 'show 11' pattern_replacement_and_hint = \ PatternReplacement(pattern, r'show \1', 'silly hint') tlr = Translator([pattern_replacement_and_hint]) transl = tlr.translate(configline) self.assertEqual(configline, transl.get_xos()) self.assertEqual(hint, transl.get_hint())
def test_translate_shouldAllowConstantsInPatternString(self): PATTERN_IPV4 = Translator.PATTERN_IPV4 pattern = 'ip address (' + PATTERN_IPV4 + ') ' \ 'mask (' + PATTERN_IPV4 + ')' pattern_replacement = PatternReplacement(pattern, r'\1 \2') pattern_replacements = [pattern_replacement] tlr = Translator(pattern_replacements) configline = 'ip address 1.2.3.4 mask 255.255.255.0' expected = '1.2.3.4 255.255.255.0' transl = tlr.translate(configline) self.assertEqual(expected, transl.get_xos())
def translateText(self): text = self.editor.textCursor().selectedText() if text: translator = Translator() if translator.language_translator is not None: fromLanguage = Translator.fromLanguageCodes[self.fromLanguageCombo.currentIndex() - 1] if self.fromLanguageCombo.currentIndex() != 0 else translator.identify(text) toLanguage = Translator.toLanguageCodes[self.toLanguageCombo.currentIndex()] result = translator.translate(text, fromLanguage, toLanguage) self.editor.insertPlainText(result) else: self.displayMessage(config.thisTranslation["ibmWatsonNotEnalbed"]) webbrowser.open("https://github.com/eliranwong/UniqueBible/wiki/IBM-Watson-Language-Translator") else: self.selectTextFirst()
def main(): parser = argparse.ArgumentParser( description='eels - to fill into your hovercraft', epilog= 'Translates an eBook by passing it piece by piece through DeepL (deepl.com)' ) parser.add_argument('-i', '--input', metavar='filename', default='test.epub', help='ebook to translate') parser.add_argument('-il', '--inputLanguage', metavar='language', default='EN', help='input language') parser.add_argument('-o', '--output', metavar='filename', default='output.epub', help='output file') parser.add_argument('-ol', '--outputLanguage', metavar='language', default='DE', help='output language') parser.add_argument('-t', '--throttle', metavar='seconds', type=int, default=1, help='seconds to wait after each translation request') args = parser.parse_args() src = Importer(args.input) dest = Exporter(args.output) translator = Translator(args.outputLanguage, args.inputLanguage, args.throttle) for info in src.items: with src.open(info) as content: if info.filename.endswith('.html'): utf8Content = content.read().decode('utf-8') translation = translator.translateHTML(utf8Content) dest.add(info, translation) else: dest.add(info, content.read()) content.close() dest.write()
def getUserTyp(type, name): if type == 'user': return User(name) if type == 'translator': return Translator(name) if type == 'admin': return Admin(name)
def updateLanguageStringToAllFiles(key, englishTranslation): codes = LanguageUtil.getCodesSupportedLanguages() translator = Translator() for code in codes: translation = LanguageUtil.loadTranslation(code) if key in translation.keys(): filename = "lang/language_" + code + ".py" if code[:2] == "en": result = englishTranslation else: result = translator.translate( englishTranslation, "en", "zh-TW" if code == "zh_HANT" else code[:2]) data = ' "{0}": "{1}",\n'.format(key, result) FileUtil.updateStringIntoFile(filename, data) print("updated '{0}' into {1}".format(result, code))
def main(mulp=False): path = r'C:\Users\XL\Documents\GitHub\GoogleTranslator'.replace('\\', '/') file_list = ['t_3. Manuscript.docx', 't_4. Manuscript.docx'] translator = Translator() for f in file_list: file = os.path.join(path, f) file_content = read_file(file) index = range(0, len(file_content)) dict_content = dict(zip(index, file_content)) # fun_temp = lambda dict_c: translate(dict_c, translator) if mulp: content = {} pool = Pool(10) for i, j in dict_content.items(): # a = pool.apply_async(translate, ({i: j}, translator)).get() content.update( pool.apply_async(translate, ({ i: j }, translator, len(dict_content))).get()) # temp = pool.map(fun_temp, dict_content) # for di in temp: # content.update(di) # content.update(pool.map(fun_temp, dict_content)) pool.close() pool.join() else: content = translate(dict_content, translator) save_file(content, dict_content)
def translate(input_text): output_text = Translator.predict(dsHelper.tokenizer_1, dsHelper.tokenizer_2, encoder, decoder, input_text) response = jsonify({'output_text': output_text}) response.status_code = 202 return response
def __init__(self, data = {}, parent = None): QTabWidget.__init__(self, parent) self.Parent = parent self.tr = Translator('mailViewer') self.mails = [] self.webViewWDGs = [] self.iconDatabasePath = os.path.join('/tmp', randomString(24)) os.mkdir(self.iconDatabasePath) self.Settings = Settings self.setMovable(True) self.setIconSize(QSize(SIZE, SIZE)) if 'ids' in data and len(data['ids']) : i = 0 for idx in data['ids'] : self.mails.append(Mail(idx, self)) self.addTab(self.mails[i], QIcon().fromTheme("mail"), QString(self.tr._translate('Mail') + ' ' + idx)) self.setTabToolTip(i, self.tr._translate('Mail') + ' #' + idx) i += 1 self.Parent.statusBar.showMessage(self.tr._translate('Getting mail...')) self.mailAttr.connect(self.setMailAttr) self.mailData.connect(self.setMailData) self.getMail = GetMail(data, self) self.startGetMail() else : self.Parent.statusBar.showMessage(self.tr._translate('Empty Job.'))
def test(): debug = False local_resolvers = DNSSEC_resolver_check.get_local_resolvers() print("local resolvers = %s" % (local_resolvers, )) drc = DNSSEC_resolver_check() drc.set_debug(debug) tr = Translator(debug=debug) def do(nameserver, comment): results = drc.evaluate_resolver(nameserver, comment) translation = tr.translate(results) print("%s: %s - %s" % ( nameserver, results, translation, )) for res in local_resolvers: do(res, "from ogud") do('8.8.8.8', "from bob") do('8.8.4.4', "from bob") do('4.2.2.2', "from bob") #do('192.168.1.5', "from bob") S = Squery() ip_ns1_shkx_org = S.addr_lookup('8.8.8.8', 'ns1.shkx.org') do(ip_ns1_shkx_org, "from bob")
def reverseTranslation(self): abc = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ") index = 0 for letter in self.permutation: self.reversePermutation[Translator.letterToIndex( letter)] = abc[index] index += 1
def __init__(self, parent = None): QWidget.__init__(self, parent) self.Parent = parent self.tr = Translator('Thrifty') self.runned = False self.pathToLog = None self.layout = QGridLayout() self.layout.setAlignment(Qt.AlignCenter) self.dirList = QListWidget() #self.dirList.setMaximumHeight(150) self.dirList.setToolTip(self.tr._translate('A list of directories processed')) self.buttonLayout = QVBoxLayout() self.buttonLayout.setAlignment(Qt.AlignCenter) self.addPath = QPushButton(QIcon('/usr/share/thrifty/icons/plus.png'), '') self.addPath.setIconSize(QSize(32,32)) self.delPath = QPushButton(QIcon('/usr/share/thrifty/icons/delete.png'), '') self.delPath.setIconSize(QSize(32,32)) self.showTargets = QPushButton(QIcon('/usr/share/thrifty/icons/show.png'), '') self.showTargets.setIconSize(QSize(32,32)) self.mode = QComboBox() self.mode.setIconSize(QSize(32,32)) self.mode.setToolTip(self.tr._translate('Packages')) self.mode.addItem (QIcon('/usr/share/thrifty/icons/packages.png'), '') self.mode.addItem (QIcon('/usr/share/thrifty/icons/files.png'), '') self.start = QPushButton(QIcon('/usr/share/thrifty/icons/start.png'), '') self.start.setIconSize(QSize(32,32)) self.addPath.setToolTip(self.tr._translate('Add to List')) self.delPath.setToolTip(self.tr._translate('Delete from List')) self.showTargets.setToolTip(self.tr._translate('show Targets file')) self.start.setToolTip(self.tr._translate('Start task')) self.addPath.clicked.connect(self.addDirPath) self.delPath.clicked.connect(self.delDirPath) self.showTargets.clicked.connect(self.showTargetsList) self.start.clicked.connect(self.runSearchBroken) self.buttonLayout.addWidget(self.addPath) self.buttonLayout.addWidget(self.delPath) self.buttonLayout.addWidget(self.start) self.buttonLayout.addWidget(self.mode) self.buttonLayout.addWidget(self.showTargets) self.progress = QProgressBar() self.progress.setOrientation(Qt.Vertical) self.progress.hide() self.progress.setRange(0, 0) self.logIn = QLabel('') self.logIn.setToolTip(self.tr._translate('Log of processed task')) self.logIn.setOpenExternalLinks(True) self.layout.addWidget(self.dirList, 0, 0) self.layout.addItem(self.buttonLayout, 0, 1) self.layout.addWidget(self.progress, 0, 2) self.layout.addWidget(self.logIn, 1, 0) self.setLayout(self.layout) self.mode.currentIndexChanged.connect(self.changeModeContent)
def do_eval(resolv, msg, long_report): print resolv, msg gr = DNSSEC_resolver_check().evaluate_resolver(resolv, msg) tr = Translator().translate(gr) if (long_report == True): print "Eval: ", resolv, " Tests=", gr, "Result=", tr else: print "Result: ", resolv, " ", tr
def generate_latex(html, **kwargs): """ Generate latex from html. Args: key, value pairs are passed in from main latex command. """ # Options used by html2latex conversion config = dict() for option in ['hrule', 'site', 'headings']: config[option] = kwargs.pop(option) # Build latex h2l = Translator(extensions=[BasicExtension(**config), MooseExtension(**config)]) tex = h2l.convert(html) return tex, h2l
def __init__(self, parent=None): QWidget.__init__(self, parent) self.Parent = parent self.runned = False self.otherDataList = [""] self.tr = Translator("Thrifty") self.trChunk0 = self.tr._translate("<pre>WARNING: not unique data in rpmDB (") self.trChunk1 = self.tr._translate(" records)") self.layout = QGridLayout() self.pathLayout = QHBoxLayout() self.pathString = QLineEdit("") self.pathString.returnPressed.connect(self.checkFile) self.searchPath = QPushButton(QIcon("/usr/share/thrifty/icons/file.png"), "") self.searchPath.setIconSize(QSize(32, 32)) self.searchPath.setToolTip(self.tr._translate("Path to file")) self.searchPath.clicked.connect(self.addPath) self.pathLayout.addWidget(self.pathString) self.pathLayout.addWidget(self.searchPath) self.layout.addItem(self.pathLayout, 0, 0, 2, 3) self.package = QLabel(self.tr._translate("Package :")) self.mode = QComboBox() self.mode.setIconSize(QSize(32, 32)) self.mode.addItem(QIcon("/usr/share/thrifty/icons/user.png"), "") self.mode.addItem(QIcon("/usr/share/thrifty/icons/admin.png"), "") self.mode.setToolTip(self.tr._translate("User Mode")) self.start = QPushButton(QIcon("/usr/share/thrifty/icons/start.png"), "") self.start.setIconSize(QSize(32, 32)) self.start.clicked.connect(self.checkFile) self.start.setToolTip(self.tr._translate("Start task")) self.packageCheckSumm = QLabel(self.tr._translate("Package CheckSumm :")) self.checkSumm = QLabel(self.tr._translate("Real CheckSumm :")) self.packageRes = QComboBox() self.packageRes.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.packageCheckSummRes = QLabel("") self.checkSummRes = QLabel("") self.otherData = QLabel("") self.layout.addWidget(self.package, 3, 0) self.layout.addWidget(self.mode, 4, 0, Qt.AlignLeft) self.layout.addWidget(self.start, 4, 0, Qt.AlignRight) self.layout.addWidget(self.packageCheckSumm, 5, 0) self.layout.addWidget(self.checkSumm, 6, 0) self.layout.addWidget(self.packageRes, 3, 1) self.layout.addWidget(self.otherData, 4, 1) self.layout.addWidget(self.packageCheckSummRes, 5, 1) self.layout.addWidget(self.checkSummRes, 6, 1) self.setLayout(self.layout) self.mode.currentIndexChanged.connect(self.changeMode) self.packageRes.currentIndexChanged.connect(self.changePackageContent) self.setMinimumSize(32, 32)
def test(): import os opts = DefaultOptions() opts.logger = Logger() opts.logger.start_debug() opts.sourceFile = os.path.abspath("./testdata/test.gdb/TRAILS_ln") opts.outputFile = "./testdata/test_trails.osm" opts.translator = Translator.get_translator("trails") opts.datasetKey = get_pk_name(opts, 'nps:source_system_key_value') makeosmfile(opts)
def __init__(self, obj = None, parent= None): QWidget.__init__(self, parent) self.Parent = obj self.prnt = parent self.tr = Translator('Filters') dir_ = os.path.expanduser('~/.config/plasmaMailChecker') self.filterFROM = os.path.join(dir_, 'filter.from') self.filterSUBJ = os.path.join(dir_, 'filter.subj') i = 0 for path in (self.filterFROM, self.filterSUBJ) : if not os.path.isfile(path) : name = self.filterSUBJ if i else self.filterFROM with open(name, 'wb') as f : pass #print path, 'not exist' i += 1 self.listFROM = dataToList(self.filterFROM) self.listSUBJ = dataToList(self.filterSUBJ) self.layout = QGridLayout() self.layout.setSpacing(0) self.labelFROM = QLabel(self.tr._translate("FROM field")) self.labelSUBJ = QLabel(self.tr._translate("SUBJ field")) self.layout.addWidget(self.labelFROM, 0, 1, Qt.AlignHCenter) self.layout.addWidget(self.labelSUBJ, 0, 2, Qt.AlignHCenter) self.fromEditor = QLineEdit() self.subjEditor = QLineEdit() self.fromListBox = QListWidget() self.fromListBox.setSortingEnabled(True) self.fromListBox.setToolTip(self.tr._translate("Filter`s strings")) self.fromListBox.addItems(self.listFROM) self.fromListBox.currentTextChanged.connect(self.from_FiltersChanged) self.subjListBox = QListWidget() self.subjListBox.setSortingEnabled(True) self.subjListBox.setToolTip(self.tr._translate("Filter`s strings")) self.subjListBox.addItems(self.listSUBJ) self.subjListBox.currentTextChanged.connect(self.subj_FiltersChanged) self.layout.addWidget(self.fromEditor, 1, 1) self.layout.addWidget(self.subjEditor, 1, 2) self.layout.addWidget(self.fromListBox, 2, 1) self.layout.addWidget(self.subjListBox, 2, 2) self.buttonFROM = ButtonPanel(0, self) self.buttonSUBJ = ButtonPanel(1, self) self.layout.addWidget(self.buttonFROM, 2, 0) self.layout.addWidget(self.buttonSUBJ, 2, 3) self.setLayout(self.layout) self.buttonFROM.setCurrentState() self.buttonSUBJ.setCurrentState() self.StateChanged = [False, False]
class GlobalCloneBot(CloneBot): def __init__(self, crawl_user, mecab=None, log_file='crawl.tsv', db_file='bigram.db'): super(GlobalCloneBot, self).__init__(crawl_user, mecab, log_file, db_file) self.translator = Translator(config.BING_APP_KEY, 'ja', 'en') def reply_hook(self, bot, status): """適当にリプライを返してあげる""" text = self.get_text() if status: bot.reply_to(text, status) else: bot.update_status(text) #時々英訳 if random.random()<0.2: text = self.translator.translate(text) bot.update_status(u'[Translated] '+text) #時々再翻訳 if random.random()<0.5: text = self.translator.translate(text, 'en', 'ja') bot.update_status(u'[再翻訳] ' + text) return True
class PageDialog(QDialog): okClicked = pyqtSignal() cancelClicked = pyqtSignal() settingsCancelled = pyqtSignal() def __init__(self, parent = None): QDialog.__init__(self, parent) self.prnt = parent self.tr = Translator() self.setWindowTitle(self.tr._translate('M@il Checker : Settings')) self.tabWidget = QTabWidget(self) self.tabWidget.setTabPosition(QTabWidget.North) self.layout = QVBoxLayout() self.buttonLayout = QHBoxLayout() self.ok = QPushButton(QIcon.fromTheme("dialog-ok"), "", self) self.cancel = QPushButton(QIcon.fromTheme("dialog-cancel"), "", self) self.buttonLayout.addWidget(self.ok) self.buttonLayout.addWidget(self.cancel) self.layout.addWidget(self.tabWidget) self.layout.addItem(self.buttonLayout) self.setLayout(self.layout) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.setMinimumWidth(100) self.ok.clicked.connect(self.accepted) self.cancel.clicked.connect(self.rejected) QTimer.singleShot(100, self._restoreGeometry) def _restoreGeometry(self): self.restoreGeometry(self.prnt.Settings.value('SettingsGeometry').toByteArray()) def addPage(self, wdg, wdgName): self.tabWidget.addTab(wdg, wdgName) def accepted(self): self.okClicked.emit() def rejected(self): self.settingsCancelled.emit() self.cancelClicked.emit() def closeEvent(self, ev): ev.ignore() self.rejected() def _close(self): self.prnt.Settings.setValue('SettingsGeometry', self.saveGeometry()) if not self.prnt.isVisible() : self.prnt.show() self.prnt.autoHide(3) if self.prnt.isMinimized() : self.prnt.showNormal() self.done(0)
class VoiceRSSTTS: def __init__(self, desiredLanguage = "en-us"): self.desiredLanguage = desiredLanguage self.translator = Translator(VoiceRSSTTS.convertLangCodeForGoog(desiredLanguage)) self.baseAPIURL = "http://api.voicerss.org/" def getAudioFileLink(self, stringToRead): stringToRead = self.translator.translate(stringToRead) #encode to utf-8 stringToRead = stringToRead.encode(ENCODING) params = {"key" : VoiceRSSTTS.VOICE_RSS_TTS_API_KEY, "src" : stringToRead, "hl" : self.desiredLanguage} fullAPIURL = self.baseAPIURL + "?" + urllib.urlencode(params) return fullAPIURL @staticmethod def convertLangCodeForGoog(langCode): langCodeDict = { "en-us" : "en", "en-ca" : "en", "en-au" : "en", "en-gb" : "en", "en-in" : "en", "ca-es" : "ca", "zh-cn" : "zh-CN", "zh-hk" : "zh-TW", "zh-tw" : "zh-TW", "da-dk" : "da", "nl-nl" : "nl", "fi-fi" : "fi", "fr-ca" : "fr", "fr-fr" : "fr", "de-de" : "de", "it-it" : "it", "ja-jp" : "ja", "ko-kr" : "ko", "nb-no" : "no", "pl-pl" : "pl", "pt-br" : "pt", "pt-pt" : "pt", "ru-ru" : "ru", "es-mx" : "es", "es-es" : "es", "sv-se" : "sv" } return langCodeDict[langCode]
def __init__(self, obj = None, parent = None): QWidget.__init__(self) self.Parent = obj self.prnt = parent self.Settings = self.Parent.Settings self.checkAccess = self.Parent.checkAccess self.tr = Translator('EditAccounts') print dateStamp(), 'Module PyKDE4.akonadi is' if not A.AkonadiModuleExist : print '\tnot' print '\tavailable.' self.init()
def __init__(self, idx = None, parent = None): QWidget.__init__(self, parent) self.idx = idx self.Parent = parent self.tr = Translator('mailViewer') self.reply_to = None self._from_subj = (None, None) self.fromField = QLabel(self.tr._translate('From:')) self.fromField.setOpenExternalLinks(True) self.fromField.linkHovered.connect(self.linkDisplay) self.subjField = QLabel(self.tr._translate('Subj:')) self.dateField = QLabel(self.tr._translate('Date:')) self.sendRe = QPushButton(QIcon.fromTheme('mail-reply-custom'), '') self.sendRe.setToolTip(self.tr._translate('Quick Answer')) self.sendRe.setFixedWidth(self.Parent.iconSize().width()) self.sendRe.setMinimumHeight(self.Parent.iconSize().height()) self.sendRe.setContentsMargins(0, 0, 0, 0) self.sendRe.clicked.connect(self.sendReMail) self.sendFw = QPushButton(QIcon.fromTheme('mail-forward'), '') self.sendFw.setToolTip(self.tr._translate('Quick Forward')) self.sendFw.setFixedWidth(self.Parent.iconSize().width()) self.sendFw.setMinimumHeight(self.Parent.iconSize().height()) self.sendFw.setContentsMargins(0, 0, 0, 0) self.sendFw.clicked.connect(self.sendFwMail) self.mailField = QSplitter() self.mailField.setChildrenCollapsible(True) self.mailField.setOrientation(Qt.Vertical) self.mailField.setStretchFactor(1, 1) self.mailField.setHandleWidth(5) self.panel = QHBoxLayout() self.mailInfo = QVBoxLayout() self.mailInfo.addWidget(self.fromField) self.mailInfo.addWidget(self.subjField) self.mailInfo.addWidget(self.dateField) self.buttons = QVBoxLayout() self.buttons.addWidget(self.sendRe) self.buttons.addWidget(self.sendFw) self.panel.addItem(self.mailInfo) self.panel.addItem(self.buttons) self.layout = QVBoxLayout() self.layout.addItem(self.panel) self.layout.addWidget(self.mailField) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) self.setLayout(self.layout)
def __init__(self, data = {}, parent = None): QMainWindow.__init__(self, parent) self.runned = False self.tr = Translator('mailViewer') self.autoLoadImage = False self.privateEnable = False self.data = data self.setWindowTitle(self.tr._translate('Mail Viewer')) self.setWindowIcon(QIcon().fromTheme("mail")) self.reload_ = QAction(QIcon().fromTheme("view-refresh"), '&'+self.tr._translate('Reload Job'), self) self.reload_.setShortcut('Ctrl+R') self.connect(self.reload_, SIGNAL('triggered()'), self.reloadJob) self.exit_ = QAction(QIcon().fromTheme("application-exit"), '&'+self.tr._translate('Exit'), self) self.exit_.setShortcut('Ctrl+Q') self.connect(self.exit_, SIGNAL('triggered()'), self._close) self.image_ = QAction(self.tr._translate('Image AutoLoad'), self) self.image_.setShortcut('Ctrl+I') self.image_.setCheckable(True) self.image_.setChecked(self.autoLoadImage) #self.image_.setIcon(QIcon().fromTheme("arrow-down-double")) self.connect(self.image_, SIGNAL('triggered()'), self._image) self.priv_ = QAction(self.tr._translate('Private Browsing'), self) self.priv_.setShortcut('Ctrl+P') self.priv_.setCheckable(True) self.priv_.setChecked(self.privateEnable) #self.priv_.setIcon(QIcon().fromTheme("user-group-delete")) self.connect(self.priv_, SIGNAL('triggered()'), self._private) self.menubar = self.menuBar() file_ = self.menubar.addMenu('&'+self.tr._translate('File')) file_.addAction(self.reload_) file_.addAction(self.exit_) sett_ = self.menubar.addMenu('&'+self.tr._translate('Settings')) sett_.addAction(self.image_) sett_.addAction(self.priv_) self.statusBar = QStatusBar(self) self.setStatusBar(self.statusBar) self.menuTab = Box(self.data, self) self.setCentralWidget(self.menuTab)
def run(self): ''' invokes the config parser, generates the sql statements and runs optimizer ''' Parser=ConfigParser(self.filename) config=Parser.configContent translator=Translator(config) translator.translate() self.blocks=translator.getBlocks() op=Optimizer(translator.getConvertedOptions(),self.blocks,translator.getSenders()) op.run()
class EngOnlyTTS: def __init__(self): langaugeToTranslate = "en" self.translator = Translator(langaugeToTranslate) self.baseAPIURL = "http://tts-api.com/tts.mp3" def getAudioFileLink(self, stringToRead): #convert to english stringToRead = self.translator.translate(stringToRead) #encode to utf-8 stringToRead = stringToRead.encode(ENCODING) params = {"q": stringToRead} fullAPIURL = self.baseAPIURL + "?" + urllib.urlencode(params) return fullAPIURL
def execute(self): print('compile: ' + self.inName + ' to ' + self.outName) source = open(self.inName).read() t = Translator() t.translate(source) # for debug print t.getFuncList() print t.getAddrList() e = MakeElf(t) e.execute() f = open(self.outName, 'wb') #f.write(elf) f.write(text)
def test(): logger = Logger() logger.start_debug() featureclass = './tests/test.gdb/roads_ln' logtable = './tests/test_road_sync.csv' translator = Translator.get_translator('parkinglots') api_server = OsmApiServer('test') api_server.logger = logger api_server.logger.start_debug() xml = None try: xml = arc_build_osm_change_xml(featureclass, logtable, translator, api_server, logger) except ValueError as e: print e if xml is not None: data = Et.tostring(xml, encoding='utf-8') osmchangefile = './tests/test_road_update.osm' with open(osmchangefile, 'w', encoding='utf-8') as fw: fw.write(data) print "Done."
def __init__(self, parent = None): QDialog.__init__(self, parent) self.prnt = parent self.tr = Translator() self.setWindowTitle(self.tr._translate('M@il Checker : Settings')) self.tabWidget = QTabWidget(self) self.tabWidget.setTabPosition(QTabWidget.North) self.layout = QVBoxLayout() self.buttonLayout = QHBoxLayout() self.ok = QPushButton(QIcon.fromTheme("dialog-ok"), "", self) self.cancel = QPushButton(QIcon.fromTheme("dialog-cancel"), "", self) self.buttonLayout.addWidget(self.ok) self.buttonLayout.addWidget(self.cancel) self.layout.addWidget(self.tabWidget) self.layout.addItem(self.buttonLayout) self.setLayout(self.layout) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.setMinimumWidth(100) self.ok.clicked.connect(self.accepted) self.cancel.clicked.connect(self.rejected) QTimer.singleShot(100, self._restoreGeometry)
def validation_test(): import OsmApiServer from Translator import Translator server = OsmApiServer.OsmApiServer('test') sde = 'Database Connections/akr_facility_on_inpakrovmais_as_domainuser.sde' test_list = [('./testdata/test.gdb/roads_ln', 'roads'), ('./testdata/test.gdb/trails_ln', 'trails'), ('./testdata/test.gdb/multipoints', 'generic'), ('./testdata/test.gdb/parkinglots_py', 'parkinglots'), ('./testdata/test.gdb/poi_pt', 'poi'), ('./testdata/test.gdb/trails_ln', 'none'), ('./testdata/test.gdb/trails_ln', None), (sde + '/akr_facility.GIS.TRAILS_ln', 'trails'), # crashes python: da.cursor in ArcGIS 10.3 32bit (sde + '/akr_facility.GIS.ROADS_ln', 'roads') ] for src, tname in test_list: print '**** Testing', src, 'with', tname if tname is None: translator = None else: translator = Translator.get_translator(tname) print valid4upload(src, server, translator) print valid4sync(src, translator)
class Box(QTabWidget): mailAttr = pyqtSignal(dict) mailData = pyqtSignal(dict) def __init__(self, data = {}, parent = None): QTabWidget.__init__(self, parent) self.Parent = parent self.tr = Translator('mailViewer') self.mails = [] self.webViewWDGs = [] self.iconDatabasePath = os.path.join('/tmp', randomString(24)) os.mkdir(self.iconDatabasePath) self.Settings = Settings self.setMovable(True) self.setIconSize(QSize(SIZE, SIZE)) if 'ids' in data and len(data['ids']) : i = 0 for idx in data['ids'] : self.mails.append(Mail(idx, self)) self.addTab(self.mails[i], QIcon().fromTheme("mail"), QString(self.tr._translate('Mail') + ' ' + idx)) self.setTabToolTip(i, self.tr._translate('Mail') + ' #' + idx) i += 1 self.Parent.statusBar.showMessage(self.tr._translate('Getting mail...')) self.mailAttr.connect(self.setMailAttr) self.mailData.connect(self.setMailData) self.getMail = GetMail(data, self) self.startGetMail() else : self.Parent.statusBar.showMessage(self.tr._translate('Empty Job.')) def startGetMail(self): self.Parent.reload_.setEnabled(False) self.getMail.start() def setMailAttr(self, d): i = 0 for m in self.mails : if m.idx == d['number'] : break else : i += 1 self.mails[i].fromField.setText(d['from']) self.mails[i].subjField.setText(d['subj']) self.mails[i].dateField.setText(d['date']) self.mails[i].reply_to = d['ReplyTo'] self.mails[i]._from_subj = d['_F_S'] def setMailData(self, d): ll = d['data'][0] data = d['data'][1] i = 0 for m in self.mails : if m.idx == d['number'] : break else : i += 1 fileName = None if d['type'] == 'html' : _data = changeImagePath(data, d['boundary']) ''' create temporary html-file ''' fileName = os.path.join(self.iconDatabasePath, randomString(24) + '.html') with open(fileName, 'w') as f : f.write(insertMetaData(_data)) wdg = QWebView() wdg.triggerPageAction(QWebPage.Reload, True) wdg.triggerPageAction(QWebPage.Stop, True) wdg.triggerPageAction(QWebPage.Back, True) wdg.triggerPageAction(QWebPage.Forward, True) wdg.settings().setAttribute(QWebSettings.AutoLoadImages, \ self.Parent.autoLoadImage) wdg.settings().setAttribute(QWebSettings.PrivateBrowsingEnabled, \ self.Parent.privateEnable) if wdg.settings().iconDatabasePath().isEmpty() : wdg.settings().setIconDatabasePath(self.iconDatabasePath) wdg.load(QUrl('file://' + fileName)) #print dateStamp(), QUrl('file://' + fileName), ' created' wdg.show() self.webViewWDGs.append(wdg) elif d['type'] in ('plain') : wdg = QTextBrowser() wdg.setAcceptRichText(True) wdg.setOpenExternalLinks(True) wdg.setOpenLinks(True) data = data.replace('<', '< ') data = data.replace('>', ' >') wdg.setHtml(changeLink(data)) elif d['type'] == 'header' : wdg = QLabel() wdg.setText(data) wdg.linkHovered.connect(self.linkDisplay) wdg.setAlignment(Qt.AlignLeft) else : ''' create temporary file ''' fileName = os.path.join(self.iconDatabasePath, d['data'][2]) with open(fileName, 'wb') as f : f.write(data) wdg = QLabel() wdg.setOpenExternalLinks(True) ins = self.tr._translate('Inserted:') wdg.setText(QString('<a href="%1">%2 %3</a>').arg(fileName).arg(ins).arg(d['type'])) wdg.linkHovered.connect(self.linkDisplay) wdg.setAlignment(Qt.AlignLeft) wdg.setToolTip(ll) splt = QSplitter() splt.setOrientation(Qt.Horizontal) splt.setChildrenCollapsible(True) if d['level'] : blank = QLabel() blank.setFixedWidth(d['level']*SIZE) splt.addWidget(blank) splt.addWidget(wdg) self.mails[i].mailField.addWidget(splt) self.mails[i].setLayout(self.mails[i].layout) def linkDisplay(self, s): self.Parent.statusBar.showMessage(s) def __del__(self): shutil.rmtree(self.iconDatabasePath)
class AkonadiResources(QWidget): edit = pyqtSignal(QListWidgetItem) edited = pyqtSignal() reloadAkonadi = pyqtSignal() def __init__(self, obj = None, parent = None): QWidget.__init__(self) self.Parent = obj self.prnt = parent self.Settings = self.Parent.Settings self.checkAccess = self.Parent.checkAccess self.tr = Translator('EditAccounts') print dateStamp(), 'Module PyKDE4.akonadi is' if not A.AkonadiModuleExist : print '\tnot' print '\tavailable.' self.init() def init(self): self.layout = QGridLayout() self.VBLayout = QVBoxLayout() self.akonadiServer = QPushButton('&Restart') self.akonadiServer.setToolTip(self.tr._translate("Restart Akonadi Server")) self.akonadiServer.clicked.connect(self.reloadAkonadiStuff) self.layout.addWidget(self.akonadiServer, 0, 4) self.akonadiState = QLabel() if not A.AkonadiModuleExist : self.akonadiState.setText(self.tr._translate("Module PyKDE4.akonadi isn`t available.")) akonadiAccList = [] else : self.akonadiState.setText( self.tr._translate("Akonadi Server is : ") + \ A.StateSTR[A.Akonadi.ServerManager.state()] ) akonadiAccList = self.Parent.akonadiAccountList() self.layout.addWidget(self.akonadiState, 0, 0) self.VBLayout.addLayout(self.layout) self.editList = EditList(self.Parent, self) self.editParams = EditParam(self) self.VBLayout.addWidget(self.editList) self.VBLayout.addWidget(self.editParams) self.setLayout(self.VBLayout) self.edit.connect(self.editEvent) self.edited.connect(self.editedEvent) self.StateChanged = False self.setEditWidgetsState() def setEditWidgetsState(self): if A.AkonadiModuleExist and A.Akonadi.ServerManager.state() != A.Akonadi.ServerManager.State(4) : #self.editParams.changeSelfActivity(False) self.editList.changeSelfActivity(True) else : self.editList.changeSelfActivity(False) self.editParams.changeSelfActivity(False) def editEvent(self, item): self.StateChanged = True self.editList.changeSelfActivity(False) self.editParams.changeSelfActivity(True) self.editParams.initWidgets(item) def editedEvent(self): self.editParams.changeSelfActivity(False) self.editList.changeSelfActivity(True) self.StateChanged = False def collectionSearch(self): if not A.AkonadiModuleExist : return None self.Control = A.ControlWidget() if self.Control.exec_() : self.Control.move(self.Parent.popupPosition(self.Control.size())) col = self.Control.selectedCollection() ## print dateStamp(), col.name().toUtf8(), col.id(), col.resource() self.editParams.collectionID.setText(str(col.id())) self.editParams.nameColl = col.name() #self.editList.stringEditor.setText(self.editParams.nameColl) self.editParams.collectionResource.setText(col.resource()) def restartAkonadi(self): if not A.AkonadiModuleExist : self.akonadiState.setText(self.tr._translate("Module PyKDE4.akonadi isn`t available.")) akonadiAccList = [] else : server = A.Akonadi.Control() #server.widgetNeedsAkonadi(self) if A.Akonadi.ServerManager.isRunning() : if not server.restart(self) : print dateStamp(), 'Unable to start Akonadi Server ' else : if not server.start(self) : print dateStamp(), 'Unable to start Akonadi Server ' self.akonadiState.setText( self.tr._translate("Akonadi Server is : ") + \ A.StateSTR[A.Akonadi.ServerManager.state()] ) self.setEditWidgetsState() def reloadAkonadiStuff(self): self.reloadAkonadi.emit() def saveData(self): self.editParams.saveAccountData() def eventClose(self, event): self.prnt.done(0)
''' Created on 1 de nov. de 2015 @author: Ariel ''' import sys from Translator import Translator if __name__ == '__main__': if(len(sys.argv) < 2): print "ERROR: input file not specified" exit(1) tr = Translator() instructionList = list() with open(sys.argv[1],"r") as source: text = source.read() lastLine = text.split("\n")[-1] if "END" not in lastLine.split(";")[0]: print "ERROR: END instruction not detected" exit(1) instructionList = tr.getHexFromAsm(text) outputFileName = "out.coe" if("-o" in sys.argv and (sys.argv.index("-o") < (len(sys.argv)-1))): outputFileName = sys.argv[sys.argv.index("-o")+1] with open(outputFileName, "w+") as outFile: outFile.write('memory_initialization_radix=16;\nmemory_initialization_vector=\n') for line in instructionList: separator = str() if line == instructionList[-1]: separator = ';'