1
0
Fork 0

linting R0101

too-many-nested-blocks - pulled a break point out for utils.py/decode_data to get rid of a nested block

Signed-off-by: Corey Shields <cshields@gmail.com>
merge-requests/399/head
Corey Shields 2019-07-13 18:49:18 -04:00
parent 389194b076
commit 3ce647e374
2 changed files with 61 additions and 60 deletions

View File

@ -9,7 +9,6 @@ disable=
C0412, C0412,
E1101, E1101,
E0213, E0213,
R0101,
R0201, R0201,
R0401, R0401,
R0801, R0801,

View File

@ -188,67 +188,69 @@ def decode_data(norad, period=None):
otherwise attempt to decode everything otherwise attempt to decode everything
""" """
sat = Satellite.objects.get(norad_cat_id=norad) sat = Satellite.objects.get(norad_cat_id=norad)
if sat.has_telemetry_decoders: if not sat.has_telemetry_decoders:
now = datetime.utcnow() return
if period:
time_period = now - timedelta(hours=4)
time_period = make_aware(time_period)
data = DemodData.objects.filter(
satellite__norad_cat_id=norad, timestamp__gte=time_period
)
else:
data = DemodData.objects.filter(satellite=sat)
telemetry_decoders = Telemetry.objects.filter(satellite=sat)
# iterate over DemodData objects now = datetime.utcnow()
for obj in data: if period:
# iterate over Telemetry decoders time_period = now - timedelta(hours=4)
for tlmdecoder in telemetry_decoders: time_period = make_aware(time_period)
try: data = DemodData.objects.filter(
decoder_class = getattr(decoder, tlmdecoder.decoder.capitalize()) satellite__norad_cat_id=norad, timestamp__gte=time_period
except AttributeError: )
continue else:
try: data = DemodData.objects.filter(satellite=sat)
with open(obj.payload_frame.path) as frame_file: telemetry_decoders = Telemetry.objects.filter(satellite=sat)
# we get data frames in hex but kaitai requires binary
hexdata = frame_file.read()
bindata = binascii.unhexlify(hexdata)
# if we are set to use InfluxDB, send the decoded data # iterate over DemodData objects
# there, otherwise we store it in the local DB. for obj in data:
if settings.USE_INFLUX: # iterate over Telemetry decoders
try: for tlmdecoder in telemetry_decoders:
frame = decoder_class.from_bytes(bindata) try:
json_obj = create_point( decoder_class = getattr(decoder, tlmdecoder.decoder.capitalize())
decoder.get_fields(frame), sat, tlmdecoder, obj, decoders_version except AttributeError:
) continue
write_influx(json_obj) try:
obj.payload_decoded = 'influxdb' with open(obj.payload_frame.path) as frame_file:
obj.is_decoded = True # we get data frames in hex but kaitai requires binary
obj.save() hexdata = frame_file.read()
break bindata = binascii.unhexlify(hexdata)
except Exception: # pylint: disable=broad-except
obj.is_decoded = False # if we are set to use InfluxDB, send the decoded data
obj.save() # there, otherwise we store it in the local DB.
continue if settings.USE_INFLUX:
else: # store in the local db instead of influx try:
try: frame = decoder_class.from_bytes(bindata)
frame = decoder_class.from_bytes(bindata) json_obj = create_point(
except Exception: # pylint: disable=broad-except decoder.get_fields(frame), sat, tlmdecoder, obj, decoders_version
obj.payload_decoded = '' )
obj.is_decoded = False write_influx(json_obj)
obj.save() obj.payload_decoded = 'influxdb'
continue obj.is_decoded = True
else: obj.save()
json_obj = create_point( break
decoder.get_fields(frame), sat, tlmdecoder, obj, decoders_version except Exception: # pylint: disable=broad-except
) obj.is_decoded = False
obj.payload_decoded = json_obj obj.save()
obj.is_decoded = True continue
obj.save() else: # store in the local db instead of influx
break try:
except IOError: frame = decoder_class.from_bytes(bindata)
continue except Exception: # pylint: disable=broad-except
obj.payload_decoded = ''
obj.is_decoded = False
obj.save()
continue
else:
json_obj = create_point(
decoder.get_fields(frame), sat, tlmdecoder, obj, decoders_version
)
obj.payload_decoded = json_obj
obj.is_decoded = True
obj.save()
break
except IOError:
continue
# Caches stats about satellites and data # Caches stats about satellites and data