diff --git a/refit/README.md b/refit/README.md index d5ddd3c..a2a2177 100644 --- a/refit/README.md +++ b/refit/README.md @@ -14,10 +14,13 @@ 3.1 remove all files like '*.tar' - ~~make input default the current directory and the second argument after `refit create`~~ -- maybe get rid of valid input ?? +- ~~maybe get rid of valid input ??~~ +- rework rf_create_decider() so it does not execute if no inputs are given -> valid input check back for no arguments passed? +- get rid of input argument, default to current directory and and make it positional -## Changelog +# Changelog +<2025-09-30> V0.3.2 - Refactoring librefit and added proper docstrings; begun to remove the check for the valid input and put it in the decider <2025-09-29> V0.3.1 - Removed the requirement for an input <2025-09-29> V0.3.0 - Added file creation in the pattern like directories <2025-09-29> V0.2.4 - Improved logging and log readability diff --git a/refit/src/modules/librefit.py b/refit/src/modules/librefit.py index 9a3a9fa..7618f5c 100644 --- a/refit/src/modules/librefit.py +++ b/refit/src/modules/librefit.py @@ -1,7 +1,7 @@ from .refit_logger import logger -def get_standard_name_number(current_number, number_str_length): +def get_standard_name_number(current_number: str, number_str_length: int) -> str: """Returns a number string filled to the length of the input number This function returns the number in a standartized way as a string. @@ -9,7 +9,7 @@ def get_standard_name_number(current_number, number_str_length): number which determines the length of the string. Args: - current_number (int): The current number of the item. + current_number (str): The current number of the item. number_str_length (int): The length of the string which gets returned. Examples: @@ -29,7 +29,7 @@ def get_standard_name_number(current_number, number_str_length): return standard_name_number -def get_standard_folder_name(name) -> str: +def get_standard_folder_name(name: str) -> str: """Returnes a standard name either from a list or the default value. This function sanitizes the input, which gets passed as a list or None from diff --git a/refit/src/modules/refit_create.py b/refit/src/modules/refit_create.py index 4780511..33d7d38 100644 --- a/refit/src/modules/refit_create.py +++ b/refit/src/modules/refit_create.py @@ -1,6 +1,6 @@ -import argparse import os from pathlib import Path +import sys from .refit_logger import logger from . import librefit @@ -20,19 +20,21 @@ class Refit_Create: def __init__(self, args): """Initiating variables for creation""" - self.args = args self.name = args.name self.input = args.input self.n = args.n self.filemode = args.filemode + self.recursive = args.recursive + self.args = args - def create_input_valid(self): + def create_input_valid(self, args): """Checks if the input is argument for its existence. If no input argument with a value is passed, the current directory is used and passed to the input""" logger.debug(f"Start create_input_valid() value= {self.input}") + logger.debug(f"FUNC: create_input_valid() MSG: arguments: {args}") if self.input is None: input = "." self.input = input @@ -101,17 +103,16 @@ class Refit_Create: ) while n > 0: - # Get number of the file(s) to create file_number = str(n - 1) number_string = librefit.get_standard_name_number(file_number, length_n) - + # Get the name of the file, either applying default or using first list item. temp_name = f"{file_name}_{number_string}" - file_path = Path(os.path.join(input, temp_name)) # Build file path - file_path.touch(exist_ok=True) # creating file - + file_path = Path(os.path.join(input, temp_name)) # Build file path + file_path.touch(exist_ok=True) # creating file + logger.debug( f"FUNC: create_n_files MSG: created file at {os.path.join(input, temp_name)}" ) @@ -121,17 +122,29 @@ class Refit_Create: def rf_create_decider(self): """Coordination of the 'create' sub command""" logger.debug("FUNC: rf_create_decider() MSG: Entered decider function") - if self.create_input_valid(): - logger.debug(f"Valid input. value={self.input}") - if self.filemode: - logger.debug("DECISION if filemode") - self.create_n_files(self.n, self.input, self.name) - 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) + if self.input is None: + self.input = "." + logger.info( + f"FUNC: rf_create_decider() MSG: Usingsing current directory as input. value={self.input} " + ) + + logger.critical(self.input) + + if self.filemode: + logger.debug("DECISION if filemode") + self.create_n_files(self.n, self.input, self.name) + elif self.n is not None: + 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) + else: + logger.debug(f"FUNC: rf_create_decider() MSG: given arguments: {self.args}") + print( + "Use '-n' argument to create directories.\nPlease use 'refit create -h' for help" + ) + sys.exit(1) def __call__(self): """Gets called when the 'create' subcommand is used.""" diff --git a/refit/src/refit.py b/refit/src/refit.py index 79f571e..cf21239 100644 --- a/refit/src/refit.py +++ b/refit/src/refit.py @@ -70,6 +70,12 @@ create_parser.add_argument( create_parser.add_argument( "--filemode", action="store_true", help="creates files instead of directories" ) +create_parser.add_argument( + "-r", + "--recursive", + nargs="*", + help="Sets the recursive mode for folders to true. First argumet\n is for the depth and the second for the width.", +) create_parser.set_defaults(command_class=Refit_Create) args = parser.parse_args() diff --git a/refit/src/version.cfg b/refit/src/version.cfg index a5137ee..08baeb2 100644 --- a/refit/src/version.cfg +++ b/refit/src/version.cfg @@ -1,5 +1,5 @@ [VERSION] major = 0 minor = 3 -patch = 1 +patch = 2