All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project follows Semantic Versioning.
4.2.0 - 2024-08-08
- Add a new
timeout
parameter toOsmApi
which allows to set a timeout in seconds (default is 30s) for the API requests (see issue #170, thanks Mateusz Konieczny)
- Only include
discussion
key in result ofChangesetGet
ifinclude_discussion=True
(see issue #163, thanks Mateusz Konieczny) - Update OAuth example in README using cli-oauth2 (see PR #169, thanks Ilya Zverev)
4.1.0 - 2024-03-19
- OAuth 2.0 example in README and in the
examples
directory
- Check if a passed
session
is authenticated and use this instead of Username/Password, this enables OAuth 2.0 authentication
- remove Python2 crumbs (see PR #159, thanks Alexandre Detiste)
4.0.0 - 2023-07-15
- Add Python 3.11 to build
- Add pre-commit configuration for
flake8
andblack
- Upgrade the code with
pyupgrade
(see PR #146, thanks Miroslav Šedivý) Miroslav Šedivý - Replace format with f-strings to resolve issue (see PR #147, thanks Miroslav Šedivý)
- Use the
black
code style for this code base
- BC-Break: Remove support for Python 3.7, new minimum version for osmapi is Python 3.8
3.1.0 - 2023-01-18
- New
ElementNotFoundApiError
when a 404 response comes from the API - Raise an exception if a user tries to create a test changeset on the PROD server (see issue #66, thanks SomeoneElseOSM)
- Add new
NoteAlreadyClosedApiError
exception when you try to close an already closed note (see issue #135, thanks Mateusz Konieczny)
NoteGets
now allows empty results i.e. it returns an empty list if no notes were found (see issue #137, thanks Mateusz Konieczny)
3.0.0 - 2022-02-12
- Add context manager
Changeset()
to open/close changesets - Add
session
parameter to provide a custom http session object
- Refactor code into several modules/files to improve maintainability
- Use
logging
module to log debug information
- BC-Break: Remove
debug
parameter of OsmApi, replaced debug messages withlogging
module
- Added
python_requires
to setup.py to define Python 3.7 as minimum version
2.0.2 - 2021-11-24
- Set
long_description
format to markdown
2.0.1 - 2021-11-24
- Add Makefile for all common tasks
- Long description of osmapi (now using directly the README.md)
- Switch from nose to pytest
- Move docs to its own subdirectory
- Remove tox configuration and dependency
2.0.0 - 2021-11-22
- Move from Travis CI to Github Actions
- Add more API-specific errors to catch specific errors (see issue #115, thanks Mateusz Konieczny):
ChangesetClosedApiError
NoteClosedApiError
VersionMismatchApiError
PreconditionFailedApiError
- BC-Break: osmapi does not support Python 2.7, 3.3, 3.4, 3.5 and 3.6 anymore
- Return an empty list in
NodeRelations
,WayRelations
,RelationRelations
andNodeWays
if the returned XML is empty (thanks FisherTsai, see issue #117)
1.3.0 - 2020-10-05
- Add close() method to close the underlying http session (see issue #107)
- Add context manager to automatically open and close the http session (see issue #107)
- Correctly parse password file (thanks Julien Palard, see pull request #106)
1.2.2 - 2018-11-05
- Update PyPI password for deployment
1.2.1 - 2018-11-05
- Deployment to PyPI with Travis
1.2.0 - 2018-11-05
- Support Python 3.7 (thanks a lot cclauss)
- Python 3.3 is no longer supported (EOL)
- Updated dependencies for Python 3.7
- Adapt README to use Python 3 syntax (thanks cclauss)
1.1.0 - 2017-10-11
- Raise new
XmlResponseInvalidError
if XML response from the OpenStreetMap API is invalid
- Improved README (thanks Mateusz Konieczny)
1.0.2 - 2017-09-07
- Rais ResponseEmptyApiError if we expect a response from the OpenStreetMap API, but didn't get one
- Removed httpretty as HTTP mock library
1.0.1 - 2017-09-07
- Make sure tests run offline
1.0.0 - 2017-09-05
- Officially support Python 3.5 and 3.6
- osmapi does not support Python 2.6 anymore (it might work, it might not)
- BC-Break: raise an exception if the requested element is deleted (previoulsy
None
has been returned)
0.8.1 - 2016-12-21
- Use setuptools instead of distutils in setup.py
0.8.0 - 2016-12-21
- This release no longer supports Python 3.2, if you need it, go back to release <= 0.6.2
- Read version from init.py instead of importing it in setup.py
0.7.2 - 2016-12-21
- Added 'requests' as a dependency to setup.py to fix installation problems
0.7.1 - 2016-12-12
- Catch OSError in setup.py to avoid installation errors
0.7.0 - 2016-12-07
- Replace the old httplib with requests library (thanks a lot Austin Hartzheim!)
- Use format strings instead of ugly string concatenation
- Fix unicode in changesets (thanks a lot to MichaelVL!)
0.6.2 - 2016-01-04
- Re-arranged README
- Make sure PyPI releases are only created when a release has been tagged on GitHub
0.6.1 - 2016-01-04
- The documentation is now available at a new domain: http://osmapi.metaodi.ch, the previous provider does no longer provide this service
0.6.0 - 2015-05-26
- SSL support for the API calls (thanks Austin Hartzheim!)
- Run tests on Python 3.4 as well
- A bunch of new *Error classes (see below)
- Dependency to 'Pygments' to enable syntax highlighting for online documentation
- Contributing guidelines
- Changed generic
Exception
with more specific ones, so a client can catch those and react accordingly (no BC-break!)
0.5.0 - 2015-01-03
- BC-break: all dates are now parsed as datetime objects
- Implementation for changeset discussions (ChangesetComment, ChangesetSubscribe, ChangesetUnsubscribe)
- When (un)subscribing to a changeset, there are two special errors
AlreadySubscribedApiError
andNotSubscribedApiError
to check for - The ChangesetGet method got a new parameter
include_discussion
to determine wheter or not changeset discussion should be in the response
0.4.2 - 2015-01-01
- Result of
NodeWay
is now actually parsed as away
- Lots of method comments for documentation
- Update to pdoc 0.3.1 which changed the appearance of the online docs
0.4.1 - 2014-10-08
- Parse dates in notes as
datetime
objects
0.4.0 - 2014-10-07
- Release for OSM Notes API
- Generation of online documentation (http://osmapi.divshot.io)
0.3.1 - 2014-06-21
- Hotfix release of Python 3.x (base64)
0.3.0 - 2014-05-20
- Support for Python 3.x
- Use
tox
to run tests against multiple versions of Python
0.2.26 - 2014-05-02
- Fixed notes again
0.2.25 - 2014-05-02
- Unit tests for basic functionality
- Fixed based on the unit tests (previously undetected bugs)
0.2.24 - 2014-01-07
- Fixed notes
0.2.23 - 2014-01-03
- Hotfix release
0.2.22 - 2014-01-03
- Fixed README.md not found error during installation
0.2.21 - 2014-01-03
- Updated description
0.2.20 - 2014-01-01
- First release of PyPI package "osmapi"
0.2.19 - 2014-01-01
- Inital version from SVN (http://svn.openstreetmap.org/applications/utils/python_lib/OsmApi/OsmApi.py)
- Move to GitHub
- Add debug message on ApiError
- Fix ChangesetClose and _http_request
- Capabilities implementation
- ChangesetsGet by Alexander Rampp
- xml encoding error for < and >
- changesetautomulti parameter
- modify instead update for osc
- raise ApiError on 4xx errors
- unicode error on ChangesetUpload
- RelationFullRecur definition
- automatic changeset management
- ChangesetUpload implementation
- *(Create|Update|Delete) use not unique _do method
- implement all missing functions except ChangesetsGet and GetCapabilities
- encoding clean-up
- implements NodesGet, WaysGet, RelationsGet, ParseOsm, ParseOsc
- clean-up
- keep http connection alive for multiple request
- (Node|Way|Relation)Get return None when object have been deleted (raising error before)
- can identify applications built on top of the lib
- some changes in constructor
- initial import
Added
for new features.Changed
for changes in existing functionality.Deprecated
for once-stable features removed in upcoming releases.Removed
for deprecated features removed in this release.Fixed
for any bug fixes.Security
to invite users to upgrade in case of vulnerabilities.