Compare commits

64 Commits

Author SHA1 Message Date
fb4e8a3be6 back to an working state 2025-10-02 20:47:40 +02:00
36333b3b99 removed redundant TODO 2025-10-02 15:50:58 +02:00
91e474c3b8 added TODO comments 2025-10-02 15:46:24 +02:00
e8ef3c6e53 added TODO comments 2025-10-02 15:40:36 +02:00
f4f5f9bc6b split decider and input_validator 2025-10-02 15:12:04 +02:00
3c1d881de7 cleanup 2025-10-02 15:11:40 +02:00
b4e5694b7b update README 2025-10-02 13:41:46 +02:00
691b68cb4c modified .gitignore 2025-10-01 22:20:23 +02:00
461533b717 new decicion logic WIP 2025-10-01 16:07:08 +02:00
caff94ab41 decider WIP 2025-10-01 08:06:26 +02:00
efcec653cb refactor librefit and added docstrings 2025-09-30 20:56:27 +02:00
a0f2f83a8a refactor get_standard_name_number() and added proper docstring 2025-09-30 17:46:36 +02:00
af80345ff6 refactor get_standard_folder_name() and added proper docstring 2025-09-30 17:21:12 +02:00
f96d9b3257 test 2025-09-30 15:56:23 +02:00
b0e3594b49 added proper docstring and refactored get_standard_file_name() 2025-09-30 09:35:25 +02:00
cf828c7f97 update a Docstring to better explain the __call__ function 2025-09-30 08:05:00 +02:00
49e16a522c added comments to file creation function 2025-09-30 07:59:02 +02:00
927d5358f5 update Version 2025-09-29 22:23:19 +02:00
0bbfb9b9bf made the current directory the default input 2025-09-29 22:03:53 +02:00
a012f8f1e2 update README.md 2025-09-29 22:02:46 +02:00
394b940841 update README.md 2025-09-29 21:49:19 +02:00
b615f52313 added file creation 2025-09-29 21:38:42 +02:00
799e0239a1 update README.md 2025-09-29 21:37:50 +02:00
5270fab084 update README 2025-09-29 20:13:34 +02:00
5469a01c09 logging improvements 2025-09-29 20:11:16 +02:00
9b86007e34 trying to get the tests to run 2025-09-29 17:51:56 +02:00
40bf210067 added gewt_default_file_name() and wrote tests 2025-09-29 15:36:18 +02:00
ae19816da1 update .gitignore 2025-09-28 21:18:35 +02:00
d2041c5355 added filemode 2025-09-28 19:51:06 +02:00
c8bf85cb6a added version file 2025-09-28 18:10:05 +02:00
9dcaacf64a added versioning 2025-09-28 18:05:03 +02:00
b82a04e3bb update .gitignore 2025-09-28 18:04:11 +02:00
29924ffb36 added librefit 2025-09-28 17:32:07 +02:00
b09ea6a8c5 Merge remote-tracking branch 'refs/remotes/origin/main' 2025-09-28 17:21:15 +02:00
209fae5575 cosmetics 2025-09-28 17:20:51 +02:00
37fe1f5203 modified to use librefit 2025-09-28 17:19:44 +02:00
c48e16fdb9 created librefit for general functions 2025-09-28 17:19:20 +02:00
67b61a3d5f update README 2025-09-28 14:02:11 +02:00
2425e0a215 update refit version 2025-09-28 14:00:45 +02:00
6738f73db7 create class 2025-09-28 13:53:10 +02:00
e99ee7925f update logger 2025-09-28 13:52:40 +02:00
d910027bc0 update refit.py with Refit_Create() class 2025-09-28 13:51:53 +02:00
2dc233eef0 update README 2025-09-28 13:48:57 +02:00
09563a997c made some minor adjustments 2025-09-28 09:25:08 +02:00
a26367c0aa update README 2025-09-27 20:54:27 +02:00
8bc7bf5584 introduced src 2025-09-27 20:53:07 +02:00
b3834f4798 update .gitignore 2025-09-27 19:15:43 +02:00
f0a7ea1874 update .gitignore 2025-09-27 19:14:43 +02:00
c41ff7e0f5 fixed the usage program name from upper to lower case 2025-09-27 19:05:44 +02:00
78f8c991bd update README 2025-09-27 19:03:00 +02:00
a54d8bdced added logging 2025-09-27 17:31:58 +02:00
518ca3d815 added version flag and its output 2025-09-27 15:29:34 +02:00
9c4135cb3c update README 2025-09-27 15:22:49 +02:00
75a8158b9f update README 2025-09-27 15:21:57 +02:00
88c0e4df43 update README 2025-09-27 15:20:57 +02:00
f45f549da3 update README 2025-09-27 15:20:32 +02:00
3b554047e9 update README 2025-09-27 15:12:31 +02:00
5ee40c7c51 Update tempbox/README.md 2025-09-27 15:11:05 +02:00
6faf60d5f1 update README 2025-09-27 15:10:41 +02:00
20770f5f04 update README 2025-09-27 15:08:18 +02:00
400bc3091a fixed verbosity switch for run_as_subprocess()the output now getst voided if the -v flag is not set 2025-09-27 15:06:36 +02:00
9a6826fac0 update README 2025-09-27 14:13:36 +02:00
d7845413d6 removed releases 2025-09-27 14:11:56 +02:00
37dee4569f update gitignore 2025-09-27 14:08:00 +02:00
78 changed files with 808 additions and 8517 deletions

