Skip to content

Commit 89ee1de

Browse files
committed
Add Feature & package
Add Feature & package * Add create file * Rename all drive function start with drive_ * Add create project * Add project template
1 parent b015793 commit 89ee1de

25 files changed

Lines changed: 388 additions & 98 deletions

file_automation/__init__.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,24 @@
66

77
from file_automation.remote.google_drive.driver_instance import driver_instance
88
from file_automation.remote.google_drive.search.search_drive import \
9-
search_all_file, search_field, search_file_mimetype
9+
drive_search_all_file, drive_search_field, drive_search_file_mimetype
1010
from file_automation.remote.google_drive.upload.upload_to_driver import \
11-
upload_dir_to_folder, upload_to_folder, upload_dir_to_drive, upload_to_drive
12-
from file_automation.remote.google_drive.dir.folder_manager import add_folder
11+
drive_upload_dir_to_folder, drive_upload_to_folder, drive_upload_dir_to_drive, drive_upload_to_drive
12+
from file_automation.remote.google_drive.dir.folder_manager import drive_add_folder
1313
from file_automation.remote.google_drive.share.share_file import \
14-
share_file_to_anyone, share_file_to_domain, share_file_to_user
15-
from file_automation.remote.google_drive.delete.delete_manager import delete_file
16-
from file_automation.remote.google_drive.download.download_file import download_file, download_file_from_folder
17-
14+
drive_share_file_to_anyone, drive_share_file_to_domain, drive_share_file_to_user
15+
from file_automation.remote.google_drive.delete.delete_manager import drive_delete_file
16+
from file_automation.remote.google_drive.download.download_file import drive_download_file, drive_download_file_from_folder
17+
from file_automation.utils.executor.action_executor import execute_action, execute_files, add_command_to_executor
18+
from file_automation.utils.json.json_file import read_action_json
19+
from file_automation.utils.file_process.get_dir_file_list import get_dir_files_as_list
1820
__all__ = [
1921
"copy_file", "rename_file", "remove_file", "copy_all_file_to_dir", "copy_specify_extension_file",
2022
"copy_dir", "create_dir", "remove_dir_tree", "zip_dir", "zip_file", "zip_info",
2123
"zip_file_info", "set_zip_password", "unzip_file", "read_zip_file",
22-
"unzip_all", "driver_instance", "search_all_file", "search_field", "search_file_mimetype",
23-
"upload_dir_to_folder", "upload_to_folder", "upload_dir_to_drive", "upload_to_drive",
24-
"add_folder", "share_file_to_anyone", "share_file_to_domain", "share_file_to_user",
25-
"delete_file", "download_file", "download_file_from_folder"
24+
"unzip_all", "driver_instance", "drive_search_all_file", "drive_search_field", "drive_search_file_mimetype",
25+
"drive_upload_dir_to_folder", "drive_upload_to_folder", "drive_upload_dir_to_drive", "drive_upload_to_drive",
26+
"drive_add_folder", "drive_share_file_to_anyone", "drive_share_file_to_domain", "drive_share_file_to_user",
27+
"drive_delete_file", "drive_download_file", "drive_download_file_from_folder", "execute_action", "execute_files",
28+
"add_command_to_executor", "read_action_json", "get_dir_files_as_list"
2629
]

file_automation/local/file/file_process.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,8 @@ def remove_file(file_path: str):
8686
if file_path.exists() and file_path.is_file():
8787
file_path.unlink(missing_ok=True)
8888
file_automation_logger.info(f"Remove file, file path: {file_path}")
89+
90+
91+
def create_file(file_path: str, content: str):
92+
with open(file_path, "w+") as file:
93+
file.write(content)

file_automation/remote/google_drive/delete/delete_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from file_automation.utils.logging.loggin_instance import file_automation_logger
77

88

9-
def delete_file(file_id: str) -> Union[dict, None]:
9+
def drive_delete_file(file_id: str) -> Union[dict, None]:
1010
try:
1111
file = driver_instance.service.files().delete(fileId=file_id).execute()
1212
file_automation_logger.info(f"Delete drive file: {file_id}")

