Files
Eric F d4974e3241 Add FlexMeasures plugins, USEF protocol, and Cariflex simulator
- flexmeasures-entsoe: ENTSO-E data plugin
- flexmeasures-weather: Weather data plugin
- USEF Flex Trading Protocol PDF (2.4MB)
- Cariflex simulator (publishes to Redis)
- Dashboard Grafana updated with correct InfluxDB queries
- All tools extracted in /tools/
2026-06-08 07:38:57 -04:00

69 lines
2.3 KiB
Python

__version__ = "Unknown version"
"""
The __init__ for the flexmeasures-weather FlexMeasures plugin.
FlexMeasures registers the BluePrint objects it finds in here.
"""
from importlib.metadata import version, PackageNotFoundError
from flask import Blueprint
from .utils.blueprinting import ensure_bp_routes_are_loaded_fresh
# Overwriting version (if possible) from the package metadata
# ― if this plugin has been installed as a package.
# This uses importlib.metadata behaviour added in Python 3.8.
# Note that we rely on git tags (via setuptools_scm) to define that version.
try:
__version__ = version("flexmeasures_weather")
except PackageNotFoundError:
# package is not installed
pass
DEFAULT_FILE_PATH_LOCATION = "weather-forecasts"
DEFAULT_DATA_SOURCE_NAME = "Weather"
DEFAULT_WEATHER_STATION_NAME = "weather station (created by FM-Weather)"
WEATHER_STATION_TYPE_NAME = "weather station"
DEFAULT_MAXIMAL_DEGREE_LOCATION_DISTANCE = 1
__version__ = "0.1"
__settings__ = {
"WEATHER_FILE_PATH_LOCATION": dict(
description="Location of JSON files (if you store weather data in this form). Absolute path.",
level="debug",
),
"WEATHER_DATA_SOURCE_NAME": dict(
description=f"Name of the data source for Weather data, defaults to '{DEFAULT_DATA_SOURCE_NAME}'",
level="debug",
),
"WEATHER_STATION_NAME": dict(
description=f"Name of the weather station asset, defaults to '{DEFAULT_WEATHER_STATION_NAME}'",
level="debug",
),
"WEATHER_MAXIMAL_DEGREE_LOCATION_DISTANCE": dict(
descripion=f"Maximum distance (in degrees latitude & longitude) for weather stations from forecast location, defaults to {DEFAULT_MAXIMAL_DEGREE_LOCATION_DISTANCE}",
level="debug",
),
"WEATHER_PROVIDER": dict(
description="Provider for weather data. Permissible options are 'OWM' (OpenWeatherMap) or 'WAPI' (WeatherAPI).",
level="error",
),
"WEATHERAPI_KEY": dict(
description="API key for OWM or WAPI, whatever you have chosen.",
level="error",
),
}
# CLI
flexmeasures_weather_bp: Blueprint = Blueprint(
"flexmeasures-weather CLI", __name__, cli_group="weather"
)
flexmeasures_weather_bp.cli.help = "flexmeasures-weather CLI commands"
ensure_bp_routes_are_loaded_fresh("cli.commands")
from flexmeasures_weather.cli import commands # noqa: E402,F401