from sepaxml import SepaTransfer
from .connection import FinTSHTTPSConnection
-from .dialog import FinTSDialogOLD, FinTSDialog
-from .formals import TwoStepParametersCommon
+from .dialog import FinTSDialog, FinTSDialogOLD
+from .formals import (
+ KTI1, Account3, BankIdentifier,
+ SynchronisationMode, TwoStepParametersCommon,
+)
from .message import FinTSMessageOLD
-from .security import PinTanDummyEncryptionMechanism, PinTanOneStepAuthenticationMechanism, PinTanTwoStepAuthenticationMechanism
from .models import (
SEPAAccount, TANChallenge, TANChallenge3,
TANChallenge4, TANChallenge5, TANChallenge6,
)
-from .segments import HIUPA4, HIBPA3, HIRMS2
-from .segments.accounts import HKSPA, HKSPA1, HISPA1
+from .security import (
+ PinTanDummyEncryptionMechanism, PinTanOneStepAuthenticationMechanism,
+ PinTanTwoStepAuthenticationMechanism,
+)
+from .segments import HIBPA3, HIRMS2, HIUPA4
+from .segments.accounts import HISPA1, HKSPA, HKSPA1
from .segments.auth import HKTAB, HKTAN
-from .segments.dialog import HKSYN3, HISYN4
from .segments.depot import HKWPD
-from .segments.saldo import HKSAL5, HKSAL6, HKSAL7, HISAL5, HISAL6, HISAL7
+from .segments.dialog import HISYN4, HKSYN3
+from .segments.saldo import HISAL5, HISAL6, HISAL7, HKSAL5, HKSAL6, HKSAL7
from .segments.statement import HKKAZ
from .segments.transfer import HKCCM, HKCCS
from .utils import MT535_Miniparser, Password, mt940_to_array
-from .formals import Account3, KTI1, BankIdentifier, SynchronisationMode
logger = logging.getLogger(__name__)
from fints.parser import FinTS3Parser
from fints.utils import Password
-from .message import FinTSMessage, FinTSInstituteMessage
+from .message import FinTSInstituteMessage, FinTSMessage
class FinTSConnectionError(Exception):
import logging
-from .message import FinTSMessageOLD, MessageDirection, FinTSMessage, FinTSCustomerMessage
-from .segments.auth import HKIDN, HKSYN, HKVVB
+from .formals import (
+ BankIdentifier, Language2, SynchronisationMode, SystemIDStatus,
+)
+from .message import (
+ FinTSCustomerMessage, FinTSMessage, FinTSMessageOLD, MessageDirection,
+)
+from .segments.auth import HKIDN, HKIDN2, HKSYN, HKVVB, HKVVB3
from .segments.dialog import HKEND, HKEND1
-from .segments.auth import HKIDN2, HKVVB3
from .segments.message import HNHBK3, HNHBS1
-from .formals import BankIdentifier, SystemIDStatus, Language2, SynchronisationMode
logger = logging.getLogger(__name__)
from fints.fields import *
from fints.utils import RepresentableEnum, ShortReprMixin
+
class DataElementGroup(Container):
pass
from enum import Enum
from .formals import SegmentSequence
-from .segments import FinTS3Segment, HIBPA3, HIRMG2, HIRMS2, HITANSBase
+from .segments import HIBPA3, HIRMG2, HIRMS2, FinTS3Segment, HITANSBase
from .segments.message import HNHBK3, HNHBS1, HNSHA, HNSHK, HNVSD, HNVSK
+
class MessageDirection(Enum):
FROM_CUSTOMER = 1
FROM_INSTITUTE = 2
-import datetime, random
-
+import datetime
+import random
+
+from .formals import (
+ AlgorithmParameterIVName, AlgorithmParameterName, CompressionFunction,
+ DateTimeType, EncryptionAlgorithm, EncryptionAlgorithmCoded,
+ HashAlgorithm, IdentifiedRole, KeyName, KeyType, OperationMode,
+ SecurityApplicationArea, SecurityDateTime,
+ SecurityIdentificationDetails, SecurityMethod, SecurityProfile,
+ SecurityRole, SignatureAlgorithm, UsageEncryption, UserDefinedSignature,
+)
from .message import FinTSMessage
+from .segments.message import HNSHA2, HNSHK4, HNVSD1, HNVSK3
from .types import SegmentSequence
-from .formals import SecurityProfile, SecurityRole, IdentifiedRole, DateTimeType, UsageEncryption, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, CompressionFunction, OperationMode, EncryptionAlgorithmCoded, AlgorithmParameterName, AlgorithmParameterIVName, KeyType, SecurityMethod, SecurityApplicationArea, UserDefinedSignature, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature
-from .segments.message import HNVSK3, HNVSD1, HNSHK4, HNSHA2
+
class EncryptionMechanism:
def encrypt(self, message: FinTSMessage):
import re
+from fints.fields import CodeField, IntCodeField
from fints.formals import (
- AccountInformation, KTZ1, AccountLimit,
- AllowedTransaction, BankIdentifier, Certificate, Container, ContainerMeta,
- DataElementField, DataElementGroupField, EncryptionAlgorithm,
- HashAlgorithm, KeyName, ParameterPinTan, ParameterTwostepTAN1,
- ParameterTwostepTAN2, ParameterTwostepTAN3, ParameterTwostepTAN4,
- ParameterTwostepTAN5, ParameterTwostepTAN6, ReferenceMessage, Response,
- SecurityDateTime, SecurityIdentificationDetails, SecurityProfile, SecurityRole,
- SegmentHeader, SegmentSequenceField, SignatureAlgorithm,
- SupportedHBCIVersions2, SupportedLanguages2, UserDefinedSignature,
- CompressionFunction, SecurityApplicationArea, SecurityClass, UPDUsage
+ KTZ1, AccountInformation, AccountLimit, AllowedTransaction, BankIdentifier,
+ Certificate, CompressionFunction, Container, ContainerMeta,
+ DataElementField, DataElementGroupField, EncryptionAlgorithm, HashAlgorithm,
+ KeyName, ParameterPinTan, ParameterTwostepTAN1, ParameterTwostepTAN2,
+ ParameterTwostepTAN3, ParameterTwostepTAN4, ParameterTwostepTAN5,
+ ParameterTwostepTAN6, ReferenceMessage, Response, SecurityApplicationArea,
+ SecurityClass, SecurityDateTime, SecurityIdentificationDetails,
+ SecurityProfile, SecurityRole, SegmentHeader, SegmentSequenceField,
+ SignatureAlgorithm, SupportedHBCIVersions2, SupportedLanguages2, UPDUsage,
+ UserDefinedSignature,
)
-from fints.fields import CodeField, IntCodeField
from fints.utils import SubclassesMixin, classproperty
TYPE_VERSION_RE = re.compile(r'^([A-Z]+)(\d+)$')
min_timeout = DataElementField(type='num', max_length=4, required=False, _d="Minimaler Timeout-Wert")
max_timeout = DataElementField(type='num', max_length=4, required=False, _d="Maximaler Timeout-Wert")
-from . import accounts, auth, debit, depot, dialog, message, saldo, statement, transfer
+from . import (
+ accounts, auth, debit, depot, dialog, message, saldo, statement, transfer,
+)
-from . import FinTS3SegmentOLD, FinTS3Segment
-
+from . import FinTS3Segment, FinTS3SegmentOLD
from ..fields import DataElementGroupField
from ..formals import KTZ1, Account3
+
class HKSPA(FinTS3SegmentOLD):
"""
HKSPA (SEPA-Kontoverbindung anfordern)
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle
"""
accounts = DataElementGroupField(type=KTZ1, max_count=999, required=False, _d="SEPA-Kontoverbindung")
-
+from fints.fields import CodeField, DataElementField, DataElementGroupField
+from fints.formals import (
+ BankIdentifier, Language2, SynchronisationMode, SystemIDStatus,
+)
from fints.utils import fints_escape
-from . import FinTS3SegmentOLD, FinTS3Segment
-from fints.formals import BankIdentifier, SystemIDStatus, Language2, SynchronisationMode
-from fints.fields import DataElementGroupField, DataElementField, CodeField
+from . import FinTS3Segment, FinTS3SegmentOLD
+
class HKIDN(FinTS3SegmentOLD):
"""
-from . import FinTS3SegmentOLD
-
-from . import FinTS3Segment
+from . import FinTS3Segment, FinTS3SegmentOLD
from ..fields import CodeField, DataElementField
from ..formals import SynchronisationMode
+
class HKSYN3(FinTS3Segment):
"""Synchronisierung, version 3
import time
+from fints.fields import (
+ CodeField, DataElementField, DataElementGroupField,
+ SegmentSequenceField, ZeroPaddedNumericField,
+)
+from fints.formals import (
+ Certificate, CompressionFunction, EncryptionAlgorithm,
+ HashAlgorithm, KeyName, ReferenceMessage, SecurityApplicationArea,
+ SecurityDateTime, SecurityIdentificationDetails, SecurityProfile,
+ SecurityRole, SignatureAlgorithm, UserDefinedSignature,
+)
from fints.utils import fints_escape
-from . import FinTS3SegmentOLD, FinTS3Segment
-from fints.formals import ReferenceMessage, SecurityProfile, SecurityRole, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, CompressionFunction, Certificate, SecurityApplicationArea, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature
-from fints.fields import DataElementGroupField, DataElementField, ZeroPaddedNumericField, CodeField, SegmentSequenceField
+from . import FinTS3Segment, FinTS3SegmentOLD
+
class HNHBK3(FinTS3Segment):
"Nachrichtenkopf"
security_reference = DataElementField(type='an', max_length=14, _d="Sicherheitskontrollreferenz")
validation_result = DataElementField(type='bin', max_length=512, required=False, _d="Validierungsresultat")
user_defined_signature = DataElementGroupField(type=UserDefinedSignature, required=False, _d="Benutzerdefinierte Signatur")
-
-from . import FinTS3SegmentOLD, FinTS3Segment
+from fints.fields import DataElementField, DataElementGroupField
+from fints.formals import (
+ KTI1, Account2, Account3, Amount1, Balance1, Balance2, Timestamp1,
+)
-from fints.formals import Account2, Account3, KTI1, Balance1, Balance2, Amount1, Timestamp1
-from fints.fields import DataElementGroupField, DataElementField
+from . import FinTS3Segment, FinTS3SegmentOLD
class HKSAL(FinTS3SegmentOLD):
def __str__(self):
return self.value
-
NumericField, SegmentHeader, SegmentSequence,
)
from fints.segments import FinTS3Segment
-from fints.segments.message import HNHBK3, HNHBS1
+from fints.segments.message import HNHBK3, HNHBS1
def test_metaclass_foo():