Пример #1
0
 def __init__(self):
     #初始根目录信息
     strDir, strName = myIO.getPath_ByFile(__file__)
     self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))
     self.Dir_Image = self.Dir_Base + "/Temps/Images/wxTemps/"
     self.Dir_Image = myIO.checkPath(self.Dir_Image)
     myIO.mkdir(self.Dir_Image, False)
Пример #2
0
    def __init__(self, pData, interval = 1):
        self.name = pData.name
        self.interval_M = interval                      #分钟级间隔
        self.datas = {}                                 #原始数据 
        self.datasS = []                                #统计数据集--天
        self.datasS_M = None                            #统计数据对象--分钟级
        self.data = pData                               #当前数据对象

        self.setting = myQuote_Setting._Find(pData.name, pData.idTag)        #配置项,以标识为准,避免名称不统一
        self.autoSave = True 
        self.stoped = False 
        self.tagTime = datetime.datetime.now()
        self.manageTrades = gol._Get_Setting('manageBills_Stock', None)     #使用交易管理器
        gol._Set_Value('datas_Stics_D_' + pData.id, self.datasS)            #全局统计信息


        #保存基础数据
        strDir, strName = myIO.getPath_ByFile(__file__)
        Dir_Base = os.path.abspath(os.path.join(strDir, ".."))   

        self.dir = Dir_Base + "/Data/" + self.name + "/"
        self.fileName = myData_Trans.Tran_ToDatetime_str(pData.getTime(), "%Y-%m-%d")
        myIO.mkdir(self.dir) 
        if(self.loadData()):                            #加载已存数据
            self.setData(pData)
Пример #3
0
    def _log(self, id_Target, lon, lat, height, Q, deltaXY, deltaX, deltaY):
        if (self.hasLog == False): return

        #保存数据
        strDir, strName = myIO.getPath_ByFile(__file__)
        strPath = strDir + "/static/Log"

        headStr = ""
        if (os.path.exists(strPath) == False):
            myIO.mkdir(strPath)
        strPath = strPath + "/" + myData_Trans.Tran_ToDatetime_str(
            None, "%Y-%m-%d") + ".csv"
        if (os.path.exists(strPath) == False):
            headStr = "id_Target, concentration, height, tag, longitude_Leak, latitude_Leak, height_Leak, massrate_Leak, speed, direction, windH, temperature, cloudy_is, chimney_diameter, chimney_temperature_outlet, chimney_temperature_outlet, chimney_wind_speed_outlet, dtTimestr, lon, lat, deltaXY, deltaX, deltaY"

        #文件追加数据内容
        with open(strPath, 'a+') as f:
            if (headStr != ""):
                f.write(headStr)

            dtTimestr = myData_Trans.Tran_ToDatetime_str(self.dtLeak)
            if (self.hasChimney):
                infoChimney = F'{self.chimney_diameter},{self.chimney_temperature_outlet},{self.chimney_temperature_outlet},{self.chimney_wind_speed_outlet}'
            else:
                infoChimney = F',,,'
            strLine = F'{id_Target},{Q},{height},{self.tag},{self.longitude_Leak},{self.latitude_Leak},{self.height_Leak},{self.massrate_Leak},{self.wind.wind_Speed},{self.wind.wind_Direction_Alias},{self.wind.wind_Height},{self.air.temperature},{self.sun.numCloud},{infoChimney},{dtTimestr},{lon},{lat},{deltaXY},{deltaX},{deltaY}'
            f.write("\n" + strLine)
        return True
Пример #4
0
 def _initSetting(self):
     #初始根目录信息
     strDir, strName = myIO.getPath_ByFile(__file__)
     Dir_Base = os.path.abspath(os.path.join(strDir, ".."))
     Dir_DataDB = Dir_Base + "/Data/DB_Trade/"
     gol._Set_Setting('manageBills_Stock',
                      myManager_Bill.myManager_Bill(Dir_DataDB))  #实例 交易管理器
