docs: add docstring for import_file_by_path

This commit is contained in:
abhishek 2021-10-12 17:15:12 +05:30
parent 86f29aeaa3
commit ba78852c73
2 changed files with 30 additions and 2 deletions

View file

@ -70,7 +70,7 @@ def sync_for(app_name, force=0, reset_permissions=False):
if l:
for i, doc_path in enumerate(files):
import_file_by_path(doc_path, force=force, ignore_version=True, reset_permissions=reset_permissions, for_sync=True)
import_file_by_path(doc_path, force=force, ignore_version=True, reset_permissions=reset_permissions)
frappe.db.commit()

View file

@ -63,7 +63,35 @@ def get_file_path(module, dt, dn):
return path
def import_file_by_path(path, force=False, data_import=False, pre_process=None, ignore_version=None, reset_permissions=False, for_sync=False):
def import_file_by_path(path: str,force: bool = False,data_import: bool = False,pre_process = None,ignore_version: bool = None,reset_permissions: bool = False):
"""Import file from the given path
Some conditions decide if a file should be imported or not.
Evaluation takes place in the order they are mentioned below.
- Check if `force` is true. Import the file. If not, move ahead.
- Get `db_modified_timestamp`(value of the modified field in the database for the file).
If the return is `none,` this file doesn't exist in the DB, so Import the file. If not, move ahead.
- Check if there is a hash in DB for that file. If there is, Calculate the Hash of the file to import and compare it with the one in DB if they are not equal.
Import the file. If Hash doesn't exist, move ahead.
- Check if `db_modified_timestamp` is older than the timestamp in the file; if it is, we import the file.
If timestamp comparison happens for doctypes, that means the Hash for it doesn't exist.
So, even if the timestamp is newer on DB (When comparing timestamps), we import the file and add the calculated Hash to the DB.
So in the subsequent imports, we can use hashes to compare. As a precautionary measure, the timestamp is updated to the current time as well.
Args:
path (str): Path to the file.
force (bool, optional): Load the file without checking any conditions. Defaults to False.
data_import (bool, optional): [description]. Defaults to False.
pre_process ([type], optional): Any preprocesing that may need to take place on the doc. Defaults to None.
ignore_version (bool, optional): ignore current version. Defaults to None.
reset_permissions (bool, optional): reset permissions for the file. Defaults to False.
Returns:
[bool]: True if import takes place. False if it wasn't imported.
"""
frappe.flags.dt = frappe.flags.dt or []
try:
docs = read_doc_from_file(path)