added custom naming to recursion and fixed naming in filemode

This commit is contained in:
2025-10-05 15:58:36 +02:00
parent 46ea1db65d
commit 9c39b773da
5 changed files with 40 additions and 36 deletions

View File

@@ -13,18 +13,14 @@
3. file removal 3. file removal
3.1 remove all files like '*.tar' 3.1 remove all files like '*.tar'
- ~~make input default the current directory and the - implement config file containing version, default names and other
second argument after `refit create`~~ configurations
- ~~maybe get rid of valid input ??~~ - make file and directory creation start counting at 1 instead of 0
- rework rf_create_decider() so it does not execute if no inputs are give
n -> valid input check back for no arguments passed?
- check done in rf_create_decider()
- get rid of input argument, default to current directory and make it
positional
- implement back in the valid input check
## Changelog ## Changelog
<2025-10-05> V0.3.7 - Added custom naming for level and branch in
recursive mode
<2025-10-05> V0.3.6 - Recursive mode no longer requires the -n flag <2025-10-05> V0.3.6 - Recursive mode no longer requires the -n flag
<2025-10-04> V0.3.5 - Added a function which returns the length of a <2025-10-04> V0.3.5 - Added a function which returns the length of a
number number

View File

@@ -153,7 +153,7 @@ def get_current_path(path) -> str:
sys.exit(1) sys.exit(1)
def create_linear_directories(input_path, target_depth, current_depth): def create_linear_directories(input_path, target_depth, current_depth, name):
"""Creates the linear directories for the x*y pattern""" """Creates the linear directories for the x*y pattern"""
# TODO: - add dynamic name input # TODO: - add dynamic name input
@@ -162,40 +162,49 @@ def create_linear_directories(input_path, target_depth, current_depth):
# f"FUNC: create_linear_directories(entered) VALUES: path='{input_path}', target_depth='{target_depth}', current_depth='{current_depth}'" # f"FUNC: create_linear_directories(entered) VALUES: path='{input_path}', target_depth='{target_depth}', current_depth='{current_depth}'"
# ) # )
if name is None:
base_name = "level"
else:
base_name = name[1]
if current_depth > target_depth: if current_depth > target_depth:
return return
directory_name = "level_" + get_standard_name_number( directory_name = (
current_depth, base_name
get_int_length(target_depth), + "_"
+ get_standard_name_number(current_depth, get_int_length(target_depth))
) )
path = os.path.join(input_path, directory_name) path = os.path.join(input_path, directory_name)
os.mkdir(path) os.mkdir(path)
create_linear_directories( create_linear_directories(path, target_depth, current_depth + 1, name)
path,
target_depth,
current_depth + 1,
)
def create_parallel_directories(input_path, target_depth, width): def create_parallel_directories(input_path, target_depth, width, name):
"""Creates directories after the pattern x*y""" """Creates directories after the pattern x*y"""
# TODO: - add dynamic name input # TODO: - add dynamic name input
# - add docstring # - add docstring
# logger.debug( logger.debug(
# f"FUNC: create_parallel_directories(entered) VALUES: path='{input_path}', target_depth='{target_depth}', width='{width}'" f"FUNC: create_parallel_directories(entered) VALUES: path='{input_path}', target_depth='{target_depth}', width='{width}', name={name}"
# ) )
if name is None:
base_name = "branch"
else:
base_name = name[0]
for i in range(width): for i in range(width):
directory_name = "branch_" + get_standard_name_number(i, get_int_length(width)) directory_name = (
base_name + "_" + get_standard_name_number(i, get_int_length(width))
)
path = os.path.join(input_path, directory_name) path = os.path.join(input_path, directory_name)
os.mkdir(path) os.mkdir(path)
create_linear_directories( create_linear_directories(
path, input_path=path,
target_depth, target_depth=target_depth,
current_depth=0, current_depth=0,
name=name,
) )

View File

@@ -58,6 +58,9 @@ class Refit_Create:
f"FUNC: create_n_files() MSG: Entered function VALUES: n={self.n} name={self.name} input={self.input}" f"FUNC: create_n_files() MSG: Entered function VALUES: n={self.n} name={self.name} input={self.input}"
) )
# Creating the length of the suffix number_string.
length_n = librefit.get_int_length(n)
# Get the name from the input argument. # Get the name from the input argument.
file_name = librefit.get_standard_file_name(name) file_name = librefit.get_standard_file_name(name)
@@ -65,9 +68,7 @@ class Refit_Create:
# Get number of the file(s) to create # Get number of the file(s) to create
file_number = n - 1 file_number = n - 1
number_string = librefit.get_standard_name_number( number_string = librefit.get_standard_name_number(file_number, length_n)
file_number, librefit.get_int_length(n)
)
# Get the name of the file, either applying default or using first list item. # Get the name of the file, either applying default or using first list item.
temp_name = f"{file_name}_{number_string}" temp_name = f"{file_name}_{number_string}"
@@ -87,14 +88,12 @@ class Refit_Create:
input_path=input, input_path=input,
target_depth=recursive[0], target_depth=recursive[0],
width=recursive[1], width=recursive[1],
name=name,
) )
def input_validator(self): def input_validator(self):
"""Function, which checks if the user input is valid""" """Function, which checks if the user input is valid"""
# TODO: make the input validator pass without the n argument
# when recursive mode is active
# Check working directory # Check working directory
if self.input is None: if self.input is None:
self.input = librefit.get_current_path(self.input) self.input = librefit.get_current_path(self.input)
@@ -138,6 +137,9 @@ class Refit_Create:
self.create_n_files(self.n, self.input, self.name) self.create_n_files(self.n, self.input, self.name)
elif self.recursive is not None: elif self.recursive is not None:
# NOTE: for the dynamic name use two more args, if they
# exist, take them as name for the two dirs. else use
# default names
logger.debug( logger.debug(
f"FUNC: create_dispatcher(recursive) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}" f"FUNC: create_dispatcher(recursive) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}"
) )

View File

@@ -41,9 +41,6 @@ REFIT_VERSION = f"Refit Beta {read_version_config()}"
# ---------------------------ARGPARSE START--------------------------- # ---------------------------ARGPARSE START---------------------------
# TODO: Rework the structure of the argument parsing
# Main Parser # Main Parser
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
prog="Refit", prog="Refit",
@@ -79,7 +76,7 @@ create_parser.add_argument(
"--recursive", "--recursive",
type=int, type=int,
nargs=2, nargs=2,
help="Sets the recursive mode for folders to true. First argumet\n is for the depth and the second for the width.", help="Sets the recursive mode for folders to true. First argumet is for the depth and the second for the width.",
) )
create_parser.set_defaults(command_class=Refit_Create) create_parser.set_defaults(command_class=Refit_Create)

View File

@@ -1,5 +1,5 @@
[VERSION] [VERSION]
major = 0 major = 0
minor = 3 minor = 3
patch = 6 patch = 7