Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solvers-acuk-m
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Takhir Fakhrutdinov
solvers-acuk-m
Commits
a5aafcff
Commit
a5aafcff
authored
Oct 14, 2022
by
Takhir Fakhrutdinov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Отладка meteo
parent
1f27784a
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
12 deletions
+13
-12
meteoFile.py
fte/lib/libpy/meteoFile.py
+13
-12
No files found.
fte/lib/libpy/meteoFile.py
View file @
a5aafcff
...
@@ -6,7 +6,6 @@ import re
...
@@ -6,7 +6,6 @@ import re
import
io
import
io
from
datetime
import
datetime
,
timedelta
from
datetime
import
datetime
,
timedelta
logger
=
logging
.
getLogger
(
''
)
logger
=
logging
.
getLogger
(
''
)
class
meteoBaseFile
(
baseFile
):
class
meteoBaseFile
(
baseFile
):
...
@@ -80,7 +79,7 @@ class meteoBaseFile(baseFile):
...
@@ -80,7 +79,7 @@ class meteoBaseFile(baseFile):
raise
RuntimeError
(
f
"Не удалось идентифицировать метеостанцию {telno}."
)
raise
RuntimeError
(
f
"Не удалось идентифицировать метеостанцию {telno}."
)
return
dev
return
dev
async
def
get_
pkey
s
(
self
,
dev
):
async
def
get_
atype
s
(
self
,
dev
):
""" Метод. Определение списка метеопараметров
""" Метод. Определение списка метеопараметров
Return:
Return:
...
@@ -93,7 +92,7 @@ class meteoBaseFile(baseFile):
...
@@ -93,7 +92,7 @@ class meteoBaseFile(baseFile):
:caption: get_device
:caption: get_device
"""
"""
keys
=
await
self
.
fetchval
(
"""
keys
=
await
self
.
fetchval
(
"""
select json_object_agg(v,atype)
select json_object_agg(v,atype
order by atype
)
from main.t_devattr
from main.t_devattr
join main.t_attrtypes using(atype)
join main.t_attrtypes using(atype)
where dev = $1
where dev = $1
...
@@ -109,7 +108,7 @@ class meteoEopFile(meteoBaseFile):
...
@@ -109,7 +108,7 @@ class meteoEopFile(meteoBaseFile):
"""
"""
def
prepare_csv
(
self
,
f
,
dev
,
data
,
key
s
):
def
prepare_csv
(
self
,
f
,
dev
,
data
,
atype
s
):
""" Метод. Запись данных в csv файл
""" Метод. Запись данных в csv файл
Return:
Return:
...
@@ -121,13 +120,14 @@ class meteoEopFile(meteoBaseFile):
...
@@ -121,13 +120,14 @@ class meteoEopFile(meteoBaseFile):
:linenos:
:linenos:
:caption: get_device
:caption: get_device
"""
"""
_cnv
=
lambda
x
:
str
(
x
)
if
not
x
else
'null'
for
d
in
data
:
for
d
in
data
:
tm
=
self
.
round_time
(
datetime
.
fromisoformat
(
d
[
'Date'
]))
.
replace
()
tm
=
self
.
round_time
(
datetime
.
fromisoformat
(
d
[
'Date'
]))
.
replace
()
if
tm
not
in
self
.
times
:
if
tm
not
in
self
.
times
:
self
.
times
.
add
(
tm
)
self
.
times
.
add
(
tm
)
self
.
tbeg
,
self
.
tend
=
min
(
self
.
tbeg
,
tm
),
max
(
self
.
tend
,
tm
)
self
.
tbeg
,
self
.
tend
=
min
(
self
.
tbeg
,
tm
),
max
(
self
.
tend
,
tm
)
for
k
,
atype
in
keys
.
items
():
row
=
'{{{}}}'
.
format
(
','
.
join
(
map
(
_cnv
,[
d
[
k
]
for
k
in
atypes
.
keys
()])))
self
.
write
(
f
,(
tm
,
dev
,
atype
,
d
[
k
]
))
self
.
write
(
f
,(
tm
,
dev
,
row
))
async
def
load
(
self
,
fd
,
args
):
async
def
load
(
self
,
fd
,
args
):
""" Метод. Загрузка файла.
""" Метод. Загрузка файла.
...
@@ -145,10 +145,10 @@ class meteoEopFile(meteoBaseFile):
...
@@ -145,10 +145,10 @@ class meteoEopFile(meteoBaseFile):
await
self
.
check_priv_device
(
dev
)
await
self
.
check_priv_device
(
dev
)
self
.
fileattr
[
'dev'
]
=
dev
self
.
fileattr
[
'dev'
]
=
dev
pkeys
=
await
self
.
get_pkey
s
(
dev
)
atypes
=
await
self
.
get_atype
s
(
dev
)
fo
=
io
.
BytesIO
()
fo
=
io
.
BytesIO
()
data
=
json
.
load
(
fd
)[
self
.
model
]
data
=
json
.
load
(
fd
)[
self
.
model
]
self
.
prepare_csv
(
fo
,
dev
,
data
,
pkey
s
)
self
.
prepare_csv
(
fo
,
dev
,
data
,
atype
s
)
self
.
fid
=
await
self
.
getfid
()
self
.
fid
=
await
self
.
getfid
()
fo
.
seek
(
0
)
fo
.
seek
(
0
)
...
@@ -217,6 +217,8 @@ class eop2mFile(meteoBaseFile):
...
@@ -217,6 +217,8 @@ class eop2mFile(meteoBaseFile):
:linenos:
:linenos:
:caption: load_data
:caption: load_data
"""
"""
_cnv
=
lambda
x
:
str
(
x
)
if
not
x
else
'null'
logger
.
info
(
'Загрузка файла...'
)
logger
.
info
(
'Загрузка файла...'
)
await
super
()
.
load
(
fd
,
args
)
await
super
()
.
load
(
fd
,
args
)
data
=
json
.
load
(
fd
)
data
=
json
.
load
(
fd
)
...
@@ -230,13 +232,12 @@ class eop2mFile(meteoBaseFile):
...
@@ -230,13 +232,12 @@ class eop2mFile(meteoBaseFile):
await
self
.
check_priv_device
(
dev
)
await
self
.
check_priv_device
(
dev
)
if
dev
not
in
devs
:
if
dev
not
in
devs
:
devs
.
add
(
dev
)
devs
.
add
(
dev
)
pkeys
=
await
self
.
get_pkey
s
(
dev
)
atypes
=
await
self
.
get_atype
s
(
dev
)
tm
=
datetime
.
fromisoformat
(
r
[
'data'
][
'date'
])
.
replace
(
microsecond
=
0
)
tm
=
datetime
.
fromisoformat
(
r
[
'data'
][
'date'
])
.
replace
(
microsecond
=
0
)
self
.
tbeg
,
self
.
tend
=
min
(
self
.
tbeg
,
tm
),
max
(
self
.
tend
,
tm
)
self
.
tbeg
,
self
.
tend
=
min
(
self
.
tbeg
,
tm
),
max
(
self
.
tend
,
tm
)
d
=
r
[
'data'
]
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
]
row
=
'{{{}}}'
.
format
(
','
.
join
(
map
(
_cnv
,[
d
[
k
]
for
k
in
atypes
.
keys
()])))
for
l
in
rec
:
self
.
write
(
f
,(
tm
,
dev
,
row
))
self
.
write
(
fo
,
l
)
self
.
fid
=
await
self
.
getfid
()
self
.
fid
=
await
self
.
getfid
()
self
.
fileattr
=
dict
(
devs
=
list
(
devs
))
self
.
fileattr
=
dict
(
devs
=
list
(
devs
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment