mirror of
				https://github.com/mewtek/i2ME-Legacy.git
				synced 2025-06-10 05:30:00 -05:00 
			
		
		
		
	Prevent blocking when sending files to the i2
This commit is contained in:
		@@ -88,6 +88,7 @@ def getTime(timestamp) -> str:
 | 
			
		||||
    return str(time)
 | 
			
		||||
 | 
			
		||||
async def collect(radarType: str):
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    ts = await getValidTimestamps(radarType)
 | 
			
		||||
    frames = await downloadRadarFrames(radarType, ts)
 | 
			
		||||
 | 
			
		||||
@@ -99,4 +100,4 @@ async def collect(radarType: str):
 | 
			
		||||
        if radarType == "satrad":
 | 
			
		||||
            commands.append( '<MSG><Exec workRequest="storePriorityImage(FileExtension=.tiff,File={0},Location=US,ImageType=SatRad,IssueTime=' + getTime(ts[i]) + ')"/></MSG>' )
 | 
			
		||||
 | 
			
		||||
        bit.sendFile([frames[i]], [commands[i]], 1, 0)
 | 
			
		||||
        await loop.run_in_executor(bit.sendFile([frames[i]], [commands[i]], 1, 0))
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ import records.LFRecord as LFR
 | 
			
		||||
import gzip
 | 
			
		||||
from os import remove
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -43,6 +43,7 @@ async def getData(coopId, geocode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing AchesAndPains record.")
 | 
			
		||||
 | 
			
		||||
    header = '<Data type="AchesAndPains">'
 | 
			
		||||
@@ -73,7 +74,7 @@ async def makeRecord():
 | 
			
		||||
    file = "./.temp/AchesAndPains.gz"
 | 
			
		||||
    command = '<MSG><Exec workRequest="storeData(File={0},QGROUP=__AchesAndPains__,Feed=AchesAndPains)" /><GzipCompressedMsg fname="AchesAndPains" /></MSG>'
 | 
			
		||||
 | 
			
		||||
    bit.sendFile([file], [command], 1, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile([file], [command], 1, 0))
 | 
			
		||||
 | 
			
		||||
    remove('./.temp/AchesAndPains.i2m')
 | 
			
		||||
    remove('./.temp/AchesAndPains.gz')
 | 
			
		||||
@@ -4,7 +4,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -46,6 +46,7 @@ async def getData(epaId, zipcode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def writeData():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    useData = False 
 | 
			
		||||
    workingEpaIds = []
 | 
			
		||||
 | 
			
		||||
@@ -93,7 +94,7 @@ async def writeData():
 | 
			
		||||
            comand = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__AirQuality__,Feed=AirQuality)" /><GzipCompressedMsg fname="AirQuality" /></MSG>')
 | 
			
		||||
            numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
            bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
            await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
            os.remove("./.temp/AirQuality.i2m")
 | 
			
		||||
            os.remove("./.temp/AirQuality.gz")
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
@@ -48,6 +48,7 @@ async def getData(airport):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def writeData():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    useData = False
 | 
			
		||||
    airportsWithDelays = []
 | 
			
		||||
 | 
			
		||||
@@ -93,7 +94,7 @@ async def writeData():
 | 
			
		||||
        comand = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__AirportDelays__,Feed=AirportDelays)" /><GzipCompressedMsg fname="AirportDelays" /></MSG>')
 | 
			
		||||
        numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
        bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
        await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
        os.remove("./.temp/AirportDelays.i2m")
 | 
			
		||||
        os.remove("./.temp/AirportDelays.gz")
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ import xml.dom.minidom
 | 
			
		||||
import shutil
 | 
			
		||||
import gzip
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiofiles, aiohttp
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
@@ -324,6 +324,7 @@ async def getAlerts(location):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    global k
 | 
			
		||||
    
 | 
			
		||||
    # The BERecord XML doesn't need to be written if there's no alerts.
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
sys.path.append("./Util")
 | 
			
		||||
@@ -52,6 +52,7 @@ async def getData(coopId, geocode):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeDataFile():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing a Breathing forecast record.")
 | 
			
		||||
    header = '<Data type="Breathing">'
 | 
			
		||||
    footer = '</Data>'
 | 
			
		||||
@@ -85,7 +86,7 @@ async def makeDataFile():
 | 
			
		||||
    command = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__Breathing__,Feed=Breathing)" /><GzipCompressedMsg fname="Breathing" /></MSG>')
 | 
			
		||||
    numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
    bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
    os.remove("./.temp/Breathing.i2m")
 | 
			
		||||
    os.remove("./.temp/Breathing.gz")
 | 
			
		||||
