From fdaf8e5a9c21cbd49a2f526e5bf5f0c7471b615e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Henryk=20Pl=C3=B6tz?= Date: Wed, 11 Sep 2019 12:26:00 +0200 Subject: [PATCH] Instead of stay_offline use a more versatile Enum FinTSClientMode See https://github.com/raphaelm/python-fints/issues/72#issuecomment-530091412 --- fints/client.py | 10 ++++++++-- fints/dialog.py | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/fints/client.py b/fints/client.py index 712e52a..dd9b005 100644 --- a/fints/client.py +++ b/fints/client.py @@ -151,12 +151,18 @@ class TransactionResponse: return "<{o.__class__.__name__}(status={o.status!r}, responses={o.responses!r}, data={o.data!r})>".format(o=self) +class FinTSClientMode(Enum): + OFFLINE = 'offline' + NONINTERACTIVE = 'noninteractive' + INTERACTIVE = 'interactive' + + class FinTS3Client: def __init__(self, bank_identifier, user_id, customer_id=None, from_data: bytes=None, product_id=None, product_version=version[:5], - stay_offline=False): + mode=FinTSClientMode.NONINTERACTIVE): self.accounts = [] if isinstance(bank_identifier, BankIdentifier): self.bank_identifier = bank_identifier @@ -180,7 +186,7 @@ class FinTS3Client: self.product_name = product_id self.product_version = product_version self.response_callbacks = [] - self.stay_offline = stay_offline + self.mode = mode self._standing_dialog = None if from_data: diff --git a/fints/dialog.py b/fints/dialog.py index 46d060b..7392771 100644 --- a/fints/dialog.py +++ b/fints/dialog.py @@ -48,8 +48,9 @@ class FinTSDialog: if self.paused: raise FinTSDialogStateError("Cannot init() a paused dialog") - if self.client.stay_offline: - raise FinTSDialogOfflineError("Cannot open a dialog with stay_offline=True. " + from fints.client import FinTSClientMode + if self.client.mode == FinTSClientMode.OFFLINE: + raise FinTSDialogOfflineError("Cannot open a dialog with mode=FinTSClientMode.OFFLINE. " "This is a control flow error, no online functionality " "should have been attempted with this FinTSClient object.") -- 2.39.5