def get_info_from_file_number(file_number, privileged=False, filename=None): if current_user and current_user.is_authenticated and current_user.has_role('admin', 'developer', 'advocate', 'trainer'): privileged = True else: if has_request_context() and 'uid' in session: uid = session['uid'] else: uid = docassemble.base.functions.get_uid() #logmessage("get_info_from_file_number: privileged is " + str(privileged) + " and uid is " + str(uid)) result = dict() if privileged: upload = Uploads.query.filter_by(indexno=file_number).first() else: upload = Uploads.query.filter(and_(Uploads.indexno == file_number, or_(Uploads.key == uid, Uploads.private == False))).first() if upload: if filename is None: result['filename'] = upload.filename else: result['filename'] = filename result['extension'], result['mimetype'] = get_ext_and_mimetype(result['filename']) sf = SavedFile(file_number, extension=result['extension'], fix=True) result['path'] = sf.path result['fullpath'] = result['path'] + '.' + result['extension'] result['private'] = upload.private result['persistent'] = upload.persistent #logmessage("fullpath is " + str(result['fullpath'])) if 'path' not in result: logmessage("get_info_from_file_number: path is not in result for " + str(file_number)) return result final_filename = result['path'] + '.' + result['extension'] if os.path.isfile(final_filename): add_info_about_file(final_filename, result) # else: # logmessage("Filename " + final_filename + "did not exist.") return(result)
def get_info_from_file_number(file_number, privileged=False, filename=None): if current_user and current_user.is_authenticated and current_user.has_role('admin', 'developer', 'advocate', 'trainer'): privileged = True else: if has_request_context() and 'uid' in session: uid = session['uid'] else: uid = docassemble.base.functions.get_uid() #logmessage("get_info_from_file_number: privileged is " + str(privileged) + " and uid is " + str(uid)) result = dict() if privileged: upload = Uploads.query.filter_by(indexno=file_number).first() else: upload = Uploads.query.filter(and_(Uploads.indexno == file_number, or_(Uploads.key == uid, Uploads.private == False))).first() if upload: if filename is None: result['filename'] = upload.filename else: result['filename'] = filename result['extension'], result['mimetype'] = get_ext_and_mimetype(result['filename']) sf = SavedFile(file_number, extension=result['extension'], fix=True) result['path'] = sf.path result['fullpath'] = result['path'] + '.' + result['extension'] result['private'] = upload.private result['persistent'] = upload.persistent #logmessage("fullpath is " + str(result['fullpath'])) if 'path' not in result: logmessage("get_info_from_file_number: path is not in result for " + str(file_number)) return result final_filename = result['path'] + '.' + result['extension'] if os.path.isfile(final_filename): add_info_about_file(final_filename, result) # else: # logmessage("Filename " + final_filename + "did not exist.") return(result)
def get_info_from_file_number(file_number, privileged=False, filename=None): if has_request_context(): uid = session['uid'] else: uid = docassemble.base.functions.get_uid() #logmessage("get_info_from_file_number: privileged is " + str(privileged) + " and uid is " + str(uid)) result = dict() if privileged: upload = Uploads.query.filter_by(indexno=file_number).first() else: upload = Uploads.query.filter_by(indexno=file_number, key=uid).first() if upload: if filename is None: result['filename'] = upload.filename else: result['filename'] = filename result['extension'], result['mimetype'] = get_ext_and_mimetype(result['filename']) result['savedfile'] = SavedFile(file_number, extension=result['extension'], fix=True) result['path'] = result['savedfile'].path result['fullpath'] = result['path'] + '.' + result['extension'] #logmessage("fullpath is " + str(result['fullpath'])) if 'path' not in result: logmessage("get_info_from_file_number: path is not in result for " + str(file_number)) return result final_filename = result['path'] + '.' + result['extension'] if os.path.isfile(final_filename): add_info_about_file(final_filename, result) #else: # logmessage("Filename DID NOT EXIST.") return(result)
def image_file_list(self): out_list = list() for the_file in self.file_list: extension, mimetype = get_ext_and_mimetype(the_file) if re.search(r'^image', mimetype): out_list.append(the_file) return out_list
def image_file_list(self): out_list = list() for the_file in self.file_list: extension, mimetype = get_ext_and_mimetype(the_file) if re.search(r'^image', mimetype): out_list.append(the_file) return out_list
def save_numbered_file(filename, orig_path, yaml_file_name=None, uid=None): if uid is None: if has_request_context(): uid = session.get('uid', None) else: uid = docassemble.base.functions.get_uid() if uid is None: raise Exception("save_numbered_file: uid not defined") file_number = get_new_file_number(uid, filename, yaml_file_name=yaml_file_name) extension, mimetype = get_ext_and_mimetype(filename) new_file = SavedFile(file_number, extension=extension, fix=True) new_file.copy_from(orig_path) new_file.save(finalize=True) return(file_number, extension, mimetype)
def save_numbered_file(filename, orig_path, yaml_file_name=None, uid=None): if uid is None: if has_request_context() and 'uid' in session: uid = session.get('uid', None) else: uid = docassemble.base.functions.get_uid() if uid is None: raise Exception("save_numbered_file: uid not defined") file_number = get_new_file_number(uid, filename, yaml_file_name=yaml_file_name) extension, mimetype = get_ext_and_mimetype(filename) new_file = SavedFile(file_number, extension=extension, fix=True) new_file.copy_from(orig_path) new_file.save(finalize=True) return(file_number, extension, mimetype)
def save_numbered_file(filename, orig_path, yaml_file_name=None, uid=None): if uid is None: try: uid = docassemble.base.functions.get_uid() assert uid is not None except: uid = unattached_uid() if uid is None: raise Exception("save_numbered_file: uid not defined") file_number = get_new_file_number(uid, filename, yaml_file_name=yaml_file_name) extension, mimetype = get_ext_and_mimetype(filename) new_file = SavedFile(file_number, extension=extension, fix=True) new_file.copy_from(orig_path) new_file.save(finalize=True) return(file_number, extension, mimetype)
def save_numbered_file(filename, orig_path, yaml_file_name=None, uid=None): if uid is None: try: uid = docassemble.base.functions.this_thread.current_info[ 'session'] except: pass if uid is None: raise Exception("save_numbered_file: uid not defined") file_number = get_new_file_number(uid, filename, yaml_file_name=yaml_file_name) extension, mimetype = get_ext_and_mimetype(filename) new_file = SavedFile(file_number, extension=extension, fix=True) new_file.copy_from(orig_path) new_file.save(finalize=True) return (file_number, extension, mimetype)
def is_fillable_docx(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension != "docx": return False if not self.file_exists(filename): return False path = self.get_file(filename) result_file = word_to_markdown(path, 'docx') if result_file is None: return False with open(result_file.name, 'r', encoding='utf-8') as fp: result = fp.read() fields = set() for variable in re.findall(r'{{ *([^\} ]+) *}}', result): fields.add(docx_variable_fix(variable)) for variable in re.findall(r'{%[a-z]* for [A-Za-z\_][A-Za-z0-9\_]* in *([^\} ]+) *%}', result): fields.add(docx_variable_fix(variable)) return bool(len(fields) > 0)
def get_info_from_file_number(file_number, privileged=False, filename=None, uids=None): if current_user and current_user.is_authenticated and current_user.has_role('admin', 'developer', 'advocate', 'trainer'): privileged = True elif uids is None or len(uids) == 0: new_uid = docassemble.base.functions.get_uid() if new_uid is not None: uids = [new_uid] else: uids = [] result = dict() upload = db.session.execute(select(Uploads).filter_by(indexno=file_number)).scalar() if not privileged and upload is not None and upload.private and upload.key not in uids: has_access = False if current_user and current_user.is_authenticated: if db.session.execute(select(UserDictKeys).filter_by(key=upload.key, user_id=current_user.id)).first() or db.session.execute(select(UploadsUserAuth).filter_by(uploads_indexno=file_number, user_id=current_user.id)).first() or db.session.execute(select(UploadsRoleAuth.id).join(UserRoles, and_(UserRoles.user_id == current_user.id, UploadsRoleAuth.role_id == UserRoles.role_id)).where(UploadsRoleAuth.uploads_indexno == file_number)).first(): has_access = True elif session and 'tempuser' in session: temp_user_id = int(session['tempuser']) if db.session.execute(select(UserDictKeys).filter_by(key=upload.key, temp_user_id=temp_user_id)).first() or db.session.execute(select(UploadsUserAuth).filter_by(uploads_indexno=file_number, temp_user_id=temp_user_id)).first(): has_access = True if not has_access: upload = None if upload: if filename is None: result['filename'] = upload.filename else: result['filename'] = filename result['extension'], result['mimetype'] = get_ext_and_mimetype(result['filename']) sf = SavedFile(file_number, extension=result['extension'], fix=True) result['path'] = sf.path result['fullpath'] = result['path'] + '.' + result['extension'] result['private'] = upload.private result['persistent'] = upload.persistent #logmessage("fullpath is " + str(result['fullpath'])) if 'path' not in result: logmessage("get_info_from_file_number: path is not in result for " + str(file_number)) return result final_filename = result['path'] + '.' + result['extension'] if os.path.isfile(final_filename): add_info_about_file(final_filename, result['path'], result) # else: # logmessage("Filename " + final_filename + "did not exist.") return(result)
def is_fillable_docx(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension != "docx": return False if not self.file_exists(filename): return False path = self.get_file(filename) result_file = word_to_markdown(path, 'docx') if result_file is None: return False with open(result_file.name, 'rU', encoding='utf-8') as fp: result = fp.read() fields = set() for variable in re.findall(r'{{ *([^\} ]+) *}}', result): fields.add(docx_variable_fix(variable)) for variable in re.findall(r'{%[a-z]* for [A-Za-z\_][A-Za-z0-9\_]* in *([^\} ]+) *%}', result): fields.add(docx_variable_fix(variable)) if len(fields): return True return False
def get_info_from_file_number(file_number, privileged=False, filename=None, uids=None): if current_user and current_user.is_authenticated and current_user.has_role( 'admin', 'developer', 'advocate', 'trainer'): privileged = True elif uids is None: try: uids = [ docassemble.base.functions.this_thread.current_info['session'] ] except: uids = [] result = dict() upload = Uploads.query.filter_by(indexno=file_number).first() if not privileged and upload is not None and upload.private and upload.key not in uids: upload = None if upload: if filename is None: result['filename'] = upload.filename else: result['filename'] = filename result['extension'], result['mimetype'] = get_ext_and_mimetype( result['filename']) sf = SavedFile(file_number, extension=result['extension'], fix=True) result['path'] = sf.path result['fullpath'] = result['path'] + '.' + result['extension'] result['private'] = upload.private result['persistent'] = upload.persistent #logmessage("fullpath is " + str(result['fullpath'])) if 'path' not in result: logmessage("get_info_from_file_number: path is not in result for " + str(file_number)) return result final_filename = result['path'] + '.' + result['extension'] if os.path.isfile(final_filename): add_info_about_file(final_filename, result['path'], result) # else: # logmessage("Filename " + final_filename + "did not exist.") return (result)
def convert_file_to_md(self, filename, convert_variables=True): extension, mimetype = get_ext_and_mimetype(filename) if (mimetype and mimetype in convertible_mimetypes): the_format = convertible_mimetypes[mimetype] elif extension and extension in convertible_extensions: the_format = convertible_extensions[extension] else: return None if not self.file_exists(filename): return None path = self.get_file(filename) temp_file = word_to_markdown(path, the_format) if temp_file is None: return None out_filename = os.path.splitext(filename)[0] + '.md' if convert_variables: with open(temp_file.name, 'rU', encoding='utf-8') as fp: self.write_file(out_filename, replace_square_brackets.sub(fix_variable_name, fp.read())) else: shutil.copyfile(temp_file.name, self.get_file(out_filename)) return out_filename
def convert_file_to_md(self, filename, convert_variables=True): extension, mimetype = get_ext_and_mimetype(filename) if (mimetype and mimetype in convertible_mimetypes): the_format = convertible_mimetypes[mimetype] elif extension and extension in convertible_extensions: the_format = convertible_extensions[extension] else: return None if not self.file_exists(filename): return None path = self.get_file(filename) temp_file = word_to_markdown(path, the_format) if temp_file is None: return None out_filename = os.path.splitext(filename)[0] + '.md' if convert_variables: with open(temp_file.name, 'rU', encoding='utf-8') as fp: self.write_file(out_filename, replace_square_brackets.sub(fix_variable_name, fp.read())) else: shutil.copyfile(temp_file.name, self.get_file(out_filename)) return out_filename
def get_info_from_file_reference(file_reference, **kwargs): #sys.stderr.write('file reference is ' + str(file_reference) + "\n") #logmessage('file reference is ' + str(file_reference)) if 'convert' in kwargs: convert = kwargs['convert'] else: convert = None if 'privileged' in kwargs: privileged = kwargs['privileged'] else: privileged = None has_info = False if re.search(r'^[0-9]+$', str(file_reference)): if 'uids' in kwargs: uids = kwargs['uids'] else: uids = None if uids is None or len(uids) == 0: new_uid = docassemble.base.functions.get_uid() if new_uid is not None: uids = [new_uid] else: uids = [] if 'filename' in kwargs: result = get_info_from_file_number(int(file_reference), privileged=privileged, filename=kwargs['filename'], uids=uids) else: result = get_info_from_file_number(int(file_reference), privileged=privileged, uids=uids) if 'fullpath' not in result: result['fullpath'] = None has_info = True elif re.search(r'^https?://', str(file_reference)): #logmessage("get_info_from_file_reference: " + str(file_reference) + " is a URL") possible_filename = re.sub(r'.*/', '', file_reference) if possible_filename == '': possible_filename = 'index.html' if re.search(r'\.', possible_filename): (possible_ext, possible_mimetype) = get_ext_and_mimetype(possible_filename) possible_ext = re.sub(r'[^A-Za-z0-9\.].*', '', possible_ext) #logmessage("get_info_from_file_reference: starting with " + str(possible_ext) + " and " + str(possible_mimetype)) else: possible_ext = 'txt' possible_mimetype = 'text/plain' result = dict() temp_file = tempfile.NamedTemporaryFile(prefix="datemp", suffix='.' + possible_ext, delete=False) req = Request(file_reference, headers={ 'User-Agent': docassemble.base.config.daconfig.get( 'user agent', 'curl/7.64.0') }) response = urlopen(req) temp_file.write(response.read()) #(local_filename, headers) = urllib.urlretrieve(file_reference) result['fullpath'] = temp_file.name try: #result['mimetype'] = headers.gettype() result['mimetype'] = response.headers['Content-Type'] #logmessage("get_info_from_file_reference: mimetype is " + str(result['mimetype'])) except Exception as errmess: logmessage( "get_info_from_file_reference: could not get mimetype from headers" ) result['mimetype'] = possible_mimetype result['extension'] = possible_ext if 'extension' not in result: #logmessage("get_info_from_file_reference: extension not in result") result['extension'] = re.sub( r'^\.', '', mimetypes.guess_extension(result['mimetype'])) #logmessage("get_info_from_file_reference: extension is " + str(result['extension'])) if re.search(r'\.', possible_filename): result['filename'] = possible_filename else: result['filename'] = possible_filename + '.' + result['extension'] path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] has_info = True #logmessage("get_info_from_file_reference: downloaded to " + str(result['fullpath'])) else: #logmessage(str(file_reference) + " is not a URL") result = dict() question = kwargs.get('question', None) folder = kwargs.get('folder', None) the_package = None parts = file_reference.split(':') if len(parts) == 1: the_package = None if question is not None: the_package = question.from_source.package if the_package is None: the_package = docassemble.base.functions.get_current_package() if folder is None: m = re.search(r'^data/(templates|sources|static)/(.*)', file_reference) if m: folder = m.group(1) file_reference = m.group(2) if folder is not None and not re.search(r'/', file_reference): file_reference = 'data/' + str(folder) + '/' + file_reference if the_package is not None: #logmessage("package is " + str(the_package)) file_reference = the_package + ':' + file_reference else: #logmessage("package was null") file_reference = 'docassemble.base:' + file_reference if the_package is not None: result['package'] = the_package elif len(parts) == 2: result['package'] = parts[0] result['fullpath'] = docassemble.base.functions.static_filename_path( file_reference) #logmessage("path is " + str(result['fullpath'])) if result['fullpath'] is not None: #os.path.isfile(result['fullpath']) if not has_info: result['filename'] = os.path.basename(result['fullpath']) ext_type, result['mimetype'] = get_ext_and_mimetype( result['fullpath']) path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] result['extension'] = path_parts[1].lower() result['extension'] = re.sub(r'\.', '', result['extension']) #logmessage("Extension is " + result['extension']) if convert is not None and result['extension'] in convert: #logmessage("Converting...") if os.path.isfile(result['path'] + '.' + convert[result['extension']]): #logmessage("Found conversion file ") result['extension'] = convert[result['extension']] result['fullpath'] = result['path'] + '.' + result['extension'] ext_type, result['mimetype'] = get_ext_and_mimetype( result['fullpath']) else: logmessage("Did not find file " + result['path'] + '.' + convert[result['extension']]) return dict() #logmessage("Full path is " + result['fullpath']) if os.path.isfile(result['fullpath']) and not has_info: add_info_about_file(result['fullpath'], result['path'], result) else: logmessage("File reference " + str(file_reference) + " DID NOT EXIST.") return (result)
def get_info_from_file_reference(file_reference, **kwargs): #sys.stderr.write('file reference is ' + str(file_reference) + "\n") #logmessage('file reference is ' + str(file_reference)) if 'convert' in kwargs: convert = kwargs['convert'] else: convert = None has_info = False if re.match('[0-9]+', str(file_reference)): result = get_info_from_file_number(int(file_reference)) if 'fullpath' not in result: result['fullpath'] = None has_info = True elif re.search(r'^https*://', str(file_reference)): #logmessage(str(file_reference) + " is a URL") possible_filename = re.sub(r'.*/', '', file_reference) if possible_filename == '': possible_filename = 'index.html' if re.search(r'\.', possible_filename): (possible_ext, possible_mimetype) = get_ext_and_mimetype(possible_filename) else: possible_ext = 'txt' possible_mimetype = 'text/plain' result = dict() (local_filename, headers) = urllib.urlretrieve(file_reference) result['fullpath'] = local_filename try: result['mimetype'] = headers.gettype() except Exception as errmess: logmessage("get_info_from_file_reference: could not get mimetype from headers") result['mimetype'] = possible_mimetype result['extension'] = possible_ext if 'extension' not in result: result['extension'] = re.sub(r'^\.', '', mimetypes.guess_extension(result['mimetype'])) if re.search(r'\.', possible_filename): result['filename'] = possible_filename else: result['filename'] = possible_filename + '.' + result['extension'] path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] has_info = True #logmessage("Downloaded to " + result['tempfile'].name) else: #logmessage(str(file_reference) + " is not a URL") result = dict() question = kwargs.get('question', None) folder = kwargs.get('folder', None) the_package = None parts = file_reference.split(':') if len(parts) == 1: the_package = None if question is not None: the_package = question.from_source.package if the_package is None: the_package = docassemble.base.functions.get_current_package() if folder is not None and not re.search(r'/', file_reference): file_reference = 'data/' + str(folder) + '/' + file_reference if the_package is not None: file_reference = the_package + ':' + file_reference else: file_reference = 'docassemble.base:' + file_reference result['fullpath'] = docassemble.base.functions.static_filename_path(file_reference) #logmessage("path is " + str(result['fullpath'])) if result['fullpath'] is not None: #os.path.isfile(result['fullpath']) if not has_info: result['filename'] = os.path.basename(result['fullpath']) ext_type, result['mimetype'] = get_ext_and_mimetype(result['fullpath']) path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] result['extension'] = path_parts[1].lower() result['extension'] = re.sub(r'\.', '', result['extension']) #logmessage("Extension is " + result['extension']) if convert is not None and result['extension'] in convert: #logmessage("Converting...") if os.path.isfile(result['path'] + '.' + convert[result['extension']]): #logmessage("Found conversion file ") result['extension'] = convert[result['extension']] result['fullpath'] = result['path'] + '.' + result['extension'] ext_type, result['mimetype'] = get_ext_and_mimetype(result['fullpath']) else: logmessage("Did not find file " + result['path'] + '.' + convert[result['extension']]) return dict() #logmessage("Full path is " + result['fullpath']) if os.path.isfile(result['fullpath']) and not has_info: add_info_about_file(result['fullpath'], result) else: logmessage("File reference " + str(file_reference) + " DID NOT EXIST.") return(result)
def is_markdown(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension == "md": return True return False
def is_pdf(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension == "pdf": return True return False
def is_markdown(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension == "md": return True return False
def is_pdf(self, filename): extension, mimetype = get_ext_and_mimetype(filename) if extension == "pdf": return True return False
def get_mimetype(self, filename): extension, mimetype = get_ext_and_mimetype(filename) return mimetype
def is_pdf(self, filename): extension, mimetype = get_ext_and_mimetype(filename) return bool(extension == "pdf")
def is_markdown(self, filename): extension, mimetype = get_ext_and_mimetype(filename) return bool(extension == "md")
def get_info_from_file_reference(file_reference, **kwargs): #sys.stderr.write('file reference is ' + str(file_reference) + "\n") #logmessage('file reference is ' + str(file_reference)) if 'convert' in kwargs: convert = kwargs['convert'] else: convert = None if 'privileged' in kwargs: privileged = kwargs['privileged'] else: privileged = None has_info = False if re.search(r'^[0-9]+$', str(file_reference)): if 'filename' in kwargs: result = get_info_from_file_number(int(file_reference), privileged=privileged, filename=kwargs['filename']) else: result = get_info_from_file_number(int(file_reference), privileged=privileged) if 'fullpath' not in result: result['fullpath'] = None has_info = True elif re.search(r'^https?://', str(file_reference)): #logmessage("get_info_from_file_reference: " + str(file_reference) + " is a URL") possible_filename = re.sub(r'.*/', '', file_reference) if possible_filename == '': possible_filename = 'index.html' if re.search(r'\.', possible_filename): (possible_ext, possible_mimetype) = get_ext_and_mimetype(possible_filename) #logmessage("get_info_from_file_reference: starting with " + str(possible_ext) + " and " + str(possible_mimetype)) else: possible_ext = 'txt' possible_mimetype = 'text/plain' result = dict() temp_file = tempfile.NamedTemporaryFile(prefix="datemp", suffix='.' + possible_ext, delete=False) req = urllib2.Request(file_reference, headers={'User-Agent' : docassemble.base.config.daconfig.get('user agent', 'Python-urllib/2.7')}) response = urllib2.urlopen(req) temp_file.write(response.read()) #(local_filename, headers) = urllib.urlretrieve(file_reference) result['fullpath'] = temp_file.name try: #result['mimetype'] = headers.gettype() result['mimetype'] = response.headers['Content-Type'] #logmessage("get_info_from_file_reference: mimetype is " + str(result['mimetype'])) except Exception as errmess: logmessage("get_info_from_file_reference: could not get mimetype from headers") result['mimetype'] = possible_mimetype result['extension'] = possible_ext if 'extension' not in result: #logmessage("get_info_from_file_reference: extension not in result") result['extension'] = re.sub(r'^\.', '', mimetypes.guess_extension(result['mimetype'])) #logmessage("get_info_from_file_reference: extension is " + str(result['extension'])) if re.search(r'\.', possible_filename): result['filename'] = possible_filename else: result['filename'] = possible_filename + '.' + result['extension'] path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] has_info = True #logmessage("get_info_from_file_reference: downloaded to " + str(result['fullpath'])) else: #logmessage(str(file_reference) + " is not a URL") result = dict() question = kwargs.get('question', None) folder = kwargs.get('folder', None) the_package = None parts = file_reference.split(':') if len(parts) == 1: the_package = None if question is not None: the_package = question.from_source.package if the_package is None: the_package = docassemble.base.functions.get_current_package() if folder is not None and not re.search(r'/', file_reference): file_reference = 'data/' + str(folder) + '/' + file_reference if the_package is not None: #logmessage("package is " + str(the_package)) file_reference = the_package + ':' + file_reference else: #logmessage("package was null") file_reference = 'docassemble.base:' + file_reference result['fullpath'] = docassemble.base.functions.static_filename_path(file_reference) #logmessage("path is " + str(result['fullpath'])) if result['fullpath'] is not None: #os.path.isfile(result['fullpath']) if not has_info: result['filename'] = os.path.basename(result['fullpath']) ext_type, result['mimetype'] = get_ext_and_mimetype(result['fullpath']) path_parts = os.path.splitext(result['fullpath']) result['path'] = path_parts[0] result['extension'] = path_parts[1].lower() result['extension'] = re.sub(r'\.', '', result['extension']) #logmessage("Extension is " + result['extension']) if convert is not None and result['extension'] in convert: #logmessage("Converting...") if os.path.isfile(result['path'] + '.' + convert[result['extension']]): #logmessage("Found conversion file ") result['extension'] = convert[result['extension']] result['fullpath'] = result['path'] + '.' + result['extension'] ext_type, result['mimetype'] = get_ext_and_mimetype(result['fullpath']) else: logmessage("Did not find file " + result['path'] + '.' + convert[result['extension']]) return dict() #logmessage("Full path is " + result['fullpath']) if os.path.isfile(result['fullpath']) and not has_info: add_info_about_file(result['fullpath'], result) else: logmessage("File reference " + str(file_reference) + " DID NOT EXIST.") return(result)