articlib 0.2.3__py3-none-any.whl → 0.2.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of articlib might be problematic. Click here for more details.
- articlib/articFileUtils.py +66 -58
- articlib/articLogger.py +106 -102
- articlib/consoleUtils.py +46 -36
- articlib/dateTime.py +155 -121
- articlib/dice.py +35 -32
- articlib/sqliteEngine.py +69 -66
- articlib/systemUtils.py +33 -34
- articlib/testEngine.py +122 -111
- {articlib-0.2.3.dist-info → articlib-0.2.4.dist-info}/LICENSE +21 -21
- {articlib-0.2.3.dist-info → articlib-0.2.4.dist-info}/METADATA +1 -1
- articlib-0.2.4.dist-info/RECORD +12 -0
- articlib-0.2.3.dist-info/RECORD +0 -12
- {articlib-0.2.3.dist-info → articlib-0.2.4.dist-info}/WHEEL +0 -0
articlib/articFileUtils.py
CHANGED
|
@@ -1,58 +1,66 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import shutil
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
self.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
filePointer.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
self.lines
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
import os
|
|
2
|
+
import shutil
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def deleteFile(path):
|
|
6
|
+
os.remove(path)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def createFile(path):
|
|
10
|
+
file = open(path, "r")
|
|
11
|
+
file.close()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def copyFile(source, destination):
|
|
15
|
+
shutil.copy(source, destination)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def fileExists(path):
|
|
19
|
+
return os.path.isfile(path)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def getFilesInDirectory(path):
|
|
23
|
+
return os.listdir(path)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def deleteDirectory(path):
|
|
27
|
+
os.rmdir(path)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def createDirectory(path):
|
|
31
|
+
os.makedirs(path, exist_ok=True)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class FileIO:
|
|
35
|
+
def __init__(self, path, readIt=False):
|
|
36
|
+
self.path = path
|
|
37
|
+
if readIt:
|
|
38
|
+
self.readFile()
|
|
39
|
+
else:
|
|
40
|
+
lines = []
|
|
41
|
+
|
|
42
|
+
def readFile(self):
|
|
43
|
+
filePointer = open(self.path, "r")
|
|
44
|
+
self.lines = filePointer.readlines()
|
|
45
|
+
filePointer.close()
|
|
46
|
+
|
|
47
|
+
def writeFile(self):
|
|
48
|
+
filePointer = open(self.path, "w")
|
|
49
|
+
for line in self.lines:
|
|
50
|
+
filePointer.write(line + "\n")
|
|
51
|
+
filePointer.close()
|
|
52
|
+
|
|
53
|
+
def appendToFile(self):
|
|
54
|
+
filePointer = open(self.path, "a")
|
|
55
|
+
for line in self.lines:
|
|
56
|
+
filePointer.write(line + "\n")
|
|
57
|
+
filePointer.close()
|
|
58
|
+
|
|
59
|
+
def addLine(self, line):
|
|
60
|
+
self.lines.append(line)
|
|
61
|
+
|
|
62
|
+
def modifyLine(self, lineNumber, line):
|
|
63
|
+
self.lines[lineNumber] = line
|
|
64
|
+
|
|
65
|
+
def lineCount(self):
|
|
66
|
+
return len(self.lines)
|
articlib/articLogger.py
CHANGED
|
@@ -1,102 +1,106 @@
|
|
|
1
|
-
import articlib.dateTime as dateTime
|
|
2
|
-
import os
|
|
3
|
-
|
|
4
|
-
if __name__ == "__main__":
|
|
5
|
-
pass
|
|
6
|
-
|
|
7
|
-
INFO_MASK = 0b00000001
|
|
8
|
-
WARN_MASK = 0b00000010
|
|
9
|
-
ERROR_MASK = 0b00000100
|
|
10
|
-
COMMS_SEND_MASK = 0b00001000
|
|
11
|
-
COMMS_RECV_MASK = 0b00010000
|
|
12
|
-
HERMES_MASK = 0b00100000
|
|
13
|
-
COMMS_MASK= 0b00011000
|
|
14
|
-
DEBUG_MASK = 0b01000000
|
|
15
|
-
DEFAULT_MASK = INFO_MASK | COMMS_MASK | ERROR_MASK | HERMES_MASK
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
self.
|
|
21
|
-
self.
|
|
22
|
-
self.
|
|
23
|
-
self.
|
|
24
|
-
self.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
self.
|
|
29
|
-
self.
|
|
30
|
-
self.
|
|
31
|
-
self.
|
|
32
|
-
self.
|
|
33
|
-
self.
|
|
34
|
-
self.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
self.logFile
|
|
46
|
-
self.
|
|
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
|
-
self.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
def
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
def
|
|
86
|
-
self.mask = self.mask
|
|
87
|
-
|
|
88
|
-
def
|
|
89
|
-
self.
|
|
90
|
-
|
|
91
|
-
def
|
|
92
|
-
self.logFile.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def
|
|
100
|
-
self.
|
|
101
|
-
|
|
102
|
-
|
|
1
|
+
import articlib.dateTime as dateTime
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
if __name__ == "__main__":
|
|
5
|
+
pass
|
|
6
|
+
|
|
7
|
+
INFO_MASK = 0b00000001
|
|
8
|
+
WARN_MASK = 0b00000010
|
|
9
|
+
ERROR_MASK = 0b00000100
|
|
10
|
+
COMMS_SEND_MASK = 0b00001000
|
|
11
|
+
COMMS_RECV_MASK = 0b00010000
|
|
12
|
+
HERMES_MASK = 0b00100000
|
|
13
|
+
COMMS_MASK = 0b00011000
|
|
14
|
+
DEBUG_MASK = 0b01000000
|
|
15
|
+
DEFAULT_MASK = INFO_MASK | COMMS_MASK | ERROR_MASK | HERMES_MASK
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Logger:
|
|
19
|
+
def __init__(self):
|
|
20
|
+
self.init = False
|
|
21
|
+
self.logName = ""
|
|
22
|
+
self.maxLines = 0
|
|
23
|
+
self.lines = 0
|
|
24
|
+
self.logPath = ""
|
|
25
|
+
self.mask = 0b0
|
|
26
|
+
|
|
27
|
+
def initialize(self, logName, maxLines=1000, logPath="logs", mask=DEFAULT_MASK):
|
|
28
|
+
self.init = True
|
|
29
|
+
self.logName = logName
|
|
30
|
+
self.maxLines = maxLines
|
|
31
|
+
self.lines = 0
|
|
32
|
+
self.logPath = logPath
|
|
33
|
+
self.mask = mask
|
|
34
|
+
self.date = dateTime.createDate(dateTime.YYYYMMDD)
|
|
35
|
+
self.createLogFile()
|
|
36
|
+
|
|
37
|
+
def createLogFile(self):
|
|
38
|
+
self.date.setToNow()
|
|
39
|
+
dateSring = self.date.getDateTimePathFomat()
|
|
40
|
+
os.makedirs(self.logPath, exist_ok=True)
|
|
41
|
+
self.logFilePath = self.logPath + "/" + self.logName + "_" + dateSring + ".log"
|
|
42
|
+
if os.path.isfile(self.logFilePath):
|
|
43
|
+
self.logFile = open(self.logFilePath, "a")
|
|
44
|
+
else:
|
|
45
|
+
self.logFile = open(self.logFilePath, "w")
|
|
46
|
+
self.logFile.write(
|
|
47
|
+
f"Log file created at {self.date.getDateTime()} with name {self.logName}\n"
|
|
48
|
+
)
|
|
49
|
+
self.lines = 0
|
|
50
|
+
|
|
51
|
+
def addEntry(self, message, mask=INFO_MASK):
|
|
52
|
+
maskName = self.getMaskName(mask)
|
|
53
|
+
if mask & self.mask:
|
|
54
|
+
if self.init:
|
|
55
|
+
self.writeLog(message, maskName)
|
|
56
|
+
|
|
57
|
+
def getMaskName(self, mask):
|
|
58
|
+
switcher = {
|
|
59
|
+
INFO_MASK: "INFO",
|
|
60
|
+
WARN_MASK: "WARN",
|
|
61
|
+
ERROR_MASK: "ERROR",
|
|
62
|
+
COMMS_SEND_MASK: "COMMS_SEND",
|
|
63
|
+
COMMS_RECV_MASK: "COMMS_RECV",
|
|
64
|
+
HERMES_MASK: "HERMES",
|
|
65
|
+
DEBUG_MASK: "DEBUG",
|
|
66
|
+
DEFAULT_MASK: "DEFAULT",
|
|
67
|
+
}
|
|
68
|
+
return switcher.get(mask, "UNKNOWN")
|
|
69
|
+
|
|
70
|
+
def writeLog(self, message, maskName):
|
|
71
|
+
self.date.setToNow()
|
|
72
|
+
dateSring = self.date.getDateTime()
|
|
73
|
+
self.lines += 1
|
|
74
|
+
self.logFile.write(f"{dateSring} - {maskName} - {message}\n")
|
|
75
|
+
if self.lines >= self.maxLines:
|
|
76
|
+
self.logFile.close()
|
|
77
|
+
self.createLogFile()
|
|
78
|
+
|
|
79
|
+
def setMask(self, mask):
|
|
80
|
+
self.mask = mask
|
|
81
|
+
|
|
82
|
+
def getMask(self):
|
|
83
|
+
return self.mask
|
|
84
|
+
|
|
85
|
+
def setValueInMask(self, mask):
|
|
86
|
+
self.mask = self.mask | mask
|
|
87
|
+
|
|
88
|
+
def unsetValueInMask(self, mask):
|
|
89
|
+
self.mask = self.mask & ~mask
|
|
90
|
+
|
|
91
|
+
def flush(self):
|
|
92
|
+
self.logFile.flush()
|
|
93
|
+
|
|
94
|
+
def restartFile(self):
|
|
95
|
+
self.logFile.close()
|
|
96
|
+
self.lines = 0
|
|
97
|
+
self.createLogFile()
|
|
98
|
+
|
|
99
|
+
def getLogFilePath(self):
|
|
100
|
+
return self.logFilePath
|
|
101
|
+
|
|
102
|
+
def close(self):
|
|
103
|
+
self.logFile.close()
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
log = Logger()
|
articlib/consoleUtils.py
CHANGED
|
@@ -1,36 +1,46 @@
|
|
|
1
|
-
import colorama
|
|
2
|
-
from colorama import Fore, Back, Style
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def
|
|
14
|
-
print(Fore.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def
|
|
26
|
-
print(Style.BRIGHT +
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
import colorama
|
|
2
|
+
from colorama import Fore, Back, Style
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def printRed(text):
|
|
6
|
+
print(Fore.RED + text + Style.RESET_ALL)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def printGreen(text):
|
|
10
|
+
print(Fore.GREEN + text + Style.RESET_ALL)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def printYellow(text):
|
|
14
|
+
print(Fore.YELLOW + text + Style.RESET_ALL)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def printBlue(text):
|
|
18
|
+
print(Fore.BLUE + text + Style.RESET_ALL)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def printMagenta(text):
|
|
22
|
+
print(Fore.MAGENTA + text + Style.RESET_ALL)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def printBold(text):
|
|
26
|
+
print(Style.BRIGHT + text + Style.RESET_ALL)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def printRedBold(text):
|
|
30
|
+
print(Style.BRIGHT + Fore.RED + text + Style.RESET_ALL)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def printGreenBold(text):
|
|
34
|
+
print(Style.BRIGHT + Fore.GREEN + text + Style.RESET_ALL)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def printYellowBold(text):
|
|
38
|
+
print(Style.BRIGHT + Fore.YELLOW + text + Style.RESET_ALL)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def printBlueBold(text):
|
|
42
|
+
print(Style.BRIGHT + Fore.BLUE + text + Style.RESET_ALL)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def printMagentaBold(text):
|
|
46
|
+
print(Style.BRIGHT + Fore.MAGENTA + text + Style.RESET_ALL)
|