def add_folder(template, doc_mgr, edit_flag=True, pick_flag=True): # prepare logging log_prefix = "add:{0}".format("folder") logger = logging.getLogger(log_prefix) doc_mgr_tmp = _lib_mgr.set_doc_item(query=template, fun_item=task.get_item(task._task_dir), pick=pick_flag) if doc_mgr_tmp.is_empty(): logger.info(log.no_item_retrieved("documents")) # @log return 1 document = doc_mgr.get_document() document_tmp = doc_mgr_tmp.get_document() import os.path dirs = [ d for d in os.listdir(document_tmp.get_main_folder()) if os.path.isdir(os.path.join(document_tmp.get_main_folder(), d)) ] for d in dirs: logger.info("[CP] '{0}' to '{1}'".format( # @log os.path.join(document_tmp.get_main_folder(), d), os.path.join(document.get_main_folder(), d))) shutil.copytree(os.path.join(document_tmp.get_main_folder(), d), os.path.join(document.get_main_folder(), d)) if edit_flag: from papis.commands.open import run doc_mgr = _lib_mgr.set_doc_item(doc_list=[document], fun_item=task.get_item( task._task_workspace), fun_mark=None, pick=False) run(doc_mgr, open_task=task._task_workspace, verbose=False) return
def _repair(cmd, repair_task): """Start opening document wth specified task :param cmd: Object of class Command :type cmd: papis.tui.utils.command_line_prompt.Command :param task_open: Task to be executed :type task_open: str """ from papis.commands.repair import run doc_mgr = _lib_mgr.set_doc_item( doc_list=utils._get_list(cmd.app.get_selection()), fun_item=task.get_item(task._task_document), pick=False ) return run(doc_mgr, repair_task=repair_task, verbose=False)
def cli( query, repair_task, pick_flag, stage_flag ): """Repair command for several objects""" # Get documents manager for retrieving and processing documents doc_mgr = _lib_mgr.set_doc_item( query=query, fun_item = task.get_item(task._task_document), pick=pick_flag ) return run(doc_mgr, repair_task=repair_task, stage=stage_flag)
def _run(cmd, open_task): """Start opening document wth specified task :param cmd: Object of class Command :type cmd: papis.tui.utils.command_line_prompt.Command :param open_task: Task to be executed :type open_task: str """ from papis.commands.open import run doc_mgr = _lib_mgr.set_doc_item( doc_list=utils._get_list(cmd.app.get_selection()), fun_item=task.get_item(open_task), fun_mark=None, pick=False ) run(doc_mgr, open_task=open_task, verbose=False) cmd.app.renderer.clear()
def cli( query, doc_folder, open_task, # opener_format, pick_flag, mark_flag, wait): """Open document from a given library, its directory or as workspace""" # Switch picking mark off, when select all matching documents if not pick_flag: mark_flag = False # Get documents manager for retrieving and processing documents doc_mgr = _lib_mgr.set_doc_item( query=query, fun_item=task.get_item(open_task), fun_mark=task.get_mark(open_task) if mark_flag else None, pick=pick_flag, ) return run(doc_mgr, open_task=open_task, wait=wait)
def cli(query, file_list, template, file_format, suffix_flag, edit_flag, pick_flag): """Add files, url and marks to an existing document""" # prepare logging log_prefix = "add:{0}".format("document") logger = logging.getLogger(log_prefix) doc_mgr = _lib_mgr.set_doc_item(query=query, fun_item=task.get_item(task._task_dir), pick=pick_flag) if doc_mgr.is_empty(): logger.info(log.no_item_retrieved("documents")) # @log return 1 if file_list is not None: add_file(file_list, doc_mgr, file_format=file_format, suffix_flag=suffix_flag) if template: add_folder(template, doc_mgr, pick_flag=pick_flag)
def run(document=papis.document.Document(), file_list=[], importer_list=(), file_format=None, folder_format=None, ref_format=None, confirm_flag=True, edit_flag=True, suffix_flag=True): log_prefix = "add:{0}".format("document") logger = logging.getLogger(log_prefix) if file_format is None and user._add_file_name: file_format = user._add_file_name if folder_format is None and user._add_folder_name: folder_format = user._add_folder_name if ref_format is None and user._add_ref_name: ref_format = user._add_ref_name file_list = papis.utils._get_list(file_list) ctx = get_data_from_importer(importer_list) for key in ctx.data.keys(): document.set_key(key, ctx.data[key], append=True) if papis.utils._validate_list(ctx.files): file_list.append(ctx.files[0]) if not document.keys(): logger.error(log.no_data_retrieved) # @log return 1 if confirm_flag: data = papis.document.from_input( document, "The following document will be added to your library") if not data: return 1 else: document.update(data) folder_name, document = papis.support.identifier.get_identifier( data=document, file_list=file_list, folder_format=folder_format, file_format=file_format, ref_format=ref_format, suffix=suffix_flag) lib_mgr = papis.libmanager.get_lib_manager(logger=logger) document = lib_mgr.add(document=document, folder_name=folder_name, value=file_list, doc=True, file_name=document[user._files_name]) if edit_flag: from papis.commands.open import run doc_mgr = lib_mgr.set_doc_item(doc_list=[document], fun_item=task.get_item( task._task_editor), fun_mark=None, pick=False) run(doc_mgr, open_task=task._task_editor, verbose=False) return document