@@ -6,8 +6,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiofiles
 | 
			
		||||
import aiohttp
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
@@ -55,6 +54,7 @@ async def getData(tecci, zipCode):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeDataFile():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing a CurrentObservations record.")
 | 
			
		||||
    header = '<Data type="CurrentObservations">'
 | 
			
		||||
    footer = '</Data>'
 | 
			
		||||
@@ -92,7 +92,7 @@ async def makeDataFile():
 | 
			
		||||
    command = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__CurrentObservations__,Feed=CurrentObservations)" /><GzipCompressedMsg fname="CurrentObservations" /></MSG>')
 | 
			
		||||
    numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
    bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
    await loop.run_in_executor(await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0)))
 | 
			
		||||
 | 
			
		||||
    os.remove("./.temp/CurrentObservations.i2m")
 | 
			
		||||
    os.remove("./.temp/CurrentObservations.gz")
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiofiles, aiohttp
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
sys.path.append("./Util")
 | 
			
		||||
@@ -53,6 +53,7 @@ async def getData(tecci, zipCode):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeDataFile():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing a DailyForecast record.")
 | 
			
		||||
    header = '<Data type="DailyForecast">'
 | 
			
		||||
    footer = '</Data>'
 | 
			
		||||
@@ -86,7 +87,7 @@ async def makeDataFile():
 | 
			
		||||
    command = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__DailyForecast__,Feed=DailyForecast)" /><GzipCompressedMsg fname="DailyForecast" /></MSG>')
 | 
			
		||||
    numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
    bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
    os.remove("./.temp/DailyForecast.i2m")
 | 
			
		||||
    os.remove("./.temp/DailyForecast.gz")
 | 
			
		||||
@@ -7,7 +7,7 @@ import records.LFRecord as LFR
 | 
			
		||||
import gzip
 | 
			
		||||
from os import remove
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -43,6 +43,7 @@ async def getData(coopId, geocode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing HeatingAndCooling record.")
 | 
			
		||||
 | 
			
		||||
    header = '<Data type="HeatingAndCooling">'
 | 
			
		||||
@@ -73,7 +74,7 @@ async def makeRecord():
 | 
			
		||||
    file = "./.temp/HeatingAndCooling.gz"
 | 
			
		||||
    command = '<MSG><Exec workRequest="storeData(File={0},QGROUP=__HeatingAndCooling__,Feed=HeatingAndCooling)" /><GzipCompressedMsg fname="HeatingAndCooling" /></MSG>'
 | 
			
		||||
 | 
			
		||||
    bit.sendFile([file], [command], 1, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile([file], [command], 1, 0))
 | 
			
		||||
 | 
			
		||||
    remove('./.temp/HeatingAndCooling.i2m')
 | 
			
		||||
    remove('./.temp/HeatingAndCooling.gz')
 | 
			
		||||
@@ -5,7 +5,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging,coloredlogs
 | 
			
		||||
import aiofiles, aiohttp, asyncio
 | 
			
		||||
import aiohttp, aiofiles, asyncio, asyncio
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
@@ -54,6 +54,7 @@ async def getData(tecci, zipCode):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeDataFile():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing an HourlyForecast record.")
 | 
			
		||||
    header = '<Data type="HourlyForecast">'
 | 
			
		||||
    footer = '</Data>'
 | 
			
		||||
@@ -88,7 +89,7 @@ async def makeDataFile():
 | 
			
		||||
    command = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__HourlyForecast__,Feed=HourlyForecast)" /><GzipCompressedMsg fname="HourlyForecast" /></MSG>')
 | 
			
		||||
    numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
    bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
    os.remove("./.temp/HourlyForecast.i2m")
 | 
			
		||||
    os.remove("./.temp/HourlyForecast.gz")
 | 
			
		||||
@@ -7,7 +7,7 @@ import records.LFRecord as LFR
 | 
			
		||||
import gzip
 | 
			
		||||
