Fixed _append_log & create logic in logger_service
This commit is contained in:
parent
a22b6fdbdb
commit
cc3b1afaa1
@ -15,7 +15,7 @@ __title__ = 'cpl_core'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.application'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -29,4 +29,4 @@ from .startup_abc import StartupABC
|
|||||||
from .startup_extension_abc import StartupExtensionABC
|
from .startup_extension_abc import StartupExtensionABC
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.configuration'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC
|
|||||||
from .variable_argument import VariableArgument
|
from .variable_argument import VariableArgument
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.console'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum
|
|||||||
from .spinner_thread import SpinnerThread
|
from .spinner_thread import SpinnerThread
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2022",
|
"Major": "2022",
|
||||||
"Minor": "10",
|
"Minor": "10",
|
||||||
"Micro": "0.post3"
|
"Micro": "0.post4"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.database'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings
|
|||||||
from .table_abc import TableABC
|
from .table_abc import TableABC
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.connection'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection
|
|||||||
from .database_connection_abc import DatabaseConnectionABC
|
from .database_connection_abc import DatabaseConnectionABC
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.context'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -25,4 +25,4 @@ from .database_context import DatabaseContext
|
|||||||
from .database_context_abc import DatabaseContextABC
|
from .database_context_abc import DatabaseContextABC
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.dependency_injection'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -31,4 +31,4 @@ from .service_provider import ServiceProvider
|
|||||||
from .service_provider_abc import ServiceProviderABC
|
from .service_provider_abc import ServiceProviderABC
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.environment'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum
|
|||||||
from .application_environment import ApplicationEnvironment
|
from .application_environment import ApplicationEnvironment
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.logging'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings
|
|||||||
from .logging_settings_name_enum import LoggingSettingsNameEnum
|
from .logging_settings_name_enum import LoggingSettingsNameEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -125,7 +125,8 @@ class Logger(LoggerABC):
|
|||||||
try:
|
try:
|
||||||
# open log file and append always
|
# open log file and append always
|
||||||
if not os.path.isdir(self._path):
|
if not os.path.isdir(self._path):
|
||||||
self._fatal_console(__name__, 'Log directory not found')
|
self._warn_console(__name__, 'Log directory not found, try to recreate logger')
|
||||||
|
self.create()
|
||||||
|
|
||||||
with open(self._path + self._log, "a+", encoding="utf-8") as f:
|
with open(self._path + self._log, "a+", encoding="utf-8") as f:
|
||||||
f.write(string + '\n')
|
f.write(string + '\n')
|
||||||
@ -166,7 +167,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.TRACE.value:
|
if self._level.value >= LoggingLevelEnum.TRACE.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.TRACE.value:
|
if self._console.value >= LoggingLevelEnum.TRACE.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.green)
|
Console.set_foreground_color(ForegroundColorEnum.green)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -179,7 +180,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.DEBUG.value:
|
if self._level.value >= LoggingLevelEnum.DEBUG.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.DEBUG.value:
|
if self._console.value >= LoggingLevelEnum.DEBUG.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.green)
|
Console.set_foreground_color(ForegroundColorEnum.green)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -192,7 +193,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.INFO.value:
|
if self._level.value >= LoggingLevelEnum.INFO.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.INFO.value:
|
if self._console.value >= LoggingLevelEnum.INFO.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.green)
|
Console.set_foreground_color(ForegroundColorEnum.green)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -205,7 +206,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.WARN.value:
|
if self._level.value >= LoggingLevelEnum.WARN.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.WARN.value:
|
if self._console.value >= LoggingLevelEnum.WARN.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.yellow)
|
Console.set_foreground_color(ForegroundColorEnum.yellow)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -224,7 +225,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.ERROR.value:
|
if self._level.value >= LoggingLevelEnum.ERROR.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.ERROR.value:
|
if self._console.value >= LoggingLevelEnum.ERROR.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.red)
|
Console.set_foreground_color(ForegroundColorEnum.red)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -243,7 +244,7 @@ class Logger(LoggerABC):
|
|||||||
if self._level.value >= LoggingLevelEnum.FATAL.value:
|
if self._level.value >= LoggingLevelEnum.FATAL.value:
|
||||||
self._append_log(output)
|
self._append_log(output)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.FATAL.value:
|
if self._console.value >= LoggingLevelEnum.FATAL.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.red)
|
Console.set_foreground_color(ForegroundColorEnum.red)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
@ -251,6 +252,24 @@ class Logger(LoggerABC):
|
|||||||
|
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
def _warn_console(self, name: str, message: str):
|
||||||
|
r"""Writes a warning to console only
|
||||||
|
|
||||||
|
Parameter
|
||||||
|
---------
|
||||||
|
name: :class:`str`
|
||||||
|
Error name
|
||||||
|
message: :class:`str`
|
||||||
|
Error message
|
||||||
|
"""
|
||||||
|
# check if message can be shown in console
|
||||||
|
if self._console.value >= LoggingLevelEnum.FATAL.value:
|
||||||
|
Console.set_foreground_color(ForegroundColorEnum.red)
|
||||||
|
Console.write_line(self._get_string(name, LoggingLevelEnum.ERROR, message))
|
||||||
|
Console.set_foreground_color(ForegroundColorEnum.default)
|
||||||
|
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
def _fatal_console(self, name: str, message: str, ex: Exception = None):
|
def _fatal_console(self, name: str, message: str, ex: Exception = None):
|
||||||
r"""Writes an error to console only
|
r"""Writes an error to console only
|
||||||
|
|
||||||
@ -271,7 +290,7 @@ class Logger(LoggerABC):
|
|||||||
else:
|
else:
|
||||||
output = self._get_string(name, LoggingLevelEnum.ERROR, message)
|
output = self._get_string(name, LoggingLevelEnum.ERROR, message)
|
||||||
|
|
||||||
# check if message can be shown in console_old
|
# check if message can be shown in console
|
||||||
if self._console.value >= LoggingLevelEnum.FATAL.value:
|
if self._console.value >= LoggingLevelEnum.FATAL.value:
|
||||||
Console.set_foreground_color(ForegroundColorEnum.red)
|
Console.set_foreground_color(ForegroundColorEnum.red)
|
||||||
Console.write_line(output)
|
Console.write_line(output)
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.mailing'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings
|
|||||||
from .email_client_settings_name_enum import EMailClientSettingsNameEnum
|
from .email_client_settings_name_enum import EMailClientSettingsNameEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.pipes'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -30,4 +30,4 @@ from .to_camel_case_pipe import ToCamelCasePipe
|
|||||||
from .to_snake_case_pipe import ToSnakeCasePipe
|
from .to_snake_case_pipe import ToSnakeCasePipe
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.time'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings
|
|||||||
from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum
|
from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
@ -15,7 +15,7 @@ __title__ = 'cpl_core.utils'
|
|||||||
__author__ = 'Sven Heidemann'
|
__author__ = 'Sven Heidemann'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de'
|
||||||
__version__ = '2022.10.0.post3'
|
__version__ = '2022.10.0.post4'
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@ -26,4 +26,4 @@ from .string import String
|
|||||||
from .pip import Pip
|
from .pip import Pip
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
||||||
version_info = VersionInfo(major='2022', minor='10', micro='0.post3')
|
version_info = VersionInfo(major='2022', minor='10', micro='0.post4')
|
||||||
|
Loading…
Reference in New Issue
Block a user