]> git.ipfire.org Git - thirdparty/python-fints.git/log
thirdparty/python-fints.git
6 years agoFix bug in sepa transfer
Henryk Plötz [Mon, 10 Sep 2018 14:02:06 +0000 (16:02 +0200)] 
Fix bug in sepa transfer

6 years agoAdd 1step transfer test
Henryk Plötz [Mon, 10 Sep 2018 11:08:12 +0000 (13:08 +0200)] 
Add 1step transfer test

6 years agoTest get_information()
Henryk Plötz [Mon, 10 Sep 2018 09:47:45 +0000 (11:47 +0200)] 
Test get_information()

6 years agoTest for dialog resumption
Henryk Plötz [Mon, 10 Sep 2018 09:31:06 +0000 (11:31 +0200)] 
Test for dialog resumption

6 years agoAdd dummy server for client test. Now have full back to back test
Henryk Plötz [Mon, 10 Sep 2018 08:50:35 +0000 (10:50 +0200)] 
Add dummy server for client test. Now have full back to back test

6 years agoAdd forgotten file
Henryk Plötz [Mon, 10 Sep 2018 08:50:15 +0000 (10:50 +0200)] 
Add forgotten file

6 years agoRemove dead code
Henryk Plötz [Sat, 8 Sep 2018 19:44:34 +0000 (21:44 +0200)] 
Remove dead code

6 years agoFully solve dependencies, I think. Run isort, cleanup imports
Henryk Plötz [Sat, 8 Sep 2018 19:32:08 +0000 (21:32 +0200)] 
Fully solve dependencies, I think. Run isort, cleanup imports

6 years agoMove Field into types (next to Container) to simplify dependency hell
Henryk Plötz [Sat, 8 Sep 2018 19:19:58 +0000 (21:19 +0200)] 
Move Field into types (next to Container) to simplify dependency hell

6 years agoUse duck typing to break dependency hell
Henryk Plötz [Sat, 8 Sep 2018 19:15:19 +0000 (21:15 +0200)] 
Use duck typing to break dependency hell

6 years agoShuffle segments around
Henryk Plötz [Sat, 8 Sep 2018 19:11:12 +0000 (21:11 +0200)] 
Shuffle segments around

6 years agoWork on flicker code/hhduc parsing, make it work with my Sparkasse
Henryk Plötz [Thu, 6 Sep 2018 21:17:23 +0000 (23:17 +0200)] 
Work on flicker code/hhduc parsing, make it work with my Sparkasse

6 years agoParse TAN request for embedded optical data (CHLGUC), provide safe HTML challenge
Henryk Plötz [Sat, 1 Sep 2018 18:25:40 +0000 (20:25 +0200)] 
Parse TAN request for embedded optical data (CHLGUC), provide safe HTML challenge

6 years agoIntroduce TransactionResponse object.
Henryk Plötz [Sat, 1 Sep 2018 09:01:51 +0000 (11:01 +0200)] 
Introduce TransactionResponse object.
API: All transaction methods return either a NeedRetryResponse object or a TransactionResponse. The latter contains information about the final disposition of the transaction (debit or transfer).
send_tan() will likewise return a TransactionResponse.

6 years agoReturn 'auth' information in FinTSPinTanClient.get_information()
Henryk Plötz [Thu, 30 Aug 2018 23:48:59 +0000 (01:48 +0200)] 
Return 'auth' information in FinTSPinTanClient.get_information()

6 years agoContinue breaking API: statement -> transactions, to prepare the API for fetching...
Henryk Plötz [Thu, 30 Aug 2018 23:09:45 +0000 (01:09 +0200)] 
Continue breaking API: statement -> transactions, to prepare the API for fetching of actual statements ("Kontoauszug")

6 years agoPool Exceptions in one module
Henryk Plötz [Wed, 29 Aug 2018 15:03:18 +0000 (17:03 +0200)] 
Pool Exceptions in one module
Raise Exceptions during executions, generally prepare for integration with external library users
Be over-cautious with PIN errors: On first sign of wrong PIN, block the PIN from usage (raise Exception when trying to use the PIN). Library user will need to create a new FinTS3PinTanClient instance.

6 years agoAdd forgotten journal segments file
Henryk Plötz [Wed, 29 Aug 2018 15:02:53 +0000 (17:02 +0200)] 
Add forgotten journal segments file

6 years agoElide empty items at the end of a ValueList with a fixed (minimum) length
Henryk Plötz [Tue, 28 Aug 2018 23:30:19 +0000 (01:30 +0200)] 
Elide empty items at the end of a ValueList with a fixed (minimum) length

