Skip to content

Commit

Permalink
Release 2.10 (#277)
Browse files Browse the repository at this point in the history
* No more Py2.7 and Py3.3

* Remove references to Python <= 3.3. Fixes #252

* Removed support for Python 2. Fixes #243

* These should have been removed far before

* Updated with all refatored subpackages and their non-code includes

* Fixes #263

* Fixes #258

* Improve docs

* even better, with a logo!

* Fixes #269

* #269

* skeleton for tile client

* even better, with a logo!

* now also providing weather icon URLs

* fix upper version boundary and fix keywords

* Refactored out to a separate URI files

* forgot to commit

* Fetch a PNG file, with tests

* name inconsistencies make me *angry*...

* an image

* Tile entity

* Lots of mods... tiles now working!

* docs

* New property

* Small refactoring

* Add buy me a cofee page link

* Far better now

* Superb

* Fix broken URL

* a very first draft, testing how Travis behaves

* attempt 2

* attempt 3 (typo in yaml)

* attempt 3

* attempt 4

* attempt 5

* Travis does not support Py37 yet. Furthermore, already existing wheels and sdists broke the build

* test 1

* test 2 (trying to make it more clever)

* test 3

* test 4

* test 5

* test 6

* test 6

* test 6

* test 8

* test 8

* Fixing #271

* now tagging development releases on TestPyPI (attempt 1)

* attempt 2 (various fixes)

* attempt 3 (skipping some build steps if on the develop branch)

* attempt 4

* attempt 5

* attempt 6

* attempt 7

* more badges

* attempt 8

* attempt 9

* tox with coverage and fix timestamp issues in concurrent deploys

* This should fix #272

* update

* oh s**t I forgot..

* Removing lib dependecies duplication (now setup.py reads deps from requirements.txt)

* better now

* absolute paths! always!!!

* OK so.. no requirements.txt anymore.

* let's do it anyway

* Safe to remove?

* Improvement

* Safe to remove?

* Agro API: Polygons API subset + docs

* Agro API: Polygons API subset + docs

* __repr__ and docs

* Soil entity with tests; fixes to imports/docs

* Finalizes #245

* Seeds for Imagery API subset of Agro API; fix docs missing

* repr everywhere

* Refactoring

* Moved Tile class into commons; Imagery module now provides the class hierarchy for dealing with Satellite Imagery Search operation

* Fetching a GeoTIF image and some refactoring

* more tests and btter docs; finalized download_satellite_image

* Implement stats retrieval for satellite images

* Refactored enum

* Refactoring

* Implemented search and download methods for satellite imagery; also some integration tests; lots of refactoring

* More integrations tests

* Refactoring and more unit tests. Completed satellite imagery related features

* Name refactoring

* One more method and test

* Fix docs

* dump to version 2.10

* fix prints

* Update README.md

* change PyPI production URL

* fix duplicated tag
  • Loading branch information
csparpa committed Dec 21, 2018
1 parent 1b8632b commit a5d8733
Show file tree
Hide file tree
Showing 186 changed files with 4,655 additions and 958 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -13,3 +13,6 @@ sphinx/_build/*
.coverage
tests/integration/.tox/*
.cache
.eggs/
htmlcov/*

67 changes: 56 additions & 11 deletions .travis.yml
@@ -1,21 +1,66 @@
language: python
python:
- "2.7"
- "3.4"
- "3.5"
- "3.6"
- "3.7-dev"
install:
- pip install --upgrade pip
- pip install coverage tox-travis virtualenv coveralls
script:
- tox
- coverage run --rcfile=.coveragerc setup.py test -s tests.unit
- bash tests/local_installation_test.sh
script: tox
after_success:
coveralls
- coveralls

notifications:
email:
on_failure: change
dist: xenial
sudo: false
env:
global:
- TEST_PYPI_URL=https://test.pypi.org/legacy/
- PYPI_URL=https://upload.pypi.org/legacy/
install:
- pip install --upgrade pip && pip install -r dev-requirements.txt && pip install .
cache: pip

stages:
- test
- "Local Installation Test"
- "Build docs"
- "Deploy to PyPI"
- "PyPI Installation Test"

jobs:
include:
- &local_installation_test
stage: "Local Installation Test"
python: 3.4
script: bash tests/local_installation_test.sh
- <<: *local_installation_test
python: 3.5
- <<: *local_installation_test
python: 3.6
- <<: *local_installation_test
python: "3.7-dev"

- stage: "Build docs"
script: cd sphinx && make clean && make html

- &deploy_to_pypi
stage: "Deploy to PyPI"
python: 3.4
script: bash deploy/deploy_to_pypi.sh
- <<: *deploy_to_pypi
python: 3.5
- <<: *deploy_to_pypi
python: 3.6
- <<: *deploy_to_pypi
python: "3.7-dev"

- &pypi_installation_test
stage: "PyPI Installation Test"
python: 3.4
if: branch = master
script: bash tests/pypi_installation_test.sh
- <<: *pypi_installation_test
python: 3.5
- <<: *pypi_installation_test
python: 3.6
- <<: *pypi_installation_test
python: "3.7-dev"
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Expand Up @@ -19,6 +19,7 @@ Code
Testing
-------
* [Samuel Yap] (https://github.com/samuelyap)
* [Patrick Casbon] (https://github.com/patcas)

Packaging and Distribution
--------------------------
Expand Down
7 changes: 5 additions & 2 deletions MANIFEST.in
@@ -1,3 +1,6 @@
include pyowm/webapi25/cityids/*.gz
include pyowm/webapi25/xsd/*.xsd
include pyowm/pollutionapi30/xsd/*.xsd
include pyowm/stationsapi30/xsd/*.xsd
include pyowm/uvindexapi30/xsd/*.xsd
include pyowm/weatherapi25/cityids/*.gz
include pyowm/weatherapi25/xsd/*.xsd
include pyowm/docs/*.md
4 changes: 2 additions & 2 deletions Pipfile
Expand Up @@ -12,5 +12,5 @@ virtualenv = "==12.0.7"
twine = "==1.11.0"

[packages]
requests = "<3,==2.18.2"
geojson = "<2.4,==2.3.0"
requests = "<3,==2.20.0"
geojson = "<3,==2.3.0"
105 changes: 64 additions & 41 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 18 additions & 16 deletions README.md
Expand Up @@ -4,12 +4,16 @@
**A Python wrapper around OpenWeatherMap web APIs**

[![PyPI version](https://badge.fury.io/py/pyowm.svg)](https://badge.fury.io/py/pyowm)
[![Latest Release Documentation](https://readthedocs.org/projects/pyowm/badge/?version=latest)](https://pyowm.readthedocs.org/en/latest/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/pyowm.svg)](https://img.shields.io/pypi/dm/pyowm.svg)
<br>
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyowm.svg)](https://img.shields.io/pypi/pyversions/pyowm.svg)
<br>
[![Latest Release Documentation](https://readthedocs.org/projects/pyowm/badge/?version=latest)](https://pyowm.readthedocs.io/en/latest/)
[![Build Status](https://travis-ci.org/csparpa/pyowm.png?branch=master)](https://travis-ci.org/csparpa/pyowm)
[![Coverage Status](https://coveralls.io/repos/github/csparpa/pyowm/badge.svg?branch=master)](https://coveralls.io/github/csparpa/pyowm?branch=master)
[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/csparpa)
<br>
<a href="https://www.buymeacoffee.com/LmAl1n9" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/black_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>
[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/csparpa)

## What is it?
PyOWM is a client Python wrapper library for OpenWeatherMap (OWM) web APIs.
Expand All @@ -18,15 +22,16 @@ It allows quick and easy consumption of OWM data from Python applications via a

With PyOWM you can integrate into your code any of the following OpenWeatherMap web APIs:

- *Weather API v2.5*, offering
- **[Weather API v2.5](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/weather-api-usage-examples.html)**, providing
- current weather data
- weather forecasts
-+ weather history
- *Air Pollution API v3.0*, offering data about CO, O3, NO2 and SO2
- *UV Index API v3.0*, offering data about Ultraviolet exposition
- *Stations API v3.0*, allowing to create and manage meteostation and publish local weather measurements
- *Weather Alerts API v3.0*, allowing to set triggers on weather conditions and areas and poll for spawned alerts
- *Image tiles* for several map layers provided by OWM
- weather history
- **[Agro API v1.0](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/agro-api-usage-examples.html)**, providing soil data and satellite imagery search and download
- **[Air Pollution API v3.0](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/air-pollution-api-usage-examples.html)**, providing data about CO, O3, NO2 and SO2
- **[UV Index API v3.0](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/uv-api-usage-examples.html)**, providing data about Ultraviolet exposition
- **[Stations API v3.0](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/stations-api-usage-examples.html)**, allowing to create and manage meteostation and publish local weather measurements
- **[Weather Alerts API v3.0](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/alerts-api-usage-examples.html)**, allowing to set triggers on weather conditions and areas and poll for spawned alerts
- **[Image tiles](https://pyowm.readthedocs.io/en/latest/usage-examples-v2/map-tiles-client-examples.html)** for several map layers provided by OWM

PyOWM runs on Python 2.7 and Python 3.4+ (but watch out! Python 2.x will eventually be dropped - [check details out](https://github.com/csparpa/pyowm/wiki/Timeline-for-dropping-Python-2.x-support))

Expand Down Expand Up @@ -64,7 +69,7 @@ Please notice that the free API subscription plan is subject to requests throttl

### Examples

That's a simple example of what you can do with PyOWM and a free OWM API Key:
That's a simple example of what you can do with PyOWM Weather API and a free OWM API Key:

```python
import pyowm
Expand All @@ -90,7 +95,7 @@ w.get_temperature('celsius') # {'temp_max': 10.5, 'temp': 9.7, 'temp_min': 9.0}
observation_list = owm.weather_around_coords(-22.57, -43.12)
```

And this is a usage example with a paid OWM API key:
And this is an example using a paid OWM API key:

```python
import pyowm
Expand All @@ -100,14 +105,11 @@ paid_owm = pyowm.OWM(API_key='your-pro-API-key', subscription_type='pro')
# Will it be clear tomorrow at this time in Milan (Italy) ?
forecast = paid_owm.daily_forecast("Milan,IT")
tomorrow = pyowm.timeutils.tomorrow()
forecast.will_be_clear_at(tomorrow) # The sun always shines on Italy, right? ;-)
forecast.will_be_clear_at(tomorrow) # The sun always shines on Italy, right? ;)
```

More PyOWM usage examples are available [here](https://github.com/csparpa/pyowm/blob/master/pyowm/docs/usage-examples.md).


## Documentation
The library software API documentation is available on [Read the Docs](https://pyowm.readthedocs.org/en/stable/).
The library software API documentation is available on [Read the Docs](https://pyowm.readthedocs.io/en/latest/).

Each release has its own [changelog](https://github.com/csparpa/pyowm/wiki/Changelog).

Expand Down

0 comments on commit a5d8733

Please sign in to comment.