Пример #5
0
 def __init__(self, nameDB="zxcDB_StockReturns_Rank", dir=""):
     #初始根目录信息
     if (dir == ""):
         strDir, strName = myIO.getPath_ByFile(__file__)
         self.Dir_Base = os.path.abspath(os.path.join(strDir, "../../.."))
         self.Dir_DataDB = self.Dir_Base + "/Data/DB_Data/"
         myIO.mkdir(self.Dir_DataDB, False)
     super().__init__(nameDB, self.Dir_DataDB, False)
Пример #6
0
    def __init__(self, host="127.0.0.1"):
        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self._Dir_Base = os.path.abspath(os.path.join(strDir, ".."))

        #初始数据库对象
        self._dbUser = myData_Table("zxcDB_User",
                                    self._Dir_Base + "/Data/DB_Data/",
                                    params={"host": host})
Пример #7
0
 def __init__(self, dir=""):
     #初始根目录信息
     if (dir == ""):
         strDir, strName = myIO.getPath_ByFile(__file__)
         self.Dir_Base = os.path.abspath(os.path.join(strDir, "../../.."))
         self.Dir_DataDB = self.Dir_Base + "/Data/DB_Bill/"
         myIO.mkdir(self.Dir_DataDB, False)
     else:
         self.Dir_DataDB = dir
     self._Init()  #初始参数信息等
Пример #8
0
    def loadSets(self):  
        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))  
        self.Dir_Setting = self.Dir_Base + "/myWeb/Setting" 

        #载入配置
        text = myIO.getContent(self.Dir_Setting + "/BillTypes.json", True, False)
        self.jsonSets = myData_Json.Json_Object()
        self.jsonSets.Trans_FromStr(text)
Пример #9
0
 def login_WeChat():
     strDir, strName = myIO.getPath_ByFile(__file__)
     strDirBase = os.path.abspath(os.path.join(
         strDir, "../..")) + "/zxcPy.Weixin/Data/Pic/"
     if request.method == 'GET':
         image_data = open(os.path.join(strDirBase, "QR.png"), "rb").read()
         response = make_response(image_data)
         response.headers['Content-Type'] = 'image/png'
         return response
     else:
         pass
Пример #10
0
    def __init__(self, source, intervalSecs=3):
        self.source = source
        self.interval = intervalSecs
        self.threadRunning = False
        self.stopped = False
        threading.Thread.__init__(self)

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_Swaps = self.Dir_Base + "/Data/Swaps/"
Пример #11
0
    def __init__(self, usrName):
        self.usrName = usrName  #用户名
        self.prjRoots = {}  #功能权限集
        self.prjRoots_user = {}  #功能权限用户集
        self.prjCmds = {}  #功能命令集

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_Setting = self.Dir_Base + "/Setting/"
        self.Dir_Data = self.Dir_Base + "/Data/"
Пример #12
0
    def __init__(self): 
        self.setList = {}           #设置集(按名称索引)
        self.funChanges = {}

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))  
        self.Dir_Setting = self.Dir_Base + "/Data/Setting"
        self.Path_SetSpider = self.Dir_Setting + "/Setting_Spider.csv"
        self.lstFields = ["名称","类型标识","网址","规则信息","是否生效","时间设置","备注"]   
        self._Init()
Пример #13
0
    def __init__(self, usrID="zxcStockAppetites", dir=""):
        self.usrID = usrID  #当前账单归属用户
        self.usrDB = {}  #当前账包信息集
        self.dir = dir

        #初始根目录信息
        if (self.dir == ""):
            strDir, strName = myIO.getPath_ByFile(__file__)
            self.dirBase = os.path.abspath(os.path.join(strDir, ".."))
            self.dir = self.dirBase + "/Data/DB_Trade/Stock_Appetites/"
            myIO.mkdir(self.dir, False)
        self._Init_DB(self.dir + usrID + ".csv")  #初始参数信息等