6 years agoFix SEPA_TRANSFER operations type
Henryk Plötz [Tue, 28 Aug 2018 23:21:07 +0000 (01:21 +0200)] 
Fix SEPA_TRANSFER operations type
Add standing debit operations types

6 years agoFix wrong field counts
Henryk Plötz [Tue, 28 Aug 2018 23:20:52 +0000 (01:20 +0200)] 
Fix wrong field counts

6 years agoFix test for changed Exception type.
Henryk Plötz [Tue, 28 Aug 2018 23:19:41 +0000 (01:19 +0200)] 
Fix test for changed Exception type.
Add test for bug regression (allowed_transactions field definition)

6 years agoAdd single COR1 debit
Henryk Plötz [Tue, 28 Aug 2018 17:07:43 +0000 (19:07 +0200)] 
Add single COR1 debit

6 years agoAlso give information about supported SEPA PAIN formats
Henryk Plötz [Tue, 28 Aug 2018 13:58:07 +0000 (15:58 +0200)] 
Also give information about supported SEPA PAIN formats

6 years agoDeliberately break API. start_sepa_... is now sepa_...
Henryk Plötz [Tue, 28 Aug 2018 13:33:41 +0000 (15:33 +0200)] 
Deliberately break API. start_sepa_... is now sepa_...
Return value is dynamic: Either a final status, or a NeedRetryResponse (in case of NeedTANResponse the final status will be returned with send_tan())

6 years agoFix bugs found in communication with bank
Henryk Plötz [Tue, 28 Aug 2018 13:18:50 +0000 (15:18 +0200)] 
Fix bugs found in communication with bank

6 years agoImplement get_information()
Henryk Plötz [Tue, 28 Aug 2018 11:31:46 +0000 (13:31 +0200)] 
Implement get_information()

6 years agoRemove old code
Henryk Plötz [Tue, 28 Aug 2018 10:52:08 +0000 (12:52 +0200)] 
Remove old code

6 years agoAdd DKKKU based on a cursory reverse engineering and guessing. Untested though
Henryk Plötz [Mon, 27 Aug 2018 17:42:33 +0000 (19:42 +0200)] 
Add DKKKU based on a cursory reverse engineering and guessing. Untested though

6 years agoFix bugs found when talking to banks
Henryk Plötz [Mon, 27 Aug 2018 13:13:09 +0000 (15:13 +0200)] 
Fix bugs found when talking to banks

6 years agoImplement querying the status protocol
Henryk Plötz [Sun, 26 Aug 2018 23:54:01 +0000 (01:54 +0200)] 
Implement querying the status protocol