180
.gitignore vendored
View File

@@ -1 +1,179 @@
__pycache__ releases
version.py
tester
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
#uv.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Ruff stuff:
.ruff_cache/
# PyPI configuration file
.pypirc

View File

@@ -1,3 +1,17 @@
# Python # Python Programs and Scripts Repository
Collection of my python scripts. ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
Collection of my python scripts and programs. Containing tools to manipulate the behavior of the system.
## tempbox
A script which allows the user to execute commands in a temporary
directory.
After execution, all contents within the folder get removed.
## refit
A file and folder manipulation tool. The aim is to unify various steps from moving to creating and deleting
directories and folder with one tool.

31
refit/README.md Normal file
View File

@@ -0,0 +1,31 @@
# refit
`refit` is a file, directory manipulation and creation tool.
## ToDos
1. folder and file creation
1.1 simple file and folder creation
1.2 recursive file and folder creation
1.3 file in folder creation
2. file movement
2.1 apply a pattern what to move to where
3. file removal
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 ??~~
- rework rf_create_decider() so it does not execute if no inputs are given -> valid input check back for no arguments passed?
- check done in rf_create_decider()
- get rid of input argument, default to current directory and and make it positional
- implement back in the valid input check
# 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
<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.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
View 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
View File

View File

@@ -0,0 +1,152 @@
import os
import sys
from .refit_logger import logger
# TODO: Make a standard function for reading config files, so it is
# reusable
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.
As input it takes the current number of the string to build and a
number which determines the length of the string.
Args:
current_number (str): The current number of the item.
number_str_length (int): The length of the string which gets returned.
Examples:
>>> get_standard_name_number(1, 2)
'01'
>>> get_standard_name_number(23, 4)
'0023'
"""
# logger.debug(
# f"FUNC: get_standard_name_number() index={current_number} string_length={number_str_length}"
# )
current_number = str(current_number)
standard_name_number = str.zfill(current_number, number_str_length)
# logger.debug(
# f"FUNC: get_standard_name_number() return value= '{standard_name_number}'"
# )
return standard_name_number
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
argparse. The function either chooses the first entry of the list, given to
the --name argument or returns the default value 'directory'
Args:
name (list[str] | None): A list of names if passed to the --name argument
or None if no name is passed.
Returns:
str: The file name. Returns 'file' as default value if name argument is 'None'
otherwise the first element of the list.
Examples:
>>> get_standard_file_name(None)
'file'
>>> get_standard_file_name(["example"])
'example'
>>> get_standard_file_name(["directory_name", "example"])
'directory_name'
"""
logger.debug(
f"FUNC: get_standard_folder_name() MSG: entered function with value: '{name}'"
)
standard_folder_name = name[0] if name is not None else "directory"
logger.debug(
f"FUNC: get_standard_folder_name() MSG: exiting function with folder name: '{standard_folder_name}'"
)
return standard_folder_name
def get_standard_file_name(name) -> str:
"""Returnes a name either from a list or the default value.
This function sanitizes the input, which gets passed as a list or None from
argparse. The function either chooses the first entry of the list, given to
the --name argument or returns the default value 'file'
Args:
name (list[str] | None): A list of names if passed to the --name argument
or None if no name is passed.
Returns:
str: The file name. Returns 'file' as default value if name argument is 'None'
otherwise the first element of the list.
Examples:
>>> get_standard_file_name(None)
'file'
>>> get_standard_file_name(["example"])
'example'
>>> get_standard_file_name(["file_name", "example"])
'file_name'
"""
logger.debug(
f"FUNC: get_standard_file_name() MSG: entered function with name='{name}'"
)
standard_file_name = name[0] if name is not None else "file"
logger.debug(
f"FUNC: get_standard_file_name MSG: Continuing with expected input: '{standard_file_name}'"
)
logger.debug("FUNC get_standard_file_name() MSG: Exit")
return standard_file_name
def get_current_path(path) -> str:
"""Checks if the path argument is emty and applies the current directory as working path.
This function takes an list with strings as an input. If the input is `None` the current
directory is taken as the working directory.
If the path is passed, a check for its existence takes place.
Args:
path (str): _The current working directory._
Returns:
str: _Returns the path of the current directory after check for existence_
"""
# TODO: write test for the current path function, test for:
# - None
# - for existing path
# - for non existing path
# NOTE: research how to check for paths in test functions...
logger.debug(f"FUNC: get_current_path() MSG: entered function with path = '{path}'")
if path is None:
# Set the current directory if none is passed with the command.
path = "."
logger.warning(
f"FUNC: {get_current_path.__name__}() MSG: Path now has the value: '{path}'"
)
return path
else:
# Checks if the path, entered by the user, exists.
if os.path.exists(path) is True:
logger.debug(
f"FUNC: {get_current_path.__name__} MSG: Path '{path}' exists, continue...."
)
return path
else:
ERROR_MESSAGE = (
f"FUNC: {get_current_path.__name__} MSG: '{path}' does not exist"
)
logger.warning(ERROR_MESSAGE)
print(ERROR_MESSAGE)
sys.exit(1)

View File