Пример #14
0
    def _Init(self):
        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, ""))

        self.mdUpdata = myIO_md.myMD(self.Dir_Base + "/Docs/Updata.md")
        pNode = self.mdUpdata[0]
        self.version = pNode.titleName
        self.verText = pNode.getContent().strip()
        self.mdUpdata = None

        self.Send_UpdataMsg()  #发送更新消息
Пример #15
0
    def __init__(self): 
        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))  
        self.Path_Stock = self.Dir_Base + "/Setting/Setting_Stock.csv"
        self.setFields = ['extype', 'code', 'code_name', 'code_name_En', 'type', 'area', 'exName', 'extype2', 'source_set', 'source_code']

        self.quoteSource = gol._Get_Value('quoteSource_API_JqData', None)  #数据源操作对象
        self.quoteSource_2 = gol._Get_Value('quoteSource_API_Sina', None)  #数据源操作对象
        self.lstStock = []
        self._init_Updata()         #更新配置信息
        self._Init()                #初始配置信息等
Пример #16
0
    def stop(self):
        myDebug.Print('StockQuote stop\n')
        self.threadRunning = False
        self.stopped = True
        time.sleep(2)

        #退出
        strDir, strName = myIO.getPath_ByFile(__file__)
        strDir_Base = os.path.abspath(os.path.join(strDir, ".."))
        strPath = strDir_Base + "/myQuote_API.lock"
        gol._Run_UnLock(strPath)
        exit(0)
Пример #17
0
    def __init__(self, recv=False):
        self.usrMMsg = gol._Get_Setting('manageMsgs')  #消息管理对象
        self.manager = {}
        self.managerTemp = []
        self.mqRecv = None
        self.isRuning = True
        self.init_MQ(recv)

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.baseDir = os.path.abspath(os.path.join(strDir, ".."))
        self.imgDir = self.baseDir + "/Data/Images/imgQuote/"
        self.setWinForm = gol._Get_Value('zxcWinForm_Control', None)
Пример #18
0
 def __init__(self, tag, bUseMQ = True, robot_API = "http://127.0.0.1:8668/zxcAPI/robot"):
     self.usrTag = tag
     self.usrID = "zxcID"
     self.usrName = "墨紫"
     self.nickName = ""
     self.robotAPI = myWeb_urlLib.myWeb(robot_API)   #WebAPI
     self.routeReply = "reply/"                      #消息处理接口路由名
     self.usrMMsg = gol._Get_Setting('manageMsgs')   #消息管理对象
     self.useMQ = bUseMQ
     
     #初始本地路径
     strDir, strName = myIO.getPath_ByFile(__file__)
     self.dirBase = os.path.abspath(os.path.join(strDir, ".."))   
Пример #19
0
    def __init__(self, usrID="", usrName=""):
        super().__init__(usrID, usrName)
        self.doTitle = "Robot_Log"  #说明
        self.prjName = "消息日志"  #功能名
        self.doCmd = "@@zxcRobot_Log"  #启动命令
        self.isBackUse = True  #后台运行
        self.maxTime = -1  #永久有效
        self.msgLogs = gol._Get_Setting('manageMsgs')  #全局消息日志管理器

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_LogMsg = self.Dir_Base + "/Log/Msgs/"
        self.usrMMsg.Init_LogDir(self.Dir_LogMsg)  #初始日志路径
Пример #20
0
    def _Init(self):
        #初始用户全局功能权限对象
        self.root = gol._Get_Value('rootRobot')  #权限信息
        if (self.root != None):
            self.usrName = self.root.usrName
            self.usrNameNick = self.root.usrNameNick
            self.usrTag = self.root.usrID
            self.usrReplys = myRoot_Usr.myRoot_Usrs("", "")  #消息用户集

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_LogMsg = self.Dir_Base + "/Log/Msgs/"
        self.usrMMsg.Init_LogDir(self.Dir_LogMsg)  #初始日志路径
