Commit 42c89cd2 authored by Takhir Fakhrutdinov's avatar Takhir Fakhrutdinov

Отладка метео

parent 85bfbf15
......@@ -92,7 +92,7 @@ class meteoBaseFile(baseFile):
:linenos:
:caption: get_device
"""
pkeys = await self.fectval("""
keys = await self.fetchval("""
select json_object_agg(v,atype)
from main.t_devattr
join main.t_attrtypes using(atype)
......@@ -100,11 +100,11 @@ class meteoBaseFile(baseFile):
and parent in (42000,52000)
and dtr @> now()::date
""",dev)
return json.loads(keys)
return keys
class meteoEopFiles(meteoBaseFile):
class meteoEopFile(meteoBaseFile):
""" Создание/обновление БД RRD для метео-устройства.
"""
......@@ -125,9 +125,9 @@ class meteoEopFiles(meteoBaseFile):
tm = self.round_time(datetime.fromisoformat(d['Date'])).replace()
if tm not in self.times:
self.times.add(tm)
self.tbeg, self.tend = min(self.tbeg,dt), max(self.tend,dt)
self.tbeg, self.tend = min(self.tbeg,tm), max(self.tend,tm)
for k,atype in keys.items():
self.write(f,(tm,dev,atype,d[k])
self.write(f,(tm,dev,atype,d[k]))
async def load(self,fd,args):
""" Метод. Загрузка файла.
......@@ -145,16 +145,16 @@ class meteoEopFiles(meteoBaseFile):
await self.check_priv_device(dev)
self.fileattr['dev'] = dev
pkeys = await self.get_keys(dev)
pkeys = await self.get_pkeys(dev)
fo = io.BytesIO()
data = json.load(fd)[model]
data = json.load(fd)[self.model]
self.prepare_csv(fo,dev,data,pkeys)
self.fid = await self.getfid()
fo.seek(0)
async with self.transaction():
await self.create_doc()
await self.copy_to_table('t_meteo',source=fo,schema_name='xd',delimiter='\t')
await self.copy_to_table('t_devmetrix',source=fo,schema_name='xd',delimiter='\t')
class vproFile(meteoEopFile):
......@@ -236,16 +236,15 @@ class eop2mFile(meteoBaseFile):
tm = datetime.fromisoformat(r['data']['date']).replace(microsecond=0)
self.tbeg, self.tend = min(self.tbeg,tm), max(self.tend,tm)
d = r['data']
rec = [ (tm,dev,atype,d[k],) for k,atype in pkeys.items() if k in d and d.get(k) is not None ]
for l in rec:
self.write(fo,l)
fid = await self.getfid()
self.fid = await self.getfid()
self.fileattr = dict(devs=list(devs))
fo.seek(0)
async with self.transaction():
await self.create_doc()
await self.copy_to_table('t_meteo',source=fo,schema_name='xd',delimiter='\t')
await self.copy_to_table('t_devmetrix',source=fo,schema_name='xd',delimiter='\t')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment