annotate main.py @ 1:e23b7617bbc4

reducing redundancy
author Dennis C. M. <dennis@denniscm.com>
date Wed, 31 May 2023 20:19:26 +0100
parents 556768c7d3d7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 import json
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 from datetime import datetime
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
3 from collections import defaultdict
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 def main():
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
7 data = defaultdict(dict)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
8 date_index = defaultdict(dict)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
9
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 with open('santander.json') as f:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 doc = json.load(f)
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 if doc['JobStatus'] != 'SUCCEEDED':
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 print(f"JOB STATUS: {doc['JobStatus']}")
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 return
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 blocks = doc['Blocks']
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
19
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
20 # Get format
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
21 lines = filter_blocks(blocks, 'BlockType', 'LINE')
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
22 for line in lines:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
23 format = get_format(line['Text'])
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
24 data['format'] = format
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
25 if format:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
26 break
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
27
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
28 # Find dates value and position
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
29 cells = filter_blocks(blocks, 'BlockType', 'CELL')
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
30 for cell in cells:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
31 child_ids = extract_child_ids(cell)
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
33 # Get `Text` from `CELL` block
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
34 cell_text = ''
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
35 for index, child_id in enumerate(child_ids):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
36 word_block = filter_blocks(blocks, 'Id', child_id)[0]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
37 cell_text += word_block['Text']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
38
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
39 date_string = is_date(cell_text)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
40 if date_string:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
41 cell_text = date_string
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
42 date_index[date_string]['column'] = cell['ColumnIndex']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
43 date_index[date_string]['row'] = cell['RowIndex']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
44
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
46 cell_row_index = cell['RowIndex']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
47 cell_column_index = cell['ColumnIndex']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
48 data['rows'][cell_row_index][cell_column_index] = cell_text
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
49
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
50 # Delete unused rows
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
51 for year in date_index:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
52 for row in data['rows']:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
53 print(row)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
54 exit()
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
55 if year[row] < row:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
56 del data[row]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
57
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
58 print(data)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
59
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
60
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
61
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
63
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
64 print(data)
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
68 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
69 # Get table
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
70 table = filter_blocks(blocks, 'BlockType', 'TABLE')[0]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
71 table_child_ids = extract_child_ids(table)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
72
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
73 # Iterate over childs and get `CELL` blocks
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
74 for table_child_id in table_child_ids:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
75 cell = filter_blocks(blocks, 'Id', table_child_id)[0]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
76 cell_child_ids = extract_child_ids(cell)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
77
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
78 # Get `Text` from `CELL` block
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
79 cell_text = ''
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
80 for cell_child_id in cell_child_ids:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
81 word_block = filter_blocks(blocks, 'Id', cell_child_id)[0]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
82 cell_text += word_block['Text']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
83
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
84 # Check if cell_text could be a date
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
85 date_string = is_date(cell_text)
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
86 if date_string:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
87 date_column_index = cell['ColumnIndex']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
88 data[date_column_index] = {'year': date_string}
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
89 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
90
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
91
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
92 def filter_blocks(blocks, block_key, block_value):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
93 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
94 Extract a block by key-value from array of blocks
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
95 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
96
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
97 return [block for block in blocks if block[block_key] == block_value]
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
98
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
99
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
100 def extract_child_ids(block):
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
101 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
102 Extract child Ids from a block
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
103 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
104
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
105 if not 'Relationships' in block:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
106 return []
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
107
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
108 return [r['Ids'] for r in block['Relationships'] if r['Type'] == 'CHILD'][0]
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
109
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
110
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
111 def is_date(string_date):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
112 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
113 Verify if a string could be a date
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
114 """
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
115
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
116 formats_allowed = ['%d-%m-%Y', '%d_%m_%Y', '%d/%m/%Y', '%d.%m.%Y', '%Y']
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
117
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
118 for format_allowed in formats_allowed:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
119 try:
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
120 date = datetime.strptime(string_date, format_allowed)
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
121
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
122 return date.strftime("%Y")
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
123 except ValueError:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
124
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
125 # Try removing characters from the beginning and end
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
126 options = [string_date[:-1], string_date[1:], string_date[1:-1]]
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
127 for option in options:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
128 try:
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
129 date = datetime.strptime(option, format_allowed)
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
130
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
131 return date.strftime("%Y")
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
132 except ValueError:
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
133 continue
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
134
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
135 return
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
136
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
137
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
138 def get_format(phrase):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
139 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
140 Given a phrase verify if it is specified the amount format
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
141 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
142
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
143 amount_formats = ['thousand', 'million', 'billion']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
144
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
145 for amount_format in amount_formats:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
146 plural_amount_format = f'{amount_format}s'
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
147
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
148 if amount_format in phrase or plural_amount_format in phrase:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
149 return amount_format
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
150
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
151
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
152 def clean(string_type, string):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
153 characters = ['.', ',', '-', ' ']
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
154
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
155 clean_string = string
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
156 for character in characters:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
157 clean_string = clean_string.replace(character, '')
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
158
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
159 return clean_string
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
160
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
161
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
162 def format_amount(string_amount):
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
163 pass
0
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
164
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
165
556768c7d3d7 first attempt
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
166 if __name__ == '__main__':
1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
167 main()
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
168
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
169 """
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
170 Assumptions:
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
171 - Thousand separator is `,`
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
172 - Supported date formats '%d-%m-%Y', '%d_%m_%Y', '%d/%m/%Y', '%d.%m.%Y', '%Y'
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
173 - Accounting values are in the same column and below the date.
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
174 +-------+-------+
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
175 | 2022 | 2023 |
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
176 +-------+-------+
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
177 | 3,000 | 3,100 |
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
178 +-------+-------+
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
179 | 120 | 150 |
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
180 +-------+-------+
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
181 | 789 | 800 |
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
182 +-------+-------+
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
183 - Account names must be in column index 1
e23b7617bbc4 reducing redundancy
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
184 """