Commit 800154ce authored by Takhir Fakhrutdinov's avatar Takhir Fakhrutdinov

Косяк в eopjson

parent 589aa849
......@@ -68,7 +68,7 @@ def _get_trackcrc(meas):
return hs.md5(s.encode('utf8')).hexdigest()
# Формирование строки для типа meas_t
def _get_meas_t(meas):
def _get_meas_t(meas,trackid):
""" Метод. Формирование строки для записи трека в БД
Args:
......@@ -83,8 +83,14 @@ def _get_meas_t(meas):
:linenos:
:caption: _get_meas_t
"""
ms,mags,files,eop,tb,te = list(),list(),list(),list(),datetime.max, datetime.min
ms,mags,files,eop,tb,te,_times = list(),list(),list(),list(),datetime.max, datetime.min,set()
for m in meas:
if m['utc'] in _times:
logger.warning('Duplicate time: %s in track:%s',m['utc'],trackid)
continue
_times.add(m['utc'])
tm = datetime.strptime(m['utc'],'%d/%m/%Y %H:%M:%S.%f')
files.append(m['filename'])
tb,te = min(tb,tm),max(te,tm)
......@@ -111,7 +117,7 @@ def parsefile(f):
if not siteid: siteid = t['siteid']
b = t.get('bind')
tb,te,avg_m,ms,files,eop = _get_meas_t(t['meas'])
tb,te,avg_m,ms,files,eop = _get_meas_t(t['meas'],t['trackid'])
tbeg,tend,cnt = min(tbeg,tb),max(tend,te),len(t['meas'])
mcnt += cnt
# Формируем проводку
......
#!/usr/local/bin/python3
#!/opt/local/bin/python
# -*- coding: utf-8 -*-
from libpy.fileFactory import factory
#from libpy.fileFactory import factory
import sys
import os
import io
......@@ -43,11 +43,11 @@ if __name__ == '__main__':
logger = logging.getLogger('')
f = io.StringIO(sys.stdin.read())
f.seek(0)
json.load(f)
f.seek(0)
t = factory.detect_file(f)
if not t:
# f.seek(0)
# json.load(f)
# f.seek(0)
# t = factory.detect_file(f)
if not False:
shema = {
"type": "array",
"items": {
......@@ -73,9 +73,7 @@ if __name__ == '__main__':
"type": "object",
"required": [
"siteid","nightid","filename","exp_num","obstime","crops",
"ast_ra_j2000","ast_dec_j2000","ast_rms_ra","ast_rms_dec","ast_orientation",
"limmag","limmag_error","phot_zero_error",
"phot_zero","sky_level","seeing"
"ra_j2000","dec_j2000","orientation",
],
"properties": {
"siteid": { "$ref": "#/$defs/integer"},
......@@ -87,8 +85,11 @@ if __name__ == '__main__':
"ast_ra_j2000": {"$ref": "#/$defs/number"},
"ast_dec_j2000": {"$ref": "#/$defs/number"},
"ast_rms_ra": {"$ref": "#/$defs/number"},
"ast_rms_dec": {"$ref": "#/$defs/number"},
"ast_orientation": {"$ref": "#/$defs/number"},
"ast_rms_dec": {"$ref": "#/$defs/number"},
"ra_j2000": {"$ref": "#/$defs/number"},
"dec_j2000": {"$ref": "#/$defs/number"},
"orientation": {"$ref": "#/$defs/number"},
"limmag": {"$ref": "#/$defs/number"},
"limmag_error": {"$ref": "#/$defs/number"},
"phot_zero_error": {"$ref": "#/$defs/number"},
......@@ -107,13 +108,13 @@ if __name__ == '__main__':
"$defs": {
"datetime": {"type":"string","pattern":"^\\d{2}\\/\\d{2}\\/\\d{4}\\s\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d+)?$"},
"integer": {"type":"string","pattern":"^[-+]?\\d+$"},
"number": {"type":"string","pattern":"^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$"},
"number": {"anyOf":[{"type":"string","pattern":"^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$"},{"type":"number"}]},
"base64": {"type":"string","pattern":"^(?=(.{4})*$)[A-Za-z0-9+\\/]*={0,2}$"}
}
}
f.seek(0)
# f.seek(0)
js.validate(json.load(f),shema)
......
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