def NV_extract(self): NList = [] VList = [] for i in range(1, self.s.nrows): print i noenc = self.delete_unnecc(i) lan = Language(noenc) if len(lan.str) > 4000: continue word = lan.getMorpheme() tmpNoun = u"" NN = 0 for j, line in enumerate(lan.getMorpheme()): if line[1] == u"動詞": if line[7] == u"する": VList.append(word[j - 1][0] + line[7]) else: VList.append(line[7]) if line[1] == u"名詞" and j != len(word) - 1: if word[j + 1][1] == u"名詞": tmpNoun += line[0] NN += 1 if NN > 3: tmpNoun = u"" NN = 0 continue elif word[j + 1][7] != u"する": NList.append(tmpNoun + line[0]) tmpNoun = u"" NN = 0 return NList, VList
class Nation(Entity): def __init__(self, world, color, capital): self.world = world self.color = color self.capital = capital self.settlements = [capital] self.language = Language() self.name = self.language.genName() self.leader = self.genLeader() def borders(self): border_tiles = [] owned_tiles = [] for settlement in self.settlements: x = settlement.x y = settlement.y owned_tiles += (x, y) for tile in adjacent(x, y): if tile not in border_tiles and tile not in owned_tiles: border_tiles += tile for tile in border_tiles: if tile in owned_tiles: border_tiles.remove(tile) return border_tiles def genLeader(self): return Leader(self.language.genName()) def action(self): pass def neighbors(self): pass
class Messenger(): def __init__(self): print("Messenger Running...") self.debug = True self.username = "******" self.password = "******" # Poll frequency (in seconds) self.timer = 8 self.language = Language() # Extracts SMS message from HTML using BeautifulSoup def extractsms(self, htmlsms): msgitems = [] tree = bs4.BeautifulSoup(htmlsms, features="xml") conversations = tree.findAll("div", attrs={"id": True}, recursive=False) for conversation in conversations: rows = conversation.findAll(attrs={"class": "gc-message-sms-row"}) for row in rows: msgitem = {"id": conversation["id"]} spans = row.findAll("span", attrs={"class": True}, recursive=False) for span in spans: cl = span["class"].replace("gc-message-sms-", '') msgitem[cl] = (" ".join(span.findAll(text=True))).strip() msgitems.append(msgitem) return msgitems # Runs the Google Voice server and listens for SMS messages def run(self): i = 0 # Create new Google Voice instance and login voice = Voice() voice.login(self.username, self.password) while True: i += 1 voice.sms() for msg in self.extractsms(voice.sms.html): if msg: if self.debug: print(msg) # Write user number and message to data file for webserver caller = msg["from"].replace("+", "").replace(":", "") print(msg["time"] + '\t' + caller + '\t' + msg["text"], file=open("data.tsv", "a")) # Parse and format message using Language class replyRaw = self.language.reply(msg["text"]) replyFormatted = self.language.format(replyRaw) print(type(replyFormatted)) print(msg["time"] + '\t' + "17408720211" + '\t' + replyFormatted, file=open("data.tsv", "a")) replyFormatted = replyFormatted.replace("\t", "\n") # Send reply message with patient information back to user voice.send_sms(caller, str(replyFormatted)) # Delete previously read messages from Google Voice for message in voice.sms().messages: if message.isRead: message.delete() if self.debug: print('Idle Counter: ' + str(i)) time.sleep(self.timer) voice.logout()
def setListItems(self): self.DefaultLanguage = "English" self.CurrentLanguage = xbmc.getLanguage() self.FolderLanguage = self.settings["LanguagePath"] self.DefaultFolderLanguage = "special://xbmc/language/" if not os.path.exists(xbmc.translatePath(self.FolderLanguage)): print "Folder language not exists! '%s'" % self.FolderLanguage self.FolderLanguage = self.DefaultFolderLanguage if not self.FolderLanguage.startswith("special"): for folder in ["profile", "home", "xbmc"]: special = "special://%s/" % folder self.FolderLanguage = self.FolderLanguage.replace( xbmc.translatePath(special), special) if (xbmc.translatePath("special://skin/") in xbmc.translatePath(self.FolderLanguage)): self.FolderLanguage = "special://skin/language/" self.FolderLanguage = self.FolderLanguage.replace("\\", "/").rstrip("/") self.setContainerProperties() # get languages source self.language = Language(self) self.listitems = self.language.listitems
def main(): languages = Language() requirements = Requirement(languages.language_dict) while True: language_name = languages.set_language_name() languages.write_dict_language() while True: requirements.set_requirement_name(language_name) requirements.write_requirements_name() print('Czy chcesz wyjść? T/N') c = input() if c == 'T' or c == 't': break elif c == 'N' or c == 'n': continue else: print('Coś poszło nie tak.') print('Czy chcesz wyjść? T/N') c = input() if c == 'T' or c == 't': break elif c == 'N' or c == 'n': continue else: print('Coś poszło nie tak.')
def __init__(self): print("Messenger Running...") self.debug = True self.username = "******" self.password = "******" # Poll frequency (in seconds) self.timer = 8 self.language = Language()
def __init__(self, world, color, capital): self.world = world self.color = color self.capital = capital self.settlements = [capital] self.language = Language() self.name = self.language.genName() self.leader = self.genLeader()
class Finnish(Language): def __init__(self, n_len): self.core = Language(path, n_len) def calculate_n_grams(self): for file in files: self.core.open_and_remove_bad_chars(file) def create_dictionary(self): self.core.create_dictionary() def get_sorted_dict(self): return self.core.get_sorted_dict() def get_dict(self): return self.core.get_dict() def get_ngram_vec(self): return self.core.get_ngram_vec() def calculate_cos_norm(self, input_ngram): return self.core.calculate_cos_norm(input_ngram) def share_dataset(self): return self.core.share_dataset()
def extract_terms(self, case_df): Noun_comp = u"" wakachi = u"" preR_id = 1 terms = [] documents = [] for (Report_id, frame) in zip( case_df[u"報告書_id"], case_df. loc[:, [u"主体", u"起点", u"対象", u"状況", u"着点", u"手段", u"関係", u"動詞"]]. values): #if Report_id>100:break if preR_id != Report_id: documents.append(wakachi) print Report_id #print wakachi wakachi = u"" if frame[7][-2:] != u"する": wakachi += frame[7] + u" " if frame[7] not in terms: terms.append(frame[7]) else: wakachi += frame[7][:-2] + u" " if frame[7][:-2] not in terms: terms.append(frame[7][:-2]) for i in range(0, 7): if frame[i] == u' ': continue Lan = Language(frame[i]) outList = Lan.getMorpheme() Mor_1 = [outList[i][1] for i in range(len(outList))] # if (u"接続詞" in Mor_1) | (u"記号" in Mor_1): # continue for mi, Mor in enumerate(outList): if Mor_1[mi] == u"名詞" and Mor[2] != u"形容動詞語幹": Noun_comp += Mor[0] if mi < len(Mor_1) - 1: if Mor_1[mi + 1] != u"名詞": wakachi += Noun_comp + u" " if Noun_comp not in terms: terms.append(Noun_comp) Noun_comp = u"" else: wakachi += Noun_comp + u" " if Noun_comp not in terms: terms.append(Noun_comp) Noun_comp = u"" elif Mor_1[mi] != u"助詞" and Mor_1[mi] != u"助動詞" and Mor[ 5] != u"サ変・スル" and Mor[2] != u"接尾": wakachi += Mor[0] + u" " if Mor[0] not in terms: terms.append(Mor[0]) preR_id = Report_id documents.append(wakachi) return terms, documents
def read_file(self, filename): print("Reading lines...") # Read the file and split into lines lines = open('data/%s.txt' % (filename), encoding='utf-8').\ read().strip().split('\n') # Split every line into pairs and normalize pairs = [[seq_utils.normalizeString(s) for s in l.split('\t')][:2] for l in lines] pairs = self.filterPairs(pairs) source = Language() target = Language() for pair in pairs: if self.is_valid_pair(pair[0], pair[1]): source.addSentence(pair[0]) target.addSentence(pair[1]) print(f'Source language counted words: {source.n_words}') print(f'Target language counted words: {target.n_words}') return source, target, pairs
def test_isVerbSubjunctive(self): self.h = Verb(Language() ) self.assertEqual(self.h.isVerbSubjunctive("xoxo"), False) self.assertEqual(self.h.isVerbSubjunctive("xoxox"), False) self.assertEqual(self.h.isVerbSubjunctive("oxooxo"), True) self.assertEqual(self.h.isVerbSubjunctive("xxoxoxs"), False) self.assertEqual(self.h.isVerbSubjunctive("oxoxoxo"), True)
def tableGUI(): langPath=loadGUI() try: lang = Language(langPath) except Exception: showMessage("The Chosen file in not a language file , try again") def submit(): Action(lang, int(numOfCluster.get()),(stream.get(),addDB.get(),cluster.get())) window = Tk() window.geometry("600x300") window.resizable(0, 0) window.title("NAC - Loaded News Articles") mylabel = Label(window, text="Chosen language path :") mylabel.place(x=0, y=0, height=20, width=600) #Test mylabel = Label(window, text="Current stored articles : {0}".format(len(lang.getArticles()))) mylabel.place(x=0, y=40, height=20, width=600) Label(window, text=langPath).place(x=0, y=20, height=20, width=600) stream = IntVar() Checkbutton(window, text="Stream", variable=stream).place(x=0, y=60, height=20, width=600) addDB = IntVar() Checkbutton(window, text="Add To DataBase", variable=addDB).place(x=0, y=80, height=20, width=600) cluster = IntVar() Checkbutton(window, text="Cluster", variable=cluster).place(x=0, y=100, height=20, width=600) Label(window, text="Number of clusters:").place(x=0, y=180, height=20, width=600) numOfCluster = Entry(window) numOfCluster.insert(10,"2") numOfCluster.place(x=0, y=200, height=20, width=600) Button(window, text='Quit', command=window.destroy).place(x=0, y=270, height=20, width=600) Button(window, text='Submit', command=submit).place(x=0, y=250, height=20, width=600) window.mainloop()
def __init__(self): self.language=Language() self.box = Grid2D(50, 10) self.dictionary = Random_Word_Generator() self.dictionary.load_dictionary() self.game = Game(self.box,self.language) self.game.choose_generator(self.dictionary) self.music=Music() self.game.connect_music(self.music)
def main(): with open('datas/ZCloseness_centralities_results.txt', 'a') as result_file: result_file.write('Language | original cc | random cc | p_value \n') result_file.flush() for language_file in os.listdir('datas')[:5]: result_file.write(' {}'.format(language_file.split('_')[0])) result_file.flush() current_language = Language(language_file) original_graph = current_language.graph() #run the centrality calculation monte_carlo_centrality(original_graph, 150, 'switching', 20, 'decrease', result_file=result_file)
def __init__(self, filename, erease=False, Language=Language()): if filename is None: logging.warning("Fichier de sauvegarde du dictionnaire invalide") sys.exit() self._filename = filename logging.info("loading dictionary") self._dico = AlphabeticTree(filename, erease) logging.info("dictionary loaded") self._Language = Language
def to_class(self, Noun, Verb): if Noun in self.Nclass.keys(): Nclasslist = self.Nclass[Noun] else: lan = Language(Noun) word = lan.getMorpheme() Noun_tail = word[len(word)-1][0] if Noun_tail in self.Nclass.keys(): Nclasslist = self.Nclass[Noun_tail] else: Nclasslist = [u"未登録"] if Verb in self.Vclass.keys(): Vclasslist = self.Vclass[Verb] else: Vclasslist =[u"未登録"] #print Verb NV = [] for NVclass in itertools.product(Nclasslist,Vclasslist): NV.append(NVclass) return NV
def descr_from_content(content, var_name, language=Language('python')): """ Returns the description of the vector var_name with respect to the content Parameters ---------- content : str Content of the string ("xyz", "xy", "z", ...) (no rpY) var_name : str Name of the vector you want to describe language : Language.Language Language of the generated docstring (used for vector subscription) Defaults to Language('python') Returns ------- description : str Description of the vector Examples -------- >>> my_description = descr_from_content("xyz", "Xd") >>> print(my_description) This is a (3 x 1) numpy.ndarray where : - Xd[0] is the x coordinate of Xd, - Xd[1] is the y coordinate of Xd, - Xd[2] is the z coordinate of Xd >>> from Language import Language >>> my_description = descr_from_content("xz", "Xd", Language('Julia')) >>> print(my_description) This is a (2 x 1) Matrix where : - Xd[1] is the x coordinate of Xd, - Xd[2] is the z coordinate of Xd >>> from Language import Language >>> my_description = descr_from_content("z", "Xd", Language('MATLAB')) >>> print(my_description) This is a (1 x 1) double where : - Xd(1) is the z coordinate of Xd """ descr = f"This is a ({len(content)} x 1) {language.matrix_type} where :\n" for i, c in enumerate(content): qp = language.slice_mat(var_name, i, None, None, None) coma = ",\n" if i < len(content) - 1 else "" descr += f" - {qp} is the {c} coordinate of {var_name}{coma}" return descr
def isValidLanguage(self): #If user input is in json import json f = open('Translation.json') json_dict = json.load(f) self.answer = True while self.answer == True: translationLanguage = Language.getLanguage(self) if translationLanguage in json_dict: return translationLanguage elif translationLanguage not in json_dict: print("You put an invalid language!\n") self.answer = True
def __init__(self): threading.Thread.__init__(self) self.datafile = open("w_report.csv", 'r') self.key = "http://api.openweathermap.org/data/2.5/weather?q=Kanchipuram&APPID=d500d89c5c31bf5d4e165dbaa8024895" self.last_update = [] self.L = Language() self.Structure = nx.Graph() self.Structure.add_edges_from([('weather', 'description'), ('weather', 'haze'), ('wind', 'deg'), ('wind', 'speed'), ('main', 'humidity'), ('main', 'temp'), ('main', 'pressure'), ('main', 'temp_max'), ('main', 'temp_min'), ('obj', 'dt'), ('obj', 'main'), ('obj', 'weather'), ('obj', 'wind')]) self.Structure.add_edges_from([('sys', 'sunrise'), ('sys', 'sunset'), ('obj', 'sys'), ('obj', 'visibility'), ('obj', 'coord'), ('obj', 'clouds'), ('clouds', 'all'), ('obj', 'name'), ('weather', 'id'), ('weather', 'main')]) nx.draw_networkx(self.Structure, show_labels=True)
def isValidNumber(self, u, i): #if user input is valid answer = True while True: try: self.userInput = Language.getNumber(self) if self.userInput >= u and self.userInput <= i: return self.userInput else: print( "You put an invalid input! Input should be 1 to 5:\n") answer = True except ValueError: print("You put an invalid number!!\n ") True
def robot_dof_descr(robot, var_name, language=Language('python')): """ Returns the description of the vector containing all the degrees of freedom of the robot. Parameters ---------- robot : robots.Robot Robot you want to describe var_name : str Name of the vector variable language : Language.Language Language of the generated docstring (used for vector subscription) Defaults to Language('python') Returns ------- description : str Description of the vector Examples -------- >>> from robots import RobotURDF >>> from URDF import URDF >>> from Language import Language >>> rob = RobotURDF(URDF("./Examples/example_0.urdf")) >>> print(robot_dof_descr(rob, 'q', Language("julia"))) This is a (3 x 1) Matrix containing the state of all the joints where : - q[1] = theta_joint1 : Rotation value (in radians) around the joint1 joint axis. - q[2] = theta_joint2 : Rotation value (in radians) around the joint2 joint axis. - q[3] = theta_joint3 : Rotation value (in radians) around the joint3 joint axis. """ params = get_parameters(robot.dof) descrq = (f"This is a ({len(robot.dof)} x 1) {language.matrix_type} " f"containing the state of all the joints where :\n") for i_p, param in enumerate(params): qp = language.slice_mat(var_name, i_p, None, None, None) descrq += f' - {qp} = {param["name"]}' descrq += f' :\n {param["description"]}\n' return descrq[:-1]
class Heuristic: def __init__(self): self.lObj = Language() self.vObj = Verb(self.lObj) self.pObj = Preposition(self.lObj) self.nObj = Numbers(self.vObj, self.pObj) def classify(self, word): try: self.lObj.isInLanguage(word) if self.nObj.isNumber(word): value = self.nObj.getValue(word) return {'word':word, 'type': Constant.HERUGLON_NUMBER_PRETTY, 'number': value } if self.nObj.isPretty(value) else {'word':word, 'type': Constant.HERUGLON_NUMBER, 'number': value} if self.vObj.isVerbSubjunctive(word): return {'word':word, 'type':Constant.HERUGLON_VERB_SUBJUNCTIVE} if self.vObj.isVerb(word): return {'word':word, 'type':Constant.HERUGLON_VERB} if self.pObj.isPreposition(word): return {'word':word, 'type':Constant.HERUGLON_PREPOSITION} return {'word':word, 'type':Constant.HERUGLON_UNKNOWN, 'error': "Unknown word" } except: return {'word':word, 'type':Constant.HERUGLON_UNKNOWN, 'error': sys.exc_info()[1] }
def setListItems( self ): self.DefaultLanguage = "English" self.CurrentLanguage = xbmc.getLanguage() self.FolderLanguage = self.settings[ "LanguagePath" ] self.DefaultFolderLanguage = "special://xbmc/language/" if not os.path.exists( xbmc.translatePath( self.FolderLanguage ) ): print "Folder language not exists! '%s'" % self.FolderLanguage self.FolderLanguage = self.DefaultFolderLanguage if not self.FolderLanguage.startswith( "special" ): for folder in [ "profile", "home", "xbmc" ]: special = "special://%s/" % folder self.FolderLanguage = self.FolderLanguage.replace( xbmc.translatePath( special ), special ) if ( xbmc.translatePath( "special://skin/" ) in xbmc.translatePath( self.FolderLanguage ) ): self.FolderLanguage = "special://skin/language/" self.FolderLanguage = self.FolderLanguage.replace( "\\", "/" ).rstrip( "/" ) self.setContainerProperties() # get languages source self.language = Language( self ) self.listitems = self.language.listitems
sys.getfilesystemencoding()))) if sys.executable.endswith("portable.exe") or \ sys.executable.endswith("portable_debug.exe"): os.environ['APPDATA'] = path return path this_module_path = os.path.dirname(unicode(__file__, sys.getfilesystemencoding())) return os.path.abspath(this_module_path) os.chdir(os.path.abspath(project_path())) from Language import Language language_management = Language() language_management.install_default_translation() import glib import shutil import signal import debugger import logging log = logging.getLogger('emesene') import e3 #from e3 import msn from e3 import dummy try:
def setupUi(self, mainWindow): stylesheetFile = "Stylesheet.css" #styling fh = open(stylesheetFile) qstr = str(fh.read()) self.MainWindow = mainWindow #assign mainwindow self.MainWindow.setStyleSheet(qstr) self.MainWindow.setObjectName("MainWindow") self.MainWindow.resize(1000, 650) #setup basic variables self.devices = [] self.currentDevice = None self.setupLog() self.mainQueue = Queue() self.lang = Language(0) #fill mainwindow self.centralwidget = QtWidgets.QWidget(self.MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 90, 650)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("buttonBar") spacerItem = QtWidgets.QSpacerItem(20, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.verticalLayout.addItem(spacerItem) self.addADevice = QtWidgets.QPushButton(self.verticalLayoutWidget) self.addADevice.setObjectName("addADevice") self.addADevice.setFixedSize(90, 90) self.verticalLayout.addWidget(self.addADevice) self.Manual = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Manual.setObjectName("Manual") self.Manual.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Manual) self.Graphs = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Graphs.setObjectName("Graphs") self.Graphs.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Graphs) self.Settings = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Settings.setObjectName("Settings") self.Settings.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Settings) spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem1) self.Info = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Info.setObjectName("Info") self.Info.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Info) spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem2) self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.horizontalLayoutWidget.setGeometry(QtCore.QRect(90, 0, 910, 50)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.Logo = QtWidgets.QLabel(self.horizontalLayoutWidget) self.Logo.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Logo.sizePolicy().hasHeightForWidth()) self.Logo.setSizePolicy(sizePolicy) self.Logo.setMinimumSize(QtCore.QSize(0, 0)) self.Logo.setMaximumSize(QtCore.QSize(250, 50)) font = QtGui.QFont() font.setFamily("Calibri") font.setPointSize(16) font.setBold(True) font.setWeight(75) self.Logo.setFont(font) self.Logo.setAutoFillBackground(True) self.Logo.setFrameShape(QtWidgets.QFrame.Box) self.Logo.setFrameShadow(QtWidgets.QFrame.Raised) self.Logo.setObjectName("Logo") pic = QPixmap('rsz_1aerosdev') self.Logo.setPixmap(pic) self.horizontalLayout_2.addWidget(self.Logo) spacerItem3 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem3) self.fSkyTemp = QtWidgets.QFrame(self.horizontalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.fSkyTemp.sizePolicy().hasHeightForWidth()) self.fSkyTemp.setSizePolicy(sizePolicy) self.fSkyTemp.setMinimumSize(QtCore.QSize(180, 100)) self.fSkyTemp.setFrameShape(QtWidgets.QFrame.StyledPanel) self.fSkyTemp.setFrameShadow(QtWidgets.QFrame.Raised) self.fSkyTemp.setObjectName("fSkyTemp") self.Sky = QtWidgets.QLabel(self.fSkyTemp) self.Sky.setGeometry(QtCore.QRect(10, 20, 75, 13)) self.Sky.setObjectName("Sky") self.TempUp = QtWidgets.QLabel(self.fSkyTemp) self.TempUp.setGeometry(QtCore.QRect(100, 20, 75, 13)) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.TempUp.sizePolicy().hasHeightForWidth()) self.TempUp.setSizePolicy(sizePolicy) self.TempUp.setMinimumSize(QtCore.QSize(60, 0)) self.TempUp.setObjectName("TempUp") self.horizontalLayout_2.addWidget(self.fSkyTemp) spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem4) self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) self.stackedWidget.setGeometry(QtCore.QRect(90, 50, 910, 600)) # self.stackedWidget.setMinimumSize(QtCore.QSize(600, 600)) #400, 400 # self.stackedWidget.move(100,100) # self.stackedWidget.setStyleSheet("background-color: black") # sets up maingrid and adds it to stacked widget self.page0 = QtWidgets.QWidget(self.MainWindow) self.mainGrid = MainGrid(self.page0, self.devices) self.stackedWidget.addWidget(self.mainGrid.page0) #sets up pages self.setupSettingsWindow() self.setupEnterDevice() self.setupGraphsWindow() self.setupManual() #sets starting page self.stackedWidget.setCurrentIndex(0) #binds functions to mainwindow buttons self.addADevice.clicked.connect(lambda: self.setIndex(2)) self.Manual.clicked.connect(lambda: self.setIndex(4)) self.Graphs.clicked.connect(lambda: self.setIndex(3)) self.Settings.clicked.connect(lambda: self.setIndex(1)) self.Info.clicked.connect(self.showInfo) QtCore.QMetaObject.connectSlotsByName(self.MainWindow) self.MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(0)
class Translator( xbmcgui.WindowXML ): CONTROL_LIST_A = 50 def __init__( self, *args, **kwargs ): self.RestartXBMC_ReloadLanguage = False self.IsModified = False self.googleTrans = False self.listitems = [] self.Addon = Addon( AddonId ) self._get_settings() def _get_settings( self ): self.settings = {} self.settings[ "LanguagePath" ] = self.Addon.getSetting( "LanguagePath" ) self.settings[ "viewmode" ] = int( self.Addon.getSetting( "viewmode" ) ) self.settings[ "sortmethod" ] = int( self.Addon.getSetting( "sortmethod" ) ) self.settings[ "sortorder" ] = int( self.Addon.getSetting( "sortorder" ) ) self.settings[ "savefolderviews" ] = ( self.Addon.getSetting( "savefolderviews" ) == "true" ) def setListItems( self ): self.DefaultLanguage = "English" self.CurrentLanguage = xbmc.getLanguage() self.FolderLanguage = self.settings[ "LanguagePath" ] self.DefaultFolderLanguage = "special://xbmc/language/" if not os.path.exists( xbmc.translatePath( self.FolderLanguage ) ): print "Folder language not exists! '%s'" % self.FolderLanguage self.FolderLanguage = self.DefaultFolderLanguage if not self.FolderLanguage.startswith( "special" ): for folder in [ "profile", "home", "xbmc" ]: special = "special://%s/" % folder self.FolderLanguage = self.FolderLanguage.replace( xbmc.translatePath( special ), special ) if ( xbmc.translatePath( "special://skin/" ) in xbmc.translatePath( self.FolderLanguage ) ): self.FolderLanguage = "special://skin/language/" self.FolderLanguage = self.FolderLanguage.replace( "\\", "/" ).rstrip( "/" ) self.setContainerProperties() # get languages source self.language = Language( self ) self.listitems = self.language.listitems def onInit( self ): xbmc.executebuiltin( "ActivateWindow(busydialog)" ) self.setSortMethodControl() self.setContainer( setviewmode=self.settings[ "viewmode" ] ) LOG( "notice", "initialized took %s", time_took( START_TIME ) ) xbmc.executebuiltin( "Dialog.Close(busydialog)" ) def setSortMethodControl( self ): label = ( 20316, 103 )[ self.settings[ "sortmethod" ] ] self.getControl( 13 ).setLabel( xbmc.getLocalizedString( label ) ) def setContainerProperties( self ): self.setProperty( "IsModified", ( "", "Language file has been changed!" )[ self.IsModified ] ) self.setProperty( "CurrentLanguage", self.CurrentLanguage ) self.setProperty( "FolderLanguage", self.FolderLanguage ) self.setProperty( "CurrentEnglishString", "" ) self.Addon = Addon( AddonId ) self.setProperty( "ExtraKeyboard_TopOrBottom", ( "top", "bottom" )[ int( self.Addon.getSetting( "ExtraKB" ) ) ] ) def setContainer( self, filter="", SelectId="", setviewmode=None ): if setviewmode is not None: self.ContainerId = ( 50, 51 )[ setviewmode ] if setviewmode: xbmc.executebuiltin( "SendClick(2)" ) else: self.ContainerId = ( 50, 51 )[ xbmc.getCondVisibility( "Control.IsVisible(51)" ) ] try: if not bool( self.listitems ): if self.IsModified: # ask for save change self._save_change() self.IsModified = False self.googleTrans = False self.getControl( self.ContainerId ).reset() self.setListItems() self.setContainerProperties() if self.listitems: selectitem = 0 additems = [] if not filter: additems = self.listitems else: for li in self.listitems: if filter == "UnTranslated" and li.getProperty( "UnTranslated" ) == "false": continue if filter == "Translated" and li.getProperty( "IsModified" ) != "true": continue additems.append( li ) if additems: if self.settings[ "sortmethod" ]: additems = sorted( additems, key=lambda li: normalize_string( li.getLabel(), True ) ) if self.settings[ "sortorder" ]: additems = list( reversed( additems ) ) for count, li in enumerate( additems ): if li.getProperty( "id" ) == SelectId: selectitem = count # add listitems self.getControl( self.ContainerId ).reset() self.getControl( self.ContainerId ).addItems( additems ) if additems: #self.getControl( self.ContainerId ).size(): self.getControl( self.ContainerId ).selectItem( selectitem ) self.setFocusId( self.ContainerId ) # fixe view on xbox if UNDER_XBOX and setviewmode is not None: xbmc.executebuiltin( "Container.SetViewMode(%i)" % self.ContainerId ) xbmc.sleep( 20 ) self.setFocusId( self.ContainerId ) except: print_exc() def onFocus( self, controlID ): pass def sendClick( self, controlID ): try: self.onClick( controlID ) except: print_exc() def getTranslate( self, text, minimal=2 ): translated = "" if text: if ( len( text ) <= minimal ) or text.isdigit(): translated = text else: country = self.Addon.getSetting( "country" ) if country.lower() == "auto": country = self.CurrentLanguage pDialog = xbmcgui.DialogProgress() pDialog.create( "Google Translate", "English to %s" % country, text, "Please wait..." ) try: import LanguageTools translated = LanguageTools.translate_text( text, country, "google" ) except: print_exc() self.googleTrans = False xbmc.executebuiltin( "Dialog.Close(progressdialog)" ) return translated def onClick( self, controlID ): try: self.ContainerId = ( 50, 51 )[ xbmc.getCondVisibility( "Control.IsVisible(51)" ) ] if controlID == self.ContainerId: # get clicked listitem listitem = self.getControl( self.ContainerId ).getSelectedItem() # get position pos = int( listitem.getProperty( "Position" ) ) # get id id = listitem.getProperty( "id" ) if id: CurrentEnglishString = fixe_line_return( listitem.getLabel2(), True ) DefaultText = fixe_line_return( listitem.getLabel(), True ) old_text = DefaultText if self.googleTrans: old_text = self.getTranslate( CurrentEnglishString ) old_text = old_text or DefaultText if ( self.Addon.getSetting( "BoldKB" ) == "true" ): CurrentEnglishString = "[B]%s[/B]" % CurrentEnglishString self.setProperty( "CurrentEnglishString", CurrentEnglishString ) self.setProperty( "ShowCurrentEnglishString", "true" ) kb = xbmc.Keyboard( old_text, self.CurrentLanguage + " (Enter desired string)", False ) kb.doModal() if kb.isConfirmed(): new_text = kb.getText() if new_text != DefaultText: new_text = fixe_line_return( new_text ) self.listitems[ pos ].setLabel( new_text ) self.listitems[ pos ].setProperty( "IsModified", "true" ) self.setProperty( "IsModified", "Language file has been changed!" ) self.IsModified = True self.setProperty( "ShowCurrentEnglishString", "" ) # PAS TRES BON COMME FILTRE :( UnTranslated = self.getControl( 19 ).isSelected() Translated = self.getControl( 20 ).isSelected() Changed = self.getControl( 21 ).isSelected() filter = ( "", "UnTranslated" )[ UnTranslated ] filter = ( filter, "Translated" )[ Translated ] filter = ( filter, "Changed" )[ Changed ] # get selected id for selectitem again, if controlID 22 clicked SelectId = xbmc.getInfoLabel( "Container(50).ListItem.Property(id)" ) or xbmc.getInfoLabel( "Container(51).ListItem.Property(id)" ) if controlID == 19: # UNTRANSLATED BUTTON filter = ( "", "UnTranslated" )[ UnTranslated ] self.setContainer( filter, SelectId ) self.getControl( 19 ).setSelected( UnTranslated ) self.getControl( 20 ).setSelected( False ) self.getControl( 21 ).setSelected( False ) elif controlID == 20: # TRANSLATED BUTTON filter = ( "", "Translated" )[ Translated ] self.setContainer( filter, SelectId ) self.getControl( 20 ).setSelected( Translated ) self.getControl( 19 ).setSelected( False ) self.getControl( 21 ).setSelected( False ) elif controlID == 21: # CHANGED BUTTON filter = ( "", "Changed" )[ Changed ] self.setContainer( filter, SelectId ) self.getControl( 21 ).setSelected( Changed ) self.getControl( 19 ).setSelected( False ) self.getControl( 20 ).setSelected( False ) elif controlID == 22: # VIEW AS BUTTON self.settings[ "viewmode" ] = ( 1, 0 )[ self.settings[ "viewmode" ] ] xbmc.sleep( 50 ) self.setContainer( filter, SelectId ) elif controlID == 13: # SORT BY BUTTON self.settings[ "sortmethod" ] = ( 1, 0 )[ self.settings[ "sortmethod" ] ] self.setSortMethodControl() self.setContainer( filter, SelectId ) elif controlID == 14: # SORT ASC BUTTON self.settings[ "sortorder" ] = ( 1, 0 )[ self.settings[ "sortorder" ] ] self.setContainer( filter, SelectId ) elif controlID == 32: # SETTINGS BUTTON self.Addon = Addon( AddonId ) self.Addon.openSettings() xbmc.sleep( 10 ) if self.settings[ "LanguagePath" ] != self.Addon.getSetting( "LanguagePath" ): self.settings[ "LanguagePath" ] = self.Addon.getSetting( "LanguagePath" ) self.listitems = [] self.setContainer( filter, SelectId ) elif controlID == 33: # FIND BUTTON default = self.getControl( 33 ).getLabel2() kb = xbmc.Keyboard( default, "Find what ...", False ) kb.doModal() if kb.isConfirmed(): find_text = kb.getText() #self.getControl( 33 ).setLabel( "Find", label2=find_text ) self.setProperty( "FindText", find_text ) if find_text:# and find_text != default: for count, li in enumerate( self.listitems ): #l_text = find_text.lower() #match = ( l_text in li.getLabel().lower() ) or ( l_text in li.getLabel2().lower() ) or ( l_text == li.getProperty( "id" ) ) #match = match or ( l_text == li.getLabel().lower() ) or ( l_text == li.getLabel2().lower() ) #if not match: continue if self.findText( find_text, li ): self.getControl( self.ContainerId ).selectItem( count ) self.setFocusId( self.ContainerId ) break elif controlID == 34: # FIND NEXT BUTTON find_next = self.getControl( 33 ).getLabel2().encode( "utf-8" ) pos = self.getControl( self.ContainerId ).getSelectedPosition() for count, li in enumerate( self.listitems ): if count <= pos: continue #if find_next in li.getLabel() or find_next == li.getProperty( "id" ): if self.findText( find_next, li ): self.getControl( self.ContainerId ).selectItem( count ) break except: print_exc() def findText( self, text, listitem ): return re.search( text.lower(), "|".join( [ listitem.getLabel(), listitem.getLabel2(), listitem.getProperty( "id" ) ] ).lower() ) def onAction( self, action ): if action in [ 9, 10 ]: self._close_window() elif action == 117: try: cm = DialogContextMenu( "Translator-DialogContextMenu.xml", CWD, parent=self ) cm.doModal() del cm except: print_exc() else: try: bcode = action.getButtonCode() # keyboard press F3 if bcode == 127138: self.sendClick( 34 ) # except: print_exc() def _close_window( self ): xbmc.executebuiltin( "ActivateWindow(busydialog)" ) if self.settings[ "savefolderviews" ]: self.Addon.setSetting( "viewmode", str( self.settings[ "viewmode" ] ) ) self.Addon.setSetting( "sortmethod", str( self.settings[ "sortmethod" ] ) ) self.Addon.setSetting( "sortorder", str( self.settings[ "sortorder" ] ) ) xbmc.sleep( 10 ) if self.IsModified: # ask for save change xbmc.executebuiltin( "Dialog.Close(busydialog)" ) self._save_change() try: del self.language except: pass self.close() def _save_change( self ): if xbmcgui.Dialog().yesno( "Confirm file save", "Language file has been changed!", self.language.current_xml, "Do you want save your change?", "" ): xbmc.executebuiltin( "ActivateWindow(busydialog)" ) OK = self.language.save_strings() xbmc.executebuiltin( "Dialog.Close(busydialog)" ) if ( self.DefaultFolderLanguage.rstrip( "/" ) == self.FolderLanguage ) or ( xbmc.translatePath( "special://skin/" ) in xbmc.translatePath( self.FolderLanguage ) ): # if default xbmc language file has been changed, # set True, XBMC require Restart or reload language self.RestartXBMC_ReloadLanguage = OK or self.RestartXBMC_ReloadLanguage
def test_isNumber(self): self.h = Numbers(Verb(Language() ),Preposition(Language()) ) self.assertEqual(self.h.isNumber("gxjrc"), True) self.assertEqual(self.h.isNumber("pwdood"), False)
class Ui_MainWindow(object): def setupLog(self): self.log = LogWriter() self.log.resetLog() #sets up basic ui with buttons: manual, graphs, settings and info def setupUi(self, mainWindow): stylesheetFile = "Stylesheet.css" #styling fh = open(stylesheetFile) qstr = str(fh.read()) self.MainWindow = mainWindow #assign mainwindow self.MainWindow.setStyleSheet(qstr) self.MainWindow.setObjectName("MainWindow") self.MainWindow.resize(1000, 650) #setup basic variables self.devices = [] self.currentDevice = None self.setupLog() self.mainQueue = Queue() self.lang = Language(0) #fill mainwindow self.centralwidget = QtWidgets.QWidget(self.MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 90, 650)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("buttonBar") spacerItem = QtWidgets.QSpacerItem(20, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.verticalLayout.addItem(spacerItem) self.addADevice = QtWidgets.QPushButton(self.verticalLayoutWidget) self.addADevice.setObjectName("addADevice") self.addADevice.setFixedSize(90, 90) self.verticalLayout.addWidget(self.addADevice) self.Manual = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Manual.setObjectName("Manual") self.Manual.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Manual) self.Graphs = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Graphs.setObjectName("Graphs") self.Graphs.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Graphs) self.Settings = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Settings.setObjectName("Settings") self.Settings.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Settings) spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem1) self.Info = QtWidgets.QPushButton(self.verticalLayoutWidget) self.Info.setObjectName("Info") self.Info.setFixedSize(90, 90) self.verticalLayout.addWidget(self.Info) spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) self.verticalLayout.addItem(spacerItem2) self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.horizontalLayoutWidget.setGeometry(QtCore.QRect(90, 0, 910, 50)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.Logo = QtWidgets.QLabel(self.horizontalLayoutWidget) self.Logo.setEnabled(True) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Logo.sizePolicy().hasHeightForWidth()) self.Logo.setSizePolicy(sizePolicy) self.Logo.setMinimumSize(QtCore.QSize(0, 0)) self.Logo.setMaximumSize(QtCore.QSize(250, 50)) font = QtGui.QFont() font.setFamily("Calibri") font.setPointSize(16) font.setBold(True) font.setWeight(75) self.Logo.setFont(font) self.Logo.setAutoFillBackground(True) self.Logo.setFrameShape(QtWidgets.QFrame.Box) self.Logo.setFrameShadow(QtWidgets.QFrame.Raised) self.Logo.setObjectName("Logo") pic = QPixmap('rsz_1aerosdev') self.Logo.setPixmap(pic) self.horizontalLayout_2.addWidget(self.Logo) spacerItem3 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem3) self.fSkyTemp = QtWidgets.QFrame(self.horizontalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.fSkyTemp.sizePolicy().hasHeightForWidth()) self.fSkyTemp.setSizePolicy(sizePolicy) self.fSkyTemp.setMinimumSize(QtCore.QSize(180, 100)) self.fSkyTemp.setFrameShape(QtWidgets.QFrame.StyledPanel) self.fSkyTemp.setFrameShadow(QtWidgets.QFrame.Raised) self.fSkyTemp.setObjectName("fSkyTemp") self.Sky = QtWidgets.QLabel(self.fSkyTemp) self.Sky.setGeometry(QtCore.QRect(10, 20, 75, 13)) self.Sky.setObjectName("Sky") self.TempUp = QtWidgets.QLabel(self.fSkyTemp) self.TempUp.setGeometry(QtCore.QRect(100, 20, 75, 13)) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.TempUp.sizePolicy().hasHeightForWidth()) self.TempUp.setSizePolicy(sizePolicy) self.TempUp.setMinimumSize(QtCore.QSize(60, 0)) self.TempUp.setObjectName("TempUp") self.horizontalLayout_2.addWidget(self.fSkyTemp) spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_2.addItem(spacerItem4) self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) self.stackedWidget.setGeometry(QtCore.QRect(90, 50, 910, 600)) # self.stackedWidget.setMinimumSize(QtCore.QSize(600, 600)) #400, 400 # self.stackedWidget.move(100,100) # self.stackedWidget.setStyleSheet("background-color: black") # sets up maingrid and adds it to stacked widget self.page0 = QtWidgets.QWidget(self.MainWindow) self.mainGrid = MainGrid(self.page0, self.devices) self.stackedWidget.addWidget(self.mainGrid.page0) #sets up pages self.setupSettingsWindow() self.setupEnterDevice() self.setupGraphsWindow() self.setupManual() #sets starting page self.stackedWidget.setCurrentIndex(0) #binds functions to mainwindow buttons self.addADevice.clicked.connect(lambda: self.setIndex(2)) self.Manual.clicked.connect(lambda: self.setIndex(4)) self.Graphs.clicked.connect(lambda: self.setIndex(3)) self.Settings.clicked.connect(lambda: self.setIndex(1)) self.Info.clicked.connect(self.showInfo) QtCore.QMetaObject.connectSlotsByName(self.MainWindow) self.MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(0) def setIndex(self, index): try: self.stackedWidget.setCurrentIndex(index) # update devices # empty devicesBox self.devicesBox.clear() self.devicesBoxGraphs.clear() self.devicesBoxManual.clear() # fill devicesBox for device in self.devices: self.devicesBox.addItem(device.name) self.devicesBoxGraphs.addItem(device.name) self.devicesBoxManual.addItem(device.name) #assign function to startRoll button if a device exist if len(self.devices) > 0: self.startRoll.setDisabled(False) if self.currentDevice.status == 1: self.startRoll.clicked.connect(lambda: self.rollOut) self.startRoll.setText(self.lang.but_StartRollOut) elif self.currentDevice.status == 0: self.startRoll.clicked.connect(lambda: self.rollUp) self.startRoll.setText(self.lang.but_startRollUp) except Exception as e: print(e) #set the selected sensortype def setSensorType(self, type): self.sensorType = type #change the minimum value of the current device def changeMinVal(self, minVal): try: if self.checkStringForNumber(minVal): self.currentDevice.minVal = int(minVal) self.log.writeInLog("i", "Minimum value from " + self.currentDevice.name + " changed to " + minVal) else: if minVal == "aeros development": self.showPopup("e", self.lang.pop_TitleEasterEgg, self.lang.pop_TextEasterEgg) self.log.writeInLog("i", "EASTER EGG FOUND!!!") self.showPopup("e", self.lang.pop_TitleNotValidNumber, self.lang.pop_TextNotValidNumber) except: self.showPopup("e", self.lang.pop_TitleDevNotAttached, self.lang.pop_TextDevNotAttached) def checkStringForNumber(self, string): numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] chrs = list(string) if len([chr for chr in chrs if chr not in numbers]) > 0: return False return True # sets up settingswidget that shows the settings def setupSettingsWindow(self): try: self.page1 = QtWidgets.QWidget() self.settingsWindowWidget = QtWidgets.QWidget(self.page1) self.settingsWindowWidget.setMinimumSize(QtCore.QSize(400, 160)) self.settingsWindowWidget.setMaximumSize(QtCore.QSize(400, 160)) layout = QtWidgets.QFormLayout(self.settingsWindowWidget) # self.minLight = QtWidgets.QLineEdit(self.settingsWindowWidget) # self.minTemp = QtWidgets.QLineEdit(self.settingsWindowWidget) self.minVal = QtWidgets.QLineEdit(self.settingsWindowWidget) self.minVal.setText("0") self.chgMinVal = QtWidgets.QPushButton(self.settingsWindowWidget) self.chgMinVal.setText(self.lang.but_ChgMinVal) self.chgMinVal.clicked.connect(lambda: self.changeMinVal(self.minVal.text())) self.goBack = QtWidgets.QPushButton(self.settingsWindowWidget) self.goBack.setText(self.lang.but_Ok) self.goBack.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0)) self.devicesBox = QtWidgets.QComboBox(self.settingsWindowWidget) for device in self.devices: self.devicesBox.addItem(device.name) self.devicesBox.activated[str].connect(self.setCurrentDevice) self.languageBox = QtWidgets.QComboBox(self.settingsWindowWidget) self.languageBox.addItem("English") self.languageBox.addItem("Nederlands") #could add more languages self.languageBox.activated[str].connect(self.changeLanguage) layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.minVal) # layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.minTemp) layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.chgMinVal) # layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.chgMinTemp) layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.goBack) layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.devicesBox) layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.languageBox) # self.stackedWidget.insertWidget(1,self.page_1) self.stackedWidget.addWidget(self.page1) self.log.writeInLog("i", "Page 1: settings window created") except Exception as e: print(e) self.log.writeInLog("w", "Could not create page 1: settings window") #change the language, def changeLanguage(self, lang): if lang == "English": self.retranslateUi(0) elif lang == "Nederlands": self.retranslateUi(1) #setup page3 containing the graph def setupGraphsWindow(self): try: self.page3 = QtWidgets.QWidget() self.graphWidget = QtWidgets.QWidget(self.page3) self.graphWidget.setGeometry(QtCore.QRect(50, 50, 400, 500)) self.graphWidget.setMinimumSize(QtCore.QSize(600, 600)) self.canvas = PlotCanvas(self.graphWidget) self.goBack2 = QtWidgets.QPushButton(self.graphWidget) self.goBack2.setText(self.lang.but_Ok) self.goBack2.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0)) self.goBack2.move(450, 400) self.update = QtWidgets.QPushButton(self.graphWidget) self.update.setText(self.lang.but_Update) self.update.clicked.connect(self.fillGraph) self.update.move(450, 375) self.devicesBoxGraphs = QtWidgets.QComboBox(self.graphWidget) for device in self.devices: self.devicesBoxGraphs.addItem(device.name) self.devicesBoxGraphs.move(450, 0) self.devicesBoxGraphs.activated[str].connect(self.setCurrentDevice) self.stackedWidget.addWidget(self.page3) self.log.writeInLog("i", "Page 3: graphs window created") except: self.log.writeInLog("w", "Could not create page 3: graphs window") #fill graph def fillGraph(self): dataList = [] try: q = self.currentDevice.getQueue() except:# Exception as e: #print(e) self.showPopup("e", self.lang.pop_TitleDevNotAttached, self.lang.pop_TextDevNotAttached) return # fill graph #print("test1") #print("test2") #print(self.currentDevice.queue.get()) transmis = None try: for i in range(10): #transmis = q.get(True, 2) if transmis == None: if self.currentDevice.sensorType == "Light": dataList.append(random.uniform(50,100)) elif self.currentDevice.sensorType == "Temperature": dataList.append(random.uniform(20,25)) else: self.log.writeInLog("i", "Data from " + self.currentDevice.name + " received: " + str(transmis)) dataList.append(transmis) #time.sleep(1) except: pass try: #print("test6") self.canvas.plot(dataList, self.currentDevice.sensorType) #time.sleep(1) except Exception as e: print(e) #setup page2 containing the settingswindow def setupEnterDevice(self): try: self.page2 = QtWidgets.QWidget() self.sensorType = "" self.enterDeviceWidget = QtWidgets.QWidget(self.page2) self.enterDeviceWidget.setMinimumSize(QtCore.QSize(400, 300)) self.enterDeviceWidget.setMaximumSize(QtCore.QSize(400, 300)) layout = QtWidgets.QFormLayout(self.enterDeviceWidget) namelabel = QLabel(self.lang.lab_Name) # lightlabel = QLabel("Min light") # templabel = QLabel("Min temp") valuelabel = QLabel(self.lang.lab_MinVal) maxRollLengthLabel = QLabel(self.lang.lab_MaxRollLength) portlabel = QLabel(self.lang.lab_PortNum) sensorlabel = QLabel(self.lang.lab_SensorType) self.name = QtWidgets.QLineEdit(self.enterDeviceWidget) # .setText("") # self.light = QtWidgets.QLineEdit(self.enterDeviceWidget)#.setText("0") # self.temp = QtWidgets.QLineEdit(self.enterDeviceWidget)#.setText("0") self.port = QtWidgets.QLineEdit(self.enterDeviceWidget) # .setText("COM0") self.value = QtWidgets.QLineEdit(self.enterDeviceWidget) self.maxRollLength = QtWidgets.QLineEdit(self.enterDeviceWidget) self.name.setText("") # self.light.setText("0") # self.temp.setText("0") self.maxRollLength.setText("0") self.value.setText("0") self.port.setText("COM0") self.name.setMaximumSize(QtCore.QSize(100, 200)) # self.light.setMaximumSize(QtCore.QSize(100,200)) # self.temp.setMaximumSize(QtCore.QSize(100,200)) self.value.setMaximumSize(QtCore.QSize(100, 200)) self.maxRollLength.setMaximumSize(QtCore.QSize(100, 200)) self.port.setMaximumSize(QtCore.QSize(100, 200)) self.sensor = QtWidgets.QComboBox(self.enterDeviceWidget) self.sensor.addItem(self.lang.selBox_light) self.sensor.addItem(self.lang.selBox_temp) self.sensor.setMaximumSize(QtCore.QSize(100, 200)) self.sensor.activated[str].connect(self.setSensorType) self.addDevice = QtWidgets.QPushButton(self.enterDeviceWidget) self.addDevice.setText(self.lang.but_AddDevice) self.addDevice.setMaximumSize(QtCore.QSize(120, 300)) self.addDevice.clicked.connect(self.addDeviceNoPar) self.goBack3 = QtWidgets.QPushButton(self.enterDeviceWidget) self.goBack3.setText(self.lang.but_Ok) self.goBack3.setMaximumSize(QtCore.QSize(100, 200)) self.goBack3.clicked.connect(lambda: self.setIndex(0)) layout.addRow(namelabel, self.name) # layout.addRow(lightlabel, self.light) # layout.addRow(templabel, self.temp) layout.addRow(valuelabel, self.value) layout.addRow(maxRollLengthLabel, self.maxRollLength) layout.addRow(portlabel, self.port) layout.addRow(sensorlabel, self.sensor) layout.addRow(self.addDevice, self.goBack3) # self.stackedWidget.insertWidget(2,self.page_2) self.setSensorType("Light") self.stackedWidget.addWidget(self.page2) self.log.writeInLog("i", "Page 2: enter device window created") except: self.log.writeInLog("w", "Could not create Page 2: enter device window") # makes inputdialog in which you can enter a percentage #setup page4 containing the manual mode window def setupManual(self): try: self.page4 = QtWidgets.QWidget() self.manualWidget = QtWidgets.QWidget(self.page4) layout = QtWidgets.QFormLayout(self.manualWidget) self.startRoll = QtWidgets.QPushButton(self.manualWidget) self.startRoll.setText(self.lang.but_StartRoll) self.startRoll.setDisabled(True) self.devicesBoxManual = QtWidgets.QComboBox(self.manualWidget) for device in self.devices: self.devicesBoxManual.addItem(device.name) self.devicesBoxManual.activated[str].connect(self.setCurrentDevice) self.ok = QtWidgets.QPushButton(self.manualWidget) self.ok.setText(self.lang.but_Ok) self.ok.setMaximumSize(QtCore.QSize(100, 200)) self.ok.clicked.connect(lambda: self.setIndex(0)) layout.addRow(self.devicesBoxManual, self.startRoll) layout.addRow(self.ok, self.ok) self.manualWidget.setLayout(layout) self.stackedWidget.addWidget(self.page4) self.log.writeInLog("i", "Page 4: manual window created") except Exception as e: print(e) self.log.writeInLog("w", "Could not create Page 4: manual window") #roll out the selected device def rollOut(self): self.showPopup("i", self.lang.pop_TitleRollOut, self.currentDevice.name + self.lang.pop_TextRollOut) self.log.writeInLog("i", self.currentDevice.name + " rolled out") self.currentDevice.rollDown() self.currentDevice.status = 0 self.updateMaingrid(self.MainWindow) #roll up the selected device def rollUp(self): self.showPopup("i", self.lang.pop_TitleRollUp, self.currentDevice.name + self.lang.pop_TextRollUp) self.log.writeInLog("i", self.currentDevice.name + " rolled up") self.currentDevice.rollUp() self.currentDevice.status = 1 self.updateMaingrid(self.MainWindow) #connect to the device and add it to the dashboard def addDeviceNoPar(self): if not self.checkStringForNumber(self.name.text()): nameRes = self.name.text() else: self.showPopup("e", self.lang.pop_TitleNotValidName, self.lang.pop_TextNotValidName) self.name.setText("") return if "COM" in self.port.text(): portRes = self.port.text() else: self.showPopup("e", self.lang.pop_TitleNotValidPort, self.lang.pop_TextNotValidPort) self.port.setText("COM0") return if self.checkStringForNumber(self.value.text()): valRes = int(self.value.text()) else: self.showPopup("e", self.lang.pop_TitleNotValidNumber, self.lang.pop_TextNotValidNumber) self.value.setText("0") return try: maxRollRes = float(self.maxRollLength.text()) except: self.showPopup("e", self.lang.pop_TitleNotValidNumber, self.lang.pop_TextNotValidNumber) self.maxRollLength.setText("0") return self.name.setText("") self.port.setText("COM0") self.value.setText("0") self.maxRollLength.setText("0") if nameRes == "": self.showPopup("e", self.lang.pop_TitleNoName, self.lang.pop_TextNoName) return for device in self.devices: if device.name == nameRes: self.showPopup("e", self.lang.pop_TitleDupNames, self.lang.pop_TextDupNames) self.name.setText("") return try: newDevice = Device(nameRes, portRes, self.sensorType, valRes, maxRollRes, self.mainQueue) # lightRes, tempRes) self.devices.append(newDevice) self.setCurrentDevice(self.devices[0].name) try: receiving = Thread(target=self.currentDevice.receive) receiving.daemon = True receiving.start() except Exception as e: print(e) self.log.writeInLog("i", "New device added: name: " + nameRes + " | Port: " + portRes + " | Sensor type: " + self.sensorType + " | Minimum value: " + str( valRes) + " | Max roll length: " + str(maxRollRes)) self.showPopup("i", self.lang.pop_TitleNewDevice, self.lang.pop_TextNewDevice_1 + nameRes + self.lang.pop_TextNewDevice_2) try: self.updateMaingrid(self.MainWindow) except Exception as e: print(e) except Exception as e: print(e) self.log.writeInLog("w", "Could not add device: " + nameRes) self.showPopup("e", self.lang.pop_TitleNoNewDevice, self.lang.pop_TextNoNewDevice) newDevice = None #show a popup, can be error or info def showPopup(self, type, popupText, popupIText): popup = QMessageBox() if type == "e": popup.setIcon(QMessageBox.Critical) popup.setWindowTitle("Error") self.log.writeInLog("w", "Error popup shown: " + popupText + " | " + popupIText) elif type == "i": popup.setIcon(QMessageBox.Information) popup.setWindowTitle("Info") self.log.writeInLog("i", "Information popup shown: " + popupText + " | " + popupIText) popup.setText(popupText) popup.setInformativeText(popupIText) popup.exec() #set the current selected device def setCurrentDevice(self, name): for device in self.devices: if device.name == name: self.currentDevice = device # sets te text in the given language def retranslateUi(self, type): # choose language self.lang.setLang(type) _translate = QtCore.QCoreApplication.translate self.MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.addADevice.setText(_translate("MainWindow", self.lang.but_AddADevice)) self.Manual.setText(_translate("MainWindow", self.lang.but_Manual)) self.Graphs.setText(_translate("MainWindow", self.lang.but_Graphs)) self.Settings.setText(_translate("MainWindow", self.lang.but_Settings)) self.Info.setText(_translate("MainWindow", self.lang.but_Info)) self.Sky.setText(_translate("MainWindow", self.lang.lab_Sky)) self.TempUp.setText(_translate("MainWindow", self.lang.lab_Temp)) self.startRoll.setText("Roll out") self.startRoll.setText("Roll up") self.goBack.setText(self.lang.but_Ok) self.chgMinVal.setText(self.lang.but_ChgMinVal) self.goBack2.setText(self.lang.but_Ok) self.update.setText(self.lang.but_Update) self.addDevice.setText(self.lang.but_AddDevice) self.sensor.clear() self.sensor.addItem(self.lang.selBox_light) self.sensor.addItem(self.lang.selBox_temp) self.goBack3.setText(self.lang.but_Ok) self.startRoll.setText(self.lang.but_StartRoll) self.ok.setText(self.lang.but_Ok) # Makes popup with info def showInfo(self): self.showPopup("i", self.lang.pop_TitleInfo, self.lang.pop_TextInfo) #update the maingrid def updateMaingrid(self, MainWindow): self.page0.setParent(None) self.page0 = QtWidgets.QWidget(MainWindow) self.mainGrid = MainGrid(self.page0, self.devices) self.stackedWidget.insertWidget(0, self.mainGrid.page0) # this changed right
programma_grammar.addLexicalReduction(LexicalReduction((None, "?"), ("kw", True, True, True, True), (False, True, False))) # Identifiers: programma_grammar.addLexicalReduction(LexicalReduction((None, "?"), ("id", True, True, True, False), (False, False, True))) programma_grammar.addLexicalReduction(LexicalReduction(("id", "?"), ("id", False, True, True, False), (False, False, True))) programma_grammar.addLexicalReduction(LexicalReduction(("id", "?"), ("id", False, False, False, True))) programma_grammar.parsePhrasalGrammar(GrammarLexer( ''' ''')) programma_categories = [] programma = Language(programma_grammar, programma_categories) # We'd like to get the following: # Generate a conversion procedure from input text to lexable binary. # Generate a lexer # Generate a parser # Generate a full language specification # Generate a full compiler # Generate some valid programs # Roadmap: # 1. Debug the stuff that outputs lexer_grammar.tex # 2. Start building the grammar and attach all the necessary stuff to it. # This is about language design, not necessarily the framework so much. # ...
def test_isPreposition(self): self.h = Preposition(Language()) self.assertEqual(self.h.isPreposition("puxod"), False) self.assertEqual(self.h.isPreposition("puxood"), False) self.assertEqual(self.h.isPreposition("pwdood"), True)
def test_isVerb(self): self.h = Verb( Language() ) self.assertEqual(self.h.isVerb("xoxo"), False) self.assertEqual(self.h.isVerb("xoxox"), False) self.assertEqual(self.h.isVerb("xoxoxo"), True) self.assertEqual(self.h.isVerb("xoxoxs"), False)
def test_isInLanguage(self): self.h = Language() self.assertEqual(self.h.isInLanguage("xoxox"), True)
def __init__(self, runFileName): Language.__init__(self, runFileName)
def __init__(self, n_len): self.core = Language(path, n_len)