@@ -0,0 +1,178 @@
import os
from pathlib import Path
import sys
from .refit_logger import logger
from . import librefit
# logger.debug("Initiated refit_create.py")
# ----------------------------------------------------------------------
class Refit_Create:
"""A class to create folders and files.
It first calls the decider which lets the create_input_valid() function
check if the input argument exists. If create_input_valid() returns
'True' it continues to execute the command as per the given arguments.
default folder name: directory"""
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
def create_n_folders(self, n, input, name):
"""Creates an set ammount of folders. Using the default directory
name if no other is provided."""
logger.debug(f"FUNC: create_n_folders() ARGS: n={n} input={input} name={name}")
# Creating the length of the suffix number_string.
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.
logger.debug(
f"FUNC: create_n_folders() MSG: Type of name value: {type(name)} name={name}"
)
folder_name = librefit.get_standard_folder_name(name)
logger.debug(
f"FUNC: create_n_folders() MSG: Folder name: {folder_name} post get_standard_folder_name() call"
)
while n > 0:
# iterating down for the files number.
folder_number = str(n - 1)
# Passing the number and the length of the string to get the string back.
number_string = librefit.get_standard_name_number(folder_number, length_n)
# Creating path for the folder
temp_name = f"{folder_name}_{number_string}"
folder_creation_path = os.path.join(input, temp_name)
# Creating folder and subtracting n by one for the number_string
os.mkdir(folder_creation_path)
n -= 1
def create_n_files(self, n, input, name):
"""Creates an set ammount of files, using the default file name
if none is provided."""
logger.debug(
f"FUNC: create_n_files() MSG: Entered function VALUES: n={self.n} name={self.name} input={self.input}"
)
# Get the name from the input argument.
file_name = librefit.get_standard_file_name(name)
# Get the length of the entered number to fill it with 0
length_n = len(str(n))
logger.debug(
f"FUNC: create_n_files() MSG: file name='{file_name}' length_n={length_n}"
)
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
logger.debug(
f"FUNC: create_n_files MSG: created file at {os.path.join(input, temp_name)}"
)
# Counting down n for the next ieration of the while-loop
n -= 1
def input_validator(self):
"""Function, which checks if the user input is valid"""
# Check working directory
if self.input is None:
self.input = librefit.get_current_path(self.input)
logger.info(
"FUNC: input_validator() MSG: No directory passed to the command, continue with current directory"
)
# Check if recursive input is an empty list
if self.recursive is not None:
if len(self.recursive) < 3:
logger.error("Recursive flag cannot be set without values.")
sys.exit(1)
# Exit the program if the -n argument is not passed
if self.n is None:
logger.error(
f"FUNC rf_create_decider(n=None ?) MSG: the number value cannot be '{self.n}'"
)
print("Use the '-n' flag for the create command.")
sys.exit(1)
else:
logger.debug(
f"FUNC: input_validator() MSG: valid number entered n={self.n}"
)
return True
def rf_create_decider(self):
"""Coordination of the 'create' sub command"""
logger.debug("FUNC: rf_create_decider() MSG: Entered decider function")
if self.input_validator():
logger.debug(
f"FUNC: rf_create_decider() MSG: n={self.n} after input validating"
)
# Exits the program if recursive and filemode flags are set at the same time
if self.filemode:
logger.debug(
f"FUNC: rf_create_decider(filemode) MSG: given arguments: {self.n} {self.input} {self.name}"
)
if self.recursive is None:
self.create_n_files(self.n, self.input, self.name)
else:
logger.error("Recursive and filemode don´t work together.")
print("Recursive and filemode don´t work together.")
if self.recursive is not None:
logger.debug(
f"FUNC: rf_create_decider(recursive) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}"
)
# OPTIMIZE:Enters the standard creation mode and crerates directories.
if self.recursive is None:
if not self.filemode:
logger.debug(
f"FUNC: rf_create_decider(n_folder) MSG: given arguments: n={self.n} input={self.input} name={self.name}"
)
self.create_n_folders(self.n, self.input, self.name)
else:
print("How did we end up here?????")
else:
logger.debug(
f"FUNC: rf_create_decider(exit no input) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}"
)
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."""
self.rf_create_decider()

View File

@@ -0,0 +1,32 @@
import logging
import sys
from pathlib import Path
log_dir = Path.home() / ".local" / "share" / "refit"
log_dir.mkdir(parents=True, exist_ok=True)
log_file = log_dir / "refit.log"
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s",
filename=log_file,
)
logger = logging.getLogger()
def handle_exception(exec_type, exec_value, exec_traceback):
if issubclass(exec_type, KeyboardInterrupt):
sys.__excepthook__(exec_type, exec_value, exec_traceback)
return
logger.error(
"External error accured",
exc_info=(exec_type, exec_value, exec_traceback),
)
sys.excepthook = handle_exception
# logger.debug(f"Log path:\t{log_dir}")
# logger.debug(f"Log file:\t{log_file}")

105
refit/src/refit.py Normal file
View File

@@ -0,0 +1,105 @@
import argparse
import sys
import os
import configparser
from modules.refit_logger import logger
from modules.refit_create import Refit_Create
CONFIG_FILE = "version.cfg"
# TODO: comment the actions done in read_version_config()
# TODO: see the TODO in librefit: move the config file section into the
# libary
def read_version_config():
logger.debug(f"Start read_version_config() with config file: {CONFIG_FILE}")
config = configparser.ConfigParser()
config.read(CONFIG_FILE)
if not os.path.exists(CONFIG_FILE):
logger.error(
f"FUNC: read_version_config() MSG: Could not find config file '{CONFIG_FILE}'"
)
return "x.x.x"
if "VERSION" not in config:
logger.error(f"Could not find VERSION-variable in config file '{CONFIG_FILE}'")
return "x.x.x"
try:
v = config["VERSION"]
major = v.get("major", "0")
minor = v.get("minor", "0")
patch = v.get("patch", "0")
logger.debug(f"Config file read successfully. Version: {major}.{minor}.{patch}")
return f"{major}.{minor}.{patch}"
except Exception:
logger.warning("Couldn not read version from config file")
return "x.x.x"
REFIT_VERSION = f"Refit Beta {read_version_config()}"
# ---------------------------ARGPARSE START---------------------------
# TODO: Rework the structure of the argument parsing
# Main Parser
parser = argparse.ArgumentParser(
prog="Refit",
description="This is a file and directory manipulation tool.\
it can create, move and delete files and directories as well as \
renaming them",
epilog=REFIT_VERSION,
)
# Main Parser Arguments
# Create Parser
subparser = parser.add_subparsers(
title="Commands",
dest="create",
required=False,
)
# Create Parser Arguments
create_parser = subparser.add_parser("create", help="creates a new file/folder")
create_parser.add_argument("-n", type=int, help="number of items")
create_parser.add_argument("-i", "--input", help="input file")
create_parser.add_argument(
"--name",
nargs="*",
help="the name of the folder you want to create\n Default: directory",
)
create_parser.add_argument(
"--filemode", action="store_true", help="creates files instead of directories"
)
create_parser.add_argument(
"-r",
"--recursive",
# action="store_true",
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()
# ---------------------------ARGPARSE END-----------------------------
# Dispatcher
# determines what code gets addressed based of the users chosen flags.
if hasattr(args, "command_class"):
logger.debug(f"In dispatcher with args: {args}")
Refit_Create = args.command_class
create_command_instance = Refit_Create(args)
create_command_instance()
else:
parser.print_help()
logger.info("No input, exiting with exit code: 1")
sys.exit(1)

5
refit/src/version.cfg Normal file
View File

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

44
refit/test_librefit.py Normal file
View 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

View File

@@ -6,3 +6,10 @@ e.g. folder manipulation.
The tempbox command followed by another command executes it in an The tempbox command followed by another command executes it in an
temporary folder in /tmp. Afterwards it removes the temporary folder temporary folder in /tmp. Afterwards it removes the temporary folder
again. again.
## Changelog
<2025-09-27> - Beta b0.2.1 - added logging in $USER/.local/share/tempbox<br>
<2025-09-27> - Beta b0.1.1 - added the version output<br>
<2025-09-27> - Beta b0.1.1 - fixed verbosity switch for subprocess<br>
<2025-09-27> - *Beta b0.0.1* - first release of tempbox

View File

@@ -1,570 +0,0 @@
(['/home/cerberus/Documents/git/python/tempbox/tempbox.py'],
['/home/cerberus/Documents/git/python/tempbox'],
[],
[('/usr/lib/python3.13/site-packages/_pyinstaller_hooks_contrib/stdhooks',
-1000),
('/usr/lib/python3.13/site-packages/_pyinstaller_hooks_contrib', -1000)],
{},
[],
[],
False,
{},
0,
[],
[],
'3.13.7 (main, Aug 15 2025, 12:34:02) [GCC 15.2.1 20250813]',
[('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
[('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('struct', '/usr/lib/python3.13/struct.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('tempbox_functions',
'/home/cerberus/Documents/git/python/tempbox/tempbox_functions.py',
'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE')],
[('libpython3.13.so.1.0', '/usr/lib/libpython3.13.so.1.0', 'BINARY'),
('python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libmpdec.so.4', '/usr/lib/libmpdec.so.4', 'BINARY'),
('libcrypto.so.3', '/usr/lib/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/usr/lib/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/usr/lib/libbz2.so.1.0', 'BINARY'),
('libz.so.1', '/usr/lib/libz.so.1', 'BINARY')],
[],
[],
[('base_library.zip',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/base_library.zip',
'DATA')],
[('encodings.zlib_codec',
'/usr/lib/python3.13/encodings/zlib_codec.py',
'PYMODULE'),
('encodings.uu_codec',
'/usr/lib/python3.13/encodings/uu_codec.py',
'PYMODULE'),
('encodings.utf_8_sig',
'/usr/lib/python3.13/encodings/utf_8_sig.py',
'PYMODULE'),
('encodings.utf_8', '/usr/lib/python3.13/encodings/utf_8.py', 'PYMODULE'),
('encodings.utf_7', '/usr/lib/python3.13/encodings/utf_7.py', 'PYMODULE'),
('encodings.utf_32_le',
'/usr/lib/python3.13/encodings/utf_32_le.py',
'PYMODULE'),
('encodings.utf_32_be',
'/usr/lib/python3.13/encodings/utf_32_be.py',
'PYMODULE'),
('encodings.utf_32', '/usr/lib/python3.13/encodings/utf_32.py', 'PYMODULE'),
('encodings.utf_16_le',
'/usr/lib/python3.13/encodings/utf_16_le.py',
'PYMODULE'),
('encodings.utf_16_be',
'/usr/lib/python3.13/encodings/utf_16_be.py',
'PYMODULE'),
('encodings.utf_16', '/usr/lib/python3.13/encodings/utf_16.py', 'PYMODULE'),
('encodings.unicode_escape',
'/usr/lib/python3.13/encodings/unicode_escape.py',
'PYMODULE'),
('encodings.undefined',
'/usr/lib/python3.13/encodings/undefined.py',
'PYMODULE'),
('encodings.tis_620', '/usr/lib/python3.13/encodings/tis_620.py', 'PYMODULE'),
('encodings.shift_jisx0213',
'/usr/lib/python3.13/encodings/shift_jisx0213.py',
'PYMODULE'),
('encodings.shift_jis_2004',
'/usr/lib/python3.13/encodings/shift_jis_2004.py',
'PYMODULE'),
('encodings.shift_jis',
'/usr/lib/python3.13/encodings/shift_jis.py',
'PYMODULE'),
('encodings.rot_13', '/usr/lib/python3.13/encodings/rot_13.py', 'PYMODULE'),
('encodings.raw_unicode_escape',
'/usr/lib/python3.13/encodings/raw_unicode_escape.py',
'PYMODULE'),
('encodings.quopri_codec',
'/usr/lib/python3.13/encodings/quopri_codec.py',
'PYMODULE'),
('encodings.punycode',
'/usr/lib/python3.13/encodings/punycode.py',
'PYMODULE'),
('encodings.ptcp154', '/usr/lib/python3.13/encodings/ptcp154.py', 'PYMODULE'),
('encodings.palmos', '/usr/lib/python3.13/encodings/palmos.py', 'PYMODULE'),
('encodings.oem', '/usr/lib/python3.13/encodings/oem.py', 'PYMODULE'),
('encodings.mbcs', '/usr/lib/python3.13/encodings/mbcs.py', 'PYMODULE'),
('encodings.mac_turkish',
'/usr/lib/python3.13/encodings/mac_turkish.py',
'PYMODULE'),
('encodings.mac_romanian',
'/usr/lib/python3.13/encodings/mac_romanian.py',
'PYMODULE'),
('encodings.mac_roman',
'/usr/lib/python3.13/encodings/mac_roman.py',
'PYMODULE'),
('encodings.mac_latin2',
'/usr/lib/python3.13/encodings/mac_latin2.py',
'PYMODULE'),
('encodings.mac_iceland',
'/usr/lib/python3.13/encodings/mac_iceland.py',
'PYMODULE'),
('encodings.mac_greek',
'/usr/lib/python3.13/encodings/mac_greek.py',
'PYMODULE'),
('encodings.mac_farsi',
'/usr/lib/python3.13/encodings/mac_farsi.py',
'PYMODULE'),
('encodings.mac_cyrillic',
'/usr/lib/python3.13/encodings/mac_cyrillic.py',
'PYMODULE'),
('encodings.mac_croatian',
'/usr/lib/python3.13/encodings/mac_croatian.py',
'PYMODULE'),
('encodings.mac_arabic',
'/usr/lib/python3.13/encodings/mac_arabic.py',
'PYMODULE'),
('encodings.latin_1', '/usr/lib/python3.13/encodings/latin_1.py', 'PYMODULE'),
('encodings.kz1048', '/usr/lib/python3.13/encodings/kz1048.py', 'PYMODULE'),
('encodings.koi8_u', '/usr/lib/python3.13/encodings/koi8_u.py', 'PYMODULE'),
('encodings.koi8_t', '/usr/lib/python3.13/encodings/koi8_t.py', 'PYMODULE'),
('encodings.koi8_r', '/usr/lib/python3.13/encodings/koi8_r.py', 'PYMODULE'),
('encodings.johab', '/usr/lib/python3.13/encodings/johab.py', 'PYMODULE'),
('encodings.iso8859_9',
'/usr/lib/python3.13/encodings/iso8859_9.py',
'PYMODULE'),
('encodings.iso8859_8',
'/usr/lib/python3.13/encodings/iso8859_8.py',
'PYMODULE'),
('encodings.iso8859_7',
'/usr/lib/python3.13/encodings/iso8859_7.py',
'PYMODULE'),
('encodings.iso8859_6',
'/usr/lib/python3.13/encodings/iso8859_6.py',
'PYMODULE'),
('encodings.iso8859_5',
'/usr/lib/python3.13/encodings/iso8859_5.py',
'PYMODULE'),
('encodings.iso8859_4',
'/usr/lib/python3.13/encodings/iso8859_4.py',
'PYMODULE'),
('encodings.iso8859_3',
'/usr/lib/python3.13/encodings/iso8859_3.py',
'PYMODULE'),
('encodings.iso8859_2',
'/usr/lib/python3.13/encodings/iso8859_2.py',
'PYMODULE'),
('encodings.iso8859_16',
'/usr/lib/python3.13/encodings/iso8859_16.py',
'PYMODULE'),
('encodings.iso8859_15',
'/usr/lib/python3.13/encodings/iso8859_15.py',
'PYMODULE'),
('encodings.iso8859_14',
'/usr/lib/python3.13/encodings/iso8859_14.py',
'PYMODULE'),
('encodings.iso8859_13',
'/usr/lib/python3.13/encodings/iso8859_13.py',
'PYMODULE'),
('encodings.iso8859_11',
'/usr/lib/python3.13/encodings/iso8859_11.py',
'PYMODULE'),
('encodings.iso8859_10',
'/usr/lib/python3.13/encodings/iso8859_10.py',
'PYMODULE'),
('encodings.iso8859_1',
'/usr/lib/python3.13/encodings/iso8859_1.py',
'PYMODULE'),
('encodings.iso2022_kr',
'/usr/lib/python3.13/encodings/iso2022_kr.py',
'PYMODULE'),
('encodings.iso2022_jp_ext',
'/usr/lib/python3.13/encodings/iso2022_jp_ext.py',
'PYMODULE'),
('encodings.iso2022_jp_3',
'/usr/lib/python3.13/encodings/iso2022_jp_3.py',
'PYMODULE'),
('encodings.iso2022_jp_2004',
'/usr/lib/python3.13/encodings/iso2022_jp_2004.py',
'PYMODULE'),
('encodings.iso2022_jp_2',
'/usr/lib/python3.13/encodings/iso2022_jp_2.py',
'PYMODULE'),
('encodings.iso2022_jp_1',
'/usr/lib/python3.13/encodings/iso2022_jp_1.py',
'PYMODULE'),
('encodings.iso2022_jp',
'/usr/lib/python3.13/encodings/iso2022_jp.py',
'PYMODULE'),
('encodings.idna', '/usr/lib/python3.13/encodings/idna.py', 'PYMODULE'),
('encodings.hz', '/usr/lib/python3.13/encodings/hz.py', 'PYMODULE'),
('encodings.hp_roman8',
'/usr/lib/python3.13/encodings/hp_roman8.py',
'PYMODULE'),
('encodings.hex_codec',
'/usr/lib/python3.13/encodings/hex_codec.py',
'PYMODULE'),
('encodings.gbk', '/usr/lib/python3.13/encodings/gbk.py', 'PYMODULE'),
('encodings.gb2312', '/usr/lib/python3.13/encodings/gb2312.py', 'PYMODULE'),
('encodings.gb18030', '/usr/lib/python3.13/encodings/gb18030.py', 'PYMODULE'),
('encodings.euc_kr', '/usr/lib/python3.13/encodings/euc_kr.py', 'PYMODULE'),
('encodings.euc_jp', '/usr/lib/python3.13/encodings/euc_jp.py', 'PYMODULE'),
('encodings.euc_jisx0213',
'/usr/lib/python3.13/encodings/euc_jisx0213.py',
'PYMODULE'),
('encodings.euc_jis_2004',
'/usr/lib/python3.13/encodings/euc_jis_2004.py',
'PYMODULE'),
('encodings.cp950', '/usr/lib/python3.13/encodings/cp950.py', 'PYMODULE'),
('encodings.cp949', '/usr/lib/python3.13/encodings/cp949.py', 'PYMODULE'),
('encodings.cp932', '/usr/lib/python3.13/encodings/cp932.py', 'PYMODULE'),
('encodings.cp875', '/usr/lib/python3.13/encodings/cp875.py', 'PYMODULE'),
('encodings.cp874', '/usr/lib/python3.13/encodings/cp874.py', 'PYMODULE'),
('encodings.cp869', '/usr/lib/python3.13/encodings/cp869.py', 'PYMODULE'),
('encodings.cp866', '/usr/lib/python3.13/encodings/cp866.py', 'PYMODULE'),
('encodings.cp865', '/usr/lib/python3.13/encodings/cp865.py', 'PYMODULE'),
('encodings.cp864', '/usr/lib/python3.13/encodings/cp864.py', 'PYMODULE'),
('encodings.cp863', '/usr/lib/python3.13/encodings/cp863.py', 'PYMODULE'),
('encodings.cp862', '/usr/lib/python3.13/encodings/cp862.py', 'PYMODULE'),
('encodings.cp861', '/usr/lib/python3.13/encodings/cp861.py', 'PYMODULE'),
('encodings.cp860', '/usr/lib/python3.13/encodings/cp860.py', 'PYMODULE'),
('encodings.cp858', '/usr/lib/python3.13/encodings/cp858.py', 'PYMODULE'),
('encodings.cp857', '/usr/lib/python3.13/encodings/cp857.py', 'PYMODULE'),
('encodings.cp856', '/usr/lib/python3.13/encodings/cp856.py', 'PYMODULE'),
('encodings.cp855', '/usr/lib/python3.13/encodings/cp855.py', 'PYMODULE'),
('encodings.cp852', '/usr/lib/python3.13/encodings/cp852.py', 'PYMODULE'),
('encodings.cp850', '/usr/lib/python3.13/encodings/cp850.py', 'PYMODULE'),
('encodings.cp775', '/usr/lib/python3.13/encodings/cp775.py', 'PYMODULE'),
('encodings.cp737', '/usr/lib/python3.13/encodings/cp737.py', 'PYMODULE'),
('encodings.cp720', '/usr/lib/python3.13/encodings/cp720.py', 'PYMODULE'),
('encodings.cp500', '/usr/lib/python3.13/encodings/cp500.py', 'PYMODULE'),
('encodings.cp437', '/usr/lib/python3.13/encodings/cp437.py', 'PYMODULE'),
('encodings.cp424', '/usr/lib/python3.13/encodings/cp424.py', 'PYMODULE'),
('encodings.cp273', '/usr/lib/python3.13/encodings/cp273.py', 'PYMODULE'),
('encodings.cp1258', '/usr/lib/python3.13/encodings/cp1258.py', 'PYMODULE'),
('encodings.cp1257', '/usr/lib/python3.13/encodings/cp1257.py', 'PYMODULE'),
('encodings.cp1256', '/usr/lib/python3.13/encodings/cp1256.py', 'PYMODULE'),
('encodings.cp1255', '/usr/lib/python3.13/encodings/cp1255.py', 'PYMODULE'),
('encodings.cp1254', '/usr/lib/python3.13/encodings/cp1254.py', 'PYMODULE'),
('encodings.cp1253', '/usr/lib/python3.13/encodings/cp1253.py', 'PYMODULE'),
('encodings.cp1252', '/usr/lib/python3.13/encodings/cp1252.py', 'PYMODULE'),
('encodings.cp1251', '/usr/lib/python3.13/encodings/cp1251.py', 'PYMODULE'),
('encodings.cp1250', '/usr/lib/python3.13/encodings/cp1250.py', 'PYMODULE'),
('encodings.cp1140', '/usr/lib/python3.13/encodings/cp1140.py', 'PYMODULE'),
('encodings.cp1125', '/usr/lib/python3.13/encodings/cp1125.py', 'PYMODULE'),
('encodings.cp1026', '/usr/lib/python3.13/encodings/cp1026.py', 'PYMODULE'),
('encodings.cp1006', '/usr/lib/python3.13/encodings/cp1006.py', 'PYMODULE'),
('encodings.cp037', '/usr/lib/python3.13/encodings/cp037.py', 'PYMODULE'),
('encodings.charmap', '/usr/lib/python3.13/encodings/charmap.py', 'PYMODULE'),
('encodings.bz2_codec',
'/usr/lib/python3.13/encodings/bz2_codec.py',
'PYMODULE'),
('encodings.big5hkscs',
'/usr/lib/python3.13/encodings/big5hkscs.py',
'PYMODULE'),
('encodings.big5', '/usr/lib/python3.13/encodings/big5.py', 'PYMODULE'),
('encodings.base64_codec',
'/usr/lib/python3.13/encodings/base64_codec.py',
'PYMODULE'),
('encodings.ascii', '/usr/lib/python3.13/encodings/ascii.py', 'PYMODULE'),
('encodings.aliases', '/usr/lib/python3.13/encodings/aliases.py', 'PYMODULE'),
('encodings', '/usr/lib/python3.13/encodings/__init__.py', 'PYMODULE'),
('re._parser', '/usr/lib/python3.13/re/_parser.py', 'PYMODULE'),
('re._constants', '/usr/lib/python3.13/re/_constants.py', 'PYMODULE'),
('re._compiler', '/usr/lib/python3.13/re/_compiler.py', 'PYMODULE'),
('re._casefix', '/usr/lib/python3.13/re/_casefix.py', 'PYMODULE'),
('re', '/usr/lib/python3.13/re/__init__.py', 'PYMODULE'),
('types', '/usr/lib/python3.13/types.py', 'PYMODULE'),
('codecs', '/usr/lib/python3.13/codecs.py', 'PYMODULE'),
('copyreg', '/usr/lib/python3.13/copyreg.py', 'PYMODULE'),
('ntpath', '/usr/lib/python3.13/ntpath.py', 'PYMODULE'),
('keyword', '/usr/lib/python3.13/keyword.py', 'PYMODULE'),
('genericpath', '/usr/lib/python3.13/genericpath.py', 'PYMODULE'),
('warnings', '/usr/lib/python3.13/warnings.py', 'PYMODULE'),
('locale', '/usr/lib/python3.13/locale.py', 'PYMODULE'),
('linecache', '/usr/lib/python3.13/linecache.py', 'PYMODULE'),
('_weakrefset', '/usr/lib/python3.13/_weakrefset.py', 'PYMODULE'),
('stat', '/usr/lib/python3.13/stat.py', 'PYMODULE'),
('posixpath', '/usr/lib/python3.13/posixpath.py', 'PYMODULE'),
('abc', '/usr/lib/python3.13/abc.py', 'PYMODULE'),
('_collections_abc', '/usr/lib/python3.13/_collections_abc.py', 'PYMODULE'),
('reprlib', '/usr/lib/python3.13/reprlib.py', 'PYMODULE'),
('os', '/usr/lib/python3.13/os.py', 'PYMODULE'),
('sre_compile', '/usr/lib/python3.13/sre_compile.py', 'PYMODULE'),
('io', '/usr/lib/python3.13/io.py', 'PYMODULE'),
('functools', '/usr/lib/python3.13/functools.py', 'PYMODULE'),
('heapq', '/usr/lib/python3.13/heapq.py', 'PYMODULE'),
('traceback', '/usr/lib/python3.13/traceback.py', 'PYMODULE'),
('collections', '/usr/lib/python3.13/collections/__init__.py', 'PYMODULE'),
('weakref', '/usr/lib/python3.13/weakref.py', 'PYMODULE'),
('operator', '/usr/lib/python3.13/operator.py', 'PYMODULE'),
('sre_parse', '/usr/lib/python3.13/sre_parse.py', 'PYMODULE'),
('sre_constants', '/usr/lib/python3.13/sre_constants.py', 'PYMODULE'),
('enum', '/usr/lib/python3.13/enum.py', 'PYMODULE')])

View File

@@ -1,126 +0,0 @@
([('tempbox',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox',
'EXECUTABLE'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libpython3.13.so.1.0', '/usr/lib/libpython3.13.so.1.0', 'BINARY'),
('python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libmpdec.so.4', '/usr/lib/libmpdec.so.4', 'BINARY'),
('libcrypto.so.3', '/usr/lib/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/usr/lib/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/usr/lib/libbz2.so.1.0', 'BINARY'),
('libz.so.1', '/usr/lib/libz.so.1', 'BINARY'),
('base_library.zip',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/base_library.zip',
'DATA')],)

View File

@@ -1,54 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox',
True,
False,
True,
None,
None,
False,
False,
None,
True,
False,
None,
None,
None,
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox.pkg',
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
'PYZ'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('struct',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/usr/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
[],
False,
False,
1758972720,
[('run',
'/usr/lib/python3.13/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run',
'EXECUTABLE')],
'/usr/lib/libpython3.13.so.1.0')

View File

@@ -1,49 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox.pkg',
{'BINARY': True,
'DATA': True,
'EXECUTABLE': True,
'EXTENSION': True,
'PYMODULE': True,
'PYSOURCE': True,
'PYZ': False,
'SPLASH': True,
'SYMLINK': False},
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
'PYZ'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('struct',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/usr/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
'libpython3.13.so.1.0',
True,
False,
False,
[],
None,
None,
None)

View File

@@ -1,162 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
[('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('tempbox_functions',
'/home/cerberus/Documents/git/python/tempbox/tempbox_functions.py',
'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE')])

View File

@@ -1,23 +0,0 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running your program. Python and
Python 3rd-party packages include a lot of conditional or optional modules. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.
Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
tracking down the missing module yourself. Thanks!
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional)
missing module named 'collections.abc' - imported by traceback (top-level), typing (top-level), inspect (top-level), logging (top-level), importlib.resources.readers (top-level), selectors (top-level), tracemalloc (top-level)
missing module named winreg - imported by importlib._bootstrap_external (conditional)
missing module named nt - imported by shutil (conditional), importlib._bootstrap_external (conditional), ntpath (optional), _colorize (delayed, conditional, optional), os (delayed, conditional, optional)
missing module named _winapi - imported by encodings (delayed, conditional, optional), shutil (conditional), ntpath (optional), subprocess (conditional)
missing module named msvcrt - imported by subprocess (optional)

View File

@@ -1,44 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['../tempbox.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='tempbox',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='tempbox',
)

View File

@@ -1,6 +1,8 @@
import os import os
import subprocess import subprocess
from .tempbox_logger import logger
def create_folders(number_folders, base_path, verbosity=False): def create_folders(number_folders, base_path, verbosity=False):
"""creates an amount of folders and returning its path""" """creates an amount of folders and returning its path"""
@@ -25,10 +27,23 @@ def create_folders(number_folders, base_path, verbosity=False):
def execute_as_subprocess(command, base_path, verbosity=False): def execute_as_subprocess(command, base_path, verbosity=False):
"""executes the string given with the '-c, --command' flag.""" """executes the string given with the '-c, --command' flag."""
logger.debug("Entered execute_as_subprocess()")
logger.debug(f"Path:\t{base_path}\nCommand:\t\t\t{command}")
# Decicion if the terminal output is verbose or not
if verbosity: if verbosity:
print(base_path) # Verbose output
print(command) logger.info("Running subprocess with terminal output.")
print(verbosity)
subprocess.run(command, cwd=base_path, shell=True) subprocess.run(command, cwd=base_path, shell=True)
else: else:
subprocess.run(command, cwd=base_path, shell=True) # Suppressed output
logger.info("Running with suppressed stdout and stderr")
subprocess.run(
command,
cwd=base_path,
shell=True,
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT,
)
logger.debug("Exited execute_as_subprocess()")

View File

@@ -0,0 +1,17 @@
import logging
from pathlib import Path
log_dir = Path.home() / ".local" / "share" / "tempbox"
log_dir.mkdir(parents=True, exist_ok=True)
log_file = log_dir / "tempbox.log"
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s",
filename=log_file,
)
logger = logging.getLogger()
# logger.debug(f"Log path:\t{log_dir}")
# logger.debug(f"Log file:\t{log_file}")

View File

@@ -1,15 +1,17 @@
import tempfile import tempfile
import argparse import argparse
from tempbox_functions import execute_as_subprocess from modules.tempbox_functions import execute_as_subprocess
from modules.tempbox_logger import logger
tempbox_version = "Tempbox Beta b0.2.1"
# Argument parsing # Argument parsing
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
prog="Tempbox", prog="tempbox",
description="This program accepts an\ description="This program accepts an\
command whicht it executes in an temporary directory in /temp.", command whicht it executes in an temporary directory in /temp.",
# epilog="helloooooooo", epilog=tempbox_version,
) )
parser.add_argument( parser.add_argument(
@@ -18,17 +20,19 @@ parser.add_argument(
action="store_true", action="store_true",
help="Activates or deactivates verbose output. (default=%(default)s)", help="Activates or deactivates verbose output. (default=%(default)s)",
) )
parser.add_argument( parser.add_argument(
"-c", "-c",
"--command", "--command",
help="Takes the string right after the flag to execute it.", help="Takes the string right after the flag to execute it.",
) )
parser.add_argument("-V", "--version", action="version", version=tempbox_version)
args = parser.parse_args() args = parser.parse_args()
# Begin of script logic
if args.command is not None: if args.command is not None:
with tempfile.TemporaryDirectory() as temp_dir: with tempfile.TemporaryDirectory() as temp_dir:
logger.info(f"'{temp_dir}' was created")
if args.command is not None: if args.command is not None:
execute_as_subprocess( execute_as_subprocess(
args.command, args.command,
@@ -37,6 +41,4 @@ if args.command is not None:
) )
else: else:
parser.print_help() parser.print_help()
logger.debug("Printed Version")
# Creates a temporary directory and executes the command in it.