def cambiar_version(cambio=1, mostrar=False): diff=utils.load_json(DIFF_JSON) window=sublime.active_window() view=window.active_view() filename=view.file_name() folder=get_folder(filename) actual=diff[view.file_name()] viejo=actual lista=os.listdir(folder) lista=sorted(lista) i=lista.index(actual) i+=cambio if i<0 or i==len(lista):return actual=lista[i] diff[filename]=actual utils.save_json(DIFF_JSON, diff) lines=view.lines(sublime.Region(0, view.size())) folder=get_folder(filename) # self.view.add_regions("diferentes", self.lista, "comment", "bookmark", sublime.DRAW_OUTLINED) if not mostrar:utils.set_text(open(get_folder(filename)+os.sep+actual).read()) print("\n") with open(folder+os.sep+actual, 'r') as one: with open(folder+os.sep+viejo, 'r') as two: diff = difflib.unified_diff(one.readlines(),two.readlines()) for line in diff: line=line.strip() if line.startswith("@@ -"): # line=line[4, line.find(",")] # print(line) utils.go_line(int(line[4:line.find(",")])+3) if line.startswith("-") or line.startswith("+") or line.startswith("@@"): print(line.strip()+":") print("\n")
def run(self, edit): text=utils.get_text() lineas=text.splitlines() lineas=list(set(lineas)) text="" for linea in lineas:text+=linea+"\n" utils.set_text(text)
def create_table(self, value): for i in range(1, value + 1): self.adc_ls[i - 1].grid(row=i, column=0, padx=10, pady=10, sticky='W') u.set_text(self.int_es[i - 1], '3').grid(row=i, column=1, padx=10, pady=10) u.set_text(self.conv_es[i - 1], '0').grid(row=i, column=2, padx=10, pady=10) setting = self.dac_settings[i - 1] settings = ['Tri', 'Saw', 'Const', 'Off'] setting.set('Tri') for j, s in enumerate(settings): tk.Radiobutton(self.ch_frame, text=s, variable=setting, value=s, background=u.green_color).grid(row=i, column=j + 3, padx=5, pady=10, sticky='W') sample_by = self.sample_settings[i - 1] sample_by.set(1) tk.OptionMenu(self.ch_frame, sample_by, 1, 2, 4, 8).grid(row=i, column=7) tk.Button(self.ch_frame, text='Get Settings', background=u.green_color, command=self.check_values).grid(row=6, column=1, columnspan=2, pady=50, sticky='S') tk.Button(self.ch_frame, text='Apply Settings', background=u.green_color, command=self.set_values).grid(row=6, column=3, columnspan=2, pady=50, sticky='S') tk.Button(self.ch_frame, text='Cancel', background=u.green_color, command=self.check_values).grid(row=6, column=5, pady=50, sticky='S') self.ch_frame.pack(padx=20, pady=20)
def read_article(self): # 收藏 while self.collect_counter: print('点击收藏') star = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ImageView[1]' self.collect_counter -= utils.click(self.driver, star) time.sleep(random.uniform(1, 2)) # 可能会有”我知道了“的提示 if utils.click(self.driver, 'cn.xuexi.android:id/btn_right_text'): time.sleep(random.uniform(1, 2)) # 取消收藏 print(f'取消收藏') utils.click(self.driver, star) time.sleep(random.uniform(1, 2)) while self.share_counter: print('点击分享') utils.click( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ImageView[2]' ) time.sleep(random.uniform(1, 2)) # 分享到微信 if utils.click( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.support.v4.view.ViewPager/android.widget.GridView/android.widget.RelativeLayout[1]/android.widget.ImageView' ): self.share_counter -= 1 self.driver.back() while self.comment_counter: print('评论') if utils.click( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.TextView' ): # 发评论 utils.set_text( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.EditText', '中国加油!!') utils.click( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.TextView[2]' ) # 删评论 utils.click( self.driver, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout[1]/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.LinearLayout[3]/android.widget.LinearLayout[3]/android.widget.TextView[3]' ) self.comment_counter -= 1 if self.comment_counter: time.sleep(10) print('开始阅读') self.wait(read_time := random.uniform(115, 125)) print(f'读了{round(read_time, 2)}秒', end='\r', flush=True) self.article_time -= read_time self.driver.back()
def fill_inj_frame(self): for r in range(0, 4): self.inj_labels[r].grid(row=r, column=0, padx=15, pady=10, sticky='E') u.set_text(self.inj_entries[r], '0').grid(row=r, column=1, padx=10, pady=10, sticky='W')
def test_frame_layout(self): tk.Button(self.test_frame, text='Enable BMW Test', background=u.green_color, command=self.start_test).grid( row=0, column=0, columnspan=2, padx=10, pady=10) tk.Button(self.test_frame, text='Toggle Kill Switch', background=u.green_color, command=self.set_kill).grid( row=0, column=2, columnspan=2, padx=10, pady=10) self.bm_test_index.set(0) self.bm_test_setting.set(self.button_titles[self.bm_test_index.get()]) for r in range(0, 2): for c in range(0, 4): tk.Radiobutton(self.test_frame, text=self.button_titles[r*4+c], variable=self.bm_test_index, value=r*4+c, background=u.green_color).grid( row=r+1, column=c, padx=2, pady=2, sticky='W') u.set_text(self.test_e, '0').grid(row=3, column=0, padx=3, pady=3, sticky='W') tk.Label(self.test_frame, text='Set Point\n(mA or keV)', bg=u.green_color).grid( row=3, column=1, padx=5, pady=5, sticky='W')
def fill_rt_spec_frame(self): self.samples_rt_spec_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.gate_rt_spec_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.blocks_rt_spec_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.samples_rt_spec_e, '0').grid(row=0, column=1) u.set_text(self.gate_rt_spec_e, '0').grid(row=1, column=1) u.set_text(self.blocks_rt_spec_e, '0').grid(row=2, column=1) tk.Button(self.rt_spec_frame, text='Get Settings', background=u.green_color, command=self.check_values_rt_spec).grid( row=3, column=0, pady=10) tk.Button(self.rt_spec_frame, text='Apply Settings', background=u.green_color, command=self.set_values_rt_spec).grid( row=3, column=1, pady=10)
def fill_ch_frame(self): self.samples_ch_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.gate_ch_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.blocks_ch_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.samples_ch_e, '4141').grid(row=0, column=1) u.set_text(self.gate_ch_e, '10').grid(row=1, column=1) u.set_text(self.blocks_ch_e, '4').grid(row=2, column=1) tk.Button(self.ch_frame, text='Get Settings', background=u.green_color).grid(row=3, column=0, pady=10) tk.Button(self.ch_frame, text='Apply Settings', background=u.green_color).grid(row=3, column=1, pady=10)
def __init__(self, tab): self.ch_frame = tk.LabelFrame(tab, text='CH', background=u.green_color, width=500) self.ramp_delay_l = tk.Label(self.ch_frame, text='Ramp Delay', background=u.green_color) self.int_time_l = tk.Label(self.ch_frame, text='Integrate Time', background=u.green_color) self.oversamp_l = tk.Label(self.ch_frame, text='Oversampling', background=u.green_color) self.ramp_delay_e = tk.Entry(self.ch_frame) self.int_time_e = tk.Entry(self.ch_frame) self.oversamp_e = tk.Entry(self.ch_frame) self.ramp_delay_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.int_time_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.oversamp_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.ramp_delay_e, '40').grid(row=0, column=1) u.set_text(self.int_time_e, '13200').grid(row=1, column=1) u.set_text(self.oversamp_e, '0').grid(row=2, column=1) tk.Button(self.ch_frame, text='Get Settings', background=u.green_color).grid( row=3, column=0, pady=10) tk.Button(self.ch_frame, text='Apply Settings', background=u.green_color).grid( row=3, column=1, pady=10) self.ch_frame.pack(padx=20, pady=10, anchor='w')
def update_translation(self, lang_code, data): print lang_code for (source_file, items) in data.iteritems(): # Skip file if no items if len(items) == 0: continue print source_file (source_dir, source_fn) = os.path.split(source_file) (source_file_lang_code, source_fn_wo_lang_code) = extract_lang_code(source_fn) target_file_name = self.target_dir + '/' + source_file if source_file_lang_code != lang_code: if source_file_lang_code is None: if lang_code and lang_code != self.default_lang_code: (fn, ext) = source_fn.rsplit('.') target_file_name = self.target_dir + '/' + source_dir \ + '/' + fn + '.' + lang_code + '.' + ext new_doc = False try: doc = minidom.parse(target_file_name) except (IOError, expat.ExpatError): impl = minidom.getDOMImplementation() doc = impl.createDocument(None, 'root', None) new_doc = True root_element = doc.documentElement if root_element.tagName != 'root': raise Exception('Invalid root element') no_changes = True for item in items: if not 'target' in item: continue target_text = item['target'] if not target_text: continue if target_text == item['source']: continue data_element, created = find_or_create_element(doc, root_element, 'data', {'name': item['id']}) value_element, created = find_or_create_element(doc, data_element, 'value') res = set_text(doc, value_element, target_text) if res: no_changes = False if no_changes: continue # Make target directory try: os.makedirs(self.target_dir + '/' + source_dir) except OSError: pass # Create of overwrite xml file with io.open(target_file_name, 'w', newline='\r\n') as f: if new_doc: PrettyPrint(doc, f) else: f.write(u'\ufeff') f.write(u'<?xml version="1.0" encoding="%s"?>\n' % doc.encoding) Print(root_element, f)
def run(self, edit): utils.set_text(sublime.encode_value(sublime.decode_value(utils.get_text()), True))
def __init__(self, tab): self.ch_frame = tk.LabelFrame(tab, text='Counting House', background=u.green_color, width=500) self.inj_frame = tk.LabelFrame(tab, text='Injector', background=u.green_color, width=500) self.lft_spec_frame = tk.LabelFrame(tab, text='Left Spectrometer', background=u.green_color, width=500) self.rt_spec_frame = tk.LabelFrame(tab, text='Right Spectrometer', background=u.green_color, width=500) self.defaults_frame = tk.LabelFrame(tab, text='Default Controls', background=u.green_color, width=1000) self.ramp_delay_l = tk.Label(self.ch_frame, text='Ramp Delay', background=u.green_color) self.int_time_l = tk.Label(self.ch_frame, text='Integrate Time', background=u.green_color) self.oversamp_l = tk.Label(self.ch_frame, text='Oversampling', background=u.green_color) self.ramp_delay_e = tk.Entry(self.ch_frame) self.int_time_e = tk.Entry(self.ch_frame) self.oversamp_e = tk.Entry(self.ch_frame) self.ramp_delay_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.int_time_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.oversamp_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.ramp_delay_e, '0').grid(row=0, column=1, padx=10, pady=5, sticky='W') u.set_text(self.int_time_e, '0').grid(row=1, column=1, padx=10, pady=5, sticky='W') u.set_text(self.oversamp_e, '0').grid(row=2, column=1, padx=10, pady=5, sticky='W') tk.Button(self.ch_frame, text='Get Settings', background=u.green_color, command=self.check_values_ch).grid(row=3, column=0, pady=10) tk.Button(self.ch_frame, text='Apply Settings', background=u.green_color, command=self.set_values_ch).grid(row=3, column=1, pady=10) self.ch_frame.grid(row=0, column=0, padx=20, pady=10) self.inj_ramp_delay_l = tk.Label(self.inj_frame, text='Ramp Delay', background=u.green_color) self.inj_int_time_l = tk.Label(self.inj_frame, text='Integrate Time', background=u.green_color) self.inj_oversamp_l = tk.Label(self.inj_frame, text='Oversampling', background=u.green_color) self.inj_ramp_delay_e = tk.Entry(self.inj_frame) self.inj_int_time_e = tk.Entry(self.inj_frame) self.inj_oversamp_e = tk.Entry(self.inj_frame) self.inj_ramp_delay_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.inj_int_time_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.inj_oversamp_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.inj_ramp_delay_e, '0').grid(row=0, column=1, padx=10, pady=5, sticky='W') u.set_text(self.inj_int_time_e, '0').grid(row=1, column=1, padx=10, pady=5, sticky='W') u.set_text(self.inj_oversamp_e, '0').grid(row=2, column=1, padx=10, pady=5, sticky='W') tk.Button(self.inj_frame, text='Get Settings', background=u.green_color, command=self.check_values_inj).grid(row=3, column=0, pady=10) tk.Button(self.inj_frame, text='Apply Settings', background=u.green_color, command=self.set_values_inj).grid(row=3, column=1, pady=10) self.inj_frame.grid(row=0, column=1, padx=20, pady=10) self.lft_spec_ramp_delay_l = tk.Label(self.lft_spec_frame, text='Ramp Delay', background=u.green_color) self.lft_spec_int_time_l = tk.Label(self.lft_spec_frame, text='Integrate Time', background=u.green_color) self.lft_spec_oversamp_l = tk.Label(self.lft_spec_frame, text='Oversampling', background=u.green_color) self.lft_spec_ramp_delay_e = tk.Entry(self.lft_spec_frame) self.lft_spec_int_time_e = tk.Entry(self.lft_spec_frame) self.lft_spec_oversamp_e = tk.Entry(self.lft_spec_frame) self.lft_spec_ramp_delay_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.lft_spec_int_time_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.lft_spec_oversamp_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.lft_spec_ramp_delay_e, '0').grid(row=0, column=1, padx=10, pady=5, sticky='W') u.set_text(self.lft_spec_int_time_e, '0').grid(row=1, column=1, padx=10, pady=5, sticky='W') u.set_text(self.lft_spec_oversamp_e, '0').grid(row=2, column=1, padx=10, pady=5, sticky='W') tk.Button(self.lft_spec_frame, text='Get Settings', background=u.green_color, command=self.check_values_lft_spec).grid(row=3, column=0, pady=10) tk.Button(self.lft_spec_frame, text='Apply Settings', background=u.green_color, command=self.set_values_lft_spec).grid(row=3, column=1, pady=10) self.lft_spec_frame.grid(row=1, column=0, padx=20, pady=10) self.rt_spec_ramp_delay_l = tk.Label(self.rt_spec_frame, text='Ramp Delay', background=u.green_color) self.rt_spec_int_time_l = tk.Label(self.rt_spec_frame, text='Integrate Time', background=u.green_color) self.rt_spec_oversamp_l = tk.Label(self.rt_spec_frame, text='Oversampling', background=u.green_color) self.rt_spec_ramp_delay_e = tk.Entry(self.rt_spec_frame) self.rt_spec_int_time_e = tk.Entry(self.rt_spec_frame) self.rt_spec_oversamp_e = tk.Entry(self.rt_spec_frame) self.rt_spec_ramp_delay_l.grid(row=0, column=0, padx=10, pady=5, sticky='W') self.rt_spec_int_time_l.grid(row=1, column=0, padx=10, pady=5, sticky='W') self.rt_spec_oversamp_l.grid(row=2, column=0, padx=10, pady=5, sticky='W') u.set_text(self.rt_spec_ramp_delay_e, '0').grid(row=0, column=1, padx=10, pady=5, sticky='W') u.set_text(self.rt_spec_int_time_e, '0').grid(row=1, column=1, padx=10, pady=5, sticky='W') u.set_text(self.rt_spec_oversamp_e, '0').grid(row=2, column=1, padx=10, pady=5, sticky='W') tk.Button(self.rt_spec_frame, text='Get Settings', background=u.green_color, command=self.check_values_rt_spec).grid(row=3, column=0, pady=10) tk.Button(self.rt_spec_frame, text='Apply Settings', background=u.green_color, command=self.set_values_rt_spec).grid(row=3, column=1, pady=10) self.rt_spec_frame.grid(row=1, column=1, padx=20, pady=10) tk.Button(self.defaults_frame, text='Get All Values From Boards', background=u.green_color, command=self.check_all).grid(row=0, column=0, padx=10, pady=10) tk.Button(self.defaults_frame, text='Set All Values to Boards', background=u.green_color, command=self.set_all).grid(row=0, column=1, padx=10, pady=10) tk.Button(self.defaults_frame, text='Get Default Values From File', background=u.green_color, command=self.read_defaults).grid(row=1, column=0, padx=10, pady=10) tk.Button(self.defaults_frame, text='Write Values to Defaults File', background=u.green_color, command=self.set_defaults).grid(row=1, column=1, padx=10, pady=10) self.defaults_frame.grid(row=2, column=0, padx=20, pady=10, columnspan=2) self.read_defaults() self.set_all() self.check_all()
def run(self, edit): texto="" for linea in reversed(utils.get_text().splitlines()) : texto+=linea+"\n" utils.set_text(texto)
def load(self, item): if item==-1:return key=self.keys[item] text=self.samples[key] utils.set_text(text)
def update_translation(self, lang_code, file, source_file, data): #print file #print lang_code if lang_code is None: target_lang_dir = self.target_dir + '/' + self.default_lang_code else: target_lang_dir = self.target_dir + '/' + lang_code (relative_dir, file_name) = os.path.split(file) #Make target directory try: os.makedirs(target_lang_dir + '/' + relative_dir) except OSError: pass target_file_name = target_lang_dir + '/' + file + '.xlf' print target_file_name new_doc = False try: doc = minidom.parse(target_file_name) except (IOError, expat.ExpatError): impl = minidom.getDOMImplementation() doc = impl.createDocument(None, 'xliff', None) new_doc = True xliff = doc.documentElement if xliff.tagName != 'xliff': raise Exception('Invalid root element') file_element, created = find_or_create_element(doc, xliff, 'file', {'original': source_file}) file_element.setAttribute('source-language', self.default_lang_code) file_element.setAttribute('target-language', lang_code or self.default_lang_code) body_element, created = find_or_create_element(doc, file_element, 'body') ids = set([]) for item in data: ids.add(item['name']) tu_element, created = find_or_create_element(doc, body_element, 'trans-unit', {'id': item['name']}) source_text = self.find_source_text(file, item['name']) source_element, created = find_or_create_element(doc, tu_element, 'source') source_element.setAttribute('xml:lang', self.default_lang_code) set_text(doc, source_element, source_text) target_element, created = find_or_create_element(doc, tu_element, 'target') target_element.setAttribute('xml:lang', lang_code or self.default_lang_code) target_text = u'' if 'value' in item: target_text = item['value'] # try to suggest translation if not target_text: if source_text in self.suggestions and \ lang_code in self.suggestions[source_text]: target_text = self.suggestions[source_text][lang_code] print "Suggested: " + source_text + " -> " + target_text set_text(doc, target_element, target_text) # from original file source_data = self.translations[None][file]['data'] for item in source_data: if item['name'] in ids: continue if not 'value' in item: continue tu_element, created = find_or_create_element(doc, body_element, 'trans-unit', {'id': item['name']}) source_element, created = find_or_create_element(doc, tu_element, 'source') source_element.setAttribute('xml:lang', self.default_lang_code) set_text(doc, source_element, item['value']) target_element, created = find_or_create_element(doc, tu_element, 'target') target_element.setAttribute('xml:lang', lang_code or self.default_lang_code) # try to suggest translation if item['value'] in self.suggestions: source_text = item['value'] if lang_code in self.suggestions[source_text]: target_text = self.suggestions[source_text][lang_code] set_text(doc, target_element, target_text) print "Suggested: " + source_text + " -> " + target_text with open(target_file_name, 'w') as f: if new_doc: f.write(doc.toprettyxml().encode('utf-8')) else: f.write('<?xml version="1.0" encoding="%s"?>\n' % doc.encoding) f.write(xliff.toxml('utf-8')) f.write('\n')