コード例 #1
0
def dealTemp():
	print "****************dealTemp**********"
	cur = datetime.datetime.now()
	processdate = cur - datetime.timedelta(days=31)
	processdate = processdate.strftime('%Y%m%d%H%M%S')
	condition = {'time':{'$lt':processdate}}
	data_model("live.area.temp.history").remove(condition)
コード例 #2
0
ファイル: maintain.py プロジェクト: google238/dms
	def POST(self):
		form = web.input()
		print form
		if form["tablename"] == '' or form["tablename"] is None:
			return render("addchildtable.html",msg="表名不能为空!")
		data_model("childtable").insert(form)
		return render("addchildtable.html", msg="添加成功")
コード例 #3
0
ファイル: makereport.py プロジェクト: google238/dms
def getWorktime(devid, time):
    findindex = data_model('dev_index').find_one(conditions={'_id': devid})
    if findindex is None:
        index = 0
        starttime = '20150801'
    else:
        index = findindex['index']
        starttime = findindex.get('update', '20150801')
    tablename = 'worktime_' + time
    finditem = data_model(tablename).find_one(conditions={'_id': devid})
    if finditem is None:
        worktime = 0
        runtime = 0
        power = 0
    else:
        worktime = finditem['worktime']
        runtime = finditem['runtime']
        if worktime > runtime:
            worktime, runtime = runtime, worktime
        power = finditem.get('power', 0)
        if power == 0:
            finditem = data_model('devPowerHistory').find(
                conditions={
                    'deviceId': devid,
                    'time': re.compile(time)
                })
            for item in finditem:
                power += float(item.get('devPower', 0))

    nowyear = int(time[:4])
    nowmonth = int(time[4:6])
    preyear = nowyear
    premonth = nowmonth - 1
    if premonth == 0:
        premonth = 12
        preyear -= 1
    preyear = str(preyear)
    if premonth < 10:
        premonth = '0' + str(premonth)
    else:
        premonth = str(premonth)
    pretime = preyear + premonth
    tablename_pre = 'worktime_' + pretime
    finditem = data_model(tablename_pre).find_one(conditions={'_id': devid})
    if finditem is None:
        worktime_pre = 0
        power_pre = 0
    else:
        worktime_pre = finditem['worktime']
        power_pre = finditem.get('power', 0)
        if power_pre == 0:
            finditem = data_model('devPowerHistory').find(
                conditions={
                    'deviceId': devid,
                    'time': re.compile(pretime)
                })
            for item in finditem:
                power_pre += item.get('devPower', 0)

    return worktime, runtime, index, worktime_pre, starttime, power, power_pre
コード例 #4
0
ファイル: makereport.py プロジェクト: google238/dms
def getPower(devid, time):
    power = 0
    power_pre = 0

    nowyear = int(time[:4])
    nowmonth = int(time[4:6])
    preyear = nowyear
    premonth = nowmonth - 1
    if premonth == 0:
        premonth = 12
        preyear -= 1
    preyear = str(preyear)
    if premonth < 10:
        premonth = '0' + str(premonth)
    else:
        premonth = str(premonth)
    pretime = preyear + premonth

    findpower = data_model('devPowerHistory').find(conditions={
        'deviceId': devid,
        'time': re.compile(time)
    })
    findpowerpre = data_model('devPowerHistory').find(
        conditions={
            'deviceid': devid,
            'time': re.compile(pretime)
        })
    for i in findpower:
        power += float(i['devPower'])
        power = float('%0.4f' % power)
    for j in findpowerpre:
        power_pre += float(j['devPower'])
        power_pre = float('%0.4f' % power_pre)
    return power, power_pre
コード例 #5
0
def getfixPowerinfo(devid, starttime, endtime):  #获取时间段内的电量明细列表
    now = datetime.datetime.now().strftime('%Y%m%d')
    start = starttime[:8]
    end = endtime[:8]
    finddata = []
    conditions = {'devid': devid, 'time': {'$gt': starttime, '$lt': endtime}}
    sort = [('time', 1)]

    if start == end:
        if start == now:
            tablename = "devpower_detail_" + start
        else:
            tablename = 'devpower_log_' + start
        finddata = data_model(tablename).find(conditions=conditions, sort=sort)
    else:
        daylist = getdaylist(starttime, endtime)
        for day in daylist:
            if day == now:
                tablename = "devpower_detail_" + day
            else:
                tablename = 'devpower_log_' + day
            finditem = data_model(tablename).find(conditions=conditions,
                                                  sort=sort)
            finddata.extend(finditem)
    return finddata
