isabekov / kmymoney2ledgers Goto Github PK
View Code? Open in Web Editor NEWKMyMoney's XML to hledger/beancount journal file converter
KMyMoney's XML to hledger/beancount journal file converter
Hello,
A suggestion for improvement to your script (I don't know whether you still maintain it though).
I am using kmymoney (trying to transition from it), and my storage backend is sqlite, not XML.
To use your use, I therefore have to "Save As" to XML, from kmymoney, then I can use the script.
It would be nice to directly import sqlite in your script (this is the same schema as the XML file, so
in practice you have already done most of the work).
This is very minor though. I expect most people use this script once to convert from kmymoney,
and never run it again afterwards :-)
Emmanuel
Hello,
Thanks for the converter. I found it by chance yesterday while I was considering writing my own :-)
A minor suggestion for a fix: some of my accounts use accented letters. There is also apparently somewhere an infinity sign, though I could not find it in the XML file itself.
Nonetheless, when running your tool in Windows Powershell, I am getting
> python3 .\kmymoney2ledgers.py .\test_kmy_xml.xml
Processing transaction 2/8703
Processing transaction 1002/8703
Processing transaction 2002/8703
Processing transaction 3002/8703
Processing transaction 4002/8703
Processing transaction 5002/8703
Processing transaction 6002/8703
Processing transaction 7002/8703
Processing transaction 8002/8703
Processing transaction 8703/8703
Traceback (most recent call last):
File "C:\Users\briot\Desktop\kmymoney2ledgers.py", line 438, in <module>
main(sys.argv)
File "C:\Users\briot\Desktop\kmymoney2ledgers.py", line 430, in main
out_file_id.writelines(
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2288.0_x64__qbz5n2kfra8p0\Lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The simple fix I applied was to change line 439 to
out_file_id = open(outputfile, "w", encoding="utf-8")
It likely isn't the optimal, maybe we should just apply the encoding of the input XML file itself, though I think kmymoney might always be using UTF-8 in any case.
thanks
Emmanuel
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.