Skip to content

Commit 217f222

Browse files
committed
improve way to set initializers [#27]
1 parent 6186fa0 commit 217f222

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed

bunq/__init__.py

Lines changed: 26 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from bunq.sdk.json import converter
22

33

4-
def create_converter_initializer():
4+
def initialize_converter():
55
"""
66
:rtype: None
77
"""
@@ -15,40 +15,28 @@ def create_converter_initializer():
1515
from bunq.sdk.json import converter
1616
from bunq.sdk.model.generated import object_
1717

18-
is_initialized = False
19-
20-
if not is_initialized:
21-
converter.register_adapter(core.Installation,
22-
adapters.InstallationAdapter)
23-
converter.register_adapter(
24-
core.SessionServer,
25-
adapters.SessionServerAdapter
26-
)
27-
converter.register_adapter(
28-
context.InstallationContext,
29-
adapters.InstallationContextAdapter
30-
)
31-
converter.register_adapter(
32-
context.ApiEnvironmentType,
33-
adapters.ApiEnvironmentTypeAdapter
34-
)
35-
converter.register_adapter(float, adapters.FloatAdapter)
36-
converter.register_adapter(
37-
object_.Geolocation,
38-
adapters.GeolocationAdapter
39-
)
40-
converter.register_adapter(
41-
object_.MonetaryAccountReference,
42-
adapters.MonetaryAccountReferenceAdapter
43-
)
44-
converter.register_adapter(object_.ShareDetail,
45-
adapters.ShareDetailAdapter)
46-
converter.register_adapter(datetime.datetime,
47-
adapters.DateTimeAdapter)
48-
converter.register_adapter(client.Pagination,
49-
adapters.PaginationAdapter)
50-
is_initialized = True
51-
52-
yield is_initialized
53-
54-
converter.set_initializer(create_converter_initializer())
18+
converter.register_adapter(core.Installation, adapters.InstallationAdapter)
19+
converter.register_adapter(
20+
core.SessionServer,
21+
adapters.SessionServerAdapter
22+
)
23+
converter.register_adapter(
24+
context.InstallationContext,
25+
adapters.InstallationContextAdapter
26+
)
27+
converter.register_adapter(
28+
context.ApiEnvironmentType,
29+
adapters.ApiEnvironmentTypeAdapter
30+
)
31+
converter.register_adapter(float, adapters.FloatAdapter)
32+
converter.register_adapter(object_.Geolocation, adapters.GeolocationAdapter)
33+
converter.register_adapter(
34+
object_.MonetaryAccountReference,
35+
adapters.MonetaryAccountReferenceAdapter
36+
)
37+
converter.register_adapter(object_.ShareDetail, adapters.ShareDetailAdapter)
38+
converter.register_adapter(datetime.datetime, adapters.DateTimeAdapter)
39+
converter.register_adapter(client.Pagination, adapters.PaginationAdapter)
40+
41+
42+
converter.set_initializer_function(initialize_converter)

bunq/sdk/json/converter.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class JsonAdapter(object):
5252
@classmethod
5353
def set_initializer(cls, initializer):
5454
"""
55-
:type initializer: function
55+
:type initializer: Generator[bool, None, None]
5656
"""
5757

5858
cls._initializer = initializer
@@ -603,12 +603,26 @@ def types(self):
603603
return self._types
604604

605605

606-
def set_initializer(initializer):
606+
def set_initializer_function(initializer_function):
607607
"""
608-
:type initializer: Generator[bool, None, None]
608+
:type initializer_function: callable
609609
"""
610610

611-
JsonAdapter.set_initializer(initializer)
611+
JsonAdapter.set_initializer(create_initializer(initializer_function))
612+
613+
614+
def create_initializer(initializer_function):
615+
"""
616+
:type initializer_function: callable
617+
"""
618+
619+
is_initialized = False
620+
621+
if not is_initialized:
622+
initializer_function()
623+
is_initialized = True
624+
625+
yield is_initialized
612626

613627

614628
def register_adapter(target_class, adapter):

0 commit comments

Comments
 (0)