コード例 #6
0
ファイル: powerrank.py プロジェクト: google238/dms
def dealPowerrank(d3):
	tablename = "devpower_detail_" + d3
	devIDlist = data_model('devID').find()
	for l in devIDlist:
		conditions = dict()
		conditions['devid'] = l['_id']
		finddata = data_model(tablename).find(conditions=conditions,sort=[('time',1)])
		if len(finddata) == 0:
			pass
		else:
			offset = 0
			maxW = finddata[-1]['W']
			w1 = 0
			w2 = 0
			for i in finddata:
				w2 = i['W']
				if w2 < w1:
					offset += w1
				w1 = w2		
			maxW += offset
			insertitem = dict()
			insertitem['devid'] = l['_id']
			insertitem['W'] = float('%0.4f'%maxW)	
			insertitem['time'] = d3
			#data_model('devpower_temp').insert(insertitem)
			data_model('devpower_temp').update_set(condition={'devid':l['_id'],'time':d3},values=insertitem,upsert=True)
コード例 #7
0
ファイル: aircondition.py プロジェクト: google238/dms
 def POST(self):
     data = web.input()
     province = data['data[province]']
     city = data['data[city]']
     area = data['data[area]']
     index = float(data['data[index]'])
     action = data['action']
     insertitem = {
         'province': province,
         'city': city,
         'area': area,
         'index': index
     }
     if action == 'edit' or action == 'create':
         data_model('city_area').update_set(condition={
             'province': province,
             'city': city,
             'area': area
         },
                                            values=insertitem,
                                            upsert=True)
     elif action == 'remove':
         data.model('city_area').remove(condition={
             'province': province,
             'city': city,
             'area': area
         })
         insertitem = {'province': '', 'city': '', 'area': '', 'index': 1}
     data = json.dumps(insertitem)
     return data
コード例 #8
0
ファイル: aircondition.py プロジェクト: google238/dms
def getPower(devid, time):
    power = 0
    power_pre = 0

    nowyear = int(time[:4])
    nowmonth = int(time[4:6])
    preyear = nowyear
    premonth = nowmonth - 1
    if premonth == 0:
        premonth = 12
        preyear -= 1
    preyear = str(preyear)
    if premonth < 10:
        premonth = '0' + str(premonth)
    else:
        premonth = str(premonth)
    pretime = preyear + premonth

    findpower1 = data_model('devpower_month').find_one(conditions={
        'devid': devid,
        'time': time
    })
    findpower2 = data_model('devpower_month').find_one(conditions={
        'devid': devid,
        'time': pretime
    })
    if findpower1 is None:
        power = 0
    else:
        power = findpower1['W']
    if findpower2 is None:
        power_pre = 0
    else:
        power_pre = findpower2['W']
    return power, power_pre
コード例 #9
0
ファイル: aircondition.py プロジェクト: google238/dms
def getWeather(devid, time):
    weatherinfo = dict()
    city, area = '', ''
    findarea = data_model('dev_position').find_one(conditions={'_id': devid})
    if findarea is None:
        pass
    else:
        city, area = findarea['city'], findarea['area']
    if city == '' and area == '':
        weatherinfo = {}
    else:
        city = city[:-1]
        if city == '北京' or city == '天津' or city == '上海' or city == '重庆':
            area = area[:-1]
        weathertable = 'weather_' + time
        findweather = data_model(weathertable).find_one(conditions={
            'city': city,
            'area': area
        })
        if findweather is None:
            weatherinfo = {}
        else:
            del findweather['_id']
            weatherinfo = findweather
    return weatherinfo, city, area