file_automation/remote/google_drive/dir/folder_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from file_automation.utils.logging.loggin_instance import file_automation_logger
77

88

9-
def add_folder(folder_name: str) -> Union[dict, None]:
9+
def drive_add_folder(folder_name: str) -> Union[dict, None]:
1010
try:
1111
file_metadata = {
1212
"name": folder_name,

file_automation/remote/google_drive/download/download_file.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from file_automation.utils.logging.loggin_instance import file_automation_logger
1010

1111

12-
def download_file(file_id: str, file_name: str) -> BytesIO:
12+
def drive_download_file(file_id: str, file_name: str) -> BytesIO:
1313
try:
1414
request = driver_instance.service.files().get_media(fileId=file_id)
1515
file = io.BytesIO()
@@ -34,7 +34,7 @@ def download_file(file_id: str, file_name: str) -> BytesIO:
3434
return file
3535

3636

37-
def download_file_from_folder(folder_name: str) -> Union[dict, None]:
37+
def drive_download_file_from_folder(folder_name: str) -> Union[dict, None]:
3838
try:
3939
files = dict()
4040
response = driver_instance.service.files().list(
@@ -46,7 +46,7 @@ def download_file_from_folder(folder_name: str) -> Union[dict, None]:
4646
q=f"'{folder_id}' in parents"
4747
).execute()
4848
for file in response.get("files", []):
49-
download_file(file.get("id"), file.get("name"))
49+
drive_download_file(file.get("id"), file.get("name"))
5050
files.update({file.get("name"): file.get("id")})
5151
file_automation_logger.info(
5252
f"Download all file on {folder_name} done."

file_automation/remote/google_drive/search/search_drive.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from file_automation.utils.logging.loggin_instance import file_automation_logger
77

88

9-
def search_all_file() -> Union[dict, None]:
9+
def drive_search_all_file() -> Union[dict, None]:
1010
try:
1111
item = dict()
1212
response = driver_instance.service.files().list().execute()
@@ -24,7 +24,7 @@ def search_all_file() -> Union[dict, None]:
2424
return None
2525

2626

27-
def search_file_mimetype(mime_type: str) -> Union[dict, None]:
27+
def drive_search_file_mimetype(mime_type: str) -> Union[dict, None]:
2828
try:
2929
files = dict()
3030
page_token = None
@@ -51,7 +51,7 @@ def search_file_mimetype(mime_type: str) -> Union[dict, None]:
5151
return None
5252

5353

54-
def search_field(field_pattern: str) -> Union[dict, None]:
54+
def drive_search_field(field_pattern: str) -> Union[dict, None]:
5555
try:
5656
files = dict()
5757
response = driver_instance.service.files().list(fields=field_pattern).execute()

file_automation/remote/google_drive/share/share_file.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from file_automation.utils.logging.loggin_instance import file_automation_logger
77

88

9-
def share_file_to_user(
9+
def drive_share_file_to_user(
1010
file_id: str, user: str, user_role: str = "writer") -> Union[dict, None]:
1111
try:
1212
service = driver_instance.service
@@ -32,7 +32,7 @@ def share_file_to_user(
3232
return None
3333

3434

35-
def share_file_to_anyone(file_id: str, share_role: str = "reader") -> Union[dict, None]:
35+
def drive_share_file_to_anyone(file_id: str, share_role: str = "reader") -> Union[dict, None]:
3636
try:
3737
service = driver_instance.service
3838
user_permission = {
@@ -55,7 +55,7 @@ def share_file_to_anyone(file_id: str, share_role: str = "reader") -> Union[dict
5555
return None
5656

5757

58-
def share_file_to_domain(
58+
def drive_share_file_to_domain(
5959
file_id: str, domain: str, domain_role: str = "reader") -> Union[dict, None]:
6060
try:
6161
service = driver_instance.service

file_automation/remote/google_drive/upload/upload_to_driver.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from file_automation.utils.logging.loggin_instance import file_automation_logger
99

1010

11-
def upload_to_drive(file_path: str, file_name: str = None) -> Union[dict, None]:
11+
def drive_upload_to_drive(file_path: str, file_name: str = None) -> Union[dict, None]:
1212
try:
1313
file_path = Path(file_path)
1414
if file_path.is_file():
@@ -43,7 +43,7 @@ def upload_to_drive(file_path: str, file_name: str = None) -> Union[dict, None]:
4343
return None
4444

4545

46-
def upload_to_folder(folder_id: str, file_path: str, file_name: str = None) -> Union[dict, None]:
46+
def drive_upload_to_folder(folder_id: str, file_path: str, file_name: str = None) -> Union[dict, None]:
4747
try:
4848
file_path = Path(file_path)
4949
if file_path.is_file():
@@ -80,14 +80,14 @@ def upload_to_folder(folder_id: str, file_path: str, file_name: str = None) -> U
8080
return None
8181

8282

83-
def upload_dir_to_drive(dir_path: str) -> List[Optional[set]]:
83+
def drive_upload_dir_to_drive(dir_path: str) -> List[Optional[set]]:
8484
dir_path = Path(dir_path)
8585
ids = list()
8686
if dir_path.is_dir():
8787
path_list = dir_path.iterdir()
8888
for path in path_list:
8989
if path.is_file():
90-
ids.append(upload_to_drive(str(path.absolute()), path.name))
90+
ids.append(drive_upload_to_drive(str(path.absolute()), path.name))
9191
file_automation_logger.info(
9292
f"Upload all file on dir: {dir_path} to drive"
9393
)
@@ -98,14 +98,14 @@ def upload_dir_to_drive(dir_path: str) -> List[Optional[set]]:
9898
)
9999

100100

101-
def upload_dir_to_folder(folder_id: str, dir_path: str) -> List[Optional[set]]:
101+
def drive_upload_dir_to_folder(folder_id: str, dir_path: str) -> List[Optional[set]]:
102102
dir_path = Path(dir_path)
103103
ids = list()
104104
if dir_path.is_dir():
105105
path_list = dir_path.iterdir()
106106
for path in path_list:
107107
if path.is_file():
108-
ids.append(upload_to_folder(folder_id, str(path.absolute()), path.name))
108+
ids.append(drive_upload_to_folder(folder_id, str(path.absolute()), path.name))
109109
file_automation_logger.info(
110110
f"Upload all file on dir: {dir_path} to folder: {folder_id}"
111111
)

file_automation/utils/callback/callback_function_executor.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
copy_all_file_to_dir
66
from file_automation.local.zip.zip_process import zip_dir, zip_file, zip_info, zip_file_info, set_zip_password, \
77
read_zip_file, unzip_file, unzip_all
8-
from file_automation.remote.google_drive.delete.delete_manager import delete_file
9-
from file_automation.remote.google_drive.dir.folder_manager import add_folder
10-
from file_automation.remote.google_drive.download.download_file import download_file, download_file_from_folder
8+
from file_automation.remote.google_drive.delete.delete_manager import drive_delete_file
9+
from file_automation.remote.google_drive.dir.folder_manager import drive_add_folder
10+
from file_automation.remote.google_drive.download.download_file import drive_download_file, drive_download_file_from_folder
1111
from file_automation.remote.google_drive.driver_instance import driver_instance
1212
from file_automation.remote.google_drive.search.search_drive import \
13-
search_all_file, search_field, search_file_mimetype
13+
drive_search_all_file, drive_search_field, drive_search_file_mimetype
1414
from file_automation.remote.google_drive.share.share_file import \
15-
share_file_to_anyone, share_file_to_domain, share_file_to_user
15+
drive_share_file_to_anyone, drive_share_file_to_domain, drive_share_file_to_user
1616
from file_automation.remote.google_drive.upload.upload_to_driver import \
17-
upload_dir_to_folder, upload_to_folder, upload_dir_to_drive, upload_to_drive
17+
drive_upload_dir_to_folder, drive_upload_to_folder, drive_upload_dir_to_drive, drive_upload_to_drive
1818
from file_automation.utils.exception.exception_tags import get_bad_trigger_function, get_bad_trigger_method
1919
from file_automation.utils.exception.exceptions import CallbackExecutorException
2020
from file_automation.utils.logging.loggin_instance import file_automation_logger
@@ -41,20 +41,20 @@ def __init__(self):
4141
"read_zip_file": read_zip_file,
4242
"unzip_all": unzip_all,
4343
"driver_instance": driver_instance,
44-
"search_all_file": search_all_file,
45-
"search_field": search_field,
46-
"search_file_mimetype": search_file_mimetype,
47-
"upload_dir_to_folder": upload_dir_to_folder,
48-
"upload_to_folder": upload_to_folder,
49-
"upload_dir_to_drive": upload_dir_to_drive,
50-
"upload_to_drive": upload_to_drive,
51-
"add_folder": add_folder,
52-
"share_file_to_anyone": share_file_to_anyone,
53-
"share_file_to_domain": share_file_to_domain,
54-
"share_file_to_user": share_file_to_user,
55-
"delete_file": delete_file,
56-
"download_file": download_file,
57-
"download_file_from_folder": download_file_from_folder
44+
"search_all_file": drive_search_all_file,
45+
"search_field": drive_search_field,
46+
"search_file_mimetype": drive_search_file_mimetype,
47+
"upload_dir_to_folder": drive_upload_dir_to_folder,
48+
"upload_to_folder": drive_upload_to_folder,
49+
"upload_dir_to_drive": drive_upload_dir_to_drive,
50+
"upload_to_drive": drive_upload_to_drive,
51+
"add_folder": drive_add_folder,
52+
"share_file_to_anyone": drive_share_file_to_anyone,
53+
"share_file_to_domain": drive_share_file_to_domain,
54+
"share_file_to_user": drive_share_file_to_user,
55+
"delete_file": drive_delete_file,
56+
"download_file": drive_download_file,
57+
"download_file_from_folder": drive_download_file_from_folder
5858
}
5959

6060
def callback_function(

file_automation/utils/executor/action_executor.py

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,46 @@
11
import builtins
2-
import sys
32
import types
43
from inspect import getmembers, isbuiltin
54

65
from file_automation.local.dir.dir_process import copy_dir, create_dir, remove_dir_tree
76
from file_automation.local.file.file_process import copy_file, remove_file, rename_file, copy_specify_extension_file, \
8-
copy_all_file_to_dir
7+
copy_all_file_to_dir, create_file
98
from file_automation.local.zip.zip_process import zip_dir, zip_file, zip_info, zip_file_info, set_zip_password, \
109
read_zip_file, unzip_file, unzip_all
11-
from file_automation.remote.google_drive.delete.delete_manager import delete_file
12-
from file_automation.remote.google_drive.dir.folder_manager import add_folder
13-
from file_automation.remote.google_drive.download.download_file import download_file, download_file_from_folder
14-
from file_automation.remote.google_drive.driver_instance import driver_instance
10+
from file_automation.remote.google_drive.delete.delete_manager import drive_delete_file
11+
from file_automation.remote.google_drive.dir.folder_manager import drive_add_folder
12+
from file_automation.remote.google_drive.download.download_file import drive_download_file, \
13+
drive_download_file_from_folder
1514
from file_automation.remote.google_drive.search.search_drive import \
16-
search_all_file, search_field, search_file_mimetype
15+
drive_search_all_file, drive_search_field, drive_search_file_mimetype
1716
from file_automation.remote.google_drive.share.share_file import \
18-
share_file_to_anyone, share_file_to_domain, share_file_to_user
17+
drive_share_file_to_anyone, drive_share_file_to_domain, drive_share_file_to_user
1918
from file_automation.remote.google_drive.upload.upload_to_driver import \
20-
upload_dir_to_folder, upload_to_folder, upload_dir_to_drive, upload_to_drive
19+
drive_upload_dir_to_folder, drive_upload_to_folder, drive_upload_dir_to_drive, drive_upload_to_drive
2120
from file_automation.utils.exception.exception_tags import add_command_exception, executor_list_error, \
2221
action_is_null_error, cant_execute_action_error
2322
from file_automation.utils.exception.exceptions import ExecuteActionException, AddCommandException
2423
from file_automation.utils.json.json_file import read_action_json
2524
from file_automation.utils.logging.loggin_instance import file_automation_logger
25+
from file_automation.utils.package_manager.package_manager_class import package_manager
2626

2727

2828
class Executor(object):
2929

3030
def __init__(self):
3131
self.event_dict: dict = {
32+
# File
33+
"create_file": create_file,
3234
"copy_file": copy_file,
3335
"rename_file": rename_file,
3436
"remove_file": remove_file,
37+
# Dir
3538
"copy_all_file_to_dir": copy_all_file_to_dir,
3639
"copy_specify_extension_file": copy_specify_extension_file,
3740
"copy_dir": copy_dir,
3841
"create_dir": create_dir,
3942
"remove_dir_tree": remove_dir_tree,
43+
# Zip
4044
"zip_dir": zip_dir,
4145
"zip_file": zip_file,
4246
"zip_info": zip_info,
@@ -45,21 +49,25 @@ def __init__(self):
4549
"unzip_file": unzip_file,
4650
"read_zip_file": read_zip_file,
4751
"unzip_all": unzip_all,
48-
"driver_instance": driver_instance,
49-
"search_all_file": search_all_file,
50-
"search_field": search_field,
51-
"search_file_mimetype": search_file_mimetype,
52-
"upload_dir_to_folder": upload_dir_to_folder,
53-
"upload_to_folder": upload_to_folder,
54-
"upload_dir_to_drive": upload_dir_to_drive,
55-
"upload_to_drive": upload_to_drive,
56-
"add_folder": add_folder,
57-
"share_file_to_anyone": share_file_to_anyone,
58-
"share_file_to_domain": share_file_to_domain,
59-
"share_file_to_user": share_file_to_user,
60-
"delete_file": delete_file,
61-
"download_file": download_file,
62-
"download_file_from_folder": download_file_from_folder
52+
# Drive
53+
"drive_search_all_file": drive_search_all_file,
54+
"drive_search_field": drive_search_field,
55+
"drive_search_file_mimetype": drive_search_file_mimetype,
56+
"drive_upload_dir_to_folder": drive_upload_dir_to_folder,
57+
"drive_upload_to_folder": drive_upload_to_folder,
58+
"drive_upload_dir_to_drive": drive_upload_dir_to_drive,
59+
"drive_upload_to_drive": drive_upload_to_drive,
60+
"drive_add_folder": drive_add_folder,
61+
"drive_share_file_to_anyone": drive_share_file_to_anyone,
62+
"drive_share_file_to_domain": drive_share_file_to_domain,
63+
"drive_share_file_to_user": drive_share_file_to_user,
64+
"drive_delete_file": drive_delete_file,
65+
"drive_download_file": drive_download_file,
66+
"drive_download_file_from_folder": drive_download_file_from_folder,
67+
# execute
68+
"execute_action": self.execute_action,
69+
"execute_files": self.execute_files,
70+
"add_package_to_executor": package_manager.add_package_to_executor,
6371
}
6472
# get all builtin function and add to event dict
6573
for function in getmembers(builtins, isbuiltin):
@@ -128,6 +136,7 @@ def execute_files(self, execute_files_list: list) -> list:
128136

129137

130138
executor = Executor()
139+
package_manager.executor = executor
131140

132141

133142
def add_command_to_executor(command_dict: dict):

0 commit comments

Comments
 (0)