/
constants.py
114 lines (91 loc) · 3.09 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# -*- coding: UTF-8 -*-
__author__ = "Jaime Rivera <jaime.rvq@gmail.com>"
__copyright__ = "Copyright 2022, Jaime Rivera"
__credits__ = []
__license__ = "MIT License"
from enum import auto, Enum
import logging
import os
from PySide2 import QtCore
from PySide2 import QtGui
# -------------------------------- GRAPHIC -------------------------------- #
# Overall style
GLOW_EFFECTS = True
SHOW_GRID = True
IN_SCREEN_ERRORS = True
# Line style
CONNECTOR_LINE_WIDTH = 3
TEST_LINE_PEN = QtGui.QPen(QtCore.Qt.white, CONNECTOR_LINE_WIDTH, QtCore.Qt.DashLine)
LINE_GLOW_PEN = QtGui.QPen(QtCore.Qt.magenta, CONNECTOR_LINE_WIDTH * 2)
VALID_LINE_PEN = QtGui.QPen(QtCore.Qt.white, CONNECTOR_LINE_WIDTH)
STRAIGHT_LINES = 0
STEPPED_LINES = 1
SPLINE_LINES = 2
CONNECTOR_LINE_GEO = SPLINE_LINES
# Node style
STRIPE_HEIGHT = 20
CHAMFER_RADIUS = STRIPE_HEIGHT / 2
HEADER_HEIGHT = int(STRIPE_HEIGHT * 1.5)
NODE_CONTOUR_THICKNESS = 1.0
NODE_SELECTED_PEN = QtGui.QPen(QtCore.Qt.white, 2.5)
NODE_SELECTED_GLOW_THICKNESS = NODE_SELECTED_PEN.width() * 2.5
NODE_ERROR_PEN = QtGui.QPen(QtCore.Qt.red, 2, QtCore.Qt.DashDotDotLine)
NODE_ERROR_BRUSH = QtGui.QBrush(QtCore.Qt.red, QtCore.Qt.BDiagPattern)
NODE_FAILED_PEN = QtGui.QPen(QtGui.QColor("orange"), 2, QtCore.Qt.DashDotDotLine)
NODE_FAILED_BRUSH = QtGui.QBrush(QtGui.QColor("orange"), QtCore.Qt.BDiagPattern)
NODE_FONT = "arial"
DEFAULT_NODE_COLOR = "#4D004C" # magenta
# Plug style
PLUG_RADIUS = int(0.3 * STRIPE_HEIGHT)
CONNECTOR_USED_PEN = QtGui.QPen(QtCore.Qt.white, 3)
# Naming
GRAPHIC_NODE = "GRAPHIC_NODE"
GRAPHIC_ATTRIBUTE = "GRAPHIC_ATTRIBUTE"
PLUG = "PLUG"
CONNECTOR_LINE = "CONNECTOR_LINE"
# -------------------------------- LOGIC -------------------------------- #
# Naming
INPUT = "INPUT"
OUTPUT = "OUTPUT"
INTERNAL = "INTERNAL"
START = "START"
COMPLETED = "COMPLETED"
# Node statuses
NOT_RUN = "NOT_RUN"
EXECUTING = "EXECUTING"
SKIPPED = "SKIPPED"
SUCCESSFUL = "SUCCESSFUL"
FAILED = "FAILED"
ERROR = "ERROR"
# -------------------------------- GUI INPUT / PREVIEW TYPES -------------------------------- #
class InputsGUI(Enum):
STR_INPUT = auto()
MULTILINE_STR_INPUT = auto()
INT_INPUT = auto()
FLOAT_INPUT = auto()
BOOL_INPUT = auto()
OPTION_INPUT = ["A", "B", "C"]
TUPLE_INPUT = auto()
DICT_INPUT = auto()
LIST_INPUT = auto()
class PreviewsGUI(Enum):
STR_PREVIEW = auto()
MULTILINE_STR_PREVIEW = auto()
IMAGE_PREVIEW = auto()
# -------------------------------- LOGGING PREFS -------------------------------- #
LOGGING_LEVEL = logging.INFO
CONSOLE_LOG_FORMATTER = logging.Formatter(
"%(asctime)s.%(msecs)03d %(levelname)8s- %(message)s (%(funcName)s) %(filename)s:%(lineno)d",
datefmt="%Y%m%d %H:%M:%S",
)
# -------------------------------- DEV -------------------------------- #
IN_DEV = os.getenv("IN_DEV", False)
if IN_DEV:
LOGGING_LEVEL = logging.DEBUG
CONSOLE_LOG_FORMATTER = logging.Formatter(
"%(levelname)8s- %(message)s (%(funcName)s) %(filename)s:%(lineno)d"
)
# -------------------------------- ANALYTICS -------------------------------- #
DB_ENV = os.getenv("DB_ENV", "PROD")
if IN_DEV:
DB_ENV = "DEV"