示例#1
0
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
示例#2
0
    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)
示例#3
0
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)
示例#4
0
    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()
示例#5
0
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)
示例#6
0
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)
示例#7
0
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