from os import remove
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -43,6 +43,7 @@ async def getData(coopId, geocode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing MosquitoActivity record.")
 | 
			
		||||
 | 
			
		||||
    header = '<Data type="MosquitoActivity">'
 | 
			
		||||
@@ -73,7 +74,7 @@ async def makeRecord():
 | 
			
		||||
    file = "./.temp/MosquitoActivity.gz"
 | 
			
		||||
    command = '<MSG><Exec workRequest="storeData(File={0},QGROUP=__MosquitoActivity__,Feed=MosquitoActivity)" /><GzipCompressedMsg fname="MosquitoActivity" /></MSG>'
 | 
			
		||||
 | 
			
		||||
    bit.sendFile([file], [command], 1, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile([file], [command], 1, 0))
 | 
			
		||||
 | 
			
		||||
    remove('./.temp/MosquitoActivity.i2m')
 | 
			
		||||
    remove('./.temp/MosquitoActivity.gz')
 | 
			
		||||
@@ -6,7 +6,7 @@ import os
 | 
			
		||||
import shutil
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import logging, coloredlogs
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
sys.path.append("./py2lib")
 | 
			
		||||
sys.path.append("./Util")
 | 
			
		||||
@@ -52,6 +52,7 @@ async def getData(pollenId, geocode):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def makeDataFile():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing a PollenForecast record.")
 | 
			
		||||
    header = '<Data type="PollenForecast">'
 | 
			
		||||
    footer = '</Data>'
 | 
			
		||||
@@ -85,7 +86,7 @@ async def makeDataFile():
 | 
			
		||||
    command = commands.append('<MSG><Exec workRequest="storeData(File={0},QGROUP=__PollenForecast__,Feed=PollenForecast)" /><GzipCompressedMsg fname="PollenForecast" /></MSG>')
 | 
			
		||||
    numFiles = len(files)
 | 
			
		||||
 | 
			
		||||
    bit.sendFile(files, commands, numFiles, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile(files, commands, numFiles, 0))
 | 
			
		||||
 | 
			
		||||
    os.remove("./.temp/PollenForecast.i2m")
 | 
			
		||||
    os.remove("./.temp/PollenForecast.gz")
 | 
			
		||||
@@ -7,7 +7,7 @@ import records.LFRecord as LFR
 | 
			
		||||
import gzip
 | 
			
		||||
from os import remove
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -48,6 +48,7 @@ async def getData(tideStation, geocode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    if len(tideStations) < 1:
 | 
			
		||||
        l.debug("Skipping TidesForecast -- No locations.")
 | 
			
		||||
        return
 | 
			
		||||
@@ -82,7 +83,7 @@ async def makeRecord():
 | 
			
		||||
    file = "./.temp/TidesForecast.gz"
 | 
			
		||||
    command = '<MSG><Exec workRequest="storeData(File={0},QGROUP=__TidesForecast__,Feed=TidesForecast)" /><GzipCompressedMsg fname="TidesForecast" /></MSG>'
 | 
			
		||||
 | 
			
		||||
    bit.sendFile([file], [command], 1, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile([file], [command], 1, 0))
 | 
			
		||||
 | 
			
		||||
    remove('./.temp/TidesForecast.i2m')
 | 
			
		||||
    remove('./.temp/TidesForecast.gz')
 | 
			
		||||
@@ -7,7 +7,7 @@ import records.LFRecord as LFR
 | 
			
		||||
import gzip
 | 
			
		||||
from os import remove
 | 
			
		||||
import xml.dom.minidom
 | 
			
		||||
import aiohttp, aiofiles
 | 
			
		||||
import aiohttp, aiofiles, asyncio
 | 
			
		||||
 | 
			
		||||
l = logging.getLogger(__name__)
 | 
			
		||||
coloredlogs.install()
 | 
			
		||||
@@ -42,6 +42,7 @@ async def getData(coopId, geocode):
 | 
			
		||||
        await f.close()
 | 
			
		||||
 | 
			
		||||
async def makeRecord():
 | 
			
		||||
    loop = asyncio.get_running_loop()
 | 
			
		||||
    l.info("Writing WateringNeeds record.")
 | 
			
		||||
 | 
			
		||||
    header = '<Data type="WateringNeeds">'
 | 
			
		||||
@@ -72,7 +73,7 @@ async def makeRecord():
 | 
			
		||||
    file = "./.temp/WateringNeeds.gz"
 | 
			
		||||
    command = '<MSG><Exec workRequest="storeData(File={0},QGROUP=__WateringNeeds__,Feed=WateringNeeds)" /><GzipCompressedMsg fname="WateringNeeds" /></MSG>'
 | 
			
		||||
 | 
			
		||||
    bit.sendFile([file], [command], 1, 0)
 | 
			
		||||
    await loop.run_in_executor(bit.sendFile([file], [command], 1, 0))
 | 
			
		||||
 | 
			
		||||
    remove('./.temp/WateringNeeds.i2m')
 | 
			
		||||
    remove('./.temp/WateringNeeds.gz')
 | 
			
		||||
		Reference in New Issue
	
	Block a user