Пример #21
0
 def __init__(self, usrName, usrID, bgetGol = True): 
     self.usrName = usrName  #用户名
     self.usrID = usrID      #用户名
     self.prjRoots = {}      #功能权限集
     self.prjCmds = {}       #功能命令集
     self.hasGol = bgetGol   #由全局提取 
     # self.prjRoots_user = {} #功能权限用户集
     
     #初始根目录信息
     strDir, strName = myIO.getPath_ByFile(__file__)
     self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))  
     self.Dir_Setting = self.Dir_Base + "/Setting/"
     self.Dir_Data = self.Dir_Base + "/Data/"
     self._Init()    #初始参数信息等 
Пример #22
0
    def Init(self, dir="", pathPicDir=""):
        if (dir == ""):
            strDir, strName = myIO.getPath_ByFile(__file__)
            self.dirBase = os.path.abspath(os.path.join(strDir, ".."))
        else:
            self.dirBase = dir

        #初始根目录信息
        self.dirSetting = self.dirBase + "/Setting/"
        self.dirData = self.dirBase + "/Data/"
        if (pathPicDir == ""): pathPicDir = self.dirData
        self.dirPic = pathPicDir + "Pic/"
        myIO.mkdir(self.dirPic, False)
        myIO.mkdir(self.dirPic + "Temps", False, True)
Пример #23
0
    def __init__(self, userID, usrName):
        self.usrName = usrName  #归属用户
        self.usrID_sys = userID  #归属用户ID
        self.groupList = {}  #群组集(按顺序索引)
        self.groupList_Name = {}  #群组集--(按名称索引)
        self.groupList_usrID = {}  #群组集--(按ID索引)

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_Setting = self.Dir_Base + "/Setting"
        self.Path_SetUser = self.Dir_Setting + "/UserInfo_Group.csv"
        self.lstFields = ["ID", "群组名", "来源平台", "描述", "注册时间", "最后登录时间"]
        if (userID != "" and usrName != ""):
            self._Init()
Пример #24
0
def get_InfoServer(fileObj,
                   evnSERVER_HOST='SERVER_HOST',
                   evnSERVER_PORT='SERVER_PORT',
                   defPort=5555):
    #提取端口号(环境变量)
    strDir, strName = myIO.getPath_ByFile(fileObj)
    dirBase = os.path.abspath(os.path.join(strDir, ""))
    try:
        from os import environ
        HOST = environ.get(evnSERVER_HOST, 'localhost')
        PORT = environ.get(evnSERVER_PORT, 88)
        PORT = int(environ.get(evnSERVER_PORT, str(defPort)))
    except Exception:
        HOST = "127.0.0.1"
        PORT = 5555
    return HOST, PORT, dirBase
Пример #25
0
    def __init__(self):
        self.sets = []  #设置集(不排序)
        self.setList = {}  #设置集(按名称索引)
        self.setList_Tag = {}  #设置集--(按Tag索引)
        self.setUsers = {}  #设置用户信息集

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))
        self.Dir_Setting = self.Dir_Base + "/Setting"
        self.Path_SetQuote = self.Dir_Setting + "/Setting_Quote.csv"
        self.lstFields = [
            "代码", "名称", "类型", "国家", "是否指数", "监测类型", "是否生效", "完整设置", "消息发送用户",
            "备注"
        ]
        self._Init()
Пример #26
0
    def __init__(self, dbName='zxcDB_IOTs', dir=""):
        #初始根目录信息
        if (dir == ""):
            strDir, strName = myIO.getPath_ByFile(__file__)
            self.Dir_Base = os.path.abspath(os.path.join(strDir, ".."))
            self.Dir_DataDB = self.Dir_Base + "/Data/DB_Iot/Iots/"
            myIO.mkdir(self.Dir_DataDB, False)
        super().__init__(dbName, self.Dir_DataDB, True)

        #固定字段
        self.Add_Fields([
            '设备编号', '设备名称', '设备类型', '设备状态', '通讯地址', '用户名', '用户编号', '地址', '坐标X',
            "坐标Y", '日期', '备注'
        ], [
            'string', 'string', 'string', 'string', 'string', 'string',
            'string', 'string', 'string', 'string', 'datetime', 'string'
        ], [])
