3.0.0
This is a major release.
This means that no retrocompatibility is offered, as many high-level PyOWM interface functions have been modified or removed: this might result in your client code breaking.
But fear not! Patching your code is very likely a breeze: please verify the "migration guide" in the documentation about how to patch.
New and modified features
- dict configuration
- added support for OneCall endpoints
- renamed a few weather forecast functions
- dropped old OWM history retrieval features as today they're usable only with OWM paid plans
- renamed all "Java-style" getter methods (eg.
get_temperature
) so to allow Pythonic access to object attributes - added HTTP/SOCKS proxies support
- dropped caches: pyowm won't feature any caching mechanism, that shall be done on the client code
- added timezone to Weather objects
- added more units of measurement for winds
- dropped XML schemas and XML dumps for entities
- dropped JSON dumps for entities: only Python dict dumps are now in place
Platforms Support
- dropped legacy support for Python2 and support for Python 3.4 - only supports Python 3.7+ now
- dropped support for Docker (no more Dockerfiles and Docker images)
Enhancements
- all entities now have dunder methods:
__repr__
,from_dict
,to_dict
- added code recipes and corresponding integration tests
- documented PyOWM 2 maintenance timeline
Bugfixes
- on CityIDRegistyr now US cities have their actual US state attached and are therefore more easily searchable
Internals
- gave the
weatherapi
module exactly the same dignity as other api modules... - PollutionAPI and UVIndexAPI: both will feature a Manager object, which will be instantiated by the new OWM entry point
- made Exceptions hierarchy more consistent
Security
- Now using SSL as the default option for all API calls
- HTTP calls timeout is increased to 5 seconds (to allow download of satellite images)
- finalized deprecations foreseen for v3