Source code for pyowm.owm

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from importlib.metadata import version

from pyowm import constants
from pyowm.agroapi10 import agro_manager
from pyowm.airpollutionapi30 import airpollution_manager
from pyowm.alertapi30 import alert_manager
from pyowm.geocodingapi10 import geocoding_manager
from pyowm.stationsapi30 import stations_manager
from pyowm.tiles import tile_manager
from pyowm.utils import strings
from pyowm.uvindexapi30 import uvindex_manager
from pyowm.utils import config as cfg
from pyowm.commons import cityidregistry
from pyowm.weatherapi30 import weather_manager


[docs] class OWM: """ Entry point class providing ad-hoc API clients for each OWM web API. :param api_key: the OWM API key :type api_key: str :param config: the configuration dictionary (if not provided, a default one will be used) :type config: dict """ def __init__(self, api_key, config=None): assert api_key is not None, 'API Key must be set' self.api_key = api_key if config is None: self.config = cfg.get_default_config() else: assert isinstance(config, dict) self.config = config @property def configuration(self): """ Returns the configuration dict for the PyOWM :returns: `dict` """ return self.config @property def version(self): """ Returns the current version of the PyOWM library :returns: `tuple` """ return tuple(version('pyowm').split('.')) @property def supported_languages(self): """ Returns the languages that the OWM API supports :return: `list` of `str` """ return constants.LANGUAGES
[docs] def agro_manager(self): """ Gives a `pyowm.agro10.agro_manager.AgroManager` instance that can be used to read/write data from the Agricultural API. :return: a `pyowm.agro10.agro_manager.AgroManager` instance """ return agro_manager.AgroManager(self.api_key, self.config)
[docs] def airpollution_manager(self): """ Gives a `pyowm.airpollutionapi30.airpollution_manager.AirPollutionManager` instance that can be used to fetch air pollution data. :return: a `pyowm.airpollutionapi30.airpollution_manager.AirPollutionManager` instance """ return airpollution_manager.AirPollutionManager(self.api_key, self.config)
[docs] def alert_manager(self): """ Gives an *AlertManager* instance that can be used to read/write weather triggers and alerts data. :return: an *AlertManager* instance """ return alert_manager.AlertManager(self.api_key, self.config)
[docs] def city_id_registry(self): """ Gives the *CityIDRegistry* singleton instance that can be used to lookup for city IDs. :returns: a *CityIDRegistry* instance """ return cityidregistry.CityIDRegistry.get_instance()
[docs] def stations_manager(self): """ Gives a *StationsManager* instance that can be used to read/write meteostations data. :returns: a *StationsManager* instance """ return stations_manager.StationsManager(self.api_key, self.config)
[docs] def tile_manager(self, layer_name): """ Gives a `pyowm.tiles.tile_manager.TileManager` instance that can be used to fetch tile images. :param layer_name: the layer name for the tiles (values can be looked up on `pyowm.tiles.enums.MapLayerEnum`) :return: a `pyowm.tiles.tile_manager.TileManager` instance """ return tile_manager.TileManager(self.api_key, layer_name, self.config)
[docs] def uvindex_manager(self): """ Gives a `pyowm.uvindexapi30.uvindex_manager.UVIndexManager` instance that can be used to fetch UV data. :return: a `pyowm.uvindexapi30.uvindex_manager.UVIndexManager` instance """ return uvindex_manager.UVIndexManager(self.api_key, self.config)
[docs] def weather_manager(self): """ Gives a `pyowm.weatherapi30.weather_manager.WeatherManager` instance that can be used to fetch air pollution data. :return: a `pyowm.weatherapi30.weather_manager.WeatherManager` instance """ return weather_manager.WeatherManager(self.api_key, self.config)
[docs] def geocoding_manager(self): """ Gives a `pyowm.geocoding10.geocoding_manager.GeocodingManager` instance that can be used to perform direct and reverse geocoding :return: a `pyowm.geocoding10.geocoding_manager.GeocodingManager` instance """ return geocoding_manager.GeocodingManager(self.api_key, self.config)
def __repr__(self): return "<%s.%s - API key=%s, subscription type=%s, PyOWM version=%s>" % \ (__name__, self.__class__.__name__, strings.obfuscate_API_key(self.api_key) if self.api_key is not None else 'None', self.config['subscription_type'].name, self.version)