Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python SDK Refactor #117

Merged
merged 21 commits into from
Dec 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
01e97e7
Part of big Python SDK refactor. Work in Progress.
angelomelonas Sep 12, 2019
e049134
Refactored the http directory to match that of the other SDKs.
angelomelonas Sep 12, 2019
5bc3d5d
Updated the python SDK exceptions to match that of the other SDKs.
angelomelonas Sep 12, 2019
c4c4842
Updated the python SDK core models to match that of the other SDKs. A…
angelomelonas Sep 13, 2019
9041378
Fixed broken tests by using local imports and resolving circular impo…
angelomelonas Sep 13, 2019
4e1e0da
Small test refactors as well as a directory typo fix.
angelomelonas Sep 13, 2019
9131d9e
Added a TODO for the PSD2 context test.
angelomelonas Sep 13, 2019
2fb8645
Refactored the json/adapters.
angelomelonas Sep 18, 2019
626b832
feature/python-sdk-refactor Merge Request fixes and code cleanup.
angelomelonas Sep 23, 2019
2064d20
feature/python-sdk-refactor Removed ABC parameters.
angelomelonas Sep 30, 2019
2ed259e
feature/python-sdk-refactor Generated better docstrings and type anno…
angelomelonas Sep 30, 2019
186f64c
feature/python-sdk-refactor Updated bunq_context according to new MR …
angelomelonas Oct 14, 2019
7279a09
feature/python-sdk-refactor Updated Type Annotations for all the Cont…
angelomelonas Oct 14, 2019
78b3a82
feature/python-sdk-refactor Updated Type Annotations for all the Exce…
angelomelonas Oct 14, 2019
56ca196
feature/python-sdk-refactor Updated Type Annotations for all the Http…
angelomelonas Oct 15, 2019
b73076f
feature/python-sdk-refactor Updated Type Annotations for all the Http…
angelomelonas Oct 15, 2019
712e963
feature/python-sdk-refactor Removed unnecessary python 2 object inher…
angelomelonas Oct 15, 2019
2d305d0
feature/python-sdk-refactor Updated Type Annotations for all the JSON…
angelomelonas Oct 15, 2019
250335c
feature/python-sdk-refactor Updated Type Annotations for all the mode…
angelomelonas Oct 16, 2019
56b196e
feature/python-sdk-refactor General updates, removing unnecessary doc…
angelomelonas Oct 16, 2019
20e7abc
feature/python-sdk-refactor Code review fix.
angelomelonas Oct 24, 2019
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,4 @@ located in [test](/tests)

## Exceptions
The SDK can raise multiple exceptions. For an overview of these exceptions please
take a look at [EXCEPTIONS.md](./EXCEPTIONS.md)
take a look at [EXCEPTIONS.md](./bunq/sdk/exception/EXCEPTIONS.md)
75 changes: 37 additions & 38 deletions bunq/__init__.py
Original file line number Diff line number Diff line change
@@ -1,53 +1,52 @@
from bunq.sdk.json import converter
from typing import Type, Any

from bunq.sdk.context.api_environment_type import ApiEnvironmentType
from bunq.sdk.context.installation_context import InstallationContext
from bunq.sdk.http.pagination import Pagination
from bunq.sdk.json import converter
from bunq.sdk.model.core.anchor_object_interface import AnchorObjectInterface
from bunq.sdk.util.type_alias import T

def initialize_converter():
"""
:rtype: None
"""

def initialize_converter() -> None:
import datetime
import inspect

from bunq.sdk import client
from bunq.sdk import context
from bunq.sdk.model import core
from bunq.sdk.json import adapters
from bunq.sdk.http import api_client
from bunq.sdk.context import api_context
from bunq.sdk.json import converter
from bunq.sdk.model.generated import object_
from bunq.sdk.model.generated import endpoint
from bunq.sdk.model.core.installation import Installation
from bunq.sdk.model.core.session_server import SessionServer
from bunq.sdk.json.installation_adapter import InstallationAdapter
from bunq.sdk.json.session_server_adapter import SessionServerAdapter
from bunq.sdk.json.installation_context_adapter import InstallationContextAdapter
from bunq.sdk.json.api_environment_type_adapter import ApiEnvironmentTypeAdapter
from bunq.sdk.json.float_adapter import FloatAdapter
from bunq.sdk.json.geolocation_adapter import GeolocationAdapter
from bunq.sdk.json.monetary_account_reference_adapter import MonetaryAccountReferenceAdapter
from bunq.sdk.json.share_detail_adapter import ShareDetailAdapter
from bunq.sdk.json.date_time_adapter import DateTimeAdapter
from bunq.sdk.json.pagination_adapter import PaginationAdapter
from bunq.sdk.json.anchor_object_adapter import AnchorObjectAdapter

converter.register_adapter(core.Installation, adapters.InstallationAdapter)
converter.register_adapter(
core.SessionServer,
adapters.SessionServerAdapter
)
converter.register_adapter(
context.InstallationContext,
adapters.InstallationContextAdapter
)
converter.register_adapter(
context.ApiEnvironmentType,
adapters.ApiEnvironmentTypeAdapter
)
converter.register_adapter(float, adapters.FloatAdapter)
converter.register_adapter(object_.Geolocation, adapters.GeolocationAdapter)
converter.register_adapter(
object_.MonetaryAccountReference,
adapters.MonetaryAccountReferenceAdapter
)
converter.register_adapter(object_.ShareDetail, adapters.ShareDetailAdapter)
converter.register_adapter(datetime.datetime, adapters.DateTimeAdapter)
converter.register_adapter(client.Pagination, adapters.PaginationAdapter)
converter.register_adapter(Installation, InstallationAdapter)
converter.register_adapter(SessionServer, SessionServerAdapter)
converter.register_adapter(InstallationContext, InstallationContextAdapter)
converter.register_adapter(ApiEnvironmentType, ApiEnvironmentTypeAdapter)
converter.register_adapter(float, FloatAdapter)
converter.register_adapter(object_.Geolocation, GeolocationAdapter)
converter.register_adapter(object_.MonetaryAccountReference, MonetaryAccountReferenceAdapter)
converter.register_adapter(object_.ShareDetail, ShareDetailAdapter)
converter.register_adapter(datetime.datetime, DateTimeAdapter)
converter.register_adapter(Pagination, PaginationAdapter)

def register_anchor_adapter(class_to_regsiter):
if issubclass(class_to_regsiter, core.AnchoredObjectInterface):
converter.register_adapter(
class_to_regsiter,
adapters.AnchoredObjectModelAdapter
)
def register_anchor_adapter(class_to_register: Type[Any]) -> None:
if issubclass(class_to_register, AnchorObjectInterface):
converter.register_adapter(class_to_register, AnchorObjectAdapter)

def get_class(class_string_to_get):
def get_class(class_string_to_get: str) -> Type[Any]:
if hasattr(object_, class_string_to_get):
return getattr(object_, class_string_to_get)

Expand Down
Loading