コード例 #10
0
def dealHour():
	print "****************dealHour**********"
	cur = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
	processtime = cur[:10]
	tablename = "power_dataprocess"
	devIDlist = data_model('devID').find()
	for l in devIDlist:
		print l['_id']
		conditions = dict()
		conditions['devid'] = l['_id']
		conditions['time'] = re.compile(processtime)
		finddata = data_model(tablename).find(conditions=conditions)
		if len(finddata) == 0:
			pass
		else:
			finddata = sorted(finddata, key=operator.itemgetter('W'), reverse=True)
			maxdata = finddata[0]
			insertitem = {'devid':l['_id'],'time':processtime,'W':maxdata['W']}
			finditem = data_model('devpower_hour').find(conditions={'devid':l['_id'],'time':processtime})
			if len(finditem) == 0:
				data_model('devpower_hour').insert(insertitem)
			else:
				data_model('devpower_hour').update_set(condition={'devid':l['_id']},values={'W':maxdata['W']})
			common._LOG_DATAPROCESS.info(insertitem)
	data_model(tablename).drop()
コード例 #11
0
ファイル: data.py プロジェクト: google238/dms
 def GET(self):
     result = dict()
     i = web.input()
     common._LOG.info(str(i))
     devid = ''
     nowtime = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
     datetime = nowtime[:8]
     if 'devid' in i.keys():
         devid = i.get('devid')
     if 'time' in i.keys():
         datetime = i.get('time')
     conditions = dict()
     conditions['time'] = datetime
     if devid != '':
         conditions['devid'] = devid
         finditem = data_model('devpower_info').find_one(
             conditions=conditions)
         if finditem == None:  #当日无耗电
             count = data_model('devpower_info').count(
                 conditions={'time': datetime})
             result['count_gt'] = count
             result['count_lt'] = 0
             result['W'] = 0
             result = json.dumps(result)
             return result
         gtdata = data_model('devpower_info').find(conditions={
             'W': {
                 '$gt': finditem['W']
             },
             'time': datetime
         })
         count_gt = len(gtdata)
         ltdata = data_model('devpower_info').find(conditions={
             'W': {
                 '$lt': finditem['W']
             },
             'time': datetime
         })
         count_lt = len(ltdata)
         result['count_gt'] = count_gt
         result['count_lt'] = count_lt
         result['W'] = finditem['W']
         result = json.dumps(result)
         return result
     else:
         finddata = data_model('devpower_info').find(conditions=conditions)
         finddata = sorted(finddata,
                           key=operator.itemgetter('W'),
                           reverse=True)
         for item in finddata:
             del item['_id']
         finddata = json.dumps(finddata)
         return finddata
コード例 #12
0
ファイル: makereport.py プロジェクト: google238/dms
def getCityindex(city, area):
    finditem = data_model('city_area').find_one(conditions={
        'city': city,
        'area': area
    })
    if finditem is None:
        #index = 1.0
        finditem = data_model('city_area').find_one(conditions={'city': city})
        if finditem is None:
            index = 1.0
        else:
            index = finditem['index']
    else:
        index = finditem['index']
    return index
コード例 #13
0
ファイル: aircondition.py プロジェクト: google238/dms
 def POST(self, *args):
     data = web.input()
     start = int(data["start"])
     length = int(data["length"])
     draw = int(data['draw'])
     ordernum = int(data['order[0][column]'])
     orderstyle = data['order[0][dir]']
     province = data['province']
     resultdata = []
     finddata = data_model('city_area').find(
         conditions={'province': province}, sort=[('city', -1)])
     for item in finddata:
         temp = []
         if item['province'] == '北京' or item['province'] == '天津' or item[
                 'province'] == '上海' or item['province'] == '重庆':
             temp.append('')
         else:
             temp.append(item['province'])
         temp.append(item['city'])
         temp.append(item['area'])
         temp.append(item['index'])
         resultdata.append(temp)
     count = len(finddata)
     data = {
         "draw": draw,
         "recordsTotal": count,
         "recordsFiltered": count,
         "aaData": resultdata
     }
     data = json.dumps(data)
     return data
