Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,11 @@ you will need to specify a `DWOLLA_APP_KEY` and `DWOLLA_APP_SECRET` environment

## Changelog

- **2.3.0**
- Remove hidden dependency on `simplejson`. Replace conditional `simplejson` import with explicit `DecimalEncoder` using standard library `json` module for consistent cross-environment behavior. Fixes [#55](https://github.com/Dwolla/dwolla-v2-python/issues/55). ([#56](https://github.com/Dwolla/dwolla-v2-python/pull/56) - Thanks [@robotadam](https://github.com/robotadam)!)
- Update test suite from `unittest2` to standard library `unittest` for modern Python compatibility. ([#54](https://github.com/Dwolla/dwolla-v2-python/pull/54) - Thanks [@robotadam](https://github.com/robotadam)!)
- Remove unused `future` dependency for cleaner dependency management. Fixes [#52](https://github.com/Dwolla/dwolla-v2-python/issues/52). ([#53](https://github.com/Dwolla/dwolla-v2-python/pull/53) Thanks [@robotadam](https://github.com/robotadam)!)
- Add `UpdateCredentialsError` class for handling credential update scenarios in Open Banking integrations. Developers can now catch specific `UpdateCredentialsError` exceptions instead of generic `Error` when exchange sessions need re-authentication. Fixes [#50](https://github.com/Dwolla/dwolla-v2-python/issues/50)
- **2.2.1**
- Add extra check in URL's to ensure they are clean. [#36](https://github.com/Dwolla/dwolla-v2-python/pull/36).
- **2.2.0**
Expand Down
8 changes: 7 additions & 1 deletion dwollav2/error.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ def map(res):
'method_not_allowed': MethodNotAllowedError,
'ValidationError': ValidationError,
'TooManyRequests': TooManyRequestsError,
'Conflict': ConflictError
'Conflict': ConflictError,
'UpdateCredentials': UpdateCredentialsError,
}.get(c, Error)(res)

def _get_body(self, res):
Expand Down Expand Up @@ -156,3 +157,8 @@ class TooManyRequestsError(Error):

class ConflictError(Error):
pass


class UpdateCredentialsError(Error):
pass

1 change: 1 addition & 0 deletions dwollav2/test/test_error.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def test_maps_codes(self):
self._test_maps_code_to_error('ValidationError', dwollav2.ValidationError)
self._test_maps_code_to_error('TooManyRequests', dwollav2.TooManyRequestsError)
self._test_maps_code_to_error('Conflict', dwollav2.ConflictError)
self._test_maps_code_to_error('UpdateCredentials', dwollav2.UpdateCredentialsError)

def _test_maps_code_to_error(self, code, klass):
error = {'error': code}
Expand Down
2 changes: 1 addition & 1 deletion dwollav2/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version = '2.2.1'
version = '2.3.0'
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

setup(
name='dwollav2',
version='2.2.1',
version='2.3.0',
packages=['dwollav2'],
install_requires=[
'requests>=2.9.1',
Expand Down