logging improvements
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
<2025-09-29> V0.2.4 - Improved logging and log readability
|
||||||
<2025-09-28> V0.2.3 - Added logging for version file and --filemode path to the decider
|
<2025-09-28> V0.2.3 - Added logging for version file and --filemode path to the decider
|
||||||
<2025-09-28> V0.2.0 - Added librefit for standard functions
|
<2025-09-28> V0.2.0 - Added librefit for standard functions
|
||||||
<2025-09-28> V0.1.0 - Added the creation of multiple numbered directories in a given directory with the pattern default directory_n
|
<2025-09-28> V0.1.0 - Added the creation of multiple numbered directories in a given directory with the pattern default directory_n
|
||||||
|
|||||||
10
refit/pyproject.toml
Normal file
10
refit/pyproject.toml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools>=61.0.0"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "refit"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
[tool.setuptools.packages]
|
||||||
|
find = { where = ["src"] }
|
||||||
0
refit/src/__init__.py
Normal file
0
refit/src/__init__.py
Normal file
@@ -3,9 +3,14 @@ from .refit_logger import logger
|
|||||||
|
|
||||||
def get_standard_name_number(current_number, number_str_length):
|
def get_standard_name_number(current_number, number_str_length):
|
||||||
"""returns a number string filled to the length of the input number"""
|
"""returns a number string filled to the length of the input number"""
|
||||||
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_name_number() index={current_number} string_length={number_str_length}"
|
||||||
|
)
|
||||||
current_number = str(current_number)
|
current_number = str(current_number)
|
||||||
standard_name_number = str.zfill(current_number, number_str_length)
|
standard_name_number = str.zfill(current_number, number_str_length)
|
||||||
logger.debug(f"standard_name_number={standard_name_number}")
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_name_number() return value= '{standard_name_number}'"
|
||||||
|
)
|
||||||
return standard_name_number
|
return standard_name_number
|
||||||
|
|
||||||
|
|
||||||
@@ -14,36 +19,46 @@ def get_standard_folder_name(name):
|
|||||||
given name to the argument --name as astring"""
|
given name to the argument --name as astring"""
|
||||||
logger.debug("get_standard_folder_name() call")
|
logger.debug("get_standard_folder_name() call")
|
||||||
if name is None:
|
if name is None:
|
||||||
logger.warning("No name assigned, continue with default.")
|
|
||||||
standard_folder_name = "directory"
|
standard_folder_name = "directory"
|
||||||
|
logger.info(
|
||||||
|
f"No name for folder assigned, continue with default value '{standard_folder_name}'."
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
logger.debug(f"{name}, Type: {type(name)}, Length: {len(name)}")
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_folder_name() Properties of name='{name}': Type: {type(name)}, Length: {len(name)}"
|
||||||
|
)
|
||||||
|
|
||||||
# Checks if multiple names are passed to the --name argument
|
# Checks if multiple names are passed to the --name argument
|
||||||
# if so, only the first one gets used.
|
# if so, only the first one gets used.
|
||||||
if len(name) > 1:
|
if len(name) > 1:
|
||||||
_NAMES_WARNING = f"{len(name)} names given, only one required.\nContinuing with '{name[0]}' as name."
|
_NAMES_WARNING = f"{len(name)} names given, only one required.\nContinuing with '{name[0]}' as name."
|
||||||
logger.warning(_NAMES_WARNING)
|
logger.warning("FUNC: get_standard_folder_name()" + _NAMES_WARNING)
|
||||||
print(_NAMES_WARNING)
|
print(_NAMES_WARNING)
|
||||||
standard_folder_name = name[0]
|
standard_folder_name = name[0]
|
||||||
|
|
||||||
logger.debug(f"{standard_folder_name}, Type: {type(standard_folder_name)}")
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_folder_name() Properties of folder name '{standard_folder_name}': Type: {type(standard_folder_name)}"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
standard_folder_name = name[0]
|
standard_folder_name = name[0]
|
||||||
logger.debug("Continuing with expected input")
|
logger.debug("Continuing with expected input")
|
||||||
logger.debug("get_standard_folder_name() exit.")
|
logger.debug("FUNC: get_standard_folder_name() exit.")
|
||||||
return standard_folder_name
|
return standard_folder_name
|
||||||
|
|
||||||
|
|
||||||
def get_standard_file_name(name):
|
def get_standard_file_name(name):
|
||||||
"""Returns the default file name if none is provided."""
|
"""Returns the default file name if none is provided."""
|
||||||
|
|
||||||
logger.debug("running get_standard_file_name()")
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_file_name() MSG: entered function with name='{name}'"
|
||||||
|
)
|
||||||
|
|
||||||
if name is None:
|
if name is None:
|
||||||
logger.warning("No name assigned, continue with default")
|
|
||||||
standard_file_name = "file"
|
standard_file_name = "file"
|
||||||
|
logger.info(
|
||||||
|
f"No file name assigned, continue with default value '{standard_file_name}'"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
if len(name) > 1:
|
if len(name) > 1:
|
||||||
_NAMES_WARNING = f"{len(name)} names given, only one required.\nContinuing with '{name[0]}' as name."
|
_NAMES_WARNING = f"{len(name)} names given, only one required.\nContinuing with '{name[0]}' as name."
|
||||||
logger.warning(_NAMES_WARNING)
|
logger.warning(_NAMES_WARNING)
|
||||||
@@ -53,7 +68,9 @@ def get_standard_file_name(name):
|
|||||||
logger.debug(f"{standard_file_name}, Type: {type(standard_file_name)}")
|
logger.debug(f"{standard_file_name}, Type: {type(standard_file_name)}")
|
||||||
else:
|
else:
|
||||||
standard_file_name = name[0]
|
standard_file_name = name[0]
|
||||||
logger.debug("Continuing with expected input")
|
logger.debug(
|
||||||
|
f"FUNC: get_standard_file_name MSG: Continuing with expected input: '{standard_file_name}'"
|
||||||
logger.debug("exiting get_standard_file_name()")
|
)
|
||||||
|
|
||||||
|
logger.debug("FUNC get_standard_file_name() MSG: Exit")
|
||||||
return standard_file_name
|
return standard_file_name
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from .refit_logger import logger
|
from .refit_logger import logger
|
||||||
from . import librefit
|
from . import librefit
|
||||||
|
|
||||||
logger.debug("Initiated refit_create.py")
|
# logger.debug("Initiated refit_create.py")
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@@ -29,27 +30,38 @@ class Refit_Create:
|
|||||||
"""Checks if the input is valid and returns either True or
|
"""Checks if the input is valid and returns either True or
|
||||||
throws an error in log and terminal."""
|
throws an error in log and terminal."""
|
||||||
|
|
||||||
logger.debug("in create_input_valid()")
|
logger.debug(f"Start create_input_valid() value= {self.input}")
|
||||||
if self.input is None:
|
if self.input is None:
|
||||||
logger.warning(f"{self.input} cannot be None")
|
logger.warning(f"{self.input} cannot be None")
|
||||||
print("Input argument missing. Use 'refit create -h' for help")
|
print("Input argument missing. Use 'refit create -h' for help")
|
||||||
raise ValueError("Input missing")
|
raise ValueError("Input missing")
|
||||||
return True
|
else:
|
||||||
|
logger.debug(
|
||||||
|
f"Exiting create_input_valid() with valid input. value= {self.input}"
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
|
||||||
def create_n_folders(self, n, input, name):
|
def create_n_folders(self, n, input, name):
|
||||||
"""Creates an set ammount of folders. Using the default directory
|
"""Creates an set ammount of folders. Using the default directory
|
||||||
name if no other is provided."""
|
name if no other is provided."""
|
||||||
|
|
||||||
logger.debug("in create_n_folders()")
|
logger.debug(f"FUNC: create_n_folders() ARGS: n={n} input={input} name={name}")
|
||||||
|
|
||||||
# Creating the length of the suffix number_string.
|
# Creating the length of the suffix number_string.
|
||||||
length_n = len(str(n))
|
length_n = len(str(n))
|
||||||
|
logger.debug(
|
||||||
|
f"FUNC: create_n_folders() MSG: Length of numbering string added to the name:{length_n}"
|
||||||
|
)
|
||||||
|
|
||||||
# Get either the default folder name or the input name as string.
|
# Get either the default folder name or the input name as string.
|
||||||
|
logger.debug(
|
||||||
|
f"FUNC: create_n_folders() MSG: Type of name value: {type(name)} name={name}"
|
||||||
|
)
|
||||||
folder_name = librefit.get_standard_folder_name(name)
|
folder_name = librefit.get_standard_folder_name(name)
|
||||||
|
|
||||||
logger.debug(f"Length of numbering string:{length_n}")
|
logger.debug(
|
||||||
logger.debug(f"Folder name: {folder_name}")
|
f"FUNC: create_n_folders() MSG: Folder name: {folder_name} post get_standard_folder_name() call"
|
||||||
|
)
|
||||||
|
|
||||||
while n > 0:
|
while n > 0:
|
||||||
# iterating down for the files number.
|
# iterating down for the files number.
|
||||||
@@ -60,26 +72,25 @@ class Refit_Create:
|
|||||||
|
|
||||||
# Creating path for the folder
|
# Creating path for the folder
|
||||||
temp_name = f"{folder_name}_{number_string}"
|
temp_name = f"{folder_name}_{number_string}"
|
||||||
logger.debug(f"temp_name= {temp_name}")
|
|
||||||
folder_creation_path = os.path.join(input, temp_name)
|
folder_creation_path = os.path.join(input, temp_name)
|
||||||
logger.debug(f"Created: {folder_creation_path}")
|
|
||||||
# Creating folder and subtracting n by one for the number_string
|
# Creating folder and subtracting n by one for the number_string
|
||||||
os.mkdir(folder_creation_path)
|
os.mkdir(folder_creation_path)
|
||||||
n -= 1
|
n -= 1
|
||||||
|
|
||||||
def rf_create_decider(self):
|
def rf_create_decider(self):
|
||||||
"""Coordination of the 'create' sub command"""
|
"""Coordination of the 'create' sub command"""
|
||||||
|
logger.debug("FUNC: rf_create_decider() MSG: Entered decider function")
|
||||||
if self.create_input_valid():
|
if self.create_input_valid():
|
||||||
logger.debug("valid input -> continue")
|
logger.debug(f"Valid input. value={self.input}")
|
||||||
|
|
||||||
if self.filemode:
|
if self.filemode:
|
||||||
logger.debug("filemode active")
|
logger.debug("DECISION if filemode")
|
||||||
else:
|
else:
|
||||||
|
logger.debug(
|
||||||
|
f"DIR-MODE | ARGS: n={self.n} input={self.input} name={self.name}"
|
||||||
|
)
|
||||||
self.create_n_folders(self.n, self.input, self.name)
|
self.create_n_folders(self.n, self.input, self.name)
|
||||||
logger.debug(
|
|
||||||
"End of run---------------------------------------------------------"
|
|
||||||
)
|
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
"""Gets called when the object is treated as an function"""
|
"""Gets called when the object is treated as an function"""
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
import librefit
|
|
||||||
|
|
||||||
def test_get_default_file_name():
|
|
||||||
"""Tests if the function returns the correct value"""
|
|
||||||
default_name = librefit.get_standard_file_name()
|
|
||||||
assert "file" in default_name
|
|
||||||
|
|
||||||
def test_get_default_folder_name():
|
|
||||||
"""Test if the default directory name gets returned"""
|
|
||||||
default_name = librefit.get_standard_folder_name()
|
|
||||||
assert "directory" in default_name
|
|
||||||
|
|
||||||
def test_get_standard_name_number():
|
|
||||||
"""Tests if the number function returns the correctly formatted string."""
|
|
||||||
name_number = librefit.get_standard_name_number(20,3)
|
|
||||||
assert "020" in name_number
|
|
||||||
@@ -11,29 +11,30 @@ CONFIG_FILE = "version.cfg"
|
|||||||
|
|
||||||
|
|
||||||
def read_version_config():
|
def read_version_config():
|
||||||
|
logger.debug(f"Start read_version_config() with config file: {CONFIG_FILE}")
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
logger.debug("reading config file")
|
|
||||||
config.read(CONFIG_FILE)
|
config.read(CONFIG_FILE)
|
||||||
logger.debug("config file read")
|
|
||||||
|
|
||||||
if not os.path.exists(CONFIG_FILE):
|
if not os.path.exists(CONFIG_FILE):
|
||||||
logger.error("Could not find path")
|
logger.error(
|
||||||
return ""
|
f"Func: read_version_config() MSG: Could not find config file '{CONFIG_FILE}'"
|
||||||
|
)
|
||||||
|
return "x.x.x"
|
||||||
|
|
||||||
if "VERSION" not in config:
|
if "VERSION" not in config:
|
||||||
logger.error("Could not find VERSION in config file")
|
logger.error(f"Could not find VERSION-variable in config file '{CONFIG_FILE}'")
|
||||||
return ""
|
return "x.x.x"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
v = config["VERSION"]
|
v = config["VERSION"]
|
||||||
major = v.get("major", "0")
|
major = v.get("major", "0")
|
||||||
minor = v.get("minor", "0")
|
minor = v.get("minor", "0")
|
||||||
patch = v.get("patch", "0")
|
patch = v.get("patch", "0")
|
||||||
logger.debug(f"output: {major}.{minor}.{patch}")
|
logger.debug(f"Config file read successfully. Version: {major}.{minor}.{patch}")
|
||||||
return f"{major}.{minor}.{patch}"
|
return f"{major}.{minor}.{patch}"
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warning("Couldnt read version")
|
logger.warning("Couldn not read version from config file")
|
||||||
return ""
|
return "x.x.x"
|
||||||
|
|
||||||
|
|
||||||
REFIT_VERSION = f"Refit Beta {read_version_config()}"
|
REFIT_VERSION = f"Refit Beta {read_version_config()}"
|
||||||
@@ -78,11 +79,11 @@ args = parser.parse_args()
|
|||||||
# Dispatcher
|
# Dispatcher
|
||||||
# determines what code gets addressed based of the users choosen flags.
|
# determines what code gets addressed based of the users choosen flags.
|
||||||
if hasattr(args, "command_class"):
|
if hasattr(args, "command_class"):
|
||||||
logger.debug("In hasattr()")
|
logger.debug(f"In dispatcher with args: {args}")
|
||||||
Refit_Create = args.command_class
|
Refit_Create = args.command_class
|
||||||
create_command_instance = Refit_Create(args)
|
create_command_instance = Refit_Create(args)
|
||||||
create_command_instance()
|
create_command_instance()
|
||||||
else:
|
else:
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
logger.info("No input, exiting with error:1")
|
logger.info("No input, exiting with exit code: 1")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[VERSION]
|
[VERSION]
|
||||||
major = 0
|
major = 0
|
||||||
minor = 2
|
minor = 2
|
||||||
patch = 3
|
patch = 4
|
||||||
|
|
||||||
|
|||||||
44
refit/test_librefit.py
Normal file
44
refit/test_librefit.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
from src.modules.librefit import (
|
||||||
|
get_standard_folder_name,
|
||||||
|
get_standard_name_number,
|
||||||
|
get_standard_file_name,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_default_file_name():
|
||||||
|
"""Tests if the function returns the correct value"""
|
||||||
|
default_name = get_standard_file_name(None)
|
||||||
|
assert "file" in default_name
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_default_folder_name():
|
||||||
|
"""Test if the default directory name gets returned"""
|
||||||
|
default_name = get_standard_folder_name(None)
|
||||||
|
assert "directory" in default_name
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_standard_name_number():
|
||||||
|
"""Tests if the number function returns the correctly formatted string."""
|
||||||
|
name_number = get_standard_name_number(20, 3)
|
||||||
|
assert "020" in name_number
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_filename():
|
||||||
|
"""Tests if a passed filename is returned properly"""
|
||||||
|
filename = get_standard_file_name(["testname"])
|
||||||
|
assert "testname" in filename
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_folder_name():
|
||||||
|
"""Tests if the function returns the passed folder name correctly"""
|
||||||
|
folder_name = ["folder"]
|
||||||
|
return_folder_name = get_standard_folder_name(folder_name)
|
||||||
|
assert "folder" in return_folder_name
|
||||||
|
|
||||||
|
|
||||||
|
def test_folder_name_list():
|
||||||
|
"""The function is supposed to only return the first name of the
|
||||||
|
passed list"""
|
||||||
|
folder_names = ["folder1", "folder2", "folder3"]
|
||||||
|
return_folder_name = get_standard_folder_name(folder_names)
|
||||||
|
assert "folder1" in return_folder_name
|
||||||
Reference in New Issue
Block a user