
| Current Path : /home/ift/52_procpy/dataninja/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //home/ift/52_procpy/dataninja/caller.py |
# coding: utf8
import os
import sys
import re
import time
import procpy
import procpy.mysqlite
import codecs
#**********************************************************
class Caller (object):
def __init__ (self,loopobj):
self.loopobj = loopobj
#**********************************************************
def run (self,*pars):
self.db_options = {}
m = re.search(r"^(.*)\-(.*)\-(.*)\-(.*)$",pars[0]) # Erster Parameter ist das Datenbank-Backend
if m:
self.db_options = {'type': 'mysql',
'host': m.group(1),
'user': m.group(2),
'pass': m.group(3),
'db': m.group(4)}
else:
self.db_options = {'type': 'sqlite', 'name': pars[0]} # right we are using this database
self.db = procpy.mysqlite.DBConn(self.db_options) ## creating a database connector
self.loopobj.after(0,Caller.__dict__[pars[1]],self,*pars[2:]) # Erster Aufruf fuer die Event-Loop
#**********************************************************
def testmode (self,*pars):
print("This is testmode output ...")
print(pars)
exit()
#**********************************************************
def ot (self,*pars):
import procpy.prcmanager
prc = procpy.prcmanager.Prcmanager(self.db)
prc.run_process(object_identifier=pars[0], param=pars[1:])
exit()
#**********************************************************
def oa (self,*pars):
import procpy.xlsmanager
xls = procpy.xlsmanager.Xlsmanager(self.db)
# print list(pars)
result_file = xls.export_data(list(pars))
print(result_file)
if result_file and os.path.isfile(result_file):
self.db.commit()
print(("joe " + result_file))
os.system("joe " + result_file)
try:
text = codecs.open(result_file,'r',"utf-8-sig").read() # in the case of UTF with BOM
# regex = re.compile('WAKETIME: (.*?)\n')
# m = regex.search(text)
# if m:
# text = text.replace(m.group(0)[0:], 'WAKETIME: 0","')
codecs.open(result_file,'w',"utf-8").write(text)
except:
pass
xls.export_data([result_file,"xyxyxyxyxyxyxyx","--"])
self.db.commit()
exit()
#**********************************************************
def oh (self,*pars):
import procpy.gui1
import procpy.prcmanager
import procpy.objpickle
frequence = 0
startfile = ""
for i in (0,1):
try:
int(pars[i]) + 1
frequence = int(pars[i])
except:
try:
pars[i]
startfile = pars[i]
except:
pass
if not startfile == "":
win = procpy.gui1.Gui1(self.loopobj,self.db,startfile)
win.run(startfile)
if frequence > 0:
self.ox(frequence)
self.oy(frequence*5)
#**********************************************************
def ox (self,*pars):
import procpy.prcmanager
print("ox-run ...")
prc = procpy.prcmanager.Prcmanager(self.db)
cursor = prc.cursor()
# cursor1 = prc.cursor("sql-portion","",*")
#
# cursor1 = prc.cursor('OBJID like "%e%"',"","SLEEP,JUMP,par1")
while (0 == 0):
entry = prc.next_obj(cursor)
if not entry:
break
prc.projection_process(entry,*pars)
# self.loopobj(0,prc.projection_process,entry)
self.loopobj.after(pars[0],self.ox,*pars)
#**********************************************************
def oy (self,*pars):
import procpy.prcmanager
prc = procpy.prcmanager.Prcmanager(self.db)
# select SLEEP,JUMP,par1 from entries where OBJID like '%e%'
cursor1 = prc.cursor('OBJID like "%e%"',"","SLEEP,JUMP,par1")
while (0 == 0):
entry = prc.next_obj(cursor1)
if not entry:
break
print("here i am")
# ....
# ....
self.loopobj.after(pars[0],self.oy,*pars)
#**********************************************************
#**********************************************************
# obsolete::
class Scripts (object):
def __init__ (self,dbname=":memory:"):
self.db_options = {}
if 'PROCDB' in os.environ.__dict__['data']:
if not os.environ.__dict__['data']['PROCDB'] == "":
dbname = os.environ.__dict__['data']['PROCDB']
m = re.search(r"^(.*)\-(.*)\-(.*)\-(.*)$", dbname)
if m:
self.db_options = {'type': 'mysql',
'host': m.group(1),
'user': m.group(2),
'pass': m.group(3),
'db': m.group(4)}
else:
self.db_options = {'type': 'sqlite', 'name': dbname}
self.db = procpy.mysqlite.DBConn(self.db_options)
#**********************************************************
def oa (self,pars=sys.argv[1:]):
if pars[0] == "t":
return self.ot(pars[1:])
if re.search(r"^\d+$",pars[0]):
return self.ou(pars)
if pars[0] == "x":
return self.ox(pars[1:])
if pars[0] == "d":
return self.od(pars[1:])
if pars[0] == "y":
return self.oy(pars[1:])
if pars[0] == "g":
return self.og(pars[1:])
if pars[0] == "h":
return self.oh(pars[1:])
if pars[0] == "z":
return self.oz(pars[1:])
if len(pars) > 1:
if re.search(r"^(r|run|c|continue|\d+)$",pars[-1]):
o = pars.pop()
if re.search(r"^\d+$",o):
pars.insert(0,o)
return self.ou(pars)
else:
return self.ot(pars)
xls = procpy.xlsmanager.Xlsmanager(self.db)
result_file = xls.export_data(pars)
print(result_file)
if result_file and os.path.isfile(result_file):
self.db.commit()
# procpy.browser_edit.edit_csv_in_browser(result_file)
print(("joe " + result_file))
os.system("joe " + result_file)
try:
text = codecs.open(result_file,'r',"utf-8-sig").read() # in the case of UTF with BOM
codecs.open(result_file,'w',"utf-8").write(text)
except:
pass
xls.export_data([result_file,"xyxyxyxyxyxyxyx","--"])
self.db.commit()
#**********************************************************
def ot (self,pars=sys.argv[1:]):
try:
prc = procpy.prcmanager.PROCInterface(self.db)
return prc.run_process(object_identifier=pars[0], param=pars[1:]) ## object_identifier= is name of file after conversion done by regualr expression
except Exception as e:
print(e)
#**********************************************************
def ou (self,pars=sys.argv[1:]):
prc = procpy.prcmanager.PROCInterface(self.db)
prc.dryrun(pars[0],pars[1],pars[2:])
#**********************************************************
def ox (self,pars=sys.argv[1:]):
try:
server = procpy.prcmanager.PROCServer(self.db_options)
server.start()
except Exception as e:
print(e)
#**********************************************************
def oy(self,pars=sys.argv[1:]):
procpy.gml.convert(pars[0],"g")
#**********************************************************
def og(self,pars=sys.argv[1:]):
win = procpy.forecast.RUN(self)
win.run(pars)
#**********************************************************
def oh(self,pars=sys.argv[1:]):
win = procpy.gui1.RUN(self)
win.run(pars)
#**********************************************************
def od (self,pars=sys.argv[1:]):
# try:
report = procpy.autotest.Report(self.db)
report.extract(testitem=pars[0], param=pars[1:])
# except Exception as e:
# print "Fehler"
# print(e)
#**********************************************************
def oz (self,pars=sys.argv[1:]):
xls = procpy.xlsmanager.Xlsmanager(self.db)
xls.track_tasks(pars)