6 years agoAdd querying of scheduled debits (untested, my bank doesn't support it)
Henryk Plötz [Sun, 26 Aug 2018 23:05:55 +0000 (01:05 +0200)] 
Add querying of scheduled debits (untested, my bank doesn't support it)

6 years agoChange sorting of segment classes
Henryk Plötz [Sun, 26 Aug 2018 20:53:18 +0000 (22:53 +0200)] 
Change sorting of segment classes

6 years agoRemove last OLD
Henryk Plötz [Sun, 26 Aug 2018 20:10:57 +0000 (22:10 +0200)] 
Remove last OLD

6 years agoFirst working debit (multiple, COR1)
Henryk Plötz [Sun, 26 Aug 2018 20:06:47 +0000 (22:06 +0200)] 
First working debit (multiple, COR1)

6 years agoRemove most references to OLD
Henryk Plötz [Sun, 26 Aug 2018 13:30:29 +0000 (15:30 +0200)] 
Remove most references to OLD

6 years agoRemove references to OLD in client.
Henryk Plötz [Sun, 26 Aug 2018 13:22:37 +0000 (15:22 +0200)] 
Remove references to OLD in client.
Maybe implement get_holdings with touchdown points (fully untested)

6 years agoMake it possible to open an anonymous dialogue (user_id=CUSTOMER_ID_ANONYMOUS, pin...
Henryk Plötz [Sun, 26 Aug 2018 12:19:39 +0000 (14:19 +0200)] 
Make it possible to open an anonymous dialogue (user_id=CUSTOMER_ID_ANONYMOUS, pin=None)

6 years agoFix a parser bug found in real data
Henryk Plötz [Sun, 26 Aug 2018 12:02:22 +0000 (14:02 +0200)] 
Fix a parser bug found in real data

6 years agoFurther shuffle send abstractions around. Transfer should be OK now.
Henryk Plötz [Sat, 25 Aug 2018 20:50:52 +0000 (22:50 +0200)] 
Further shuffle send abstractions around. Transfer should be OK now.

6 years agoImplement NeedTANResponse.get_data()/.from_data()
Henryk Plötz [Sat, 25 Aug 2018 18:01:50 +0000 (20:01 +0200)] 
Implement NeedTANResponse.get_data()/.from_data()

6 years agoMove all of the PIN/TAN specific handling into FinTS3PinTanClient
Henryk Plötz [Sat, 25 Aug 2018 14:45:17 +0000 (16:45 +0200)] 
Move all of the PIN/TAN specific handling into FinTS3PinTanClient
Move callbacks so that callback/logging is not called for internal processing

6 years agoFirst working transfer
Henryk Plötz [Fri, 24 Aug 2018 15:39:02 +0000 (17:39 +0200)] 
First working transfer

6 years agoAdd set_product()
Henryk Plötz [Fri, 24 Aug 2018 11:38:37 +0000 (13:38 +0200)] 
Add set_product()

6 years agoWhip logging into shape
Henryk Plötz [Fri, 24 Aug 2018 11:30:40 +0000 (13:30 +0200)] 
Whip logging into shape

6 years agoWork towards SEPA transfers
Henryk Plötz [Fri, 24 Aug 2018 10:55:19 +0000 (12:55 +0200)] 
Work towards SEPA transfers

6 years agoAllow pausing and resuming of dialogs
Henryk Plötz [Thu, 23 Aug 2018 23:33:35 +0000 (01:33 +0200)] 
Allow pausing and resuming of dialogs

6 years agoImplement automatic security_function choosing, implement H[IK]TAN[56] segments
Henryk Plötz [Thu, 23 Aug 2018 21:08:44 +0000 (23:08 +0200)] 
Implement automatic security_function choosing, implement H[IK]TAN[56] segments

6 years agoAllow FinTS3Client state (system id, BPD, optionally: UPD) to be saved and restored.
Henryk Plötz [Thu, 23 Aug 2018 04:13:32 +0000 (06:13 +0200)] 
Allow FinTS3Client state (system id, BPD, optionally: UPD) to be saved and restored.
Using this facility will reduce overhead/increase speed and make us a better citizen (no need to get a new system id every time).

6 years agoImplement get_tan_descriptions()
Henryk Plötz [Wed, 22 Aug 2018 21:26:17 +0000 (23:26 +0200)] 
Implement get_tan_descriptions()

6 years agoSimply _find_highest_command() API. Implement get_holdings() (untested).
Henryk Plötz [Tue, 21 Aug 2018 12:32:59 +0000 (14:32 +0200)] 
Simply _find_highest_command() API. Implement get_holdings()  (untested).

6 years agoMake _find_highest_command reusable
Henryk Plötz [Tue, 21 Aug 2018 08:49:34 +0000 (10:49 +0200)] 
Make _find_highest_command reusable

6 years agoMake touchdown fetching reusable
Henryk Plötz [Tue, 21 Aug 2018 07:45:27 +0000 (09:45 +0200)] 
Make touchdown fetching reusable

6 years agoImprove dialog handling: Drastically reduce latancy.
Henryk Plötz [Tue, 21 Aug 2018 07:34:02 +0000 (09:34 +0200)] 
Improve dialog handling: Drastically reduce latancy.
 + Make FinTSDialog re-entrant: Entering the context multiple times will only init()/end() at the outermost layer
 + Turn FinTSClient into a context manager. Entering it will start a dialog that will be kept open, no need to repeatedly start/end dialogues

Example:
````
f = FinTS3PinTanClient(...)
with f:
    accounts = f.get_sepa_accounts()
    balance = f.get_balance(accounts[0])
    statement = f.get_statement(accounts[0])
````

6 years ago(Re-)implement get_statement() in new API
Henryk Plötz [Mon, 20 Aug 2018 22:59:04 +0000 (00:59 +0200)] 
(Re-)implement get_statement() in new API

6 years agoImprove BPD and UPD: Is now SegmentSequence, allows full querying.
Henryk Plötz [Mon, 20 Aug 2018 20:26:24 +0000 (22:26 +0200)] 
Improve BPD and UPD: Is now SegmentSequence, allows full querying.
Improve get_balance(): Ignore HISALS versions we don't know, don't blindly ask for highest version

6 years agoRun isort
Henryk Plötz [Mon, 20 Aug 2018 20:09:42 +0000 (22:09 +0200)] 
Run isort

6 years agoImplement HKSAL5/HISAL5
Henryk Plötz [Mon, 20 Aug 2018 00:45:29 +0000 (02:45 +0200)] 
Implement HKSAL5/HISAL5

6 years agoMake TwoStep (without TAN) work again
Henryk Plötz [Mon, 20 Aug 2018 00:11:58 +0000 (02:11 +0200)] 
Make TwoStep (without TAN) work again

6 years ago(Re-)Add one step PIN mechanism
Henryk Plötz [Sun, 19 Aug 2018 23:15:23 +0000 (01:15 +0200)] 
(Re-)Add one step PIN mechanism

6 years agoConvert get_sepa_accounts() and get_balance() to new API. Move segments around. Imple...
Henryk Plötz [Sun, 19 Aug 2018 20:39:05 +0000 (22:39 +0200)] 
Convert get_sepa_accounts() and get_balance() to new API. Move segments around. Implement new types.
Still missing: Dummy encryption, PIN authorization.

6 years agoAdd ZeroPaddedNumericField, Fix BooleanField._parse_value
Henryk Plötz [Sun, 19 Aug 2018 18:48:16 +0000 (20:48 +0200)] 
Add ZeroPaddedNumericField, Fix BooleanField._parse_value

6 years agoImplement/doc more fields
Henryk Plötz [Sat, 18 Aug 2018 00:11:07 +0000 (02:11 +0200)] 
Implement/doc more fields

6 years agoMore docs
Henryk Plötz [Thu, 16 Aug 2018 09:31:02 +0000 (11:31 +0200)] 
More docs

6 years agoFix tests for new field names
Henryk Plötz [Tue, 14 Aug 2018 17:22:52 +0000 (19:22 +0200)] 
Fix tests for new field names

6 years agoAdd a bad hack to RepresentableEnum to get docstrings on enum members. Make the docum...
Henryk Plötz [Tue, 14 Aug 2018 17:16:01 +0000 (19:16 +0200)] 
Add a bad hack to RepresentableEnum to get docstrings on enum members. Make the documented output better

6 years agoAdd date/time fields
Henryk Plötz [Tue, 14 Aug 2018 15:42:03 +0000 (17:42 +0200)] 
Add date/time fields

6 years agoImprove documentation
Henryk Plötz [Tue, 14 Aug 2018 14:50:16 +0000 (16:50 +0200)] 
Improve documentation

6 years agoMove Mixins to utils to get them out of the autodoc
Henryk Plötz [Sun, 12 Aug 2018 22:52:45 +0000 (00:52 +0200)] 
Move Mixins to utils to get them out of the autodoc

6 years agoSplit into fints.types (internal and custom types), fints.fields (fields to be used...
Henryk Plötz [Sun, 12 Aug 2018 22:06:45 +0000 (00:06 +0200)] 
Split into fints.types (internal and custom types), fints.fields (fields to be used in creating segments) and fints.segments.

6 years agoApply isort, remove unused imports
Henryk Plötz [Sun, 12 Aug 2018 21:23:25 +0000 (23:23 +0200)] 
Apply isort, remove unused imports

6 years agoAdd a 'robust mode': A parse error during interpretation of a segment will be turned...
Henryk Plötz [Sun, 12 Aug 2018 12:25:46 +0000 (14:25 +0200)] 
Add a 'robust mode': A parse error during interpretation of a segment will be turned into a Warning, and a generic object will be created.
Should guarantee that no exceptions are triggered during communication, even if there's a bug in the segment definitions. Downside: find_segments('FOO') might return instances that are not of subclass FOOx.
Compensation: Make all calls to find_segment type safe by requiring a specific subclass.

6 years agoCleanup autodoc, generate type information for all the fields
Henryk Plötz [Sun, 12 Aug 2018 11:07:32 +0000 (13:07 +0200)] 
Cleanup autodoc, generate type information for all the fields

6 years agoAllow querying by class instead of segment type name
Henryk Plötz [Sat, 11 Aug 2018 21:38:10 +0000 (23:38 +0200)] 
Allow querying by class instead of segment type name

6 years agoEscape and unescape character @
Romain Rinie [Tue, 7 Aug 2018 07:54:55 +0000 (09:54 +0200)] 
Escape and unescape character @

6 years agoImprove documentation
Henryk Plötz [Sat, 11 Aug 2018 21:26:33 +0000 (23:26 +0200)] 
Improve documentation

6 years agoget_sepa_accounts() working
Henryk Plötz [Sat, 11 Aug 2018 18:55:28 +0000 (20:55 +0200)] 
get_sepa_accounts() working

6 years agoImplement HITANS segments
Henryk Plötz [Sat, 11 Aug 2018 18:29:05 +0000 (20:29 +0200)] 
Implement HITANS segments

6 years agoChange Model: make all ParameterSegment subclasses "parameters" field singular
Henryk Plötz [Sat, 11 Aug 2018 17:21:48 +0000 (19:21 +0200)] 
Change Model: make all ParameterSegment subclasses "parameters" field singular

6 years agoWork towards getting FinTS3Segment used in the normal flow.
Henryk Plötz [Sat, 11 Aug 2018 16:18:14 +0000 (18:18 +0200)] 
Work towards getting FinTS3Segment used in the normal flow.
Model change: Rename "response" to "responses", drop "response_" name prefix

6 years agoPut test cases into files, parametrize test cases
Henryk Plötz [Sat, 11 Aug 2018 16:17:56 +0000 (18:17 +0200)] 
Put test cases into files, parametrize test cases

6 years agoImplement finding
Henryk Plötz [Sat, 11 Aug 2018 14:05:47 +0000 (16:05 +0200)] 
Implement finding

6 years agoInclude code in docs, more docs
Henryk Plötz [Fri, 10 Aug 2018 22:44:21 +0000 (00:44 +0200)] 
Include code in docs, more docs

6 years agoFix and document serializer
Henryk Plötz [Fri, 10 Aug 2018 22:01:42 +0000 (00:01 +0200)] 
Fix and document serializer

6 years agoUpdate documentation
Henryk Plötz [Fri, 10 Aug 2018 20:13:52 +0000 (22:13 +0200)] 
Update documentation

6 years agoAdd some developer documentation
Henryk Plötz [Fri, 10 Aug 2018 02:31:16 +0000 (04:31 +0200)] 
Add some developer documentation

6 years agoaccount_information in HIUPD6 is conditional
Henryk Plötz [Thu, 9 Aug 2018 23:42:32 +0000 (01:42 +0200)] 
account_information in HIUPD6 is conditional

6 years agoExperimental: print new parse for all incoming and outgoing messages
Henryk Plötz [Thu, 9 Aug 2018 23:30:03 +0000 (01:30 +0200)] 
Experimental: print new parse for all incoming and outgoing messages

6 years agoAdd missing escaping (systemid sometimes has a +)
Henryk Plötz [Thu, 9 Aug 2018 23:28:07 +0000 (01:28 +0200)] 
Add missing escaping (systemid sometimes has a +)

6 years agoAdd a PasswordField, fix BooleanField, fix some class definitions
Henryk Plötz [Thu, 9 Aug 2018 23:16:22 +0000 (01:16 +0200)] 
Add a PasswordField, fix BooleanField, fix some class definitions

6 years agoRename old FinTS3Segment to FinTS3SegmentOLD for coexistence with old code
Henryk Plötz [Thu, 9 Aug 2018 22:57:05 +0000 (00:57 +0200)] 
Rename old FinTS3Segment to FinTS3SegmentOLD for coexistence with old code

6 years agoImplement more generic Field types
Henryk Plötz [Thu, 9 Aug 2018 22:39:58 +0000 (00:39 +0200)] 
Implement more generic Field types
Cleanup warnings in test

6 years agoImprove test coverage slightly
Henryk Plötz [Thu, 9 Aug 2018 22:24:33 +0000 (00:24 +0200)] 
Improve test coverage slightly

6 years agoflat_length_max is not used anymore
Henryk Plötz [Thu, 9 Aug 2018 22:07:07 +0000 (00:07 +0200)] 
flat_length_max is not used anymore

6 years agoValueList cannot actually contain another ValueList
Henryk Plötz [Thu, 9 Aug 2018 22:05:15 +0000 (00:05 +0200)] 
ValueList cannot actually contain another ValueList

6 years agoAdd tests for serializer
Henryk Plötz [Thu, 9 Aug 2018 21:04:09 +0000 (23:04 +0200)] 
Add tests for serializer

6 years agoFirst working serializer
Henryk Plötz [Thu, 9 Aug 2018 21:02:21 +0000 (23:02 +0200)] 
First working serializer

6 years agoMore DRY, less repeating
Henryk Plötz [Thu, 9 Aug 2018 19:07:40 +0000 (21:07 +0200)] 
More DRY, less repeating

6 years agoFix field inheritance over more than one level
Henryk Plötz [Thu, 9 Aug 2018 19:06:56 +0000 (21:06 +0200)] 
Fix field inheritance over more than one level

6 years agoImplement HIPINS1
Henryk Plötz [Thu, 9 Aug 2018 17:21:21 +0000 (19:21 +0200)] 
Implement HIPINS1