summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2023-01-20 22:26:39 +0100
committerSlávek Banko <slavek.banko@axis.cz>2023-01-20 22:26:39 +0100
commitd09e55dfbb793fc01c18d82eacbc59d6056a9390 (patch)
treed1ffb53838cc16a1eaa22dcf43044f6d06971ad7
parent08ab6ec214e63d1924c8e6764622322edb90bbd5 (diff)
downloadkmymoney-d09e55df.tar.gz
kmymoney-d09e55df.zip
Drop python2 support.r14.1.0
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rwxr-xr-xcontrib/csvbankingqif.py164
-rwxr-xr-xcontrib/csvpricesqif.py16
-rwxr-xr-xcontrib/csvsecurityqif.py10
3 files changed, 95 insertions, 95 deletions
diff --git a/contrib/csvbankingqif.py b/contrib/csvbankingqif.py
index 4e0d7ea..c3700df 100755
--- a/contrib/csvbankingqif.py
+++ b/contrib/csvbankingqif.py
@@ -19,32 +19,32 @@
#* *
#***************************************************************************/
#
-# *** NOTE ***
+# *** NOTE ***
# It may be necessary to remove the second line, before running.
-# It may be necessary also, to change the currency symbol if your file
+# It may be necessary also, to change the currency symbol if your file
# includes one.
#
-# Simple utility to convert a csv format file, as from a bank, to qif
-# format for KMyMoney2. There is no standard for the layout of such a
-# file, but generally there will be a header line which indicates the
-# layout of the fields within the file. Even then though, the order of
-# the columns may vary. It is assumed, though, that the first column
-# will contain the date, in 'dd MM yy' format, 'MM' being the month
+# Simple utility to convert a csv format file, as from a bank, to qif
+# format for KMyMoney2. There is no standard for the layout of such a
+# file, but generally there will be a header line which indicates the
+# layout of the fields within the file. Even then though, the order of
+# the columns may vary. It is assumed, though, that the first column
+# will contain the date, in 'dd MM yy' format, 'MM' being the month
# name or number.
-# The second column is the detail. The third and fourth columns are
-# assumed to be debits and credits. Even fron the same bank, these
-# columns may be reversed, but the script handles this. Alternatively,
-# the third column may be the amount. There may also be additional
+# The second column is the detail. The third and fourth columns are
+# assumed to be debits and credits. Even fron the same bank, these
+# columns may be reversed, but the script handles this. Alternatively,
+# the third column may be the amount. There may also be additional
# columns, such as current balance, but these are all ignored.
-# Apart from the header line, there are likely to be other lines, with
+# Apart from the header line, there are likely to be other lines, with
# account number, balance details, etc. These are skipped.
#
# First, make the script executable: chmod u+x csvbankinyqif.py .
-# The script should be added to the KMM QIF import profile. In KMM, open
-# Tools/QIF Profile Editor and click on 'New' at the bottom. then enter a
-# name, such as csvbank, then click 'OK'. Next, click on that name in the
-# next window, and open the Filter tab. For the 'Input filter location',
-# select the location you chose for the script file. For the Input filter
+# The script should be added to the KMM QIF import profile. In KMM, open
+# Tools/QIF Profile Editor and click on 'New' at the bottom. then enter a
+# name, such as csvbank, then click 'OK'. Next, click on that name in the
+# next window, and open the Filter tab. For the 'Input filter location',
+# select the location you chose for the script file. For the Input filter
# file type, enter *.csv, or whatever extension your data file has.
# Finally, click 'OK'.
# When ready, select File/Import/QIF, and browse to your data file, then
@@ -55,97 +55,97 @@
mnths=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
currency = '£'
setup = True
-debsfirst = False # credit column is before debit
-both = False # only one amount column
+debsfirst = False # credit column is before debit
+both = False # only one amount column
print("!Type:Bank")
while 1:
try:
- line=raw_input()
+ line=input()
except:break
- if line == "" : continue # empty line
- line = line.replace('"','',) # Strip out ' "' quotes
- line = line.replace(currency,'',) # Strip out '£', etc. symbol
+ if line == "" : continue # empty line
+ line = line.replace('"','',) # Strip out ' "' quotes
+ line = line.replace(currency,'',) # Strip out '£', etc. symbol
cols = line.split(',') # Seperator between columns
if setup:
#
-# *** SETUP ***
+# *** SETUP ***
#
- dt = cols[0][0:2] # Might be a date (day)
- datefound = ((dt > '0') and (dt < '32')) #this looks like a date
+ dt = cols[0][0:2] # Might be a date (day)
+ datefound = ((dt > '0') and (dt < '32')) #this looks like a date
hdrfound = (cols[0] == 'Date')
if not datefound and not hdrfound: continue# still in hdrs
if hdrfound:
#
-# *** 'Date', so now in header ***
+# *** 'Date', so now in header ***
#
hdrfound = False
- #line = line.replace(' ','',) # Strip out spaces in hdr
- cols[2] = cols[2].replace(' ','',) # Strip out spaces in hdr
+ #line = line.replace(' ','',) # Strip out spaces in hdr
+ cols[2] = cols[2].replace(' ','',) # Strip out spaces in hdr
if cols[2] == 'Debits':
- debsfirst = True
- continue
+ debsfirst = True
+ continue
elif cols[2] == 'Credits':
- debsfirst = False
- continue
+ debsfirst = False
+ continue
elif cols[2] == 'Amount':
- both = True
- continue
+ both = True
+ continue
else:
- print 'Error in col[2]'
- print '*** Error in header - col 2 s/b Debit, Credit, or Amount'
- #continue
- exit
+ print('Error in col[2]')
+ print('*** Error in header - col 2 s/b Debit, Credit, or Amount')
+ #continue
+ exit
setup ==False
#
-# *** Transactions ***
+# *** Transactions ***
#
cnum = 0 # First column
for col in cols:
if cnum > 3: break
#
-# # Process Date
+# # Process Date
#
elif cnum == 0:
- col =col.replace(' ','/',2) # Change date seperator to '/'
- m = col.split('/')
-# *** Check if month not numeric
- mn = m[1][0:3] # Extract month string from field 2
- fld = 2
- try:
- mnth = mnths.index(mn) # Get month number
- except ValueError: # Field 2 not a valid month name
- mn = m[0][0:3] # .. so try field 1
- fld = 1
- try:
- mnth = mnths.index(mn)
- except ValueError: # Nor is field 1
- dat = ''.join(col) # ..so use as is (numeric)
- else: # Field 1 is month name
- dat = col[1:3] + str(mnth + 1) + '/' +m[2]
- else: # Field 2 is month name
- dat = col[0:3] + str(mnth + 1) + '/' +m[2]
- line = 'D' + dat+'\n'
-#
-# # Detail column
-#
- elif cnum == 1:
- #col = col.replace('"','')
- line = line + 'P' + col +'\n'
-#
-# # Debit or credit column
-#
- elif cnum == 2:
- if col != "":
- if debsfirst == True: # This is Debit column
- col = '-' + col # Mark as -ve
- line = line + 'T' + col +'\n'
-#
-# # Credit or debit?
+ col =col.replace(' ','/',2) # Change date seperator to '/'
+ m = col.split('/')
+# *** Check if month not numeric
+ mn = m[1][0:3] # Extract month string from field 2
+ fld = 2
+ try:
+ mnth = mnths.index(mn) # Get month number
+ except ValueError: # Field 2 not a valid month name
+ mn = m[0][0:3] # .. so try field 1
+ fld = 1
+ try:
+ mnth = mnths.index(mn)
+ except ValueError: # Nor is field 1
+ dat = ''.join(col) # ..so use as is (numeric)
+ else: # Field 1 is month name
+ dat = col[1:3] + str(mnth + 1) + '/' +m[2]
+ else: # Field 2 is month name
+ dat = col[0:3] + str(mnth + 1) + '/' +m[2]
+ line = 'D' + dat+'\n'
+#
+# # Detail column
+#
+ elif cnum == 1:
+ #col = col.replace('"','')
+ line = line + 'P' + col +'\n'
+#
+# # Debit or credit column
+#
+ elif cnum == 2:
+ if col != "":
+ if debsfirst == True: # This is Debit column
+ col = '-' + col # Mark as -ve
+ line = line + 'T' + col +'\n'
+#
+# # Credit or debit?
#
elif ((cnum == 3) and (both == False)):
- if col != "":
- if ((debsfirst == False) ):
- col = '-' + col # Mark as -ve
- line = line + 'T' + col + '\n'
+ if col != "":
+ if ((debsfirst == False) ):
+ col = '-' + col # Mark as -ve
+ line = line + 'T' + col + '\n'
cnum+=1
- print line + '^' # output this entry
+ print(line + '^') # output this entry
diff --git a/contrib/csvpricesqif.py b/contrib/csvpricesqif.py
index 656ce20..a91dd6b 100755
--- a/contrib/csvpricesqif.py
+++ b/contrib/csvpricesqif.py
@@ -21,15 +21,15 @@
import csv
-# *** NOTE ***
+# *** NOTE ***
# It may be necessary to remove the second line, before running.
-# Simple script to convert a csv format Prices file, as from later
+# Simple script to convert a csv format Prices file, as from later
# editions of Quicken, to qif format for KMyMoney2.
# It and its data files are expected to be in the same directory.
# First make the script executable:- chmod u+x csvpricesqif.py
# Run by ''./csvpricesqif.py' .
-# You will be prompted to enter input and output filenames, followed
+# You will be prompted to enter input and output filenames, followed
# by the symbol for the stock.
# Input format - "23.12.09","61.62",,,
@@ -38,21 +38,21 @@ import csv
# "HJU8.BE",61.62,"23.12.09"
# ^
-fin = raw_input('Please enter the input Prices filename (.csv, .PRN, etc.) : ')
-fout = raw_input('Please enter the output filename (add .qif) : ')
-symbol = raw_input('Please enter the symbol for this stock: ')
+fin = input('Please enter the input Prices filename (.csv, .PRN, etc.) : ')
+fout = input('Please enter the output filename (add .qif) : ')
+symbol = input('Please enter the symbol for this stock: ')
symbol ='"'+ symbol+'"'# Add " " around symbol
inputfile = csv.reader(open(fin, 'rb'))
outputfile = open(fout, 'w')
-inputfile.next() # Skip header line. Comment out if no header.
+next(inputfile) # Skip header line. Comment out if no header.
inputfile_list = []
inputfile_list.extend(inputfile)
for data in inputfile_list:
line = '!Type:Prices\n'
line = line +symbol +',' + data[1] + ',"' + data[0] + '"\n' + '^\n'
-
+
#print line
outputfile.write(line)
diff --git a/contrib/csvsecurityqif.py b/contrib/csvsecurityqif.py
index 5f5e888..1014e3f 100755
--- a/contrib/csvsecurityqif.py
+++ b/contrib/csvsecurityqif.py
@@ -20,10 +20,10 @@
#***************************************************************************/
import csv
-# *** NOTE ***
+# *** NOTE ***
# It may be necessary to remove the second line, before running.
-# Simple utility to convert a csv format Securities file, as from later
+# Simple utility to convert a csv format Securities file, as from later
# editions of Quicken, to qif format for KMyMoney2.
# It and its data files are expected to be in the same directory.
#
@@ -35,11 +35,11 @@ import csv
# These fields are accepted and suffixed with 'M' in the output file.
# Anything of importance in them will need to be copy/pasted into KMM.
-fin = raw_input('Please enter the input Securities filename (.csv, .PRN, etc.) : ')
-fout = raw_input('Please enter the output filename (add .qif) : ')
+fin = input('Please enter the input Securities filename (.csv, .PRN, etc.) : ')
+fout = input('Please enter the output filename (add .qif) : ')
line = csv.reader(open(fin, "rb"))
outputfile = open(fout, 'w')
-line.next() # Skip header line. Comment out if no header.
+next(line) # Skip header line. Comment out if no header.
line_list = []
line_list.extend(line)
line = "!Option:AutoSwitch\n"