From: Henryk Plötz Date: Wed, 11 Sep 2019 10:26:00 +0000 (+0200) Subject: Instead of stay_offline use a more versatile Enum FinTSClientMode X-Git-Tag: v3.0.0~2^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdaf8e5a9c21cbd49a2f526e5bf5f0c7471b615e;p=thirdparty%2Fpython-fints.git Instead of stay_offline use a more versatile Enum FinTSClientMode See https://github.com/raphaelm/python-fints/issues/72#issuecomment-530091412 --- 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.")