Дипломная работа: Автоматизация процесса введения документации и отчетности в ООО "Аэрофильтр"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
def multidict_to_dict(multidict):
d = {}
for k in multidict.keys():
v = multidict.getall(k)
if isinstance(v, list) and len(v) > 1:
d[k] = v
else:
d[k] = v[0]
return d
def tolist(val):
if not val and not val.__class__ in (int, float, bool):
return []
if val.__class__ is set or val.__class__ is tuple:
return list(val)
return val if val.__class__ is list else [val]
def hex_to_unicode(h):
if not h:
97
return ''
new = ''
for i in range(int(len(h) / 4)):
new += chr(int(h[i * 4:(i + 1) * 4], 16))
return new.encode('utf-16', 'surrogatepass').decode('utf-16')
def unicode_to_hex(t):
if not t:
return ''
return ''.join(['{:04x}'.format(ord(x)) for x in t])
def validate_phone(phone):
try:
phone = phonenumbers.parse(phone)
if phonenumbers.is_valid_number(phone):
return '+%s%s' % (phone.country_code, phone.national_number)
else:
return False
except phonenumbers.NumberParseException:
return False
98
def json_default(obj):
if isinstance(obj, ObjectId):
return str(obj)
if isinstance(obj, datetime.datetime):
return int(obj.timestamp())
def dict_to_dotted(d, result=None, prev_keys=None):
if d.__class__ is DottedDict:
d = d.to_python()
if result is None:
result = {}
if prev_keys is None:
prev_keys = []
for k, v in d.items():
if isinstance(v, dict):
dict_to_dotted(v, result, prev_keys + [k])
else:
result['.'.join(prev_keys + [k])] = v
99
return result
import docx
import magic
from openpyxl import load_workbook
from openpyxl.utils.exceptions import InvalidFileException
def get_words(filename):
try:
return get_words_from_docx(filename)
except ValueError:
pass
try:
return get_words_from_xlsx(filename)
except InvalidFileException:
pass
raise Exception('InvalidFileException')
def get_words_from_docx(filename):
doc = docx.Document(filename)
100
words = set()
for p in doc.paragraphs:
words.update(str(p.text).split())
return ' '.join(words)
def detect_mime(path):
mime = magic.Magic(mime=True)
_type = mime.from_file(path)
if not _type:
return
return _type.rsplit('/')[-1]
def get_words_from_xlsx(path):
wb = load_workbook(path, read_only=True)
words = set()
for sheet_name in wb.sheetnames:
Источник: https://baza.diplomsite.ru/previewfile/2029