itaim's picture
img-emma
6242b91
import functools
import logging
import os
import time
from typing import List
import pyminizip
def get_app_files(dir: str = '.') -> List[str]:
skip = {'app.py', 'util.py'}
return [f for f in os.listdir(dir) if f.endswith('.py') and f not in skip]
def log_execution(cls_name=None):
def log_decorator(func):
@functools.wraps(func)
def func_wrapper(*args, **kwargs):
fname = f'{cls_name}.{func.__name__}' if cls_name else func.__name__
logging.info(f"Executing {fname}")
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
logging.info(f"{fname} took {end_time - start_time} seconds to run.")
return result
return func_wrapper
return log_decorator
if __name__ == '__main__':
from dotenv import load_dotenv
load_dotenv()
print(f'compressing app files')
pyminizip.compress_multiple(get_app_files(), [], 'imitation-app.zip', os.environ["ZIP_PWD"], 2)