Source code for pyEX.commodities.commodities

# *****************************************************************************
#
# Copyright (c) 2020, the pyEX authors.
#
# This file is part of the pyEX library, distributed under the terms of
# the Apache License 2.0.  The full license can be found in the LICENSE file.
#
from enum import Enum
from functools import lru_cache, wraps

from ..common import _expire, _UTC, _timeseriesWrapper
from ..timeseries import timeSeries, timeSeriesDF, timeSeriesAsync


[docs]class CommoditiesPoints(Enum): """Commodities data points https://iexcloud.io/docs/api/#commodities Attributes: WTI; Crude oil West Texas Intermediate - in dollars per barrel, not seasonally adjusted BRENT; Crude oil Brent Europe - in dollars per barrel, not seasonally adjusted NATGAS; Henry Hub Natural Gas Spot Price - in dollars per million BTU, not seasonally adjusted HEATOIL; No. 2 Heating Oil New York Harbor - in dollars per gallon, not seasonally adjusted JET; Kerosense Type Jet Fuel US Gulf Coast - in dollars per gallon, not seasonally adjusted DIESEL; US Diesel Sales Price - in dollars per gallon, not seasonally adjusted GASREG; US Regular Conventional Gas Price - in dollars per gallon, not seasonally adjusted GASMID; US Midgrade Conventional Gas Price - in dollars per gallon, not seasonally adjusted GASPRM; US Premium Conventional Gas Price - in dollars per gallon, not seasonally adjusted PROPANE; Propane Prices Mont Belvieu Texas - in dollars per gallon, not seasonally adjusted """ WTI = "DCOILWTICO" BRENT = "DCOILBRENTEU" NATGAS = "DHHNGSP" HEATOIL = "DHOILNYH" JET = "DJFUELUSGULF" DIESEL = "GASDESW" GASREG = "GASREGCOVW" GASMID = "GASMIDCOVW" GASPRM = "GASPRMCOVW" PROPANE = "DPROPANEMBTX" @staticmethod @lru_cache(1) def options(): """Return a list of the available commodities points options""" return list(map(lambda c: c.value, CommoditiesPoints))
[docs]@_expire(hour=8, tz=_UTC) def wti(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DCOILWTICO", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(wti) def wtiDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DCOILWTICO", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(wti) async def wtiAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DCOILWTICO", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def brent(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DCOILBRENTEU", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(brent) def brentDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DCOILBRENTEU", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(brent) async def brentAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DCOILBRENTEU", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def natgas(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DHHNGSP", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(natgas) def natgasDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DHHNGSP", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(natgas) async def natgasAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DHHNGSP", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def heatoil(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DHOILNYH", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(heatoil) def heatoilDF( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DHOILNYH", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(heatoil) async def heatoilAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DHOILNYH", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def jet(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DJFUELUSGULF", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(jet) def jetDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DJFUELUSGULF", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(jet) async def jetAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DJFUELUSGULF", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def diesel(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="GASDESW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(diesel) def dieselDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="GASDESW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(diesel) async def dieselAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="GASDESW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def gasreg(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="GASREGCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasreg) def gasregDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="GASREGCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasreg) async def gasregAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="GASREGCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def gasmid(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="GASMIDCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasmid) def gasmidDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="GASMIDCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasmid) async def gasmidAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return timeSeriesAsync( id="ENERGY", key="GASMIDCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def gasprm(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="GASPRMCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasprm) def gasprmDF(token="", version="stable", filter="", format="json", **timeseries_kwargs): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="GASPRMCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(gasprm) async def gasprmAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="GASPRMCOVW", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) def propane(token="", version="stable", filter="", format="json", **timeseries_kwargs): """Commodities data https://iexcloud.io/docs/api/#commodities Args: token (str): Access token version (str): API version filter (str): filters: https://iexcloud.io/docs/api/#filter-results format (str): return format, defaults to json Supports all kwargs from `pyEX.timeseries.timeSeries` Returns: dict or DataFrame: result """ _timeseriesWrapper(timeseries_kwargs) return timeSeries( id="ENERGY", key="DPROPANEMBTX", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(propane) def propaneDF( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return timeSeriesDF( id="ENERGY", key="DPROPANEMBTX", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )
[docs]@_expire(hour=8, tz=_UTC) @wraps(propane) async def propaneAsync( token="", version="stable", filter="", format="json", **timeseries_kwargs ): _timeseriesWrapper(timeseries_kwargs) return await timeSeriesAsync( id="ENERGY", key="DPROPANEMBTX", token=token, version=version, filter=filter, format=format, **timeseries_kwargs )