Source code for isodata.pjm.query.QueryWeatherForecast

"""QueryWeatherForecast - You may query for a particular effective day and weather point using the message described
below.
To query the system for a submitted weather forecast of a one or more weather points for a given
day
"""

# pylint:disable=duplicate-code
from ...pjm import constants as C


[docs] def prepare(token, **kwargs): """prepare and return all the components of the requests call.""" try: xml = "".join([ '<?xml version="1.0" encoding="UTF-8"?>', '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="%s" xmlns:SOAP-ENV="%s">' % (C.SOAP_ENCCODING, C.SOAP_ENVELOPE), '<SOAP-ENV:Body>', '<QueryRequest xmlns="%s">' % C.PJM_EMKT_XMLNS, '<%s day="%s">' % (kwargs['report'], kwargs['market_day'].strftime('%Y-%m-%d')), '<WeatherPointName>%s</WeatherPointName>' % kwargs['weather_point_name'], '</%s>' % kwargs['report'], '</QueryRequest>', '</SOAP-ENV:Body>', '</SOAP-ENV:Envelope>', ]) except KeyError as err: raise TypeError('[%s] Missing required field: %s for query.' % (kwargs['report'], err)) from err return { 'xml': xml, 'headers': { **C.PJM_BASE_HEADERS, 'Cookie': 'pjmauth=' + token, 'Content-length': str(len(xml)) }, 'url': C.PJM_EMKT_URL_QUERY }