def test_sms_sender(properties, deliver, channel, twilio_client, message, to, fixed_to): config = ConfigManager().configuration handler = MessageHandler(**config.get("sms")) handler.client = twilio_client consumer = MessageConsumer(handler, **config.get("rabbit")) consumer._handle_message(channel, deliver, properties, json.dumps({ "receiver_phones": to, "message": message }).encode("utf8")) twilio_client.messages.create.assert_called_once_with(body=message, from_=config.get("sms").get("sender"), to=fixed_to)
def setParams(self): ta=FreeCAD.ParamGet('User parameter:Plugins') ta.SetString("pluginlist","") pluginlist=[] for k in self.config.keys(): if not self.config[k]['status'] == 'ignore': t=FreeCAD.ParamGet('User parameter:Plugins/'+k) pcm=ConfigManager(k) hide=pcm.get('_hide_',False) if hide: continue pluginlist.append(k) t.SetString("name",self.config[k]["name"]) if self.config[k].has_key("author"): t.SetString("author",self.config[k]["author"]) t.SetString("destination",self.config[k]["destdir"]) t.SetInt('installed',1) itemlist=[] if self.config[k].has_key('menuitems'): for menu in self.config[k]['menuitems'].keys(): itemlist.append(menu) tm=FreeCAD.ParamGet('User parameter:Plugins/'+k+'/'+menu) tm.SetString("exec",self.config[k]['menuitems'][menu]['exec']) if self.config[k].has_key('menu'): menu=self.config[k]['menu'] itemlist.append(menu) tm=FreeCAD.ParamGet('User parameter:Plugins/'+k+'/'+menu) tm.SetString("exec",self.config[k]['exec']) ms=";".join(itemlist) if ms <>"": t.SetString("menulist",ms) ps=";".join(pluginlist) ta.SetString("pluginlist",ps)
def __init__(self): mcf='' config3={} try: say("pluginmanager config file "+ fn) stream = open(fn, 'r').read() try: z=ConfigManager('') fn2=z.get('userconfigfile',"/usr/lib/freecad/Mod/plugins/myconfig.yaml") say("pluginmanager userconfig file "+ fn2) mcf = open(fn2, 'r').read() except: sayexc("userconfigfile not available",True) all=stream + mcf config3 = yaml.load(all) # config3=set_defaults(config3) except: sayexc("Error in " + fn2,True) say("Try only:" + fn) config3 = yaml.load(stream) config3=set_defaults(config3) for plin in config3['plugins'].keys(): for k in config3['plugins'][plin].keys(): if config3['plugins'][plin][k] and config3['plugins'][plin][k].__class__ == dict: print "dict" print config3['plugins'][plin][k] if os in config3['plugins'][plin][k].keys(): # replace config3['plugins'][plin][k]=config3['plugins'][plin][k][os] for att in ['destdir','exec','icon','backup']: try: config3['plugins'][plin][att]=pathMacro(config3['plugins'][plin][att]) except: sayexc(config3['data'][plin][att]) if plin=='defaulttest': pprint.pprint(config3['plugins'][plin]) for plin in config3['data'].keys(): for att in ['destdir','exec','icon','backup']: if config3['data'][plin].has_key(att): try: config3['data'][plin][att]=pathMacro(config3['data'][plin][att]) except: sayexc(config3['data'][plin][att]) self.config=config3['plugins'] self.base=config3['base'] self.config3=config3 self.keys=self.config.keys #---------------------------- if config3.has_key('keys') and config3['keys'].has_key("keyserver"): try: for ku in config3['keys']['keyserver'].keys(): yy=transformkeytree(config3['keys']['keyserver'][ku]) config3['keys']['keyserver'][ku]=yy except: sayexc()
def exe_query(self, file_name, serv_name, base_name, db_query): conf = ConfigManager("config/" + file_name + ".yaml") cnf = conf.get(serv_name) conn = cnf["connection"] database = cnf["databases"][base_name] if conn["type"] == "ssh": cmd = self.connect_command_builder(conn, 'no') common.conn.send(cmd) ans = None while ans == None: ans = common.conn.get_state() status, hostname, db_port = ans.split("_") adr = "localhost" if status == "ok": #udało się utworzyć tunel self.psycop_query(database["name"], database["user"], conf.get_password(serv_name + '.' + base_name), adr, db_port, db_query) else: print('--------------------') print('Error: Unable to create ssh tunnel') print('--------------------') elif conn["type"] == "direct": self.psycop_query(database["name"], database["user"], conf.get_password(serv_name + '.' + base_name), conn["adress"], conn["remoteport"], db_query)
def create_command(server,perm): conf = ConfigManager("config/lista_test.yaml") connection = conf.get(server)["connection"] try: cmd = connect_command_builder(connection,perm) except KeyError: cmd = None return cmd
def do_perm(self,arg): "Create permament ssh tunnel\n\tUsage:\tperm <list>.<server>\t(make permament tunnel to server)" params = arg.split(".") conf = ConfigManager("config/"+params[0]+".yaml") try: connection = conf.get(params[1])["connection"] ret = send_command(self.connect_command_builder(connection,"yes")) print (ret) except KeePassError as e: print("Connecting to" , connection["adress"], "[", e, "]")
def test_email_sender(properties, deliver, channel, server, sender, recipients, subject, message): def _build_server(): return server config = ConfigManager().configuration handler = MessageHandler(**config.get("smtp")) handler._build_server = _build_server consumer = MessageConsumer(handler, **config.get("rabbit")) consumer._handle_message( channel, deliver, properties, json.dumps({ "receiver_emails": recipients, "message_html": message, "title": subject }).encode("utf8")) server.sendmail.assert_called_once_with(sender, '*****@*****.**', ANY)
def __init__(self, master, *args): QtGui.QWidget.__init__(self, *args) self.master = master #if hasattr(FreeCAD,"mywidget"): # FreeCAD.mywidget.hide() FreeCAD.mywidget = self self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.config = master.config self.vollabel = QtGui.QLabel('1. Select Packages ...') self.vollabel2 = QtGui.QLabel('2. Show Package Info ...') self.lab2 = QtGui.QLabel(str(datetime.now())) self.vollabel3 = QtGui.QLabel('3. Install/Update ...') self.pushButton02 = QtGui.QPushButton() self.pushButton02.clicked.connect(self.on_pushButton02_clicked) self.pushButton02.setText("Display ") self.pushButton03 = QtGui.QPushButton() self.pushButton03.clicked.connect(self.on_pushButton03_clicked) self.pushButton03.setText("Run") self.listWidget = QtGui.QListWidget() self.listWidget.setSelectionMode( QtGui.QAbstractItemView.MultiSelection) kl = self.config.keys() say(kl) for k in sorted(kl): pcm = ConfigManager(k) hide = pcm.get('_hide_', False) if not self.config[k]['status'] == "ignore" and not hide: item = QtGui.QListWidgetItem(k) self.listWidget.addItem(item) layout = QtGui.QGridLayout() self.setStyleSheet( "QListWidget,QPushButton {background-color: lightblue;color:brown;} " ) line = 4 layout.addWidget(self.vollabel, 0, 0) line = 3 layout.addWidget(self.listWidget, line, 0, 1, 4) line += 1 layout.addWidget(self.vollabel2, line, 0) line += 1 layout.addWidget(self.lab2, line, 0) line += 1 layout.addWidget(self.pushButton02, line, 0, 1, 4) line += 1 layout.addWidget(self.vollabel3, line, 0) line += 1 layout.addWidget(self.pushButton03, line, 0, 1, 4) line += 1 line += 1 self.setLayout(layout) self.setWindowTitle("Plugin Loader" + __vers__)
def do_connect(self, arg): """Create ssh tunnels\n\tUsage:\tconnect\t\t\t(connect using all server lists) connect list\t\t(connect using list) connect list.server\t(connect to server from list)""" if arg == "": # if no args connect to all print ("Connect to all") ans = input("Are you sure?[NO/yes/info]: ") lists = [] for file in os.listdir("config"): if file.endswith(".yaml"): list_name = file.title()[:file.rfind(".")] lists.append(list_name) if ans == "info": print ("Lists with servers to connect:") for l in lists: print(l) elif ans == "yes": for l in lists: print("Connecting(",l,")") self.connectList("config/" + l + ".yaml") else: print("Aborted") else: params = arg.split(".") if len(params) == 1: print ("connect list...") self.connectList("config/"+params[0]+".yaml") elif len(params) == 2: print ("connect serv...") try: conf = ConfigManager("config/"+params[0]+".yaml") connection = conf.get(params[1])["connection"] command = self.connect_command_builder(connection,"no") try: conn.send(command) t = None while t == None: t = conn.get_state() print(t) except AttributeError as e: print("Connection to ssh shepherd error!",e) except ConfigManagerError as e: print (e) except KeePassError as e: print("Connecting to" , connection["adress"], "[", e, "]") except Exception as e: print (e) else: print ("error")
def test_http_sender_queue(properties, deliver, channel, message, url, format): # Add message to queue message_raw = {"url": url, "message": message, "format": format} config = ConfigManager().configuration message_handler = MessageHandler() consumer = MessageConsumer(message_handler, **config.get("rabbit")) message_handler._send_http_post = MagicMock() consumer._handle_message(channel, deliver, properties, json.dumps(message_raw).encode("utf8")) assert message_handler._send_http_post.called
def test5_disconnect(self): conf = ConfigManager("config/lista_test.yaml") connection = conf.get("ShouldBeOK")["connection"] try: cmd = connect_command_builder(connection,"no") except KeyError as e: self.fail("KeyError" + e) ans = send_command(cmd) status = ans.split("_")[0] if status != "ok": self.fail("Unable to create tunnel") dc = cmd.split("_")[0] + ":" + cmd.split("_")[4] ans = send_command("clean;" + dc) to_find = connection["adress"] + ":" + str(connection["remoteport"]) self.assertEqual(-1, ans.find(to_find))
def gentoolbars(self, workbench='init'): global pathMacro cf = self.pluginloader.config say("gentoolbars ...") if self.pluginloader.config3["toolbars"].has_key(workbench): # say("toolbars for ----------------------" + workbench) for ky in sorted( self.pluginloader.config3["toolbars"][workbench].keys()): #say(ky) cma = ConfigManager("__toolbars__/" + workbench + "/" + ky) funhide = cma.get("_hide_", False) if funhide: say("toolbar ignore item " + ky) continue try: mw = FreeCAD.Gui.getMainWindow() mw.toolbar = mw.addToolBar(workbench + ': ' + ky) mw.toolbar.setWindowTitle("Personal " + workbench + ': ' + ky) #exitAction = QtGui.QAction('Exit 2', FreeCAD.Gui.getMainWindow()) #exitAction.setShortcut('.') #exitAction.triggered.connect(QtGui.qApp.quit) #mw.toolbar.addAction(exitAction) mw.toolbar.show() toolbarBox = mw.toolbar except Exception: sayexc("exception add Tool Bar") for tool in sorted(self.pluginloader.config3["toolbars"] [workbench][ky].keys()): say(tool) yy = self.pluginloader.config3["toolbars"][workbench][ky][ tool] myAction2 = QtGui.QAction(QtGui.QIcon(yy['icon']), tool, mw) myAction2.setToolTip(tool) try: cmd = yy['exec'] except: cmd = "say('" + str(yy) + "')" yy = MyAction2(pathMacro(cmd)) myAction2.yy = yy myAction2.triggered.connect(yy.run) toolbarBox.addAction(myAction2) toolbarBox.show() self.toolbars.append(toolbarBox) say(ky + " done")
def __init__(self, master,*args): QtGui.QWidget.__init__(self, *args) self.master=master FreeCAD.mywidget=self self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) self.config=master.config self.vollabel = QtGui.QLabel('1. Select Packages ...') self.vollabel2 = QtGui.QLabel('2. Show Package Info ...') self.lab2 = QtGui.QLabel(str(datetime.now())) self.vollabel3 = QtGui.QLabel('3. Install/Update ...') self.pushButton02 = QtGui.QPushButton() self.pushButton02.clicked.connect(self.on_pushButton02_clicked) self.pushButton02.setText("Display ") self.pushButton03 = QtGui.QPushButton() self.pushButton03.clicked.connect(self.on_pushButton03_clicked) self.pushButton03.setText("Run") self.listWidget = QtGui.QListWidget() self.listWidget.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) kl=self.config.keys() say(kl) for k in sorted(kl): pcm=ConfigManager(k) hide=pcm.get('_hide_',False) if not self.config[k]['status'] == "ignore" and not hide: item = QtGui.QListWidgetItem(k) self.listWidget.addItem(item) layout = QtGui.QGridLayout() self.setStyleSheet("QListWidget,QPushButton {background-color: lightblue;color:brown;} ") line=4 layout.addWidget(self.vollabel, 0, 0) line=3 layout.addWidget(self.listWidget, line, 0,1,4) line+=1 layout.addWidget(self.vollabel2, line, 0) line+=1 layout.addWidget(self.lab2, line, 0) line+=1 layout.addWidget(self.pushButton02, line, 0,1,4) line+=1 layout.addWidget(self.vollabel3, line, 0) line+=1 layout.addWidget(self.pushButton03, line, 0,1,4) line+=1 line+=1 self.setLayout(layout) self.setWindowTitle("Plugin Loader" + __vers__)
def setParams(self): ta = FreeCAD.ParamGet('User parameter:Plugins') ta.SetString("pluginlist", "") pluginlist = [] for k in self.config.keys(): if not self.config[k]['status'] == 'ignore': t = FreeCAD.ParamGet('User parameter:Plugins/' + k) pcm = ConfigManager(k) hide = pcm.get('_hide_', False) if hide: continue pluginlist.append(k) #say("--") #say(k) #say(self.config[k]) #say(self.config[k]["name"]) t.SetString("name", self.config[k]["name"]) if self.config[k].has_key("author"): t.SetString("author", self.config[k]["author"]) t.SetString("destination", self.config[k]["destdir"]) t.SetInt('installed', 1) itemlist = [] if self.config[k].has_key('menuitems'): for menu in self.config[k]['menuitems'].keys(): #say(menu) itemlist.append(menu) tm = FreeCAD.ParamGet('User parameter:Plugins/' + k + '/' + menu) tm.SetString("exec", self.config[k]['menuitems'][menu]['exec']) else: #say("keine menuitmes") pass if self.config[k].has_key('menu'): menu = self.config[k]['menu'] #say(menu) itemlist.append(menu) tm = FreeCAD.ParamGet('User parameter:Plugins/' + k + '/' + menu) tm.SetString("exec", self.config[k]['exec']) ms = ";".join(itemlist) if ms <> "": t.SetString("menulist", ms) ps = ";".join(pluginlist) ta.SetString("pluginlist", ps)
def gentoolbars(self,workbench='init'): global pathMacro cf=self.pluginloader.config say("gentoolbars ...") if self.pluginloader.config3["toolbars"].has_key(workbench): # say("toolbars for ----------------------" + workbench) for ky in sorted(self.pluginloader.config3["toolbars"][workbench].keys()): #say(ky) cma=ConfigManager("__toolbars__/" + workbench +"/" + ky) funhide=cma.get("_hide_",False) if funhide: say("toolbar ignore item " + ky) continue try: mw=FreeCAD.Gui.getMainWindow() mw.toolbar = mw.addToolBar(workbench +': ' + ky) mw.toolbar.setWindowTitle("Personal " + workbench +': ' +ky) #exitAction = QtGui.QAction('Exit 2', FreeCAD.Gui.getMainWindow()) #exitAction.setShortcut('.') #exitAction.triggered.connect(QtGui.qApp.quit) #mw.toolbar.addAction(exitAction) mw.toolbar.show() toolbarBox=mw.toolbar except Exception: sayexc("exception add Tool Bar") for tool in sorted(self.pluginloader.config3["toolbars"][workbench][ky].keys()): say(tool) yy=self.pluginloader.config3["toolbars"][workbench][ky][tool] myAction2=QtGui.QAction(QtGui.QIcon(yy['icon']),tool ,mw) myAction2.setToolTip(tool) try: cmd=yy['exec'] except: cmd="say('"+str(yy)+"')" yy=MyAction2(pathMacro(cmd)) myAction2.yy=yy myAction2.triggered.connect(yy.run) toolbarBox.addAction(myAction2) toolbarBox.show() self.toolbars.append(toolbarBox) say(ky +" done")
def connectList(self, listFile): try: conf = ConfigManager(listFile) except Exception as e: print ("No conf file", listFile) return 1 server_list = [] for server in conf.get_list(): server_list.append(server) connection_list ={} for server in server_list: connection = conf.get(server)["connection"] try: command = self.connect_command_builder(connection,"no") try: conn.send(command) t = None while t == None: t = conn.get_state() #status_adres_localport server_status = t.split("_") try: connection_list[server_status[1]]=server_status[2] print("Connecting to" , connection["adress"], "[", server_status[0], "]") except IndexError as e: print(t) except AttributeError as e: print("Connection to ssh shepherd error!",e) except KeePassError as e: print("Connecting to" , connection["adress"], "[", e, "]") except KeyError as e: print("Connecting to" , connection["adress"], "[", e, "]") except Exception as e: print (e)
def genlabels(self): cf = self.pluginloader.config try: self.tabs.deleteLater() except: pass if self.pluginloader.config3.has_key("tabs"): tabs = QtGui.QTabWidget() kl = sorted(self.pluginloader.config3["tabs"].keys()) # where to place the tabs - still hard coded mode = "north" if self.pluginloader.config3['base'].has_key('tablocation'): mode = self.pluginloader.config3['base']['tablocation'] if mode == "west": tabs.setTabPosition(QtGui.QTabWidget.West) kl.reverse() if mode == "east": tabs.setTabPosition(QtGui.QTabWidget.East) kl.reverse() for ky in kl: import re cmt = ConfigManager("__tabs__/" + ky) hide = cmt.get("_hide_", False) if hide: say("ignore tab " + ky) continue tab1 = QtGui.QWidget() pat = r"[0123456789]+ +(.*)" m = re.match(pat, ky) if m: kyk = m.group(1) else: kyk = ky tabs.addTab(tab1, kyk) vBoxlayout = QtGui.QVBoxLayout() vBoxlayout.setAlignment(QtCore.Qt.AlignTop) head = QtGui.QLabel(kyk.upper()) vBoxlayout.addWidget(head) head.setStyleSheet("QWidget { font: bold 18px;color:brown;}") if self.pluginloader.config3['tabs'][ky].has_key("info"): info = QtGui.QLabel( self.pluginloader.config3['tabs'][ky]["info"]) vBoxlayout.addWidget(info) for fun in sorted( self.pluginloader.config3["tabs"][ky].keys()): cma = ConfigManager("__tabs__/" + ky + "/" + fun) funhide = cma.get("_hide_", False) if funhide: say("ignore item " + fun) continue ff = self.pluginloader.config3["tabs"][ky][fun] if fun == 'info': continue import re pat = r"[0123456789]+[\.]? +(.*)" m = re.match(pat, fun) if m: funk = m.group(1) else: funk = fun if ff.has_key('icon'): pushButton1 = QtGui.QPushButton( QtGui.QIcon(ff['icon']), funk) else: pushButton1 = QtGui.QPushButton( QtGui.QIcon( FreeCAD.ConfigGet('AppHomePath') + '/Mod/plugins/icons/sun.png'), funk) if ff.has_key('info'): pushButton1.setToolTip(ff['info']) try: cmd = ff['exec'] except: cmd = "say('" + str(ff) + "')" yy = MyAction2(cmd) yy = MyAction2(pathMacro(cmd)) pushButton1.yy = yy pushButton1.clicked.connect(yy.run) hWid = QtGui.QWidget() hBoxlayout = QtGui.QHBoxLayout() hBoxlayout.setContentsMargins(0, 0, 0, 0) hWid.setLayout(hBoxlayout) pushButt_1 = QtGui.QPushButton(funk) hBoxlayout.addWidget(pushButton1) if ff.has_key('man'): pushButt_2 = QtGui.QPushButton( QtGui.QIcon( FreeCAD.ConfigGet('AppHomePath') + '/Mod/plugins/icons/help.png'), '') pushButt_2.setToolTip('See WebSite Documentation') cmdh = 'import WebGui; WebGui.openBrowser( "' + ff[ 'man'] + '")' yh = MyAction2(cmdh) pushButt_2.yh = yh pushButt_2.clicked.connect(yh.run) hBoxlayout.addWidget(pushButt_2) pushButton1.setFixedWidth(250) else: pushButton1.setFixedWidth(290) hBoxlayout.setAlignment(QtCore.Qt.AlignLeft) vBoxlayout.addWidget(hWid) vBoxlayout.setSpacing(0) tab1.setLayout(vBoxlayout) self.myform.addWidget(tabs) # aktiver tab cm = ConfigManager("PluginManager") ix = cm.get("PluginTabIndex", 0) tabs.setCurrentIndex(ix) self.tabs = tabs
def genlabels(self): cf=self.pluginloader.config try: self.tabs.deleteLater() except: pass if self.pluginloader.config3.has_key("tabs"): tabs= QtGui.QTabWidget() kl=sorted(self.pluginloader.config3["tabs"].keys()) # where to place the tabs - still hard coded mode="north" if self.pluginloader.config3['base'].has_key('tablocation'): mode= self.pluginloader.config3['base']['tablocation'] if mode =="west": tabs.setTabPosition(QtGui.QTabWidget.West) kl.reverse() if mode =="east": tabs.setTabPosition(QtGui.QTabWidget.East) kl.reverse() for ky in kl: import re cmt=ConfigManager("__tabs__/" + ky) hide=cmt.get("_hide_",False) if hide: say("ignore tab " + ky) continue tab1= QtGui.QWidget() pat=r"[0123456789]+ +(.*)" m = re.match(pat, ky) if m: kyk=m.group(1) else: kyk=ky tabs.addTab(tab1,kyk) vBoxlayout = QtGui.QVBoxLayout() vBoxlayout.setAlignment(QtCore.Qt.AlignTop) head=QtGui.QLabel(kyk.upper()) vBoxlayout.addWidget(head) head.setStyleSheet("QWidget { font: bold 18px;color:brown;}") if self.pluginloader.config3['tabs'][ky].has_key("info"): info=QtGui.QLabel(self.pluginloader.config3['tabs'][ky]["info"]) vBoxlayout.addWidget(info) for fun in sorted(self.pluginloader.config3["tabs"][ky].keys()): cma=ConfigManager("__tabs__/" + ky +"/" + fun) funhide=cma.get("_hide_",False) if funhide: say("ignore item " + fun) continue ff=self.pluginloader.config3["tabs"][ky][fun] if fun == 'info': continue import re pat=r"[0123456789]+[\.]? +(.*)" m = re.match(pat, fun) if m: funk=m.group(1) else: funk=fun if ff.has_key('icon'): pushButton1 = QtGui.QPushButton(QtGui.QIcon(ff['icon']),funk) else: pushButton1 = QtGui.QPushButton(QtGui.QIcon(FreeCAD.ConfigGet('AppHomePath')+'/Mod/plugins/icons/sun.png'),funk) #say("!!" + fun + " ->" + funk + "<-") if ff.has_key('info'): pushButton1.setToolTip(ff['info']) try: cmd=ff['exec'] except: cmd="say('"+str(ff)+"')" #say("cmd="+cmd) yy=MyAction2(cmd) yy=MyAction2(pathMacro(cmd)) pushButton1.yy=yy pushButton1.clicked.connect(yy.run) hWid= QtGui.QWidget() hBoxlayout = QtGui.QHBoxLayout() hBoxlayout.setContentsMargins(0, 0, 0, 0) hWid.setLayout(hBoxlayout) pushButt_1 = QtGui.QPushButton(funk) hBoxlayout.addWidget(pushButton1) if ff.has_key('man'): pushButt_2 = QtGui.QPushButton(QtGui.QIcon(FreeCAD.ConfigGet('AppHomePath')+'/Mod/plugins/icons/help.png'),'') pushButt_2.setToolTip('See WebSite Documentation') cmdh='import WebGui; WebGui.openBrowser( "' +ff['man'] + '")' yh=MyAction2(cmdh) pushButt_2.yh=yh pushButt_2.clicked.connect(yh.run) hBoxlayout.addWidget(pushButt_2) pushButton1.setFixedWidth(250) else: pushButton1.setFixedWidth(290) hBoxlayout.setAlignment(QtCore.Qt.AlignLeft) vBoxlayout.addWidget(hWid) vBoxlayout.setSpacing(0) tab1.setLayout(vBoxlayout) #self.lilayout.addWidget(tabs) self.myform.addWidget(tabs) # aktiver tab cm=ConfigManager("PluginManager") ix=cm.get("PluginTabIndex",0) tabs.setCurrentIndex(ix) # private testing # tabs.setCurrentIndex(10) # == Favorites self.tabs=tabs
from message_consumer import MessageConsumer from message_handler import MessageHandler logger = logging.getLogger(__name__) class HTTPNotifier: def __init__(self, handler, consumer): self.handler = handler self.consumer = consumer def init(self, ): try: logger.info("HTTP Notifier initialization...") self.consumer.run() except Exception as e: logger.exception(e) finally: logger.info("HTTP Notifier :: Finish execution") if __name__ == "__main__": config = ConfigManager().configuration ConfigureLogging(**config["logger"]) try: handler = MessageHandler() consumer = MessageConsumer(handler, **config.get("rabbit")) HTTPNotifier(handler, consumer).init() except: logger.info("HTTP Notifier :: Finish execution")
def __init__(self): global say #--------------------------- mcf = '' config3 = {} try: say("pluginmanager config file " + fn) stream = open(fn, 'r').read() # mfc='' try: z = ConfigManager('') fn2 = z.get('userconfigfile', "/usr/lib/freecad/Mod/plugins/myconfig.yaml") say("pluginmanager userconfig file " + fn2) mcf = open(fn2, 'r').read() except: sayexc("userconfigfile not available") all = stream + mcf config3 = yaml.load(all) # config3=set_defaults(config3) except: sayexc() pass try: # say("pluginmanager config file "+ fn) # stream = open(fn, 'r') # config3 = yaml.load(stream) config3 = set_defaults(config3) except: dlgexc("Cannot load configfile " + fn + "\nread console log for details ") for plin in config3['plugins'].keys(): for k in config3['plugins'][plin].keys(): if config3['plugins'][plin][k] and config3['plugins'][plin][ k].__class__ == dict: print "dict" print config3['plugins'][plin][k] if os in config3['plugins'][plin][k].keys(): # replace config3['plugins'][plin][k] = config3['plugins'][plin][ k][os] for att in ['destdir', 'exec', 'icon', 'backup']: config3['plugins'][plin][att] = pathMacro( config3['plugins'][plin][att]) if plin == 'defaulttest': pprint.pprint(config3['plugins'][plin]) for plin in config3['data'].keys(): for att in ['destdir', 'exec', 'icon', 'backup']: if config3['data'][plin].has_key(att): config3['data'][plin][att] = pathMacro( config3['data'][plin][att]) self.config = config3['plugins'] self.base = config3['base'] self.config3 = config3 self.keys = self.config.keys self.register()
def __init__(self): mcf = '' config3 = {} try: say("pluginmanager config file " + fn) stream = open(fn, 'r').read() try: z = ConfigManager('') fn2 = z.get('userconfigfile', "/usr/lib/freecad/Mod/plugins/myconfig.yaml") say("pluginmanager userconfig file " + fn2) mcf = open(fn2, 'r').read() except: sayexc("userconfigfile not available", True) all = stream + mcf config3 = yaml.load(all) # config3=set_defaults(config3) except: sayexc("Error in " + fn2, True) say("Try only:" + fn) config3 = yaml.load(stream) config3 = set_defaults(config3) for plin in config3['plugins'].keys(): for k in config3['plugins'][plin].keys(): if config3['plugins'][plin][k] and config3['plugins'][plin][ k].__class__ == dict: print "dict" print config3['plugins'][plin][k] if os in config3['plugins'][plin][k].keys(): # replace config3['plugins'][plin][k] = config3['plugins'][plin][ k][os] for att in ['destdir', 'exec', 'icon', 'backup']: try: config3['plugins'][plin][att] = pathMacro( config3['plugins'][plin][att]) except: sayexc(config3['data'][plin][att]) if plin == 'defaulttest': pprint.pprint(config3['plugins'][plin]) for plin in config3['data'].keys(): for att in ['destdir', 'exec', 'icon', 'backup']: if config3['data'][plin].has_key(att): try: config3['data'][plin][att] = pathMacro( config3['data'][plin][att]) except: sayexc(config3['data'][plin][att]) self.config = config3['plugins'] self.base = config3['base'] self.config3 = config3 self.keys = self.config.keys #---------------------------- if config3.has_key('keys') and config3['keys'].has_key("keyserver"): try: for ku in config3['keys']['keyserver'].keys(): yy = transformkeytree(config3['keys']['keyserver'][ku]) config3['keys']['keyserver'][ku] = yy except: sayexc()
from twisted.internet import reactor from twisted.manhole import telnet from configmanager import ConfigManager import sys mandatory_settings = [("Connection", "server"), ("Connection", "port"), ("Connection", "nickname"), ("Connection", "admins")] if __name__ == "__main__": configfile = sys.argv[1] if len(sys.argv) > 1 else "pytibot.ini" # create Config Manager cm = ConfigManager(configfile, delimiters=("=")) if all([cm.option_set(sec, opt) for sec, opt in mandatory_settings]): # connect factory to host and port server = cm.get("Connection", "server") port = cm.getint("Connection", "port") botfactory = PyTIBotFactory(cm) reactor.connectTCP(server, port, botfactory) # manhole for debugging open_telnet = False if cm.option_set("Connection", "open_telnet"): open_telnet = cm.getboolean("Connection", "open_telnet") if open_telnet: tn_f = telnet.ShellFactory() tn_f.username = cm.get("Telnet", "username") tn_f.password = cm.get("Telnet", "password") tn_f.namespace['get_bot'] = botfactory.get_bot telnet_port = cm.getint("Telnet", "port")
from configmanager import ConfigManager import pyglet, os pyglet.font.add_file('resources/fonts/OratorSTD.otf') mgr = ConfigManager() CLOCK_FG = mgr.get("SETTINGS", "CLOCK_FG") CLOCK_FONT = ('Consolas', 24, 'bold') # FONTS MONOSPACED = ("Consolas", 10) FONT = "Orator STD" BACK_FONT_SIZE = 10 # CLOCK_FONT = "Bahnschrift Light" CLOCK_FONT = "Consolas" CLOCK_FONT_SIZE = 50 CLOCK_FONT_TUPLE = ("Consolas", CLOCK_FONT_SIZE, "bold") ENTRY_FONT_TUPLE = (FONT, 14) DROPDOWN_FONT = ('Orator STD', 14) GOAL_FONT = ("Orator STD", 17)
#-- #-- GNU Lesser General Public License (LGPL) #------------------------------------------------- __Vers__ = '0.1b' __Status__ = 'alpha' import FreeCAD, PySide, os, FreeCADGui, time from PySide import QtCore, QtGui, QtSvg from PySide.QtGui import * import os, re, ast, _ast from configmanager import ConfigManager cm = ConfigManager("MacroManager") dir_name = cm.get( 'macrodir', FreeCAD.ConfigGet('AppHomePath') + "/Mod/plugins/FreeCAD-macros") docstrings = [ '__Author__', '__Version__', '__Comment__', '__Wiki__', '__Icon__', '__Help__', '__Web__' ] global sayexc import sys, traceback def sayexc(mess=''): exc_type, exc_value, exc_traceback = sys.exc_info() ttt = repr(traceback.format_exception(exc_type, exc_value, exc_traceback)) lls = eval(ttt)
#-- #-- GNU Lesser General Public License (LGPL) #------------------------------------------------- __Vers__ = '0.1b' __Status__ = 'alpha' import FreeCAD,PySide,os,FreeCADGui,time from PySide import QtCore, QtGui, QtSvg from PySide.QtGui import * import os,re, ast, _ast from configmanager import ConfigManager cm=ConfigManager("MacroManager") dir_name=cm.get('macrodir',FreeCAD.ConfigGet('AppHomePath')+"/Mod/plugins/FreeCAD-macros") docstrings=['__Author__','__Version__','__Comment__','__Wiki__','__Icon__','__Help__','__Web__'] global sayexc import sys,traceback def sayexc(mess=''): exc_type, exc_value, exc_traceback = sys.exc_info() ttt=repr(traceback.format_exception(exc_type, exc_value,exc_traceback)) lls=eval(ttt) l=len(lls) l2=lls[(l-3):] FreeCAD.Console.PrintError(mess + "\n" +"--> ".join(l2))
def exe_dump(self, file_name, serv_name, base_name, backup_name, type): date = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") dump_file_name = backup_name+'_'+file_name+'_'+serv_name+'_'+base_name+'_'+date dumper = """pg_dump.exe -U %s -d %s -h %s -p %s -f %s -C --column-inserts""" try: conf = ConfigManager("config/" + file_name + ".yaml") cnf = conf.get(serv_name) conn = cnf["connection"] db = cnf["databases"][base_name] db_name = db["name"] db_user = db["user"] db_pass = conf.get_password(serv_name + '.' + base_name) conn_adr = '' conn_port = None if conn["type"] == "ssh": #Dla połączeń ssh cmd = self.connect_command_builder(conn, 'no') common.conn.send(cmd) ans = None while ans == None: ans = common.conn.get_state() status, hostname, db_port = ans.split("_") if status == "ok": #udało się utworzyć tunel conn_adr = 'localhost' conn_port = db_port else: raise PostgressError('Unable to create ssh tunnel') elif conn["type"] == "direct": conn_adr = conn["adress"] conn_port = conn["remoteport"] local_version = self.get_local_version('pg_dump --version') remote_version = self.get_pg_version(db_name, db_user, db_pass, conn_adr, conn_port) if not self.is_valid_versions(local_version, remote_version): raise PostgressError("You have too old version of pg_dump") if type == 'tar': dumper += ' -Ft' dump_file_name += '.tar' else: dump_file_name += '.sql' command = dumper % (db_user, db_name, conn_adr, conn_port, dump_file_name) os.putenv('PGPASSWORD', db_pass) try: common.set_cdir_and_store() proc = Popen(command, stdout=PIPE, stderr=PIPE) except FileNotFoundError: raise PostgressError(" ERROR: pg_dump not found") finally: common.restore_cdir() out, err = proc.communicate() if err != b'': raise PostgressError(err.decode('utf8', 'ignore')) except ConnectionRefusedError: print('--------------------') print('ERROR: Connection Refused by host') print('--------------------') except TimeoutError: print('--------------------') print('ERROR: Connection timeout') print('--------------------') except paramiko.ssh_exception.AuthenticationException: print('--------------------') print('ERROR: Authentication problem') print('--------------------') except KeyError as e: print('--------------------') print('ERROR: Unable to find key:',e) print('--------------------') except PostgressError as e: print('--------------------') print('ERROR:',e) print('--------------------') except Exception as e: print('--------------------') print('ERROR:',e) print('--------------------')
def exe_restore(self, file_name, serv_name, base_name, backup_name, type): try: conf = ConfigManager("config/" + file_name + ".yaml") cnf = conf.get(serv_name) conn = cnf["connection"] db = cnf["databases"][base_name] db_name = db["name"] db_user = db["user"] db_pass = conf.get_password(serv_name + '.' + base_name) conn_adr = '' conn_port = None if conn["type"] == "ssh": #Dla połączeń ssh cmd = self.connect_command_builder(conn, 'no') common.conn.send(cmd) ans = None while ans == None: ans = common.conn.get_state() status, hostname, db_port = ans.split("_") if status == "ok": #udało się utworzyć tunel conn_adr = 'localhost' conn_port = db_port else: raise PostgressError('Unable to create ssh tunnel') elif conn["type"] == "direct": conn_adr = conn["adress"] conn_port = conn["remoteport"] local_version = self.get_local_version('pg_dump --version') remote_version = self.get_pg_version(db_name, db_user, db_pass, conn_adr, conn_port) if not self.is_valid_versions(local_version, remote_version): raise PostgressError("You have too old version of pg_dump") self.restore(db_name, db_user, db_pass, conn_adr, conn_port, backup_name, type) except ConnectionRefusedError: print('--------------------') print('ERROR: Connection Refused by host') print('--------------------') except TimeoutError: print('--------------------') print('ERROR: Connection timeout') print('--------------------') except paramiko.ssh_exception.AuthenticationException: print('--------------------') print('ERROR: Authentication problem') print('--------------------') except KeyError as e: print('--------------------') print('ERROR: Unable to find key:',e) print('--------------------') except PostgressError as e: print('--------------------') print('ERROR:',e) print('--------------------') except Exception as e: print('--------------------') print('ERROR:',e) print('--------------------')
from message_handler import MessageHandler logger = logging.getLogger(__name__) class EmailNotifier: def __init__(self, handler, consumer): self.handler = handler self.consumer = consumer def init(self, ): try: logger.info("Email Notifier initialization...") self.consumer.run() except Exception as e: logger.exception(e) finally: logger.info("Email Notifier :: Finish execution") if __name__ == "__main__": config = ConfigManager().configuration ConfigureLogging(**config["logger"]) try: handler = MessageHandler(**config.get("smtp")) consumer = MessageConsumer(handler, **config.get("rabbit")) EmailNotifier(handler, consumer).init() except: logger.info("Email Notifier :: Finish execution")
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) ConfigManager.load() self.theme_manager = ThemeManager(self) self.theme_manager.set_theme(ConfigManager.get("theme")) self.optionsbar = OptionsBar(self) self.optionsbar.grid(row=0, column=1, sticky="nsew", padx=2, pady=2) self.toolbar = ToolBar(self, self.optionsbar) self.toolbar.grid(row=1, column=0, sticky="nsew", padx=2, pady=2) self.codetext = CodeText(self, width=100, wrap="none", canvas_name=ConfigManager.get("canvas_name")) self.codetext.grid(row=0, column=2, rowspan=3) self.canvas_xy_var = tk.StringVar() self.canvas_xy_label = ttk.Label(self, textvariable=self.canvas_xy_var) self.canvas_xy_label.grid(row=0, column=0, sticky="se") self.canvas = PaintCanvas(self, self.toolbar, self.optionsbar, self.codetext, self.canvas_xy_var, background="white") self.canvas.grid(row=1, column=1, padx=2, pady=2, sticky="n") self.menu = tk.Menu(self) self["menu"] = self.menu self.menu.add_command(label="Save", command=self.save) self.menu.add_command(label="Undo", command=ActionManager.undo) self.menu.add_command(label="Redo", command=ActionManager.redo) self._menu_themes = tk.Menu(self.menu, tearoff=False) self._menu_themes.add_command( label="dark", command=lambda: self.set_theme("darkTKC")) self._menu_themes.add_command( label="light", command=lambda: self.set_theme("lightTKC")) self.menu.add_cascade(menu=self._menu_themes, label="theme") self.canvas_frame = ttk.Frame(self) self.canvas_frame.grid(row=2, column=1, sticky="nw") self.grid_state = tk.BooleanVar(self) self.grid_toggle = ttk.Checkbutton(self.canvas_frame, command=self._toggle_grid, variable=self.grid_state, onvalue=True, offvalue=False, text="show grid") self.grid_toggle.grid(row=0, column=0, padx=3, pady=0, sticky="w") self.grid_state.set(True) self.canvas_grid = addwidgets.IntEdit(self.canvas_frame, "grid", entry_width=3, default=1) self.canvas_grid.var.trace_add("write", self.change_grid) self.canvas_grid.grid(row=1, column=0, padx=3, pady=0, sticky="w") self.canvas_name_edit = addwidgets.StrEdit(self.canvas_frame, "name", entry_width=6, validate=lambda v: v != "") self.canvas_name_edit.set(ConfigManager.get("canvas_name")) self.canvas_name_edit.var.trace_add( "write", lambda *args: self.configure_canvas( canvas_name=self.canvas_name_edit.get())) self.canvas_name_edit.grid(row=0, column=1, padx=3, pady=0, sticky="w") self.canvas_color_edit = addwidgets.ColorEdit(self.canvas_frame, "color", default="white") self.canvas_color_edit.var.trace_add( "write", lambda *args: self.configure_canvas( background=self.canvas_color_edit.get())) self.canvas_color_edit.grid(row=1, column=1, padx=3, pady=0, sticky="w") self.canvas_width_edit = addwidgets.IntEdit(self.canvas_frame, "width", entry_width=4, default=int( self.canvas["width"])) self.canvas_width_edit.var.trace_add( "write", lambda *args: self.configure_canvas( width=self.canvas_width_edit.get())) self.canvas_width_edit.grid(row=0, column=2, padx=3, pady=0, sticky="w") self.canvas_height_edit = addwidgets.IntEdit( self.canvas_frame, "height", entry_width=4, default=int(self.canvas["height"])) self.canvas_height_edit.var.trace_add( "write", lambda *args: self.configure_canvas( height=self.canvas_height_edit.get())) self.canvas_height_edit.grid(row=1, column=2, padx=3, pady=0, sticky="w") self.toolbar.add_tool("cursor") self.toolbar.add_tool("line") self.toolbar.add_tool("rectangle") self.toolbar.add_tool("oval") self.toolbar.add_tool("polygon") self.toolbar.add_tool("text") self.toolbar.add_tool("arc") self.toolbar.tool.set("line") self.from_x_y_frame = ttk.Frame(self) self.from_x_y_var = tk.BooleanVar() self.from_x_y_toggle = ttk.Checkbutton(self.from_x_y_frame, variable=self.from_x_y_var, onvalue=True, offvalue=False, text="from_xy", command=self.toggle_xy) self.from_x_y_toggle.pack(side="top") self.from_x_y_btn = ttk.Button( self.from_x_y_frame, text="Set x,y", command=lambda: self.toolbar.set_tool("set_xy")) self.from_x_y_btn["state"] = ("disabled", ) self.from_x_y_btn.pack(side="top") self.from_x_y_frame.grid(row=2, column=0)