コード例 #14
0
def dataprocess():
	cur= datetime.datetime.now()
	year = cur.year
	month = cur.month
	day = cur.day
	hour = cur.hour
	min = cur.minute
	#如果是这个月的第一天0时则先不进行处理
	if day == 1 and hour == 0:
		pass
	#每小时从小时库里面进行一次运算,并将值更新
	elif min == 15:
		year = str(year)
		if month < 10:
			month = '0' + str(month)
		else:
			month = str(month)
		processDate = year + month
	
		devIDlist = data_model('devID').find()
		for l in devIDlist:
			devid = 'devPower.' + l["_id"]
			conditions = dict()
			conditions['key'] = devid
			conditions['time'] = re.compile(processDate)
			lastMonthValue = data_model('devPowerHour').find(conditions=conditions)
			value = 0
			for i in lastMonthValue:
				value = value + float(i['P'])
			insertitem  = {"key":devid,"time":processDate,"P":str(value)}
			print value
			if data_model('devPowerMonth').find_one(conditions={'key':devid,'time':processDate}) is None:
				data_model('devPowerMonth').insert(insertitem)
			else:
				data_model('devPowerMonth').update_set(condition={'key':devid},values={'P':str(value)})
コード例 #15
0
def getlogPowerinfo(devid, starttime, endtime):  #获取时间段内的电量明细列表
    start = starttime[:8]
    end = endtime[:8]
    finddata = []
    conditions = {'devid': devid, 'time': {'$gt': starttime, '$lt': endtime}}
    sort = [('time', 1)]

    if start == end:
        tablename = "devpower_log_" + start
        finddata = data_model(tablename).find(conditions=conditions, sort=sort)
    else:
        daylist = getdaylist(starttime, endtime)
        for day in daylist:
            tablename = "devpower_log_" + day
            finditem = data_model(tablename).find(conditions=conditions,
                                                  sort=sort)
            finddata.extend(finditem)
    return finddata
コード例 #16
0
ファイル: dealhighlower.py プロジェクト: google238/dms
def main():
    data = data_model('temperature').find(
        conditions={'time': {
            '$gt': '201512'
        }})
    for item in data:
        high = int(item['high'])
        lower = int(item['lower'])
        print lower, high
        if high < lower:
            _id = item['_id']
            data_model('temperature').update_set(
                condition={'_id': ObjectId(_id)},
                values={
                    'high': lower,
                    'lower': high
                },
                upsert=True)
            print 'ok'
コード例 #17
0
ファイル: aircondition.py プロジェクト: google238/dms
def getWorktime(devid, time):
    tablename = 'worktime_' + time
    finditem = data_model(tablename).find_one(conditions={'_id': devid})
    if finditem is None:
        worktime = 0
        runtime = 0
    else:
        worktime = finditem['worktime']
        runtime = finditem['runtime']
    return worktime, runtime
コード例 #18
0
ファイル: modeldata.py プロジェクト: google238/dms
def dealModel():

    tablename = "powershowgrid_temp"
    data = data_model(tablename).find()
    for item in data:
        devid = item['devid']
        city = item['city']
        area = item['area']
        for i in item['result']:
            temp = dict()
            temp['devid'] = devid
            temp['city'] = city
            temp['area'] = area
            if i['cmd'] == 'devTodo':
                temp['temp'] = i['temp']
                temp['inst'] = i['inst'][:4]
                temp['time'] = i['time']
                data_model('modeldata').insert(temp)
    data_model(tablename).drop()
コード例 #19
0
ファイル: data.py プロジェクト: google238/dms
def getCmd_power(starttime, endtime, devid, start, length, draw):
    conditions = dict()
    if devid != '':
        conditions['devid'] = devid
    if starttime != '':
        conditions['starttime'] = {'$gte': starttime}
    if endtime != '':
        conditions['endtime'] = {'$lte': endtime}
    sort = [('starttime', 1)]
    data = data_model('powershowgrid').find(conditions=conditions, sort=sort)
    result = dict()
    resultlist = []
    count = 0
    starti = 0
    for item in data:
        count += len(item['result'])
    for item in data:
        for i in item['result']:
            if starti != start:
                starti += 1
                continue
            temp = []
            temp.append(item['devid'])
            temp.append(i['temp'])
            temp.append(i['W'])
            temp.append(i['P'])
            temp.append(common.strTimeToFormat(i['time']))
            if i['cmd'] == '3001':
                temp.append('持续状态')
            elif i['cmd'] == 'devTodo':
                if i['inst'].startswith('0'):
                    temp.append('关闭')
                elif i['inst'].startswith('1'):
                    if i['time'] == item['starttime']:
                        temp.append("打开(" + i['inst'] + ")")
                    else:
                        temp.append("调整温度模式(" + i['inst'] + ")")
                else:
                    if i['actionid'] == '2':
                        temp.append("打开")
                    if i['actionid'] == '0':
                        temp.append("关闭")
            resultlist.append(temp)
            if len(resultlist) == length:
                break
        if len(resultlist) == length:
            break

    result = {
        "draw": draw,
        "recordsTotal": count,
        "recordsFiltered": count,
        "aaData": resultlist
    }
    return result
