metno-locationforecast


Namemetno-locationforecast JSON
Version 2.1.0 PyPI version JSON
download
home_pageNone
SummaryA Python interface for MET Norway's Locationforecast 2.0 service.
upload_time2024-12-04 00:41:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT License Copyright (c) 2020 Rory Sullivan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords met metno norway yr locationforecast location forecast weather api python python3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MET Norway Location Forecast

A Python interface for the MET Norway
[Locationforecast/2.0](https://api.met.no/weatherapi/locationforecast/2.0/documentation)
service. This is a free weather data service provided by the [Norwegian
Meteorological Institute](https://www.met.no/en).

## Contents

- [MET Norway Location Forecast](#met-norway-location-forecast)
  - [Contents](#contents)
  - [Features](#features)
  - [Installation](#installation)
  - [Usage](#usage)
    - [Basics](#basics)
    - [Accessing Data](#accessing-data)
    - [Custom URLs](#custom-urls)
    - [Configuration](#configuration)
    - [More Examples](#more-examples)
  - [Notes on Licensing](#notes-on-licensing)
  - [Dependencies](#dependencies)
  - [Useful Links](#useful-links)

## Features

- Get weather data for anywhere in the world
- Automatically take care of caching data
- Helpful classes for managing forecast data
- Convert between units of measurement

## Installation

Installing with pip:

```shell
pip install metno-locationforecast
```

It's recommended to install ```metno-locationforecast``` into a virtual
environment for your application.

## Usage

### Basics

Before using this package you should be aware of the [terms of
service](https://api.met.no/doc/TermsOfService) for using the MET Norway Weather
API.

The ```metno-locationforecast``` package will not make requests unless current
data has expired and will send requests with the appropriate
```If-Modified-Since``` header where possible. Identification can be provided by
passing a ```User-Agent``` string to the forecast class, see more on this below.

After installing ```metno-locationforecast``` the following commands can be run
in a python console. Start by importing the ```Place``` and ```Forecast```
classes, these are the main classes you will need to interact with.

```pycon
>>> from metno_locationforecast import Place, Forecast
```

**Note:** Use an underscore in the name when importing.

Create a ```Place``` instance. The first argument is your name for the place,
next are the geographic coordinates. Geographic coordinates are given by
latitude, longitude (in degrees) and altitude (in metres).

```pycon
>>> new_york = Place("New York", 40.7, -74.0, 10)
```

The altitude parameter is optional but recommended. Note that latitude and
longitude are rounded to four decimal places and altitude is rounded to the
nearest integer, this is required by the MET API.
[GeoNames](http://www.geonames.org/) is a helpful website for finding the
geographic coordinates of a place.

Next create a ```Forecast``` instance for the place. Here you need to supply a
```User-Agent``` string, typically this will include the name and version of
your application as well as contact information (email address or website) more
details on what is expected [here](https://api.met.no/doc/TermsOfService). Do
NOT use the string supplied here as this does not apply to your site.

```pycon
>>> ny_forecast = Forecast(new_york, "metno_locationforecast/2.0 https://github.com/Rory-Sullivan/metno-locationforecast")
```

There are also three optional arguments that you can supply. First is the
```forecast_type``` parameter, options are ```"compact"``` (a limited set of
variables suitable for most purposes) or ```"complete"``` (an extensive set of
weather data). For more details on the differences check out the this
[page](https://api.met.no/doc/locationforecast/datamodel). ```"compact"``` is
the default.

The second optional parameter is ```save_location```, this is the folder where
data will be stored. The default is ```"./data/"```. Finally there is the
```base_url``` parameter, more on this in the [Custom URLs](#Custom-URLs)
section.

These parameters can be configured for your entire app by using a configuration
file, more on this in the [configuration](#Configuration) section.

Next run the update method. This will make a request to the MET API for data and
will save the data to the save location. If data already exists for the
forecast, this will only request new data if the data has expired and will make
the request using the appropriate ```If-Modified-Since``` header. It returns a
string describing which process occurred, this will be one of
```'Data-Not-Expired'```, ```'Data-Not-Modified'``` or ```'Data-Modified'```.
Only in the case of ```'Data-Modified'``` has any change to the data occurred.

```pycon
>>> ny_forecast.update()
'Data-Modified'
>>> ny_forecast.update()
'Data-Not-Expired'
```

Finally we can print the forecast.

```pycon
>>> print(ny_forecast)
Forecast for New York:
        Forecast between 2020-07-21 14:00:00 and 2020-07-21 15:00:00:
                air_pressure_at_sea_level: 1016.7hPa
                air_temperature: 28.7celsius
                cloud_area_fraction: 1.6%
                ...
```

### Accessing Data

Printing forecasts to the terminal is great but most likely you want to use the
forecast data in your own application. When the update method is run it parses
the returned data which can then be accessed through attributes of the forecast
instance.

The most notable of these is the ```data``` attribute.

```pycon
>>> type(ny_forecast.data)
<class 'metno_locationforecast.data_containers.Data'>
```

This is a special ```Data``` class which stores the weather data information.
You can list its attributes like so;

```pycon
>>> vars(ny_forecast.data).keys()
dict_keys(['last_modified', 'expires', 'updated_at', 'units', 'intervals'])
```

```last_modified```, ```expires``` and ```updated_at``` are
```datetime.datetime``` objects for when the data was last modified, when it is
expected to expire and when the forecast was updated, respectively. These are
all given in UTC.

```units``` contains a dictionary mapping variable names to the units in which
they are provided by the API.

```intervals``` is where we find the actual weather data. It is a list of
intervals. Note that the MET API usually supplies multiple intervals for each
time point in the data set, the forecast parser takes the *shortest* supplied
interval for each time point.

```pycon
>>> type(ny_forecast.data.intervals)
<class 'list'>
>>> type(ny_forecast.data.intervals[0])
<class 'metno_locationforecast.data_containers.Interval'>
>>> print(ny_forecast.data.intervals[0])
Forecast between 2020-07-21 14:00:00 and 2020-07-21 15:00:00:
        air_pressure_at_sea_level: 1016.7hPa
        air_temperature: 28.7celsius
        cloud_area_fraction: 1.6%
        relative_humidity: 56.0%
        wind_from_direction: 349.7degrees
        wind_speed: 1.4m/s
        precipitation_amount: 0.0mm
```

Each interval is an ```Interval``` instance. This interval class has a
```variables``` attribute which is a dictionary mapping variable names to
```Variable``` instances.

```pycon
>>> first_interval = ny_forecast.data.intervals[0]
>>> first_interval.start_time
datetime.datetime(2020, 7, 21, 14, 0)
>>> first_interval.end_time
datetime.datetime(2020, 7, 21, 15, 0)
>>> first_interval.duration
datetime.timedelta(0, 3600)
>>> first_interval.variables.keys()
dict_keys(['air_pressure_at_sea_level', 'air_temperature', 'cloud_area_fraction', 'relative_humidity', 'wind_from_direction', 'wind_speed', 'precipitation_amount'])
>>>
>>> rain = first_interval.variables["precipitation_amount"]
>>> print(rain)
precipitation_amount: 0.0mm
>>> rain.value
0.0
>>> rain.units
'mm'
```

For a full overview of the ```Data```, ```Interval``` and ```Variable``` classes
see the
[code](https://github.com/Rory-Sullivan/metno-locationforecast/blob/master/metno_locationforecast/data_containers.py).

Other attributes of the ```Forecast``` class that could be useful are;

- ```response```: This is the full ```requests.Response``` object received from the
  MET API (metno-locationforecast uses the
  [requests](https://requests.readthedocs.io/en/master/) library).
- ```json_string```: A string containing all data in json format. This is what is
  saved.
- ```json```: An object representation of the json_string.

The ```Forecast``` class also has additional methods that may be of use.

- ```save()```: Save data to save location.
- ```load()```: Load data from saved file.

The code for the ```Forecast``` class can be found
[here](https://github.com/Rory-Sullivan/metno-locationforecast/blob/master/metno_locationforecast/forecast.py).

### Custom URLs

By default the Forecast class will fetch data from
'https://api.met.no/weatherapi/locationforecast/2.0/' if you wish to use a
different domain you can pass a ```base_url``` parameter to the constructor
function. Note that the type for the forecast will be appended to this url when
requests are made, if this is not suitable for your application you should pass
an empty string for the type.

```pycon
>>> ny_forecast = Forecast(new_york, "metno-locationforecast/1.0", forecast_type="",  base_url="somewhere.com")
>>> ny_forecast.url
'somewhere.com'
```

### Configuration

If you wish to provide application wide configuration for your module this can
be done in either a ```metno-locationforecast.ini``` file or in a ```setup.cfg```
file in the root directory of your application. Below is an example of the
configurations that you can put in there showing their default values.

```ini
[metno-locationforecast]
user_agent = None
forecast_type = compact
save_location = ./data
base_url = https://api.met.no/weatherapi/locationforecast/2.0/
```

Note that regardless of the file, configurations need to be under a
```[metno-locationforecast]``` section and settings in a
```metno-locationforecast.ini``` file will take precedence.

### More Examples

For further usage examples see the
[examples](https://github.com/Rory-Sullivan/metno-locationforecast/tree/master/examples)
folder.

To see what can be done with this library you could also checkout [Dry
Rock](https://github.com/Rory-Sullivan/Dry-Rock). It is another project
maintained by myself that uses the ```metno-locationforecast``` library. It was
in fact the original inspiration for me to create this library.

## Notes on Licensing

While the code in this package is covered by an MIT license and is free to use
the weather data collected from the MET Weather API is covered by a separate
license and has it's own [terms of use](https://api.met.no/doc/TermsOfService).

## Dependencies

- [Requests](https://requests.readthedocs.io/en/master/)
- [tzdata](https://github.com/python/tzdata)

## Useful Links

- PyPI page - <https://pypi.org/project/metno-locationforecast/>
- Github page - <https://github.com/Rory-Sullivan/metno-locationforecast>
- The Norwegian Meteorological Institute - <https://www.met.no/en>
- MET Weather API - <https://api.met.no/>
- MET Weather API Terms of Service - <https://api.met.no/doc/TermsOfService>
- Locationforecast/2.0 documentation - <https://api.met.no/weatherapi/locationforecast/2.0>
- Full list of variables and their names - <https://api.met.no/doc/locationforecast/datamodel>
- Yr Developer Portal - <https://developer.yr.no/>
- Yr Terms of Service (same as the MET API terms of service but perhaps more readable) - <https://developer.yr.no/doc/TermsOfService/>
- GeoNames - <http://www.geonames.org/>
- Requests library - <https://requests.readthedocs.io/en/master/>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "metno-locationforecast",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "met, metno, norway, yr, locationforecast, location, forecast, weather, api, python, python3",
    "author": null,
    "author_email": "Rory Sullivan <codingrory@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/1d/c9/6b4bf402ed723d3e8c0881778d45812874e0d268f87020ef7dbe17a07fba/metno_locationforecast-2.1.0.tar.gz",
    "platform": null,
    "description": "# MET Norway Location Forecast\r\n\r\nA Python interface for the MET Norway\r\n[Locationforecast/2.0](https://api.met.no/weatherapi/locationforecast/2.0/documentation)\r\nservice. This is a free weather data service provided by the [Norwegian\r\nMeteorological Institute](https://www.met.no/en).\r\n\r\n## Contents\r\n\r\n- [MET Norway Location Forecast](#met-norway-location-forecast)\r\n  - [Contents](#contents)\r\n  - [Features](#features)\r\n  - [Installation](#installation)\r\n  - [Usage](#usage)\r\n    - [Basics](#basics)\r\n    - [Accessing Data](#accessing-data)\r\n    - [Custom URLs](#custom-urls)\r\n    - [Configuration](#configuration)\r\n    - [More Examples](#more-examples)\r\n  - [Notes on Licensing](#notes-on-licensing)\r\n  - [Dependencies](#dependencies)\r\n  - [Useful Links](#useful-links)\r\n\r\n## Features\r\n\r\n- Get weather data for anywhere in the world\r\n- Automatically take care of caching data\r\n- Helpful classes for managing forecast data\r\n- Convert between units of measurement\r\n\r\n## Installation\r\n\r\nInstalling with pip:\r\n\r\n```shell\r\npip install metno-locationforecast\r\n```\r\n\r\nIt's recommended to install ```metno-locationforecast``` into a virtual\r\nenvironment for your application.\r\n\r\n## Usage\r\n\r\n### Basics\r\n\r\nBefore using this package you should be aware of the [terms of\r\nservice](https://api.met.no/doc/TermsOfService) for using the MET Norway Weather\r\nAPI.\r\n\r\nThe ```metno-locationforecast``` package will not make requests unless current\r\ndata has expired and will send requests with the appropriate\r\n```If-Modified-Since``` header where possible. Identification can be provided by\r\npassing a ```User-Agent``` string to the forecast class, see more on this below.\r\n\r\nAfter installing ```metno-locationforecast``` the following commands can be run\r\nin a python console. Start by importing the ```Place``` and ```Forecast```\r\nclasses, these are the main classes you will need to interact with.\r\n\r\n```pycon\r\n>>> from metno_locationforecast import Place, Forecast\r\n```\r\n\r\n**Note:** Use an underscore in the name when importing.\r\n\r\nCreate a ```Place``` instance. The first argument is your name for the place,\r\nnext are the geographic coordinates. Geographic coordinates are given by\r\nlatitude, longitude (in degrees) and altitude (in metres).\r\n\r\n```pycon\r\n>>> new_york = Place(\"New York\", 40.7, -74.0, 10)\r\n```\r\n\r\nThe altitude parameter is optional but recommended. Note that latitude and\r\nlongitude are rounded to four decimal places and altitude is rounded to the\r\nnearest integer, this is required by the MET API.\r\n[GeoNames](http://www.geonames.org/) is a helpful website for finding the\r\ngeographic coordinates of a place.\r\n\r\nNext create a ```Forecast``` instance for the place. Here you need to supply a\r\n```User-Agent``` string, typically this will include the name and version of\r\nyour application as well as contact information (email address or website) more\r\ndetails on what is expected [here](https://api.met.no/doc/TermsOfService). Do\r\nNOT use the string supplied here as this does not apply to your site.\r\n\r\n```pycon\r\n>>> ny_forecast = Forecast(new_york, \"metno_locationforecast/2.0 https://github.com/Rory-Sullivan/metno-locationforecast\")\r\n```\r\n\r\nThere are also three optional arguments that you can supply. First is the\r\n```forecast_type``` parameter, options are ```\"compact\"``` (a limited set of\r\nvariables suitable for most purposes) or ```\"complete\"``` (an extensive set of\r\nweather data). For more details on the differences check out the this\r\n[page](https://api.met.no/doc/locationforecast/datamodel). ```\"compact\"``` is\r\nthe default.\r\n\r\nThe second optional parameter is ```save_location```, this is the folder where\r\ndata will be stored. The default is ```\"./data/\"```. Finally there is the\r\n```base_url``` parameter, more on this in the [Custom URLs](#Custom-URLs)\r\nsection.\r\n\r\nThese parameters can be configured for your entire app by using a configuration\r\nfile, more on this in the [configuration](#Configuration) section.\r\n\r\nNext run the update method. This will make a request to the MET API for data and\r\nwill save the data to the save location. If data already exists for the\r\nforecast, this will only request new data if the data has expired and will make\r\nthe request using the appropriate ```If-Modified-Since``` header. It returns a\r\nstring describing which process occurred, this will be one of\r\n```'Data-Not-Expired'```, ```'Data-Not-Modified'``` or ```'Data-Modified'```.\r\nOnly in the case of ```'Data-Modified'``` has any change to the data occurred.\r\n\r\n```pycon\r\n>>> ny_forecast.update()\r\n'Data-Modified'\r\n>>> ny_forecast.update()\r\n'Data-Not-Expired'\r\n```\r\n\r\nFinally we can print the forecast.\r\n\r\n```pycon\r\n>>> print(ny_forecast)\r\nForecast for New York:\r\n        Forecast between 2020-07-21 14:00:00 and 2020-07-21 15:00:00:\r\n                air_pressure_at_sea_level: 1016.7hPa\r\n                air_temperature: 28.7celsius\r\n                cloud_area_fraction: 1.6%\r\n                ...\r\n```\r\n\r\n### Accessing Data\r\n\r\nPrinting forecasts to the terminal is great but most likely you want to use the\r\nforecast data in your own application. When the update method is run it parses\r\nthe returned data which can then be accessed through attributes of the forecast\r\ninstance.\r\n\r\nThe most notable of these is the ```data``` attribute.\r\n\r\n```pycon\r\n>>> type(ny_forecast.data)\r\n<class 'metno_locationforecast.data_containers.Data'>\r\n```\r\n\r\nThis is a special ```Data``` class which stores the weather data information.\r\nYou can list its attributes like so;\r\n\r\n```pycon\r\n>>> vars(ny_forecast.data).keys()\r\ndict_keys(['last_modified', 'expires', 'updated_at', 'units', 'intervals'])\r\n```\r\n\r\n```last_modified```, ```expires``` and ```updated_at``` are\r\n```datetime.datetime``` objects for when the data was last modified, when it is\r\nexpected to expire and when the forecast was updated, respectively. These are\r\nall given in UTC.\r\n\r\n```units``` contains a dictionary mapping variable names to the units in which\r\nthey are provided by the API.\r\n\r\n```intervals``` is where we find the actual weather data. It is a list of\r\nintervals. Note that the MET API usually supplies multiple intervals for each\r\ntime point in the data set, the forecast parser takes the *shortest* supplied\r\ninterval for each time point.\r\n\r\n```pycon\r\n>>> type(ny_forecast.data.intervals)\r\n<class 'list'>\r\n>>> type(ny_forecast.data.intervals[0])\r\n<class 'metno_locationforecast.data_containers.Interval'>\r\n>>> print(ny_forecast.data.intervals[0])\r\nForecast between 2020-07-21 14:00:00 and 2020-07-21 15:00:00:\r\n        air_pressure_at_sea_level: 1016.7hPa\r\n        air_temperature: 28.7celsius\r\n        cloud_area_fraction: 1.6%\r\n        relative_humidity: 56.0%\r\n        wind_from_direction: 349.7degrees\r\n        wind_speed: 1.4m/s\r\n        precipitation_amount: 0.0mm\r\n```\r\n\r\nEach interval is an ```Interval``` instance. This interval class has a\r\n```variables``` attribute which is a dictionary mapping variable names to\r\n```Variable``` instances.\r\n\r\n```pycon\r\n>>> first_interval = ny_forecast.data.intervals[0]\r\n>>> first_interval.start_time\r\ndatetime.datetime(2020, 7, 21, 14, 0)\r\n>>> first_interval.end_time\r\ndatetime.datetime(2020, 7, 21, 15, 0)\r\n>>> first_interval.duration\r\ndatetime.timedelta(0, 3600)\r\n>>> first_interval.variables.keys()\r\ndict_keys(['air_pressure_at_sea_level', 'air_temperature', 'cloud_area_fraction', 'relative_humidity', 'wind_from_direction', 'wind_speed', 'precipitation_amount'])\r\n>>>\r\n>>> rain = first_interval.variables[\"precipitation_amount\"]\r\n>>> print(rain)\r\nprecipitation_amount: 0.0mm\r\n>>> rain.value\r\n0.0\r\n>>> rain.units\r\n'mm'\r\n```\r\n\r\nFor a full overview of the ```Data```, ```Interval``` and ```Variable``` classes\r\nsee the\r\n[code](https://github.com/Rory-Sullivan/metno-locationforecast/blob/master/metno_locationforecast/data_containers.py).\r\n\r\nOther attributes of the ```Forecast``` class that could be useful are;\r\n\r\n- ```response```: This is the full ```requests.Response``` object received from the\r\n  MET API (metno-locationforecast uses the\r\n  [requests](https://requests.readthedocs.io/en/master/) library).\r\n- ```json_string```: A string containing all data in json format. This is what is\r\n  saved.\r\n- ```json```: An object representation of the json_string.\r\n\r\nThe ```Forecast``` class also has additional methods that may be of use.\r\n\r\n- ```save()```: Save data to save location.\r\n- ```load()```: Load data from saved file.\r\n\r\nThe code for the ```Forecast``` class can be found\r\n[here](https://github.com/Rory-Sullivan/metno-locationforecast/blob/master/metno_locationforecast/forecast.py).\r\n\r\n### Custom URLs\r\n\r\nBy default the Forecast class will fetch data from\r\n'https://api.met.no/weatherapi/locationforecast/2.0/' if you wish to use a\r\ndifferent domain you can pass a ```base_url``` parameter to the constructor\r\nfunction. Note that the type for the forecast will be appended to this url when\r\nrequests are made, if this is not suitable for your application you should pass\r\nan empty string for the type.\r\n\r\n```pycon\r\n>>> ny_forecast = Forecast(new_york, \"metno-locationforecast/1.0\", forecast_type=\"\",  base_url=\"somewhere.com\")\r\n>>> ny_forecast.url\r\n'somewhere.com'\r\n```\r\n\r\n### Configuration\r\n\r\nIf you wish to provide application wide configuration for your module this can\r\nbe done in either a ```metno-locationforecast.ini``` file or in a ```setup.cfg```\r\nfile in the root directory of your application. Below is an example of the\r\nconfigurations that you can put in there showing their default values.\r\n\r\n```ini\r\n[metno-locationforecast]\r\nuser_agent = None\r\nforecast_type = compact\r\nsave_location = ./data\r\nbase_url = https://api.met.no/weatherapi/locationforecast/2.0/\r\n```\r\n\r\nNote that regardless of the file, configurations need to be under a\r\n```[metno-locationforecast]``` section and settings in a\r\n```metno-locationforecast.ini``` file will take precedence.\r\n\r\n### More Examples\r\n\r\nFor further usage examples see the\r\n[examples](https://github.com/Rory-Sullivan/metno-locationforecast/tree/master/examples)\r\nfolder.\r\n\r\nTo see what can be done with this library you could also checkout [Dry\r\nRock](https://github.com/Rory-Sullivan/Dry-Rock). It is another project\r\nmaintained by myself that uses the ```metno-locationforecast``` library. It was\r\nin fact the original inspiration for me to create this library.\r\n\r\n## Notes on Licensing\r\n\r\nWhile the code in this package is covered by an MIT license and is free to use\r\nthe weather data collected from the MET Weather API is covered by a separate\r\nlicense and has it's own [terms of use](https://api.met.no/doc/TermsOfService).\r\n\r\n## Dependencies\r\n\r\n- [Requests](https://requests.readthedocs.io/en/master/)\r\n- [tzdata](https://github.com/python/tzdata)\r\n\r\n## Useful Links\r\n\r\n- PyPI page - <https://pypi.org/project/metno-locationforecast/>\r\n- Github page - <https://github.com/Rory-Sullivan/metno-locationforecast>\r\n- The Norwegian Meteorological Institute - <https://www.met.no/en>\r\n- MET Weather API - <https://api.met.no/>\r\n- MET Weather API Terms of Service - <https://api.met.no/doc/TermsOfService>\r\n- Locationforecast/2.0 documentation - <https://api.met.no/weatherapi/locationforecast/2.0>\r\n- Full list of variables and their names - <https://api.met.no/doc/locationforecast/datamodel>\r\n- Yr Developer Portal - <https://developer.yr.no/>\r\n- Yr Terms of Service (same as the MET API terms of service but perhaps more readable) - <https://developer.yr.no/doc/TermsOfService/>\r\n- GeoNames - <http://www.geonames.org/>\r\n- Requests library - <https://requests.readthedocs.io/en/master/>\r\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2020 Rory Sullivan  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A Python interface for MET Norway's Locationforecast 2.0 service.",
    "version": "2.1.0",
    "project_urls": {
        "Homepage": "https://github.com/Rory-Sullivan/metno-locationforecast",
        "Issues": "https://github.com/Rory-Sullivan/metno-locationforecast/issues",
        "Source": "https://github.com/Rory-Sullivan/metno-locationforecast"
    },
    "split_keywords": [
        "met",
        " metno",
        " norway",
        " yr",
        " locationforecast",
        " location",
        " forecast",
        " weather",
        " api",
        " python",
        " python3"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6450f5fabdb9063776ec8b4f9777533879113325d63e1e50947c154eac005b64",
                "md5": "20f19f6c4b0661b21c99c82f2f0d7417",
                "sha256": "40b4791059e84bcdd7c4ed07c17af3c80cbf0483b00575e19e661a84bd141be5"
            },
            "downloads": -1,
            "filename": "metno_locationforecast-2.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "20f19f6c4b0661b21c99c82f2f0d7417",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 14702,
            "upload_time": "2024-12-04T00:41:01",
            "upload_time_iso_8601": "2024-12-04T00:41:01.191579Z",
            "url": "https://files.pythonhosted.org/packages/64/50/f5fabdb9063776ec8b4f9777533879113325d63e1e50947c154eac005b64/metno_locationforecast-2.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1dc96b4bf402ed723d3e8c0881778d45812874e0d268f87020ef7dbe17a07fba",
                "md5": "ceb7fbde09845e5c2c0c434961f0e8c5",
                "sha256": "aaec48bc28d8fee6740caee5f0a3397c0e33859a6b6dbf6c75a29b0a65fa0c98"
            },
            "downloads": -1,
            "filename": "metno_locationforecast-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ceb7fbde09845e5c2c0c434961f0e8c5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 55688,
            "upload_time": "2024-12-04T00:41:02",
            "upload_time_iso_8601": "2024-12-04T00:41:02.406287Z",
            "url": "https://files.pythonhosted.org/packages/1d/c9/6b4bf402ed723d3e8c0881778d45812874e0d268f87020ef7dbe17a07fba/metno_locationforecast-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-04 00:41:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Rory-Sullivan",
    "github_project": "metno-locationforecast",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "metno-locationforecast"
}
        
Elapsed time: 0.36569s