comparison Generic/utils.py @ 17:a7b9f7e7dfa4

Improvements importing FIEBDC files
author Miguel Ángel Bárcena Rodríguez <miguelangel@obraencurso.es>
date Sat, 02 Nov 2013 19:26:09 +0100
parents 2ac1551ad2ab
children 65e7ae0d0e63
comparison
equal deleted inserted replaced
16:60bc5117926c 17:a7b9f7e7dfa4
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # -*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 ## File utils.py 3 ## File utils.py
4 ## This file is part of pyArq-Presupuestos. 4 ## This file is part of pyArq-Presupuestos.
5 ## 5 ##
6 ## Copyright (C) 2010 Miguel Ángel Bárcena Rodríguez 6 ## Copyright (C) 2010-2013 Miguel Ángel Bárcena Rodríguez
7 ## <miguelangel@obraencurso.es> 7 ## <miguelangel@obraencurso.es>
8 ## 8 ##
9 ## pyArq-Presupuestos is free software: you can redistribute it and/or modify 9 ## pyArq-Presupuestos is free software: you can redistribute it and/or modify
10 ## it under the terms of the GNU General Public License as published by 10 ## it under the terms of the GNU General Public License as published by
11 ## the Free Software Foundation, either version 3 of the License, or 11 ## the Free Software Foundation, either version 3 of the License, or
109 False: the code is not valid and can not be corrected 109 False: the code is not valid and can not be corrected
110 code: the code or the corrected code 110 code: the code or the corrected code
111 """ 111 """
112 _is_valid = True 112 _is_valid = True
113 if not isinstance(code, str): 113 if not isinstance(code, str):
114 print "Not a string, code:", code, type(code)
114 return False, False 115 return False, False
115 if code == "": 116 if code == "":
117
116 return False, False 118 return False, False
117 try: 119 try:
118 _unicode_code = unicode(code, "utf8") 120 _unicode_code = unicode(code, "utf8",'replace')
119 _code_cp850 = _unicode_code.encode("cp850") 121 _code_utf8 = _unicode_code.encode("utf8",'replace')
120 _unicode_code = unicode(_code_cp850, "cp850") 122 _code_cp850 = _unicode_code.encode("cp850",'replace')
121 _code_utf8 = _unicode_code.encode("utf8") 123 _unicode_code = unicode(_code_cp850, "cp850",'replace')
124
122 except UnicodeError: 125 except UnicodeError:
126 print "Unicode Error, code:", code
123 return False, False 127 return False, False
124 if _code_utf8 != code: 128 if _code_utf8 != code:
129 print "Not in cp950, code:", code
125 _is_valid = False 130 _is_valid = False
126 if _code_utf8 == "": 131 if _code_utf8 == "":
127 return False, False 132 return False, False
128 code = _code_utf8 133 code = _code_utf8
129 _code2 = re.sub("[\t \n\r~|\\\]","",code) 134 _code2 = re.sub("[\t \n\r~|\\\]","",code)
130 if _code2 != code: 135 if _code2 != code:
136 print "Control characters in code:", code
131 if _code2 == "": 137 if _code2 == "":
132 return False, False 138 return False, False
133 _is_valid = False 139 _is_valid = False
134 code = _code2 140 code = _code2
135 if code[-1] == "#": 141 if code[-1] == "#":
142 print "# in code:", code
136 _is_valid = False 143 _is_valid = False
137 while code[-1] == "#": 144 while code[-1] == "#":
138 code = code[:-1] 145 code = code[:-1]
139 if code == "": 146 if code == "":
147 print "Empty code"
140 return False, False 148 return False, False
141 return _is_valid, code 149 return _is_valid, code
142 150
143 def getFiletype(filename, h=None): 151 def getFiletype(filename, h=None):
144 """getFiletype(filename, h=None): 152 """getFiletype(filename, h=None):