コード例 #20
0
ファイル: griddata.py プロジェクト: google238/dms
def getCmd(starttime, endtime, devid, start, length, draw):
    sender = False
    if devid.startswith('sender_'):
        devid = devid[7:]
        sender = True
    sort = []
    sort.append(('acceptTime', pymongo.ASCENDING))
    conditions = {}
    conditions['acceptTime'] = {'$gte': starttime, '$lte': endtime}
    if sender:
        pre = devid[:3]
        stuff = devid[3:]
        rexexp = '^' + pre + '.*' + stuff + '$'
        rexexp = re.compile(rexexp)
        conditions['content.sender'] = rexexp
    else:
        conditions['content.devID'] = devid
    conditions['content.CMD'] = {'$exists': True}
    conditions['mark'] = {'$ne': 'dev'}

    result = dict()
    count = data_model('loger').count(conditions=conditions)
    findlist = data_model('loger').find(conditions=conditions,
                                        sort=sort,
                                        limit=length,
                                        skip=start)
    resultlist = []
    for item in findlist:
        print item
        temp = []
        temp.append(devid)
        temp.append(item["content"]["CMD"])
        temp.append(common.strTimeToFormat(item['acceptTime']))
        resultlist.append(temp)

    result = {
        "draw": draw,
        "recordsTotal": count,
        "recordsFiltered": count,
        "aaData": resultlist
    }
    return result
コード例 #21
0
ファイル: powerrank.py プロジェクト: google238/dms
def createReport(d3):	

	finddata = data_model('devpower_temp').find(conditions={'time':d3},sort=[('W',-1)])
	count = len(finddata)
	if count == 0:
		return
	else:
		ranking = 1
		for item in finddata:
			power = item['W']
			devid = item['devid']
			username = ''
			sender = ''
			finditem = data_model('user_dev').find_one(conditions={'_id':devid})
			if finditem is None:
				findsender = data_model('dev_position').find_one(conditions={'_id':devid})
				if findsender is None:
					pass
				else:
					if 'sender' in findsender.keys():
						sender = findsender['sender']
			else:
				username = finditem['username']
				sender = finditem['sender']
			if ranking == count:
				rate = 0
			else:
				rate = float('%0.3f'%(float(count - ranking)/count)) * 100
			content = "您的设备%s昨日耗电%0.4f度,在活动用户中排名第%d,您的用电量高于%d%%的人"%(devid[:15],power,ranking,rate)
			insertitem = dict()
			insertitem['devid'] = devid
			insertitem['time'] = d3
			insertitem['sender'] = sender
			insertitem['username'] = username
			insertitem['power'] = float('%0.4f'%power)
			insertitem['count'] = count
			insertitem['ranking'] = ranking
			insertitem['rate'] = rate
			insertitem['content'] = content
			#data_model('power_ranking').insert(insertitem)
			data_model('power_ranking').update_set(condition={'devid':devid,'time':d3},values=insertitem,upsert=True)
			ranking += 1
コード例 #22
0
def dealPower_gdt(devID, gdt_tablename, insertdata):
    W = insertdata.get('W')
    findid = data_model('whitelist_guodiantong').find_one(
        conditions={'_id': devID})
    if findid is None:
        pass
    else:
        findone = data_model(gdt_tablename).find(conditions={'devid': devID},
                                                 sort=[('time', -1)])
        if len(findone) == 0:
            insertdata['base'] = 0
        else:
            pre_W = findone[0].get('W', 0)
            base = findone[0].get('base', 0)
            if W >= pre_W:
                insertdata['base'] = base
            else:
                base += pre_W
                insertdata['base'] = base
        data_model(gdt_tablename).insert(insertdata)
コード例 #23
0
	def POST(self):
		data = web.input()
		devid = data['devid']
		time = data['time']
		item = data_model('check').find_one(conditions={'devid':devid,'time':time})
		if item is None:
			return {}
		else:
			del item['_id']
			item = json.dumps(item)
			return item
