Skip to content
Permalink
Browse files
Add files via upload
  • Loading branch information
jansonsa committed Nov 13, 2017
1 parent c04fc03 commit 81f01e08265408109ce44860a5c12b8967d9fdb0
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
@@ -0,0 +1,59 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
The PyOWM init file
**Author**: Claudio Sparpaglione, @csparpa <csparpa@gmail.com>
**Platform**: platform independent
"""

from pyowm import constants
from pyowm.utils import timeutils # Convenience import


def OWM(API_key=constants.DEFAULT_API_KEY, version=constants.LATEST_OWM_API_VERSION,
config_module=None, language=None, subscription_type=None):
"""
A parametrized factory method returning a global OWM instance that
represents the desired OWM web API version (or the currently supported one
if no version number is specified)
:param API_key: the OWM web API key (defaults to a test value)
:type API_key: str
:param version: the OWM web API version. Defaults to ``None``, which means
use the latest web API version
:type version: str
:param config_module: the Python path of the configuration module you want
to provide for instantiating the library. Defaults to ``None``, which
means use the default configuration values for the web API version
support you are currently requesting. Please be aware that malformed
user-defined configuration modules can lead to unwanted behaviour!
:type config_module: str (eg: 'mypackage.mysubpackage.myconfigmodule')
:param language: the language in which you want text results to be returned.
It's a two-characters string, eg: "en", "ru", "it". Defaults to:
``None``, which means use the default language.
:type language: str
:param subscription_type: the type of OWM web API subscription to be wrapped.
Can be 'free' (free subscription) or 'pro' (paid subscription),
Defaults to: 'free'
:type subscription_type: str
:returns: an instance of a proper *OWM* subclass
:raises: *ValueError* when unsupported OWM API versions are provided
"""
if version == '2.5':
if config_module is None:
config_module = "pyowm.webapi25.configuration25"
cfg_module = __import__(config_module, fromlist=[''])
from pyowm.webapi25.owm25 import OWM25
if language is None:
language = cfg_module.language
if subscription_type is None:
subscription_type = cfg_module.API_SUBSCRIPTION_TYPE
if subscription_type not in ['free', 'pro']:
subscription_type = 'free'
return OWM25(cfg_module.parsers, API_key, cfg_module.cache,
language, subscription_type)
raise ValueError("Unsupported OWM web API version")
@@ -0,0 +1,7 @@
"""
Constants for the PyOWM library
"""

PYOWM_VERSION = '2.7.1'
LATEST_OWM_API_VERSION = '2.5'
DEFAULT_API_KEY = 'b1b15e88fa797225412429c1c50c122a'

0 comments on commit 81f01e0

Please sign in to comment.