Пример #27
0
 def Init_UserInfo(self, usrName, usrNameNick, usrID):
     if (usrName == "zxcRobot" and usrID == "zxcRobotID"
             and usrNameNick == "zxc机器人"):
         strDir, strName = myIO.getPath_ByFile(__file__)
         strDir_Base = os.path.abspath(os.path.join(strDir, "../../.."))
         content = myIO.getContent(
             strDir_Base + '\zxcPy.Weixin\Data\zxcWeixin.cache', True,
             False, True)
         if (content != ""):
             dictUser = myData_Trans.Tran_ToDict(content)
             self.usrName = usrName
             self.usrNameNick = dictUser.get("NickName", "zxc机器人")  #归属用户昵称
             self.usrID = dictUser.get("UserName", "zxcRobotID")  #归属用户昵称
     gol._Set_Setting('usrName', self.usrName)
     gol._Set_Setting('usrNameNick', self.usrNameNick)
     gol._Set_Setting('usrID', self.usrID)
     self.Init()
Пример #28
0
    def __init__(self, useID):
        self.usrID = useID  #用户名
        self.usrTime = ""  #数据日期(月)
        self.remark = ""  #备注

        #初始数据路径
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../../.."))
        self.Dir_DataDB = self.Dir_Base + "/Data/DB_Trade/"

        #初始全局账单管理器
        from myGlobal import gol
        gol._Init()  #先必须在主模块初始化(只在Main模块需要一次即可)
        gol._Set_Setting('manageBills',
                         myManager_Bill.myManager_Bill(
                             self.Dir_DataDB))  #实例 账单管理器
        self.billManager = gol._Get_Setting('manageBills', None)
Пример #29
0
    def __init__(self, nameDB = "zxcDB", dir = "", oneValid = False, params = {"hasAliaName": False}, initAuto = True): 
        self.dir = dir              #库表路径
        self.nameDB = nameDB        #库表名
        self.fields = OrderedDict() #库表字段信息
        self.fields_index = []      #库表字段-索引信息
        self.rows = OrderedDict()   #库表行数据集(带编号)
        self.indexs = {}            #索引集
        self.oneValid = oneValid    #是否只有一条记录有效
        self.params = params

        #初始根目录信息
        if(self.dir == ""):
            strDir, strName = myIO.getPath_ByFile(__file__)
            self.dirBase = os.path.abspath(os.path.join(strDir, ".."))  
            self.dir = self.dirBase + "/Data/DB_Data/"
            myIO.mkdir(self.dir, False)
        if(initAuto):
            self._Init_DB(self.dir + nameDB + ".csv"  )    #初始参数信息等 
Пример #30
0
    def __init__(self, host=""):
        # 获取session对象(操作对象是浏览器,而不是html页面),用于处理动态变化的cookie(有cookie的就用session)
        self._webHost = host
        self._webCookies = {}
        self._webSession = requests.Session()  #构造Session
        self._webImg_ind = 0  #图片下载序号,避免重复
        self._Init_Iots()  #初始物联网对象集
        self._Init_ctrlState()  #初始IOT状态集

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self._Dir_Base = os.path.abspath(os.path.join(strDir, ".."))
        self._Dir_Image = self._Dir_Base + "/Temps/Images"
        self._Dir_Image = myIO.checkPath(self._Dir_Image)
        myIO.mkdir(self._Dir_Image, False, True)  #覆盖

        #命令任务状态监测线程启动
        self.isRuning = False
        self._iotCmds = {}  #待执行命令集
        self._iotCmds_ok = {}  #已执行命令集(含失败)
        self.Start()