コード例 #24
0
def dealModel():
#	print "**********dealModel***********"
	tablename = "temperature_temp"
	now = time.strftime('%Y%m')
	tablename1 = 'weather_' + now
	finddata = data_model(tablename).find()
	data_model(tablename).drop()
	for item in finddata:
		province = item['province']
		city = item['city']
		area = item['area']
		statedetailed = item['stateDetailed']			
		finditem = data_model(tablename1).find_one(conditions={'city':city,'area':area,'province':province})

		if finditem is None:
			data_model(tablename1).insert({'city':city,'area':area,'province':province,statedetailed:1})
		else:
			if statedetailed not in finditem.keys():
				data_model(tablename1).update_set(condition={'city':city,'area':area,'province':province}, values={statedetailed:1})
			else:
				data_model(tablename1).update_inc({'city':city,'area':area,'province':province},values={statedetailed:1})
コード例 #25
0
ファイル: griddata.py プロジェクト: google238/dms
 def POST(self):
     data = web.input()
     tablename = data['tablename']
     key = data['key']
     key = 'this.' + key
     map = Code("function(){emit(" + key + ", {count:1});}")
     reduce = Code(
         "function(key,values){var total = 0;for (var i = 0; i < values.length; i++){total += values[i].count;}return {count:total};}"
     )
     data_model(tablename).map_reduce(map, reduce, "out")
     findlist = data_model("out").find()
     data = []
     for item in findlist:
         temp = dict()
         temp['key'] = item['_id']
         temp['value'] = item['value']['count']
         data.append(temp)
     result = dict()
     result = {'result': data}
     result = json.dumps(result)
     return result
コード例 #26
0
ファイル: user_1124.py プロジェクト: google238/dms
def getPosition(devid):
	cityname = ''
	area = ''
	findposition = data_model('dev_position').find_one(conditions={'_id':devid})
	if findposition is None:
		pass
	else:
		area = findposition['area']
		cityname = findposition['city']
		if area == '' or cityname == '':
			pass
	return cityname,area
コード例 #27
0
ファイル: aircondition.py プロジェクト: google238/dms
 def POST(self):
     data = web.input()
     tablename = ''
     value = ''
     if 'data[wind]' in data.keys():
         tablename = 'windstate'
         value = data['data[wind]']
     elif 'data[weather]' in data.keys():
         tablename = 'stateDetailed'
         value = data['data[weather]']
     index = float(data['data[index]'])
     action = data['action']
     insertitem = {'_id': value, 'index': index}
     if action == 'edit' or action == 'create':
         data_model(tablename).update_set(condition={'_id': value},
                                          values=insertitem,
                                          upsert=True)
     elif action == 'remove':
         data.model(tablename).remove(condition={'_id': value})
         insertitem = {}
     data = json.dumps(insertitem)
     return data
コード例 #28
0
 def GET(self):
     data = web.input()
     tablename = ''
     if data and data['tablename']:
         tablename = data['tablename']
     set = data_model(tablename).find_one()
     if set is None:
         return
     result = []
     for item in set.keys():
         result.append(item)
     data = {"keys": result}
     data = json.dumps(data)
     return data
コード例 #29
0
ファイル: aircondition.py プロジェクト: google238/dms
 def POST(self, *args):
     data = web.input()
     draw = int(data['draw'])
     style = data['style']
     resultdata = []
     finddata = []
     if style == '1':
         finddata = data_model('windstate').find()
     elif style == '2':
         finddata = data_model('stateDetailed').find()
     for item in finddata:
         temp = []
         temp.append(item['_id'])
         temp.append(item['index'])
         resultdata.append(temp)
     count = len(finddata)
     data = {
         "draw": draw,
         "recordsTotal": count,
         "recordsFiltered": count,
         "aaData": resultdata
     }
     data = json.dumps(data)
     return data
コード例 #30
0
def getPowerinfo(devid, starttime, endtime):
    start = starttime[:8]
    finddata = []
    end = endtime[:8]
    if start == end:
        tablename = "devpower_detail_" + start
        conditions = {
            'devid': devid,
            'time': {
                '$gt': starttime,
                '$lt': endtime
            }
        }
        sort = [('time', 1)]
        finddata = data_model(tablename).find(conditions=conditions, sort=sort)
    return finddata