updated Empty Runner
This commit is contained in:
13
Commons/json_functions.py
Normal file
13
Commons/json_functions.py
Normal file
@@ -0,0 +1,13 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
|
||||
def read_json_file(json_file_path):
|
||||
if os.path.exists(json_file_path):
|
||||
with open(json_file_path, "r") as json_file:
|
||||
return json.load(json_file)
|
||||
return {}
|
||||
|
||||
|
||||
def write_json_file(json_file_path, data):
|
||||
json.dump(obj=data, fp=json_file_path, indent=2)
|
||||
13
Commons/logger_functions.py
Normal file
13
Commons/logger_functions.py
Normal file
@@ -0,0 +1,13 @@
|
||||
"""Utility functions for getting line numbers and file locations."""
|
||||
from inspect import currentframe, getframeinfo, stack
|
||||
|
||||
|
||||
def get_line_number_for_error() -> str:
|
||||
"""Get the file name and line number of where an error occurred.
|
||||
|
||||
Returns:
|
||||
str: A string in the format 'filename | line_number' showing where the error occurred
|
||||
"""
|
||||
caller = stack()[1] # Get the caller's frame
|
||||
frame_info = getframeinfo(caller[0])
|
||||
return f"{frame_info.filename} | {frame_info.lineno}"
|
||||
10
Commons/path_provider_function.py
Normal file
10
Commons/path_provider_function.py
Normal file
@@ -0,0 +1,10 @@
|
||||
import sys
|
||||
|
||||
|
||||
def set_python_path(path_to_provide: str):
|
||||
|
||||
if str(path_to_provide)[0] == "/":
|
||||
path_to_provide = "/" + path_to_provide
|
||||
|
||||
if path_to_provide not in list(sys.path):
|
||||
sys.path.append(path_to_provide)
|
||||
78
Commons/select_functions.py
Normal file
78
Commons/select_functions.py
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
|
||||
class SelectorsBase:
|
||||
@classmethod
|
||||
def add_confirmed_filter(cls, first_table, second_table) -> tuple:
|
||||
return (
|
||||
first_table.active == True,
|
||||
first_table.is_confirmed == True,
|
||||
first_table.deleted == False,
|
||||
second_table.active == True,
|
||||
second_table.is_confirmed == True,
|
||||
second_table.deleted == False,
|
||||
)
|
||||
|
||||
|
||||
class SelectActionWithEmployee:
|
||||
|
||||
@classmethod
|
||||
def select_action(cls, employee_id, filter_expr: list = None):
|
||||
if filter_expr is not None:
|
||||
filter_expr = (cls.__many__table__.employee_id == employee_id, *filter_expr)
|
||||
data = (
|
||||
cls.session.query(cls.id)
|
||||
.select_from(cls)
|
||||
.join(cls.__many__table__, cls.__many__table__.member_id == cls.id)
|
||||
.filter(
|
||||
*filter_expr,
|
||||
*SelectorsBase.add_confirmed_filter(
|
||||
first_table=cls, second_table=cls.__many__table__
|
||||
),
|
||||
)
|
||||
)
|
||||
return cls.query.filter(cls.id.in_([comp[0] for comp in data.all()]))
|
||||
data = (
|
||||
cls.session.query(cls.id)
|
||||
.select_from(cls)
|
||||
.join(cls.__many__table__, cls.__many__table__.member_id == cls.id)
|
||||
.filter(
|
||||
cls.__many__table__.employee_id == employee_id,
|
||||
*SelectorsBase.add_confirmed_filter(
|
||||
first_table=cls, second_table=cls.__many__table__
|
||||
),
|
||||
)
|
||||
)
|
||||
return cls.query.filter(cls.id.in_([comp[0] for comp in data.all()]))
|
||||
|
||||
|
||||
class SelectAction:
|
||||
|
||||
@classmethod
|
||||
def select_action(cls, duty_id_list: list, filter_expr: list = None):
|
||||
if filter_expr is not None:
|
||||
data = (
|
||||
cls.session.query(cls.id)
|
||||
.select_from(cls)
|
||||
.join(cls.__many__table__, cls.__many__table__.member_id == cls.id)
|
||||
.filter(
|
||||
cls.__many__table__.duties_id.in_(duty_id_list),
|
||||
*SelectorsBase.add_confirmed_filter(
|
||||
first_table=cls, second_table=cls.__many__table__
|
||||
),
|
||||
*filter_expr,
|
||||
)
|
||||
)
|
||||
return cls.query.filter(cls.id.in_([comp[0] for comp in data.all()]))
|
||||
|
||||
data = (
|
||||
cls.session.query(cls.id)
|
||||
.select_from(cls)
|
||||
.join(cls.__many__table__, cls.__many__table__.member_id == cls.id)
|
||||
.filter(
|
||||
cls.__many__table__.duties_id.in_(duty_id_list),
|
||||
*SelectorsBase.add_confirmed_filter(
|
||||
first_table=cls, second_table=cls.__many__table__
|
||||
),
|
||||
)
|
||||
)
|
||||
return cls.query.filter(cls.id.in_([comp[0] for comp in data.all()]))
|
||||
Reference in New Issue
Block a user